From ebf163ab30e41a74c272d24b400b010ea7dcad7a Mon Sep 17 00:00:00 2001 From: Dan Ramich Date: Thu, 4 Apr 2019 13:37:27 -0700 Subject: [PATCH] Vendor changes --- vendor.conf | 2 +- vendor/github.com/matryer/moq/.gitignore | 25 + vendor/github.com/matryer/moq/.travis.yml | 19 + vendor/github.com/matryer/moq/LICENSE | 21 + vendor/github.com/matryer/moq/README.md | 108 + .../github.com/matryer/moq/moq-logo-small.png | Bin 0 -> 32570 bytes vendor/github.com/matryer/moq/moq-logo.png | Bin 0 -> 29562 bytes vendor/github.com/matryer/moq/pkg/moq/moq.go | 379 + .../matryer/moq/pkg/moq/template.go | 107 + vendor/github.com/matryer/moq/preview.png | Bin 0 -> 743543 bytes vendor/github.com/rancher/norman/.drone.yml | 30 +- .../rancher/norman/clientbase/common.go | 9 +- .../rancher/norman/clientbase/ops.go | 6 + .../norman/controller/generic_controller.go | 2 +- .../norman/generator/controller_template.go | 2 +- .../rancher/norman/generator/generator.go | 49 +- .../norman/generator/scheme_template.go | 2 + .../norman/objectclient/object_client.go | 7 + .../rancher/norman/restwatch/rest.go | 2 +- .../rancher/norman/store/proxy/proxy_store.go | 41 +- .../rancher/norman/types/mapper/embed.go | 3 +- .../rancher/norman/types/schemas.go | 29 +- .../rancher/norman/types/server_types.go | 2 + .../github.com/rancher/norman/types/types.go | 39 +- vendor/github.com/rancher/norman/vendor.conf | 2 + vendor/golang.org/x/tools/CONTRIBUTING.md | 15 +- vendor/golang.org/x/tools/README | 10 - vendor/golang.org/x/tools/README.md | 27 + vendor/golang.org/x/tools/go.mod | 3 + vendor/golang.org/x/tools/go.sum | 5 + .../x/tools/go/ast/astutil/imports.go | 85 +- .../x/tools/go/ast/astutil/rewrite.go | 477 + .../x/tools/go/gcexportdata/gcexportdata.go | 109 + .../x/tools/go/gcexportdata/importer.go | 73 + .../x/tools/go/gcexportdata/main.go | 99 + .../x/tools/go/internal/gcimporter/bexport.go | 852 + .../x/tools/go/internal/gcimporter/bimport.go | 1036 + .../go/internal/gcimporter/exportdata.go | 93 + .../go/internal/gcimporter/gcimporter.go | 1078 + .../x/tools/go/internal/gcimporter/iexport.go | 723 + .../x/tools/go/internal/gcimporter/iimport.go | 606 + .../go/internal/gcimporter/newInterface10.go | 21 + .../go/internal/gcimporter/newInterface11.go | 13 + .../tools/go/internal/packagesdriver/sizes.go | 160 + vendor/golang.org/x/tools/go/packages/doc.go | 222 + .../x/tools/go/packages/external.go | 79 + .../golang.org/x/tools/go/packages/golist.go | 821 + .../x/tools/go/packages/golist_overlay.go | 104 + .../x/tools/go/packages/packages.go | 1051 + .../golang.org/x/tools/go/packages/visit.go | 55 + .../x/tools/go/types/typeutil/callee.go | 46 + .../x/tools/go/types/typeutil/imports.go | 31 + .../x/tools/go/types/typeutil/map.go | 313 + .../tools/go/types/typeutil/methodsetcache.go | 72 + .../x/tools/go/types/typeutil/ui.go | 52 + vendor/golang.org/x/tools/imports/fix.go | 1385 +- vendor/golang.org/x/tools/imports/imports.go | 56 +- vendor/golang.org/x/tools/imports/mkstdlib.go | 78 +- vendor/golang.org/x/tools/imports/mod.go | 355 + .../golang.org/x/tools/imports/sortimports.go | 18 + vendor/golang.org/x/tools/imports/zstdlib.go | 19691 ++++++++-------- .../fastwalk}/fastwalk.go | 43 +- .../fastwalk}/fastwalk_dirent_fileno.go | 2 +- .../fastwalk}/fastwalk_dirent_ino.go | 5 +- .../fastwalk/fastwalk_dirent_namlen_bsd.go | 13 + .../fastwalk/fastwalk_dirent_namlen_linux.go | 29 + .../fastwalk}/fastwalk_portable.go | 10 +- .../fastwalk}/fastwalk_unix.go | 21 +- .../x/tools/internal/gopathwalk/walk.go | 250 + .../x/tools/internal/module/module.go | 540 + .../x/tools/internal/semver/semver.go | 388 + 71 files changed, 22016 insertions(+), 10085 deletions(-) create mode 100644 vendor/github.com/matryer/moq/.gitignore create mode 100644 vendor/github.com/matryer/moq/.travis.yml create mode 100644 vendor/github.com/matryer/moq/LICENSE create mode 100644 vendor/github.com/matryer/moq/README.md create mode 100644 vendor/github.com/matryer/moq/moq-logo-small.png create mode 100644 vendor/github.com/matryer/moq/moq-logo.png create mode 100644 vendor/github.com/matryer/moq/pkg/moq/moq.go create mode 100644 vendor/github.com/matryer/moq/pkg/moq/template.go create mode 100644 vendor/github.com/matryer/moq/preview.png delete mode 100644 vendor/golang.org/x/tools/README create mode 100644 vendor/golang.org/x/tools/README.md create mode 100644 vendor/golang.org/x/tools/go.mod create mode 100644 vendor/golang.org/x/tools/go.sum create mode 100644 vendor/golang.org/x/tools/go/ast/astutil/rewrite.go create mode 100644 vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go create mode 100644 vendor/golang.org/x/tools/go/gcexportdata/importer.go create mode 100644 vendor/golang.org/x/tools/go/gcexportdata/main.go create mode 100644 vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go create mode 100644 vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go create mode 100644 vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go create mode 100644 vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go create mode 100644 vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go create mode 100644 vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go create mode 100644 vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go create mode 100644 vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go create mode 100644 vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go create mode 100644 vendor/golang.org/x/tools/go/packages/doc.go create mode 100644 vendor/golang.org/x/tools/go/packages/external.go create mode 100644 vendor/golang.org/x/tools/go/packages/golist.go create mode 100644 vendor/golang.org/x/tools/go/packages/golist_overlay.go create mode 100644 vendor/golang.org/x/tools/go/packages/packages.go create mode 100644 vendor/golang.org/x/tools/go/packages/visit.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/callee.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/imports.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/map.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go create mode 100644 vendor/golang.org/x/tools/go/types/typeutil/ui.go create mode 100644 vendor/golang.org/x/tools/imports/mod.go rename vendor/golang.org/x/tools/{imports => internal/fastwalk}/fastwalk.go (79%) rename vendor/golang.org/x/tools/{imports => internal/fastwalk}/fastwalk_dirent_fileno.go (94%) rename vendor/golang.org/x/tools/{imports => internal/fastwalk}/fastwalk_dirent_ino.go (80%) create mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_bsd.go create mode 100644 vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_linux.go rename vendor/golang.org/x/tools/{imports => internal/fastwalk}/fastwalk_portable.go (82%) rename vendor/golang.org/x/tools/{imports => internal/fastwalk}/fastwalk_unix.go (90%) create mode 100644 vendor/golang.org/x/tools/internal/gopathwalk/walk.go create mode 100644 vendor/golang.org/x/tools/internal/module/module.go create mode 100644 vendor/golang.org/x/tools/internal/semver/semver.go diff --git a/vendor.conf b/vendor.conf index cfa30a50..ada5a27e 100644 --- a/vendor.conf +++ b/vendor.conf @@ -2,5 +2,5 @@ github.com/rancher/types github.com/pkg/errors v0.8.0 -github.com/rancher/norman 457c15b94acae52afb5290aa315452c7621d452a transitive=true +github.com/rancher/norman 03b89d4fb7143786491cee420102775a803fbed1 github.com/coreos/prometheus-operator v0.25.0 diff --git a/vendor/github.com/matryer/moq/.gitignore b/vendor/github.com/matryer/moq/.gitignore new file mode 100644 index 00000000..b15784e0 --- /dev/null +++ b/vendor/github.com/matryer/moq/.gitignore @@ -0,0 +1,25 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test +*.prof +.vscode diff --git a/vendor/github.com/matryer/moq/.travis.yml b/vendor/github.com/matryer/moq/.travis.yml new file mode 100644 index 00000000..ebf53b31 --- /dev/null +++ b/vendor/github.com/matryer/moq/.travis.yml @@ -0,0 +1,19 @@ +language: go + +sudo: false + +go: + - 1.9.x + - 1.10.x + - 1.11.x + - tip + +before_install: + - go get golang.org/x/lint/golint + +before_script: + - go vet ./... + - golint ./... + +script: + - go test -v ./... diff --git a/vendor/github.com/matryer/moq/LICENSE b/vendor/github.com/matryer/moq/LICENSE new file mode 100644 index 00000000..157d9d25 --- /dev/null +++ b/vendor/github.com/matryer/moq/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Mat Ryer and David Hernandez + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/matryer/moq/README.md b/vendor/github.com/matryer/moq/README.md new file mode 100644 index 00000000..06137df9 --- /dev/null +++ b/vendor/github.com/matryer/moq/README.md @@ -0,0 +1,108 @@ +![moq logo](moq-logo-small.png) [![Build Status](https://travis-ci.org/matryer/moq.svg?branch=master)](https://travis-ci.org/matryer/moq) [![Go Report Card](https://goreportcard.com/badge/github.com/matryer/moq)](https://goreportcard.com/report/github.com/matryer/moq) + +Interface mocking tool for go generate. + +By [Mat Ryer](https://twitter.com/matryer) and [David Hernandez](https://github.com/dahernan), with ideas lovingly stolen from [Ernesto Jimenez](https://github.com/ernesto-jimenez). + +### What is Moq? + +Moq is a tool that generates a struct from any interface. The struct can be used in test code as a mock of the interface. + +![Preview](preview.png) + +above: Moq generates the code on the right. + +You can read more in the [Meet Moq blog post](http://bit.ly/meetmoq). + +### Installing + +To start using Moq, just run go get: +``` +$ go get github.com/matryer/moq +``` + +### Usage + +``` +moq [flags] destination interface [interface2 [interface3 [...]]] + -out string + output file (default stdout) + -pkg string + package name (default will infer) +``` + +In a command line: + +``` +$ moq -out mocks_test.go . MyInterface +``` + +In code (for go generate): + +```go +package my + +//go:generate moq -out myinterface_moq_test.go . MyInterface + +type MyInterface interface { + Method1() error + Method2(i int) +} +``` + +Then run `go generate` for your package. + +### How to use it + +Mocking interfaces is a nice way to write unit tests where you can easily control the behaviour of the mocked object. + +Moq creates a struct that has a function field for each method, which you can declare in your test code. + +This this example, Moq generated the `EmailSenderMock` type: + +```go +func TestCompleteSignup(t *testing.T) { + + var sentTo string + + mockedEmailSender = &EmailSenderMock{ + SendFunc: func(to, subject, body string) error { + sentTo = to + return nil + }, + } + + CompleteSignUp("me@email.com", mockedEmailSender) + + callsToSend := len(mockedEmailSender.SendCalls()) + if callsToSend != 1 { + t.Errorf("Send was called %d times", callsToSend) + } + if sentTo != "me@email.com" { + t.Errorf("unexpected recipient: %s", sentTo) + } + +} + +func CompleteSignUp(to string, sender EmailSender) { + // TODO: this +} +``` + +The mocked structure implements the interface, where each method calls the associated function field. + +## Tips + +* Keep mocked logic inside the test that is using it +* Only mock the fields you need +* It will panic if a nil function gets called +* Name arguments in the interface for a better experience +* Use closured variables inside your test function to capture details about the calls to the methods +* Use `.MethodCalls()` to track the calls +* Use `go:generate` to invoke the `moq` command + +## License + +The Moq project (and all code) is licensed under the [MIT License](LICENSE). + +The Moq logo was created by [Chris Ryer](http://chrisryer.co.uk) and is licensed under the [Creative Commons Attribution 3.0 License](https://creativecommons.org/licenses/by/3.0/). diff --git a/vendor/github.com/matryer/moq/moq-logo-small.png b/vendor/github.com/matryer/moq/moq-logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..7a71c177ec9f4051b6e0f0e8bddbd239db3d8efd GIT binary patch literal 32570 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/matryer/moq/moq-logo.png b/vendor/github.com/matryer/moq/moq-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7eae08f6f4df0ad596922f8004ceddcebbea9f8b GIT binary patch literal 29562 zcmV)mK%T#eP)*OeeRjLZTm`E^)9*hhK*Hh%V03gfSV*kLMVwLi6zTm zLV0-)1(Fc3!ItE_M@a~ffF;=mg8^e>8(~|L0ry^HY1P~AYWv?uL;0J7fq&V4q*Dd zINqo0X16A^H|n&ymmgm9p@TkN)|j6f;I3VI)A~6HL!XEJ+N$YBvnlizVVKQAm@Pun znuR9ng(-$ip$%xJF`#MsprMHYU6}jLfWAG_Dt2sIy|jPK1LN2N3PNDPO&jZjNii=K zz&4n#PHyFiyZ8IT7#RiJ0{Xc!y_UzqmsqG-06Y zLwL3KW2}8(boXQIeIShcK{R)0!QiW#Z@p@lQ~RmvMO^&ZJ7*>0;%iPnPQ09k(9Avn zpc{Q3(RKZ$`a1EahrY42$LX<3>2L98*Pm!4&5wYq`3Mlj2_x>&bP)_U2t5>m&=wL} zASiS_AU{FOgprC1GnEu(5}!s=q~b$3mdNNr<8FEkob$RF7m1&H$?0TFqO7kAZ~ob2 z5s&|cX^6kX20bhLh0ye%2oNUt6o7{o2*~e*jiv>JfH)Bf7-B{%?le;3NKd~we579_ zlbLYAlr(V=d*I%n9{j(Lt-0p;vL^W!yLj;ze>FZiIPfk=VV47mTy6?;MlKNOfiRv; zo!p;7<6Z@ihUcVl&+Xi5#A`I$hFdGS)8=gGcbcTO^12aF6xW@j$kl zy8hLzYnJ}lDQ>2u36*fs_1}Fm^ukNqKY$(k30(eO^@0#F1|p3j7y&E*k3d}`UXc2N zJx(7N6pN0p2eH#cU(^tfzCI{=hVU|g0Z2sqBwPp|BSFoF)j;qbB{T5uwrhX3dNmlK zV@)i)asBz&o9{P3*dX_w58?(c!fF}_TF`zLWIC+>_1LPp@tV4?lurZ5Durj0iVuin zv{&w762i=e=k=_qnRkV?&|QzNz2=R~bH~1W1A%vb>1S<2gNY?zOfH4i`W?VCr;HdG z2uBar$@eu7vOe{2J$~0o#+{s|JBPv^QVRb{wyP=AU^oYJsgA4fr$j@{hq$Cnx}gt5YZ!h(~=(6_9r1ipV_+Znr9qXQdM0@)uh?;MQpIY0X?2*b*70~(1I{AIik)+uA=AcOA(blKp=(p#fi1i)9vro!=JMA1yJXeR$3>0UU*cuI9?Zt+YV~9|f^{t-)Bq-|alFNVsgoXj5>b)p zkwJ;~ccq^fhsOK*XQ7+7N5)Uxi1*cckRHtGtvJNRtJa^AFvQ289DEPn$PwBWN@2lz z?vYk7>#afu1H^sf$ELJjBzh?@zZ4Eg2dE_*ZWMmZXR*T`f&lbDWWv-xc-C;9^Zv;Twrpj8;I|Khz}gW2wbrCN+=Lq?u1&41g=~35}AKdseOWx zCQ&zGCN>6qDqP+WB;wJYeUjkuA>-jhA>DoEiM7jq zRjy{iHTXbPl^E<14MvyfKGG>-aa$#=i9L93Ya@Zk_cz^sCCw7YngbB9n4kD^m;^qK z?qDak8dZzINQ($IfVe>z2>_pg=}@P~+$VA5+h?UjZ*Pxy{>{T;puamU{BSW?TNkLp zFM+D>8E3To?*4V}lL)5j6)#wE=Ut#b*ECH%NranhX5Rzwk-85Yd;=7IkObjSNDnQp zMm@4<#rg}O3;Q7u$Vr^OMc`&hDb9oCj2MDMZm@HwB|4GBtf?mgB9hYc?n5X&FG{kl!%_B9r+zjousz~0A=kKs9d7JD--y^-;Xv`(@2XVtH< ztDu*^v257W{ZMP(-V&McZx7yjIX!TXwK5^FdbO!P*ty{{yiT8h z&F#ZL@KQ}e)iiN&qsgmpSdKFIO6&_RfUZ{03C#F#RMT03`;xBt1|Afat-; zL;Mmp=qkjL$-ngPp!XG_=hYp~kk-J8|L46Q_hlqtPKY{plrZ^!e~3fvv4!;+%r;C`Rn+Lz;NUDVF3HOPFHQYlEV5AdjxHL|9U)8#uU4 zZg3#Y6jYgChAQ)$CEo7)%kWNV3s-Eo1{C3Iiut1SR!3>NWeV&kmg?8{3$Z8I))){= zPHGSbJ37UmU)mw|AMB84@a*<#y7{HeYnJ~H5EE52$665x&=Jgt##cgB_gBDKmKqJ1 zoF*0SjZo7B;0u4MBa1Apq|;3iO?>d|X2~$$^AuE?8P{Ear4e6l_+VVPF_R~zi;1*unqKaLAPvOxBMSU?SG^chu|ToUhAQzthM^5 zKCFo=&T0}t==vUb=Ad}h<*t5sEwWV!X?%Lu{M({tOvo5 zv>-IF1XV{qV%LbZyc6oprii89-1O>z7>GNB&(O`_k)0yiwa0>mrv30eZOcA2)*V$A z-LU?>hGzZ?n2mF|FcLLBi*Vz_lAeX*8^fUvxfhn4Y%x4L_H~KhJ@Jx=4_U|vL;O(> zXe+j?S^j5-hCAxIp~qx2YJ48V?K3djG;o338)SaM&0v1uB==Tn?>?;aGA0#`fX*Kcd%iETJ z&`D&@=O_}!e*hLA;Sxh|x@iJD%Jt66CU#G3AA-6P5@A>uU69~@|7z(DE9HPX0efx# z0eB(9j)zV7Ut8BL`xN$qL)5gKnN)YJw85o}Z-CLbh&>T;)sF{(10pMh*{E)GZ|>$E zx%A`)F#!_ZVB8SD`BS^-J=iV=qcN^AiT%C$-4m95-O2s!&C1*x<)T&hOiQK`WZ>Z- zXW3@MklG@xGo(quy^;Of^GQ>~;=DO^Vs}?UJoX0T(MPxb{jWm0>lCn>EU$_*ExK{z zNvTxoRjRjI=bSrwBoB}DAHbseJE{Bs($+hc|69JH>0p77fjh8aKFw?BKvO?q7G5%c zi279VTz+~Z%wt0Q>bXAAAG7c^-Ryh!JTJX6k%ZvZt#>T@e7-f7bDSAWq9SoGs06|% zG^w_&#;GWi*g+y8VHSt`Qczb8+Vk?UIuk#iVA$Uty0VQz`M-({G5E-`HVy zr)|64sqjt#|ixQhkXR>g`owcc=~Luy;LFdyzQ|FF@I#DYL$e{!7m!5V`wF<5nznf5#`B_P;?E>< zwEr~EIK67mS%w%;l2b%335vaCTmJBYYUZDLZxF81&C^Z;co^&~KDqG5jbF?>@7M1O zZ`k;b-q?{B5J9*CbJXbJJ8sU~MBTU`zB@i`8{{L$H; z5&`HXr^CT5S2K{u z2qcK9^r##+`z%M)Ahg3!T}cE+L`FL!?J|_~+-}?hO;gAWU?ju*8i|P8V^-QfxbZ<@th1pymnmZ54QAZC zVC9CtKbm2Yy*Aj%mv)PuSAnNiA*=@kZX))@Ibh09_B<{!dv1RFz59q|o14`Z8Z|Y> zCL72`1!OR|<<_eXRYm9w)3gblC54O{&BFsa)I9-2^kak64+MJWXAaGrf3QD222THE z+T&Vh!9x^?#ZN7WCvo;Hi#|WQI|_A9?%6Shtqu+%SZFwvOx}|Fs=`MXt=#ZFFj`RnKUWqcju>=l2&l2v!kg~QAv*5(<9&2uKyBmS6gCd^Kr7D+p8 zY(Jdai%4BxM|CR*JBZzTq29Sn9WUh*cGY)*LHQXO0_yvvI@AF#BHCRTLO}0I>39O0 z9K9UoJ|VB zF`LM7Z*Y&$e#y~91ky+j*j<77BQK{a5Q#+MPV`=7M07wUg3p1XGS#xTqf|0|V< zzXay&ax&}LT8G(>?Gh5!l6Ug z&xRL65<2N0;`#~GH|q% zCBV~k5n}T01(Az{5hvI*TS(hKPHKdy3kNrm1*m zZM$o<^Wgtr?^eHIJ%9SS2VAgX<0ZR0jAsqQ{AVy_bzE=D>~o>9nUed4V@F3pV6Uyd zoH2f+`qD)5aoIGngP$cKNb8Oqe@*|`=r}v&4iD+ARmPl%_#@K(fkea2(~!&5C!Uqr zkUSYgj$FyX-lRALHBKpw9(gio*fh_2uyg&#iroYC?HM5WzsCOt61hgGM4XZ$nAVFK zPh>DS;^Y(pQ*){XvC{$}*t=%SDZqJWO)k5wnxEUBfc*?OK|Km2{gNY(_FT2<%Vyod&cS~v)wGX;m&_WF5Tbb zeLRIGmll{0D8cI3x5rxP5ZK#2tiH^=E2SJ!%qk^1suA#-PNzWNmq11MaH+LUKw#y= z&|RHCTO4)%el_qD36RjSJ%`+nr8ats(ze5fb^lW#sqURO{$dKO{=dSNtxglU)2Byd z?nR!ita_ko#I!N_bVK9iI%uYbZDaVl%X z(PdfMvlIk;_IV0kW_q9P1833!ciD1Uq-l~&(S?_P_5)q(FU@r?gTV)l!C&&4$rIqU zIrT)xBsrGaIn#EaVeZOeX}!EAc9dA_C(e^#K^dD>w1?z^kz2=Ld-;%&GB$z1fM@GC zvGhHQMBBJ#w}$gwzvU1)HF@qK?j<%>xZoaRBOzc?2lBF}p?&kh73)7LPmG~Ii&x#b zBsyd~gB2_x-fW(JnvCJ~tEOozfEEmc#GRb$jPb)J+;rmiK$Q|*EESl;&RMs}cMaZz zQ~@+irzAJLc)!iF4ql2UA*UtV^LvWh=5o!SWrNu8^5=f>neoIF7c{_|?R}S=E4kua z{giu*jsvVG$HpoIr6y?hn%K#bHK@2iVzal)$PFX83TOW;xM9PGVSBj?3|F`gYUbt{ zr^;#%&W_^W-YOw-YBk(T+*54aW87fOtd_M)FQ-EUYvB{EPWbSg>NluMj5juhf7sAwcuA z(~sHW9DG~{dMrEL;oBxt^!*HC>oeX?_Qq4Vb=xVIr7D}%FW zY9-A}Vi!ia655f098ahEsFL}XdJjB2uK~-l0oRA<8OzK&Z>8o0kyG&E-eUE6?ltZ? z)wrK!%puGZX3Dr#9rxSk#W!r62iy3c@N&M7nkA|#nGoPD#PfLaNQg_045kE}b7fjN zWuHUpw01Rt$_btBFON&LAO=%M;Dq4!b^?eTxz$7Pw5(K`Q){dnPJbp@=AenR7~}w56rYt&(e))dG^-oq&6= z4ngZO=(&=P#^^mx5;=l^dy9LFj!xWj+o&Ah6RhiawkVWC>hFn>xS#~3-*G<+*Hr-__`9rqab8XNZ>_aGZ9-77{yGmZba z>SyINkwgbw;< zN$3JTs)59S%dwyrm^A@0UPyV=3$=_gq^bu}$tPpR7>h&42juYoKd?o8l5l8HTyG_v zX5B;dvher@DTVHZ?PS}bMAj9R|MY^`5iv@~DN{^&@W{r+mCttco$#(aT^Qo0$_8V_ z$c?`4Xg%T>SGl5|w zmt1(RXl)1!zVpYLdk|p!F-nt)@lbPXDLYKd35gCNAd+R(j&UkwKfP1!xH(oRaH<6n z6wk(VN&KW#!SD*F8e{#KW`_xiYYg9LX1Is6 z!8q0V80g1sBBwyWJ;%MrJ*eVNd9Gn1G!~$Ire>~W;&yd?Ej|~l+;}A>@@p_WO_641 zbvaqQVKap4ov+2b-U?&l9YlDR<&+XIEiIX52HMryE0X9K^oSQb!uT{lrqoi4^W!I9 z)bXe}#|#j~a$1%%|I8%SG}OyV>E(1#;98chKXaz#T}y;RqU1(%o7jb|toWSzB~Hx$ z`tLp&ip2)*fh0YTc`F;H9PdQ8W2O(Uh#UdJy`dN^?nUlNHmc`IRH)4WPO2!$x$LOQ zKMPmf`EiI8cM&gA(v&fOpujsi67pT=JD;78vC1Kj-JS&jl~qc`(7{BsLtRo4p-aZ~ zIqX0Wj__tzeIENP00HG``Np9*q^|-OmU${*OLPn+V4g=ORk#<-qkA{>04Q0{z;-vA zo5U`_iWOFJgEQ!`Q|&rlcxl`J1NVM0Jvv*EV$M%>4Xa&SvHQIwa%wKzd)$NEi`iY{ zK5FF2JeJ_7pK7l>45FOrxJB#;p8()Qgp?YJzP+3|WnYT~**Bro(Wgi_n@HpwD07rO zhF^czg2*XYa1U~Sa8Gh?vJv)m6RcRtWK#Qzy4H(NCQ3($!~bAY=_I%`8DzIN!PK(x z-6sw>*4%*rGfPEd2@y{uAxmrh4}bltPBl_Rgbs%Hx$MAC9+zrCe*TveZ=fOvHVWn$<>-gI=&HN_s zZ-T>5rrNmDKF7*^wIp(c5%-0v@WH*Q2nPentt?39k_9X7KF14qqU6;{*ayGFTT#c5 zCME~S)%dRSo#(qx9N_217_`Jdrx@zmE&30{Cn#d_Qb1!mFa&K~v zvN379<#kQRl!WUUaOkIyGK}A1A4~|b8py=LelY5tS2#eerPiOOiKNK=9b(|X>*C0c zKZ@?1Pl>+$uY%C+!tqX#jP{CDd=Rl|F`02h%~uZ%tB%z%KYZ@*?6;xq$qY6l2xpkup4XnlLhu|F+(c0Vin_Przq4!$7< zJ9mo2;1NJzSc3NpkyDRF?Md!Y?o~E29B>=-&P(NN%r*SpQ*oBU9xk_QA~mTV2<_31I#O zP|Bh}D0F%_EM||_T3ewK{2u47`_$XMqsOw(VI4a%VO(LxV`fExQu>%PN+v7|em@SG z9oT4_bJ7W=;Gk8Ud>hn4%$!T7neIX81Zvn6vAgWl#&o4}7IWqCa$8#6u4(hZjRP+t zQBa9(@r@f7Cymri%He11IG>mz*4H6oJ^R3++Z=C>HD}h&h=R`1tD4eE%Yd&I5O0)11q_ zWR(CbE-&z%=evK(w1^-s=q$5RNuKGHbr}0yN^j94d!&>mZ$<%k?B~sR6@DHT+P#n7 zv2;hFPEqN7Hu)dF61v`gTXm@qXGP(9DkO9&D~hEyC)IYiJ%54L>^9CH4kYuZbOp>+fTT8A$5h#`zAh%uakn6&voW*-8Fe{Q_@py=#7 zC|;?%RD>gYZ&n4GVHlbVm#b1q2_V+atVfeWOPW}g#|4e+KOGKfYCQ{GU zxJfKyZI>i?tXiIy5OUpMALENidjiuLIgvK2z)+5yI?Jvx_u`(I=<7Z#5heBXxmu+# z$<}@^~R1cMoXqu%jH>DZ0=s4PbG%Lz@axqa;V1|TGO5b z!?mW>Z29T^>)uyNrh>0BDKYXj{tcMCo1cAUN9e`v2T;%ORNs{5;(mB>Z%mvsyAHMM zB9hS21}mR$B0A-P&buzc;{V_j>=&)v@IKh(Zls=)l3Xe8e&*Qf{cnY;l{mreP#uoV z_mgUBsw!pEw3ku7_LkF6KmI4*`}Et&;<~8;K~Vl2_TyJ=9@op3vg^>vANW%?p);a` z_Ck*yX^w{0ei&nEcx3~pGlaeTQ!p-%qWsM^Egad_))eZ8{&zY!-pjy>tpwsfrFYNs zNY;uPZ&2|RYAPA+PQ(EDz0E}N!U+g&J$z(P{PC%$fhhazDQkleO#jE!#G|kP1!spqVAx}@IsDw>gI#bgcnz8e z2s7{{LQusGTh=YTyWBb3YOF8AixH~2#1E6Pp)>pUzbsm2oLO|wmpfLa*S~(yQU`L+ za_`a>7J>Ki5Y%%(ch};NBZQ95C$XsUL(a2d;vB&Q0hKi300z8Ms&kdlLF|ln?*SZk z%YA?ydqmTbqgr zq4TLRQcbhePrA|$9NH#Taj;44#}i!F&=~q&W(-C~U)%6~8`N0;-4{FZ3rGd;9PHR( zXFAncvau95@-?!kkHMV5EOsffjtPy;dC=mi;WH@i9zdi1!4PfQ0O;5 zwsz@ZZSC@khf5mqdA!-L_BonUSc?wZvUlrkOS>``T0U7e>4-wnb*xKtX4>hXC;vXqTJZjsGqTA?ecHuA#&;ElmnCWO;vnR#E$A9s)FdKLeIcbS~_i= zrWMVOV&yLsi^;{-k1t68EM*F=Ttg{l;P9L18$?cs|Fd=7bswpg$f=3mxB7}f5z;?M zW{@74mc*pa*7lQ5DT8rCCiEo%VOlVH*Fxnw?RTB)7gamEMJqRc7DVpd+yhNhPpGOp z;sD|T;soLbr&}`C4=>thC6NP8I~)iE-o16*^1mw24wrjY&|F%C&ZqXdba@^z(h-HL zDVxw4cGUvE>S%L6qR~ew#l^b!gZgW6UDI#GX83S9NMXyjuHK1zA7IaMrT-p1OuB~F zSdixW_HPp}Z`+MkXoG;s^+1%%9{R>o+sKn+aao5-g-OD4Y@P~d54MmU-)Ly!%1ZiF_guJY{kgz-|H|KulTU!kHmpun{Hbt(GHF!Y zQPz#|zQZ!Wo9a6-I$Pm`dhX^mOMjPjS;ar0otn#=%e75bJYbnOnhD$VoE1YS=UirA zWEQ1F=cn>K<*tF=N3q^RL<;>-S6{ki-Lkdi_QC6M|F8L}R0RB<*|6Ef3|novv(u&6 zxy%8p_-^#<5Ic77qh#9$&E68g=I(piQq_`8JVK_2w8a%DXJF;4Z3y2$tBb;c|EcG9H9r)ScJAB6(XPj`! zrgc}-Q0Z6$KQWJ;`882UDrq^Q0I2QRi!NKDL+T_;bqUY4vDl(rdtjv9%gqoIy7}R) zYp<)sE-RM~_w1+nMS1#U!($>}IH)N4pswhT`B!bp0O9V#lE@+2Qomx$n&p4aUQ4OJ zi@~JSe#*J7TwZF9L_%9)a9*K+UmBgk8+E1_oop8JDq z-{u&xo`dcWRpJP=)zLA9?PN%G!FmeoEJm!I&1^REM45l!Y5P^c^+eV(0A z5H}DiJ}PoUBvw=k#%w4&GJos$2t?ag35J14z*lx+$*S zx^C$o%D8>hrNv+}>IR1nltb)Hx}l(Hrfy-z9CPS4d%g(7F)@U~o{X9FV}soYMDBGk z@zfS*_qd_1%(d>VYnMI@%HK{ES*kz)dairjJVruCM^id~wbTz6BaU?)IJew!7u<07 z$&ln$P~>W&%F@BCL!67k2?|G)J3nUN(F_=`_f1&$JCU*9-g2a|Ho{S}Y z5JvI$9IL)fzT1U{t=YLKT*sNz0DEv(u&L>9yqXBcgY01blH)P<)Gv*NS$A|;ybCj? zu=+R~7@7s;&oOyB?g>SpvZh4mbW=D%;fPB5XKb8>)38EK`}Eee%hy!WPbv3YyK!Rx z4}BJ|^{XRd%8sD}dD@Y^rm_fKM@MWnJCOD{a5`hD4IFyI%H^hM_d>M)t`l?T3lFB+ zQVeGiy1I}i3#^jEJk;ky`y6&{KOAysYk`D&*OqnH{m^ZgIMIKxK1v~Wd}wS?Y~>_$ z#?a8GAkDP|>sy6N0$preug~+P9)d#%(Re`DKU$6>l@oK-m3?|BSHy`EBUIK0Juunk zACU9T~fu*uGzf!49z0`5{ zZx%CfZHNMn)6#9Jb0~J5ilGaOP*7b4I!A6Su;T7_G0^f#?krZfr+DI6zHrdu}e#I`Y1wYbFM4d zeLa!{`?X0)9P0r0`h&;UEPdSTdA5p{C$M>p6tW2A(q?!)A2nXrfaSi=P?K3xZ08YE zl&reEcJ;R=7f~q1Y$Gnfms<47h_y)wKWiLS>El&f~lS z;flTH)IL3ew-6Y(UO(*~ii zDBMUoC#Kr=x&1Cz6IL%<;OXmAfT_|rB=m6es!N$b(V;V-)ZzhZqNjaV-fn6Hq?jmvY|xQ)&Z(n9FPZy4YOn7zB}HDkSXpAHgH- z7rCyf<``ZIi&;>Do!uE-oY^SR`K>YD%5u>X-+5x)vWJ|WUp|;PJx;Oy@)0{jI&Vm& z&nUec812upUzz%8tE6i%zKW(}7szY9ln>`LZ8eiZsBTpXG?CZVy-3~il z3e3#3aY(`*h=6Y~gSP6e;1n)ebyBP`IL${w(d(5zg&! zgI<5_U8|Q`y4q51uHqV981s0$=F^N=DdmWgBUqgCE=!`rGUv#f#zJEzEl` z7z}@jb9b^)%>i2uEY*-6(v?4VJ16LEm$W%_o&gd=*Su6NAmuad^dUs^UCx11p3O zR}g0uYpkTAv{R@qd;P;}KIB<^hsuiL*Qy0+iB61mL?K+uBXpW7&*M)$ZT3d7Bo`dj zv~`c&e)R~XmVIp{zYli?BsOGfpv*R@*$OK-+=n;LXDy2G3N~!qZ#k{TWxx4g!gIB1 z*~G3sU_FHoUmEZCZV4Z7GbQZ{u82Nvqf; zzx$=B>?0Fe?A)ZLm7_P`{NQOj9n$>A$U!uCSWs8t2!%89&5!yAE0lx*;o=8d?^t$k z{%c)0V~V-#)vx{;X+r0S>e3Dt9}8Jgl8{`ij3uyR1W_&5g%%AYB%#xS*@VtgTORhA zx8;t#hXf@$@Q#P-CTibu0VE7Y zn}Q@K9f&loTdQyQzn%@8XCOGj(Ct&0cCEWSm(}F(KGde8v@~&?Md)BkoLguj@U&e8 z?k^mMG^eW27rNf5a|%aHDiS!(;Cw!RP`P%!zG0P9 z&9?!AnGbEqmRt~Da;wwM7HS;L(DO)iiqQE>qI=@m*R82*+SfL%UYftuv|3;VpZQ=? zL0697ViCK35sjl3ou(xpU3+bZ8l=bU`ykYokzidbxYp|P8LEDr{8X7pfOLMa`I{e7 z^^=?&qO86QBOn=tln)6Vy&Ctz*`ukUUakqxdv?CXUG{~Itx#Ehn&-Vv+&wJO<@c4L zH=(l2>biEb*U$d??>>pTJSM^mV50G<*-B+aLDGx%T+g{=)uqvKcow8*-9iFjdwtv} zwMfYY2HS9(cDrj+HLQAOnZffx?AP%P0WgO`bPo83(CyyeAv(K>8@1hMoPPXwy@ZKt zV^z@cP&8)UWr~A9et1guPt9D)Z{g;N_7Q)5(4i_OD`z8^N$CIShuJkW>xVfHR3i7o zbVki#S64#Rg)K7z=w9Buru_pTa)_IxT`mwQnCE-c7}Xvijv%fe&LHl{)mT$b777;H zqg&Q2yC>H*ZXSE_#ci_{?#Dah=1>*)ttuDPHR$cRIw_sd1yu}PBv(JaIu`G>OfT3# z-*ZcHkqg%KIsD8_iPMGvP_`~?U_ZsrJ^%VHIWKT#-*F`mp4B^mF&ZZ7lpj77=LhDr zUCqbh=*8vaSi_BN>aedq69XMqsxM7@0=Ctc{V=)X=FaYw^FTb8AKL+_FZF=+J_0@4 z#=4O+m2q>LAyt8ODwHa z%uHo@)*s1NZKY&FmozK{=2so9df?@bvfZ8(4v8c@MUAsJn z5-e=UNb&>M1}U>+GE5*KQD&Nv)y&Jh-|fqjAR_&?0FSXO9cI>`dpc5oiRn*cny*lU z9bleyjoUvJu28rmb3B$q0&u~fivND%_T^7!p7ZRxilOsqBLDO|ox!|j!=_|Hmkt*9 zY0*8kFxKT_5G%CFzedK0G%{1?o%}?wwN2=TZ93x{ERc2&;w|$@W7TOQBh2hBx8tsI z!NezEkke2q4nSjgZy1)^@|=^Vmt4Hn%QewPV>uCNsrshS&%7MF*jUiI4OrLsXTN98 z`N&XOJ3UIG!#e>qA#UdN_2Xt{-sb6dg)0>9P=ixl8S4jw3Ni=D^y})l*PpswaMiEn zdD0%2dF*q9mxYx}f}ASPGmO+ry3ON@Vz$~6MoHIWjMBtE!xO2s-je9LeIn73=*K|( z*}#3@;r8Rm1rxW&ET{ieA}%jS44ou&i@*3Qu<_=*;It%8KW=(imCDN*x0-8N(VJX7 z@ZIANfBh;3hWe*zsMy8^M#_(^YtWt*!qu|pw`k>tcVXHm%Pcr{q1Nncy!fqfg~AlSY#5b6=v1({e`DwvP9UkfrtNsw z#AOd;FV@N5H%uHWfQCOq-6%iqcf4iva4~48{!+M+}c2n)1}c z3*@?|UM`sU0S1|KV7VqX81|(^2kX*B{2heH-9s-A2xhDB8?j3aL83#`HLEm^{Na;7 zVE62e?vMRG8Y~v+z~2$L&MwA!C9kiwr!8>>aRzY*aR^(i&vHJ(yth7a$Fj}xV2%DD z)!RG{t%q`&Icqel;bE0Tm#Yq)x@yG3R|m5{r7l~Tmh|G&I0~wE;)53F3-{{{*=un6 zH()ZGeP$AVze#hv#HoFqMt$vz8K3!8O6Y$p&kjZA-MSj&~mZ0QPG$%P@Hv zAa0F5`fsLG$Fs3Mn`zgCyAE}ur!wM*%@9lhH}BgTq$%9CeXeK7db!-5L$Usu;a)oCnA+o; zZdp1a-Bq!BD>#5!_AZUQS+v7Mhhf5Y8{eMl+e<&p;poA zI)hqh@v)B1xnvXkT!U0Oql`;7?aa59k_a8Vf99}*Oz9zEHlzb%-Sfu~W@Y z#Ez-#*dUSkj?l>j-i%*IgW8B6zH4Ok*dV>72_54mK}Ft2>KAG9M}h!_Gnyj0h*O#a z3c0MN^J>{?Beh! zjAK>BeusM5-<`B|36rZ2dkUbP3oiZP(;2$c?wp4H#tinF}V_*VOX2(&a;4 zDG43sV%z7^_ z>{*mJ(6H)K+nMYBXGhee(m2(D6?oSEyccKdCJV1GNDHf#9xM!NiMk%NaxM z6L8DBpprR`_v)ch2{UqbSqoxk*n|#Y#INR@RILx{x+T#C3Ns3|oF=_&Wz#fE#bFqi z@OQ9)6mQ+&{olT*A$Hq@E@+M?^8&W^f8;Qg=><(2q?8iz7<1z0mwhB6Ls~ zOM8@m2_5VhXem?QU1+gRor@-qjDkm9h{{VLh7kDaho(FXq3idA(B*=OAK;KV2Sw<@ zVPlt}ne%zBoU}$>6T4K>HY=IBFC{udNp!k&yvzi(Z@w$nb4Z^SZqUq&Ik{kct8eD0 zCbGYyTg2jwnbfv<5hA6=&G%_UW0&Dvh|XHYv>y5TaQnD=r}2E-3yoEj&@H%W;{*m) zYI*=3O8(>A3>xccaMr{@6j&W9v{W8`E`M!_y2sMuP!*p`aK@qy}g#78h zcw@Mv$1%ZXk9~C~q#9NPzg{k5c7A z6|?uQrAt##$Is)`0u@x_aGTh1FI{{>1il{dBxY8d2~)QD1dJo50Tu8`JmA+DE6y#I zu$YCA5!gOBC>GN`H>HhXbj490@AtBG_t*|(LVL!`ar2FZ=lfos3)iT8QNDSpz9<376V)J9<@E#(ANGMiRknszN4HIdpLIGMwjqyF`D zy3q8H>7x{{Pn@({XvW1Hf5v40cw1(|qqol@bOBv|HuHEbzAs*}{w#Q>&d`HlR9%-@ z-fA(8f@3NsrkL82ofIc@cD4&WG%URo9NpuSN(T?`AkPRLD!NEQC)48C>rE3nAE+)B zQb)dB&j?*En0UMu3J#~dP$A{+TD=;%VpJe(1rnVa$Z2Ayh#d25912k>YIKO}~Jr5%>Bn+rUz%Xt{f(NC;OrQ7q z3sR>^LKpN=tYJ0`l#n9|l;=_R6eV;}@yy}HnT{9gW+z9>WJVQb!n<+fW?3DdHGk>!fG3pF1pz$l@ zL+?~ISEZ#X7FxjTixN6qBMDt4Mte0OH$Rp5su|wI&`GtIY0lu9GGFju07@~mgb(V_ znRZ$nuZVv>m`H&5t``XuFK6nN61!YPj(wR-R?BAE@n6<2-~3H# znp9i*)qX=jrQ#OxfLY^BSnE#Uv2o4*v^N<^`*{m<59e9SW(@XUiyasUH6Rx#yzTwk zl#m0W++J*sB@jB5(AlS4o2{k`1|puQE+6Q*YZ`zWVlvoF&n=a_olZctZfTW`N6sku zU{Y&1WR9=g%)!p@(o?2|?E=oe#N`sZd_<1(Hc?VYehRZ+e(~8KSduJ96rVaO5L}6v zt^U=-(_k2m=dp1ur6ma9wO+O~!>(&JCv-3uevE66_@snUzUQFu9Nyv``L0pN3lh33 zR^QhEv40{Fx?i$F$FgF|tD>G#fizmrUM zXLo1z+?jh9QUbDc#2H*PlB{=9XTX4LzGmPX9u-zTX2^i2A~?^RximVlhBajgkIIeY z4+jf6IglXV0_a%SHf4T*=ax-4Q|z^rEQ6G&W2DgoQ%OOp6uB@gYGj`$63=NQpQb9#jhps<-6+^Xf-g& zokn2^F2`qkikqi*HBJXZ%Q-Mu69OLCFEg)|2L6z5+02a{emz8IoNjv3^|asS3R7K3 zo`N?0uK4gHYo)?#&Qjco*I*g;0x5mI55hR~1;J@`U7=tLrJVJ4-wEQG?m@s^Di7*T zjRZ%@X2VK0Eo9})&<#Jmu88v+S89_iXBrhCS?SE1wwOq(nnF6b#J=v9ZH3$oOPKfj z;4o)c&_;@f$ad4RDnjoLg@f?3T0zosqJ9QxmKf$$X;^Y3Q?1U|hOlaTB`N-zfm}Wz znPwv+3QU3IPJ)h?4=WZ}po3vkbfY_crOdwAv*I=5pHsmfQn9nmV5L3~m%|48(ofs# z>Lx?-nNorByuPPk2XqJZn;}_xay@ist6aHTepzzZgi0kFs`IM z%L#ZX58N@(ZQ|&l_V8)Q2k{Khmd4>++r@?t*I&z%yJNu>g1+6&t6e=nlijHmFe4;= zO1gRY?Oy8%7`k)UU|xgaLmFPl<*$_l2D*LCApoq;9}e%m3+7)XNoNYce8o>xhd31$ zt1B!?>^@9!CxqJpwi_rhD)8{y&Jyd)@!3ht@`j9kYn40SQ$O?h&+04h1^K!3m5y>* zB~iX|F&g7|w)+fP-In9`9{Szsky`aGAAJ#5jlTxM^^^NgqGPrPLY06vk+n6jdW!aD zP!l~&Z`Kq{FAV!5$v3`7Ji6CZA%d~WWK#jXmR0>=WK&eeN9p<`LUwQ;&Hk}L`N)#w zdc*`niGHu|6K{&Ho_co`OweKH^R%;Bi;?=#wcsWs0BJY4IRT3HZBTW7(R+EuWh@uX zRc4I(p6)$zbE!Z6^{b{J^zI-{e&6 zqpeVm^_|%tv7r<`xB znO&W!{iaGe${VP2#(B&3*<9Q~xUDPKS|emXc1jbqy!~NVWRRK&3K`^6STvgjZ7SXU z*&d(NS6M})@|oe10^Dz&T4xTkdV*BJJj1+pOR~lpnsf=&7Fw~J<)9)hl-l9>-y-@E zO)?hOQZ-p7BKZ6`f7Tm^mRZM(Vc1hRymp>cD`iYe7FgTT1Hf< zOM)LdvyT3$9>7s~Q_EKo^Ut;iR}v};rb{x;nkw=8=DsA(cVqN^Anuv=*~cU~YmuWV zcBtueU(=ad@SDO0ER)ctxySu&uDWe6;*%(vpq{sZPWQQ#QTixVj3T9yN#o(7@e3*2 z?=$VK=7uaJZEmDgT={>pw2P>u_>z(=Hs9Iw28SlzFDMg`37Zfn51>?{UNKkpS*sP) zGe;qU#k#DkFy#DT^hAEsk$iv6-ua02+1i$aE^%37P>TCZe|y0-mKIsi7ulq~^b22^ zNIeZFtb$WbLn_oKV<8zm>%ztGWgC8a8$`Lok%TfDAv}Te1D?NkA9g0wIYnxhF1mfI z`TM(}RQ^uP_TgAZo_ZJpMvZElJPdmq=cEM=Ln)ih%fm~j5e7b4Jp{-sG2lSxj6{Jer3Dq>udI|H!7uXTPMQtn28pEEi zM7DXp2IQnI#NKy*jl0(7^jHc{vyhOgZ;Cav8?Y?A2FV4y#t^Sk@8@v@ z?!KjdBzZtOATJ=5zc2Slrt^UQ8XCgup_wW};6X1L^s%%;{n+*7>6xKb(C{Nv!ZZ?u z(PW7EF2&*cePBRdgF{mG%H-HVfU&gz#FFx-+!vS1iz$OGX}p%kM2nNpor$mjkIc3YbtU6%>UiG^oB z3;Lj`bMEm#b~L=)2s>N-B$}}um26@{lfdZJQ+K$)m~mROS)sIoP+MI0QM4?;_s>F( z-0}Xs<~ix3g{G6blW}e;SnfCE^2rHI0*}zTIaEJJn#kF}n}LxCYF2#s+$evqaxwHm zfCNT+^dsx@Rln7l#(OG4VnvZ&F_y`~yI_yyK@4hpA35-U@XN1{rSJz zW86}R5yc%G!$70zE@mUPm^1ruBrk0uP3Iz@t4n3_AI9`ODzAK(6=+8gs3tX6j_KB$ zM7(!SLu@=8`=a5@9n{5%qst+!2&iE@H3OjM?7EG(*j|V2OwGDqJe)^(s;%c7CeyM4HVbw3^gjN4?94n?s?@?oX}0C>!owUo^@JCX_0 zWHgRUDy2}eEBHMolT~@3*!C<}z2rrSE1`i-hzf^pJy(!>i!0-b>ePzZgu+_Ts9@wl zF~i;a2$Gt*s=;%15*gx zIjZZTx}IDY;1SbP)*rn8dJhMznQoa6YG|Q}@^A|)WqYYf$){;ij2fKMq}^yb9G;sX z%HqzemDzJv^EM52x`z9UJ;*o+ZDG$5X{Aeh79yF@Xt%2tVtRA%oceHfz#Mktg#xar zQ#T8vn9*!}4xJ!UP2`k>CRLaeR-B_3x)o*0i&0DPU;7bh&X6N=opUZ;W+qpH z(8R{CJ$GM;R8&g%H#UFVYep~5!@r68vzp`6Y+u*0M|L8y> zZo6|ZGl?5EYzgM&=J}>METyI<)$)Ma4GixPwD{m>Rq}LY)Ud-41f%lx9a1|E*=gI1 z(KbhyA5NpCQw2LPOfz~qjm&wsV_<!>2C54_$n8tv<`FN)N?4jCye~ zOdKVP^9R`9S3T&sPe4Snesd%KIBi3_8R|x8t_LV^f@d8d3MQ}Vd{@D~hb2a-O3x>e zo}YW^JT%~*8$bQ{+@du{z%NEnyXHgo^opBt8xFW$BkY|QD>hk=`YxKz+D7nEfF6%~ zmlMLr7Bs;<9; z_0C1MKlj648*FYfMK}4YPbXq$)rq)&tI$oK&Fr?uBFYgur}fy#`K%piLV8yzXwehZ zKIv+eSw^j&%MHh^hy(J?lm zS+_lBJRo!*1qrrr`WLaP+ysVZ9nZ?wvRo;~i1uul_Sp!;iKVV%wCu?;asB8d8yDne zEiY}x{8aZ5$>1$;!bziZ+<3asrwLh{^80qK@}etMB*apZ5XAboIu;NbA)QI_AS62uo5kXz24Gq__#YG%j;*_DZ7Fa2Zxozx~I7y~60p(;|*@1c+v&6tZIDCqO z9b_H+cK{E4AmKYnW`dAF;T)B4RH9qH0BP(TH^I)%OguWz>o1GTORvt!$1XLncrZ} zcl*(^QEM1GPqu5Ecs-CcI@&Ut+ks+k0R2Qdf1xTItjqaA|D&?*y5M4YIqN^H=l52` zX*?4+Nd0Sdag`pjU}jBInp-D`jz51^`?I9ek?gv0rTRV>`f3jY+`$4c?=3NmEjL-& zSn#v5XDsi}DPy~B6dOTX2 z%9ytpBMh*J`TNFt{X~-ekK@^bDKTke%Jya+1>Sr0zz>@x&r|lWp|6iBLvC6ZjocN= zln0oE!6I=4O$f;a$Gzw;x0Yf*Q6T;tQGfYT-lcui9Yicj?NJN~DRxQDF%~hyre0a$WI~NCY>u|!|4@YDqlM+Zv#JE*1zEW{DbTfW`9`@i?T>0 zT94Q)SVm=$wOa3FZ)&gBOG81EPfVy{2VaS=9k*GlLN+v+8{I`&h;rqsaHW%i)B1T{ zbXGI`3Mq1}3WBqK1_qEklg_Hr)+|aFbOL|u1-SkuUY=2Q8j5y9aM?9%(#Lx^86?aI zWHY$EcJ+BQ(pM_{`Oz*f9DCj6tz}I?)Lm39fE|xcEk?(lJnEqk-9T-p7TE+Fgj?@m z%`c8AH~~0TMzHS#y8I0_IT6nkRWJQ!*6wH3TG;TN8Ugfk7b2TC-{M8$cKgXd);P4R z@_QEp8Vt0N=aDlY?qup`9`y`Qf@VO!%EvF!HLR2H1hpN{Vb)w%3{Qe=g!b6uvzSdB za%XNwv{JS$V_2EXz|V}zS^QB`pFE+}Isr(Xn40Ps=T`(oTVL9yy*V!zqqnt6P+0%4 zkGqofVQ26C=}0&9Lz8`xWiVbqQ1I3`NYk{?v~7tqt#SK~(ARdIFE#lNg{Xq&fmK&D zbcdR-8wOt4G#3t)V12Frk=risU^J8DxrLgMx=uO>3)S;{6fnc}%0m-%NuM;jkM4Ee zf6WEQW%Y7%)uf!ugb*^T4uqA8NW_!o6iCJpKeW8}_3eVFOhAf0PtD8t=e*;UY#kP% zRcsm)#`slBK8kA!j__pSVo+3zVTXdLZUzTNl?haZFq2Rg=iT4epGS5K<*-1(`Kq=T^J_n#o?1^2o9q7_o0kus!w8Wb^uu&w#x}&`g}SC+{b^9jlzN5cvgn zf&x7O`*to#BFhzE8xYv@!Taq(b8aCf$;hQI+(;!M1f<#MI@vfT(AUxgD-V?yMn2Mp zwr1v!oEG0|jhjDQom)HE89$J%)lgqm?_5I7B-e}M&ouCw$aIC~N7K;C#Kt_lJ+BCOyWP~XhCR25mycU}PnvQy7!_Ap*PU3NUfpj?m z7V&Khq(keQUJr4D8uq92Ko#RhiJ>QUC_d+1d)-tgpa<|`-pE5jk%|OvY*ekf<}J4& zRrj*A#(q+&p#AAG!PIp|BqOVH>((@f=D)rj3iMCa=)q6c5>F6j!_xKx?Jo_J`e)8* zXoP*wQ^&oB`Qy5tL%Kx3tSiQEOR6ljq|ZUK$l~$MC5^rshb?LC&C_8Mcda*pXxS0@ z@Kb0Lbmp+KOoBhF5~#m?K|yl+9P#wCt|zplh`^;f2MeTWvD5R{9X;PXBniIlTamK= zb}#WlH~Nn2j)WP1Bh_x8{N5Z)xs82xU>qStf2$v{{j>5Wl4Z*Wq;obOo3+3L#-VNr z-fWO*V8NJL10jhaaHdiDPQ=z25wC1*5-o)?*osWKyG1)d1I-J%g}bkMO1uryn8l>b z!|i!(5WHB|;NQ6Wsd_PoaU3hcn$J)9Z^n=x#;~?sP@jy*Jz#-%VLo{!QR(gsdr-glrrC{gD_Iz6Cm#Q1(}MX6n_`x)<3vPo1&`4 z^+$1U(VFT}|E>LbZKTXloyU3yPS`WEdUw56e^y^t;$FQ)kIaectUA`GqOK^fGlWud zVY0;lMVfJT(f3}y>t5pXQW#~C+$S;&im)4%!$*G@n~s{%VBJ4`h>^{K9ROL zDG2>^Fpn&8pXjCrZY3lfM!!c9=G%SRl^{94ATdhALL?nr zS7Q^k^&Oui_SQRcPl6vnhW(KB^G1dk@GSwn_UIxQ<1npatWj~bAE@!(>A*g^ zIu)Vx*zfHJ@TRUt?7ZDbVL zk>sYF$Rfr4%8G@>AF^}Bzxz}33*SHmLP?s9*L z??)!j!Y=zomU{kP-=wT8022*>2S19AZ0!3l2V)C=Re7lQOxn+Nh;hDY%I>t-W-=1) zY|GW!OUG9m`7I?qdXlFj2gXl?RL0mdEeIj9+`{tL>It%^a4RWaUb7zsWNCFW!IK=ycEJFDp#Wz?O$VqT6wr=l+!@(mK^m82w#J z4nN~4Jf!Q$7{?#yv1qH~n0n54=Hw!?Kwn!YO(NL*fi&PXEbxjV&Z?st>+?tX@6ysX zJ@7=YbdA2)rW$N2Bqq*)Y(_xM995%{lNrjr`&XQV$_i)Q9gVII6&>@kskEN)*YX3mrMqU}nurp26`SknEC(0} z>rk2zF;d=YG!MrVq^Pr-;@iM8XB3BOgO~pSyuwQ2fTTu7$Af6q8Ea$7@AJ7`0sVH$ z@|SvT?Ym1`28Wxdu&t)l_xMj-k<`R-AXba+siGCp}iA zl(;!&qQ)72F2_$fSVGd=BZ=Tvz9xHmJ|ob*(xTBwpwh@KS9lFJq$q%2TJy<4`RBXI z{!N?jS^Z{E`?oO7bxh0VxNtsv0O?uLw5dQG)oeWelvs>LNZ^Dh>RIXOD7$9+zke5K znJBEJ|M8pv>mX0dOe_ihDXpU9@#s*a!xfZt&tQZbA`ZF5My@at(?vY9*qbL3giUx& zKqndEYt|mLX~QHr3^L!F>V)Cnr*x|4DLk=|lIx$aWCQZokRMK;>SRu_rPnRXtlHrv zRp0kgc}L$*X#}XhuE=rxcpc6+Eywq)zfgM86p-4EQF`)WUQ4nCGyjQ_dWfO$n7SKF zL42(MHCB$I^a)ELrsO4q8@Yv=D4Fljq18X9Rw$E% z$!PFheGgdwd${FsV-~ag@whC~cPuB4{aZY|r5y!B$M^32fRNIAc8I=S`>g%eu*@ZB z>GwCHX#G*SH3YfMFf ziIZ{uNEBDofQhiliqnxr&%Ba_rqEnvyJoo{6RQ+40Q{~{lj{Za=@xesoR{netxoo{ z;gMsD`kN)HQJM2V#Gfix9%;nK#>g*88e%yfy{j{OKcMK%IgnXd81KixeAV=)y(X0e zPX%kwa{5CkkOjx42+@@*0nl&`sk3+9M#rP}yKA%_BkhXn--{C}8xX@yCc$WNmowPSq})H zB@PDM|H6OxnES&+s3KTf9>_6pH=^5Gu;3rs^Z3nCH&5V!OlviZIqeIhyBZFtGkcJQ zh>#UPQbjEGWd>iCOdZGnippo_xtfN6uA8+*7N;!m$Cj(^um)TI{@tgM+lp3(15jo1 zNo8lr$8>FBFUEUrU6nLS0v~o5KOGMHxfAhV{%sA*U&MITqTAI<1_jiM55Y?xaN6K} zP|hS3+{pii{eccKS}^u!Pd^~|!!YRAi9tcHM&b0Y&$-N#xi9=YQBeD+vt25^dwcSPKE3*;$O6aV$5gI>;RHnN}a-z znpf^_3{uH8ntDI~Wn8tTFIfT|B*OkI`1Pc{Z+Df$N*Q(>7k8&^X;1#?Q%7PL_${Jr zs^d2?Q^gf%d7F05mQCf#fegi_r6O$ky>~R!D2F<%DoQ3sZHwh2TOj*=DH|+9`co0E zW;Jlj3~Ew_kUrbNX9tJ^mh0Tx$$GS3Eo0UnRp4KXTAH>oyZanu0cuWm?Uz3A@3&C;uj6WS+}j)TxZ?zz7Jca-WNFujDT>j zcl}AR$#la1rIzkQ8uBX5zapCch}%rG`1&*?ar#X?qHH6O9hTq6l8z1MV~W{1Umdl@39P1#A1^lk@0$|(bN#nrCF~pB zu90bPu`aJ8ttsqRVbN!VBJ16*PL*w#9fW&%;!ayKi(;>%BZmtsp|vCELs#wd=~3Yd zY<}&JhQFsFy#kwumqE@0de*hgncfx3cn?cn;ZgWoMNPfl8+q@~qy-QG zz>?0f>u*hyu1+H|uv{IX-OTp(Qi!uv5LfyT>T!qtF|Dq$8Wp--Spn0dP3}DDEZ3wA7v8fqpU`ivC(C-{ufa>BU*2fBF#3J<945r9ZU91cm;Fap&z;* zz8|^i*CZ`M{L)8cpRg}0>K>|pIHDa~fJVRSpKSCE&}xCHGxTZ|O9YaZ8}pT_q*OO7 zUZ-YKc8VTlY$pt*ITw_}tx{nii2+R=<9z7f=jZiv#!*S5{I+dFc$yL9ujwI*Z6{-0 zV&n9^3LBa*F6_!i4b|L$u3YI=CEXo-(c##Om=te*s)ZkDvfU!f4glZ zNj2_hm_+7w5-bq-iGBt(m*!eF55@!QC)%BAD0^3D>?W$>Mc)jxC=BAE_tF$DCU)af zyY0Pngdm?3nrt)&5NR`g`4jemY=iCTzSB*6u1*W1$k=k|zR`J8S(B>Z6;bAVLm~Uy z3eHLDyUgv;^Q8Hf7KK;*)KM7*kx?=Z5a(L=LfjSFHH2XNFD?Rgc#w-oJWbI8u?2aj zV(bU4Fd7fTA9cMI*6-<;PN}T+g(t zMFOplNkCVny1(oNR+Q*MpOU%UyB@oQk&^T3{%5#Uslwz3giuJ^QzU9-?ljO`1%hud!WfmgO^gE@R9X<3 z04Xg(oOTmQ*LA@CGA>(LMV}PEbl-2E0aHvtBdXUzd^BK-@49Ea%?2HLnqTQF)AY35 z&;f*^W_tQ?fKaKG`>M0?0~CQx%GaiCB1AjmeOD@TZ?1%CKiSxjst0TPV{SUaE^NXc za^Zf{1du$BXmI-?;53D+p44o>>Kq7f;l0@Wwr5!QPUuxpS{*~|B~b(NV)%!0BExg%KJui6R3a-m9-9C@qTA(s=46Z zb-gzFFZwv~hAU`9QNxCWQ<1EI3~*oxq%}!-9|z1H_Ibcz$2Ss4qiC(X#T8FF`S3{B zUusLJg{7uYSkt-kB}vZ9N`$@7d38F{BaXU%LDS@;!d>bL&uxe#V;+uwh}@-*$RDXv zldp|wjQnzqR^ASsB$dY+@u!ZQ_R$|XY3xxe1+Zym7O*>*OQSW&k4e)BM50F^cm`c@ z%Tg^fNJ)ODN*?pvdltiujq)d7r`3E#95A2TX_TDfm!`cd9zRKq|B3(imNPX@D;Ds` zX6DkD%`U0?TG}(=70Zi4TuKt}v-`KvEZ}fC5_avgM^phW!Pz={CvLup51#wm3F{@@ zIDZZnDR9*N+qm;s8zUuRSVeX>^H(8fIEjNxcR!;-q!H?u{oE4#XphZ}a<cPaK-672b53vT*R(2WR9+IfEi3tZ%c*aliW?KlU!z~C=}L9uKQAAj^U;orAU(J za(ETDaWhh@VD%-*jjqeVcCnbH;w%lF?SfLX6?EQdbSwu)ob3|D2a<@*w_P@atE>!_ zf=Db|X6%saz-+i@GcxD|!}EgRcGoUa zVN@GB#nY67#7@~g;2r=A{7mDbU7XlzP+_%vav>EwHU8g=Et-QthVD7gyJ==trN!Y0 zTb3br4$2MiX#wY5fNA~j(j0`i+Zq}wPKu8ZV4vnN6i(+Nf+@c;8Bza?7lkg9tRKNk zcfRpV!x$Tc^Xt)Ug#d?g411X;ts;aRnM@n5%aDo_0!v%Nagw2NL$)aU9uJ3lSBQM=aYePN2YqcTC19j{iorh1KP8SKOpzmlFtd*xq6W8imGt~LUpn4SCVr=$T7Bc3YWlETIrP_ zVWIRu zQ^+R4#yCp#M)E*@3ErBuL`a#jb@?hPfR(Jxy;a_j>{At zKfwXShUQ;7Dq`}f9YZktX!9%KG)y-_BkE@>uYRT2`t#~~?tTt6bzK@V*IZ8;=~%rB zYKI?kGI(h7KZumsahT<(g~o5Ez&pd(5?4D*Y5^-SsL99(D?z24!@k5>&G7}HC^eNP z|0<^WtaOG*#N+myJX3Y?0B4~b@{6+xPtXRT&5jR~%l2VCitHOR%!+f%M)N6=>{?^f zqK&EFY5NE01*ZPRO^IG3q^7r_d@CcA+96#(F_fawJ?<589!bYDd+dlp3l2OVCrxUY zYNSpQ%BUVB_*K$ef;TPyAMbw!DG}I+q*2sf$egCoKd+FxE+PnMt)+}6xjn2Tb_Gva z5I^!TNBwPuGhS6TR1J=XYOp#Zgo~5>je)6ugVFt2?St%QoFg7;&u8|q08dJRbKS#3 zIs4yhHij7|W(XteGgO9TfBmD_4!5@)!=Wj~SP3oWSd-R8T7?g0~>Bh_?Dyq~T58Su5PN>3<4_%~Q9&o;- zy_RJHNU1&MB`%gahbXqF;L;rfweFvmudL0x@`rdWYp+p+SHGIe3B);$e=E zZV8WF*y$7_6Yy5+CH?3A7ida=kQ^4SF(DqOz3P}sfX$dS*=rfowdm8r9&AMyN{Y#I+>4#>)?C+bCIF%aSG7*=*8{{#( zW_C=E(A--DD%-8q&Xe1g*{^wM7a1+)lJRb$0?vLmbX&@PYoWSGg2~@*=TYr;IEby~ z6>mU+yq_TDB?tTIZhTE^fORmnjR}6Xo%l(BpX@2X;%?U!Zm?|B)%wx^Ng@vh#>UiC zS?1)VwS$nC>T+1P!A{mBu#Na{EI5y;38!3Yl~?QpO-WoyVsZ)XwOX%5`NyOr6bxq2 zZw0uhpSPshi#70m;cJumNe#QJ=cq;%pcv~t9p~O@6ZlYaN+@WgQv{gMNab#3kW>^4 z_~+M0ck;1`L5L22qR>2Pxa1>C%e%L>^V%$zUUP#0wfT%|yT2yw8)2PB0T#Wv5!3%WW}ZE`+iUa&O5 z*WPJaY~%m@iUPAARdeJno2J-cKsqy@KmXpdMNX0pEh7V&J!Tnfu)LX=5Ni*^bCR|@ zIFn6>tOgvTi8`l1l08~3$N0}hcW?`<`^`2VG*M>|n1!C{p#cBfLI(`;=swDw_5@rAciEi?vXNRNM61PyGktED}k!dI|ghBmBkH!gy`F}ue5@{Y}Sz`6pyrcp` z%!z-3AL_^&3=~f?dbU1749ENQ9b*?w&u55!H50DuD&C?hM@`BxU#TLg_ zUqN9@H=DHS+iux;4}~^@-jg!kotdr zDAH@-l9vP4o0QL4Y-A6elr)h3ZK+oz1>2tIira$`cx1ORVwa&Wjd3?YDQCg!|ruVlxv1;uf}ho>2Qoc3y1xLx+k_2>&cK!4*9$R?d)8Z0ZXV z2z~jklUvk8|I2Y)lmYzjII~9z2PE(4~;HM++=N^6&ws0uM+c|IIwnfZw&klR_}Tfb6PGRfm8;6+rLMbo)IU?($q=|F zUT)nfxd?L-UU^mWt 1 { + return nil, errors.New("More than one package was found") + } + return pkgs[0], nil +} + +type doc struct { + PackageName string + SourcePackagePrefix string + Objects []obj + Imports []string +} + +type obj struct { + InterfaceName string + Methods []*method +} +type method struct { + Name string + Params []*param + Returns []*param +} + +func (m *method) Arglist() string { + params := make([]string, len(m.Params)) + for i, p := range m.Params { + params[i] = p.String() + } + return strings.Join(params, ", ") +} + +func (m *method) ArgCallList() string { + params := make([]string, len(m.Params)) + for i, p := range m.Params { + params[i] = p.CallName() + } + return strings.Join(params, ", ") +} + +func (m *method) ReturnArglist() string { + params := make([]string, len(m.Returns)) + for i, p := range m.Returns { + params[i] = p.TypeString() + } + if len(m.Returns) > 1 { + return fmt.Sprintf("(%s)", strings.Join(params, ", ")) + } + return strings.Join(params, ", ") +} + +type param struct { + Name string + Type string + Variadic bool +} + +func (p param) String() string { + return fmt.Sprintf("%s %s", p.Name, p.TypeString()) +} + +func (p param) CallName() string { + if p.Variadic { + return p.Name + "..." + } + return p.Name +} + +func (p param) TypeString() string { + if p.Variadic { + return "..." + p.Type[2:] + } + return p.Type +} + +var templateFuncs = template.FuncMap{ + "Exported": func(s string) string { + if s == "" { + return "" + } + for _, initialism := range golintInitialisms { + if strings.ToUpper(s) == initialism { + return initialism + } + } + return strings.ToUpper(s[0:1]) + s[1:] + }, +} + +// stripVendorPath strips the vendor dir prefix from a package path. +// For example we might encounter an absolute path like +// github.com/foo/bar/vendor/github.com/pkg/errors which is resolved +// to github.com/pkg/errors. +func stripVendorPath(p string) string { + parts := strings.Split(p, "/vendor/") + if len(parts) == 1 { + return p + } + return strings.TrimLeft(path.Join(parts[1:]...), "/") +} + +// stripGopath takes the directory to a package and remove the gopath to get the +// canonical package name. +// +// taken from https://github.com/ernesto-jimenez/gogen +// Copyright (c) 2015 Ernesto Jiménez +func stripGopath(p string) string { + for _, gopath := range gopaths() { + p = strings.TrimPrefix(p, path.Join(gopath, "src")+"/") + } + return p +} + +func gopaths() []string { + return strings.Split(os.Getenv("GOPATH"), string(filepath.ListSeparator)) +} diff --git a/vendor/github.com/matryer/moq/pkg/moq/template.go b/vendor/github.com/matryer/moq/pkg/moq/template.go new file mode 100644 index 00000000..d000f272 --- /dev/null +++ b/vendor/github.com/matryer/moq/pkg/moq/template.go @@ -0,0 +1,107 @@ +package moq + +// moqImports are the imports all moq files get. +var moqImports = []string{} + +// moqTemplate is the template for mocked code. +var moqTemplate = `// Code generated by moq; DO NOT EDIT. +// github.com/matryer/moq + +package {{.PackageName}} +{{- $sourcePackagePrefix := .SourcePackagePrefix}} + +import ( +{{- range .Imports }} + {{.}} +{{- end }} +) + +{{ range $i, $obj := .Objects -}} +var ( +{{- range .Methods }} + lock{{$obj.InterfaceName}}Mock{{.Name}} sync.RWMutex +{{- end }} +) + +// Ensure, that {{.InterfaceName}}Mock does implement {{.InterfaceName}}. +// If this is not the case, regenerate this file with moq. +var _ {{$sourcePackagePrefix}}{{.InterfaceName}} = &{{.InterfaceName}}Mock{} + +// {{.InterfaceName}}Mock is a mock implementation of {{.InterfaceName}}. +// +// func TestSomethingThatUses{{.InterfaceName}}(t *testing.T) { +// +// // make and configure a mocked {{.InterfaceName}} +// mocked{{.InterfaceName}} := &{{.InterfaceName}}Mock{ {{ range .Methods }} +// {{.Name}}Func: func({{ .Arglist }}) {{.ReturnArglist}} { +// panic("mock out the {{.Name}} method") +// },{{- end }} +// } +// +// // use mocked{{.InterfaceName}} in code that requires {{.InterfaceName}} +// // and then make assertions. +// +// } +type {{.InterfaceName}}Mock struct { +{{- range .Methods }} + // {{.Name}}Func mocks the {{.Name}} method. + {{.Name}}Func func({{ .Arglist }}) {{.ReturnArglist}} +{{ end }} + // calls tracks calls to the methods. + calls struct { +{{- range .Methods }} + // {{ .Name }} holds details about calls to the {{.Name}} method. + {{ .Name }} []struct { + {{- range .Params }} + // {{ .Name | Exported }} is the {{ .Name }} argument value. + {{ .Name | Exported }} {{ .Type }} + {{- end }} + } +{{- end }} + } +} +{{ range .Methods }} +// {{.Name}} calls {{.Name}}Func. +func (mock *{{$obj.InterfaceName}}Mock) {{.Name}}({{.Arglist}}) {{.ReturnArglist}} { + if mock.{{.Name}}Func == nil { + panic("{{$obj.InterfaceName}}Mock.{{.Name}}Func: method is nil but {{$obj.InterfaceName}}.{{.Name}} was just called") + } + callInfo := struct { + {{- range .Params }} + {{ .Name | Exported }} {{ .Type }} + {{- end }} + }{ + {{- range .Params }} + {{ .Name | Exported }}: {{ .Name }}, + {{- end }} + } + lock{{$obj.InterfaceName}}Mock{{.Name}}.Lock() + mock.calls.{{.Name}} = append(mock.calls.{{.Name}}, callInfo) + lock{{$obj.InterfaceName}}Mock{{.Name}}.Unlock() +{{- if .ReturnArglist }} + return mock.{{.Name}}Func({{.ArgCallList}}) +{{- else }} + mock.{{.Name}}Func({{.ArgCallList}}) +{{- end }} +} + +// {{.Name}}Calls gets all the calls that were made to {{.Name}}. +// Check the length with: +// len(mocked{{$obj.InterfaceName}}.{{.Name}}Calls()) +func (mock *{{$obj.InterfaceName}}Mock) {{.Name}}Calls() []struct { + {{- range .Params }} + {{ .Name | Exported }} {{ .Type }} + {{- end }} + } { + var calls []struct { + {{- range .Params }} + {{ .Name | Exported }} {{ .Type }} + {{- end }} + } + lock{{$obj.InterfaceName}}Mock{{.Name}}.RLock() + calls = mock.calls.{{.Name}} + lock{{$obj.InterfaceName}}Mock{{.Name}}.RUnlock() + return calls +} +{{ end -}} +{{ end -}}` diff --git a/vendor/github.com/matryer/moq/preview.png b/vendor/github.com/matryer/moq/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa7a627479e4305ab1feb607f02e24baab211d5 GIT binary patch literal 743543 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ḅFb1Riw|NfE4^U&^Y`LlHQxG^=|gAX+mpG;&^ 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® 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 z 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

pv@PCl|*QJx1^I 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

uv| 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

}6T8u4i&;JEZ(1wpo|o=>supy$SV)7!!*y)! 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

;Vd6H)ttQ_D<78& z!uKVK#Tn}`;XjSnkR+%W7=aQERCGl1Z0$Zi3GKpsX?|W1*(NG~yZen*>R`hI!h1wh zRz^J-c2|MCu|^H4)89azunV#uUXvBh@j;GnyL6SJv=$|BVtBmRl|Q4b9z^cPjOKhL zRuAX~c%H_Sd<_bOjz6s8^#eie-G#hGpcsCh756{t2#NqRF=T2(Y4Iu(t0!SdoKw|+ zSKocMQw7oaP|5OBFCC@vKdw#HYFi2|%jUsID#GGsoHT~IdPRK}PRBLTWz*^b<&7o8 zF;%w}vBW|0c|%B%Jwa9FW)Aiv{BO19)eQEFucLoT?Vkk0RpLw?7&7S2W_NKp+dfV_ zH8T=)TUFl&+9j$q_F1@)11S^+vQlq;f4zD%A$+%Qr^% zJLgcPS+Q1vjuTW%1W}ZbsNR#!A6n?GZ0vdY`B*x4 zs7tusD10VQ=zX?`mL`|~_@@!?Rgq_Dlv~Qzf>fE0psy_RG z?TYIwn3o><$Et7d$$M$;Q>>%uN&ACL5=8z@7PrTC*mCb6S}LjwajlKp1aVy{2Pt_3 z?Cx~xn6BY4R+_#V8*U~FW&)PO1O0&W;YoF8m~Gz%tXBSKprN7be^0~Ipf*qJqiE4L z)xk@17}|ewQU+?3Ztni>VYfdRVXt6oQ-U9rSczeN1h;Zs3wPI%MWN@YK)UacVT>;C z)`(4^u4`M%4bO|6=${`VZAoO}ce<`RDOtlux518!i9e!Lm~}!YIi>v|UwP2o0;-r8 zW##IMmWE16!?m#p55Dhw(lc?ef9iR)rx@E!M+(bIWu zTCMub9UEuEj!jz3f%w$h@P}O19v>)FXxMP=bX~>cCYT}Dc%3y#ILrYL=?ta;Lm90T zc4KPW;bwN(F{sq?T5#Jh$5z;}hd5E15wADA{9rGz@Kx&<=i}}&f=3JF0)5$YNRV3N#`fc|NPr!zw@f32ALOXg9 zOR1{7p!CnUC@Y7zfOZ8HY+SZK*M$4|mUp;o66!@~1R3`g2v{rP_^Bk3gfk9}GW<-% z)++}j=dxI)q02}QZ>oZlkt!nKJ-c5r`Zxy(+RPQMT4n;H+mBN9X1|gsd}~nvJ`l%b zR|H=z^qEj^4Y=F2S17wRHpxex&jzbwJDbx{HvND_P^qe1kXb$(?&zSKw=+vkzR`lC z1Dmk;E6NA}r1*W$IHJVJJQr!7&Z-moS2U6He-^2gGjRqi_p`S5bdnL?u8WSIZK#!cJVT|ZyI&T4 zyRJ`YIW#CEGQ!N*y8WyTa!7|`lpn{=YyZTbD|0I`q<{y7HZ3$pr{x5_i*A-lcx?FC zczTdOA0~$dt;Lubysy48D8O|*c}Qd>g+DF+DjFPty**%>eA@Lf|G1B&!VkZ+giUvR z_Q@=B(XR6I$hS$&n8h8Oi_`dtzH#Cr&k+mierVubF~SE8Mf^IA9WD~p8(z5vK4tT! z5d7N?@_+5`!#H0QWzD^tv$Vk86~Eia^qFu`2@2Ev$}20$CK%r+JU3mS^zgNv2wezn zheUw7ryC=qg~1t+JMFGCH>R7r(QKx5pR$%t47*+2`4B>9X< zFQl6e^}FZ6-KrMt{;mN`3E}uKD5+AHWY)n^!ZmTQ# z9fRTOB1jy0bFdceg9_hYlGb1oeW$=k#h$Z-gH3g3)M(Km$%dn{AN+-TfP(t19M zNKCR@lIWUuLZcCHtzKCyj9)7Wq!t~r%)DHE4OAkho-cRiEtvbyZ$ee6{F`$vzQhwZ zEkF7=_4@YVBDlnS`UKTY?NmO0m(w)Fq@r4)5#%^vInprX=SftD{Ya(F?N&RY5)}>n zX5p}0syaUi^()zKr0$rEl5ueSo2peUR%we?4mH+@oBo7DdvJN%agR%zZ;CaVYHa%i zw&Cf<@|K|3)UCAbbX=Cz+~%e*KStF%-46!jZkv&=v}6=X3SNey){?OX_4%85=HFp$ zh>&=U@Z%=|MP+ADubW?ar{dT+a4QP?@`*$9`$ut<+WB{L~+%7l2kLUxO*@hPai7`3%QOy$#pxCXIfOWOSie14C zz4MdiUBikX+YQC{X6rzrz8i#;n-bZMc^}@3k0sdYS*-EglKfqSwi}sE4H$)f96Qbx z0b8W)goAB5u|f=yXeuYT7HX!mEb`2{`(6u|D#ROJ#wg-4<6WdqgZkCzmqqf5QsDO( zLbsBi%Csm0sKT_?((u_P5~Kq^)rcwBqN*xZ3eQFbC%hO#3(j<3HPzvd6_X9*e-_1< zy+j+;=)HsvtkG(faI)LG_6T+Ip4F7#PU=|G(*ovZ4u8sb05~q&~E0e(k=g;PJ zY;@(= zAb|^OrTA3aKD!y&$t0W6QrxJS2#2%n&pgeYjZc`&EmqdRLC@T zm^pgJmmUYz2&`I(SfxxWGJisU|EXf!anfspcfy$i;nXZ|(u1w$1+!=XHEika&Ye2$ zj8jMlWNFwe$gc)-hsu`BnEaca8_>E<9F~T*9e^)=SQhYT-ntx=LvT(RY|2*E)>lGV z?2^(}gDqdSTk<;pFfoilDw}rAly)#EaFWU0^wgr$u2Zl*e06=s$bealbF-1iX)i?1qGirkFa+uDr@H7v_!CT zaOkxEp(Y@b`JMjT7gLQUvGT75!XHaZ_mLH~y$q~Khbfnd>pzb~3gHo{YS)0Wc4=O{ z7Rp~HWZNZ!HYoTsp-iH25tupa8LSe|^9WBnyp;|k?0+wFYWKvVm660jgIdowXW8hp z1;)WeVqbFucH`VOR<55bYwO?WH40c!ECttKhy>gh5U=lRoa(pw4WTj}+nfpn;qy5w zm}Il#GKw`~sHw$RHqq7f0=Nw6i8P#QEI3_ipJtj3ch&&K#`;Ka|c2R2|GJ@R< zcj|4&)y(jDK+h1$u$6hjq?ksefofFJ{~cZQ6Ap3c@jQObu?7qL?CwPfFrE7o;?Qal zlN`tbYAmgsuKRto<9CKVh4TzfL(Nfj-OZ|=++;FpsiMXkoSkZfT@xPE@Ne@8+Wt)+ zO!Y!NRxGGW%_c{%K%|@tM>{8%TRW<2o8Dr|FVSKT^tT5U?(Pf%2E~s2MW!>iOhgpi zJ!rYG9kY@MwxrTB<;c%ChVO1TG(>TpnF_0 zcwa@OR}>%XNW2+iaK)zPv7&H7tONx-B4B;wp=9C{b}O~OF&0e^bn`zGs_Js$yYXG~ zTy)LXGk*E#9_DKiFRR~@-0LIC`E=V9itudR6un68iInjw3Mu^H{m!7Oj#o-Q@Uk== z(PQ}GOb=o0q5x@C0xYhlGjNE8Nu%u|X)m9dFLc@PrR{o&VnH?a_GG3= zIqJNM@g_9`C8g}~pS)e|N>sv{WjE%Z2rAxIv4F0nBzCHaX3fVT-PrZU^4wX@^-td(3?ppj&lW8*YR}WlhK} ziWVfgQE+BxlILdm{jU@R9#R$w66dt!g^i%vhd~+j(;b+Aby818LXq}5j=^82mg_r0 zQ-Zm-6q8uV63wC(A-*=I3FzC}{wP?Wyv~T*nT_O;{K%nxt8V%mbTFhdtZ-yzcku%l z=J~Ct$N_OAR!@jiLlN}(h{Dr2era=^F{Y&wLh6lf|rx)QN zV`tw`<8o-fiUz!*MlDY-;@z8L&g)zcW2Bi@)kS5)IxpGdvnW)kO;ruIJzxnq-&+@R zA$Sz3FR{$pc7o78n$e7zt5vUT^wt?ln>g{WUr9;xqRr04zsR8y`aAmaR^Ap)2k5S= z(k^;WnU=}BuP@A`5}m2r>;?+MRE6kj+Vy~6*yRAaUzKy!dck#Fz%O$bYNzW!d`A^@ zfGUrlnqJSaWDQL`LTnimorcxpahdW_;S^|-(Bw!On&Q^J>Z6v(e9?zA#SDHz*@CbD z)sc2Paujcol_q0zC$ZNrOQsUZMo~iHkS-|l%f%*rusN!4rHRi4UTd%2R`?BH4KzXj zjMBp74B5P(#8Xyhoq2;3ezNh1qP?cZZ+uLCgj_w(WON&+VxMb<9RhXs3fgI|Vnv7u zMV(Unn4A|6Dm`G5^4b5gLi`^_&cAVfNT^>RLCa1#RO5D6v)0+~ysWA<9t z&>#CetCJ%oZ$?jl2ael36+@~$3`T#LEJg*pl$Dp9iwln$PC;QrdEW0e7b`Xal|mQ1 zeUSG19ARgFsglo!4>;2?rf~;txszN^?Zj?`whHZh)}}Q?h2tz{YAkxh?N9y6lGF`1``PgPifx^qny?t5uD1u5 zRD`sGpsId!I9!^DV=_vBXIjA$e0-oow2w_JS$?e!t5O-a&#KI1pKPRGDl$ij@|)I& z6Ut#v%lI^T=*xZx=ft%J+PR3pqtEi9a+qhcsiyh$ID=q$h6urG8zk)!Rm4%fQ_9W~ zj@eElOR@PvdK?QqmY5*>inj32he{JF)|=eQypH%Fid87UXZO38yKC?rR{F)>wtkw7 zbM^7SNh~2ywwPS6-ihTV)f?q@&zhHn6w8h8kwqI=4=gioBlW4mJKFXQsDNh~8ulhiyu+ z_A05?bT`%{kZgR#>OHRGho{iR0t9T~+R)U;GzN!}6k#3v6_0dZ$SYId-sQDR_Al^wke zzN_B(A_KmfE??w3pRI^9KmEQ6H&jR47wm?P{n(2>SY-2|bOO7=3ZetV5!a5#mA%bt z8ge~qkWzlyTd*B*aX$8aHSetW2&q`miEf&(HCKaD!I?pIYKZ!myMBkHmYRO$$iqC6%BrC))B1y^MI^L}o4ol1l#i7o ztMM;y{q`|SThAOmDVS}gqX^zbURP{I3%u$YO0gHHkTP)LVem>{*?pSk3exzT$2ViT zLCw9_5_~5O=4uF9E`<#>{qy@4RP^PdZgF4W%Bf*-?)p9Pr+2l}8`PJZje$e^B(k#= z6 z(}VZxzBDzQIV@KBFxheV>FnG7CcPK^(FP$9gWWW=P+CD38BXcuN&3- z>=e?;%;m6KkejQ7R;XI8P7H2>ftq-!bINgNF(yIHv%Do^_fb-8Tpn1+4EDO(P-=-& z+OTg+s2ZWvoIsY(jMeMvMjHwqqN=nCWZ)uHDwPdtGmx^{k@O}-xZ7*rFKirrE$Hf$ z#WnT5Hjt^R6!36CTIY5Nlav$I>?#}G@|QN-q&8T|%P+>K&R=$$7A(xn*NRJ z{qaFmP}4%ttwZp4PJF(z6t)T5*H4G&`(g!p=>O0Y!CB(}mW2W(e!pNFp(5zd{rj>1 z&JR>v+^`@hjlQqg(#I~%E(1FB48SCGrcW!Dhu}~Alu5-GW%D+;^7Mv;xYasaOrj?Y z_#1+kjZ)x{tr15`LO^F#Edefe^rE%+hFC(CE#}90YFWYKSxv0b)6<@Zx^J*TX_-0f zv+Z0nxa{l6MyGw)j>cDpquOwzp ztoAY2S}-@o9ajFsG{N@7T^Gk~62rvg*aU!Kiw z@Qccq(5uN|>n=~d99d@N&|;7;E@jUnsa(bUbKf4y4`Yw_rNnN4W1wpQn}4p8ac9YwZY zrLMul&9XZ4@={*9pKBzDeIE`&I=wl2-#|_EYri{k{*}CobX{1@+sDWA>}$Fa{}*b->7s?TyCe5BTKPRn{Fbr+JI!8X&i==(b$Kw~iL8Qr_3aH?1|6p& z?*5V+0oh=|!G)`H=ICLS;z^H185Qh%nw6yDa;G0xZh64`cd1?x`6I%Harb@l$l?8$ z=#KJ9BWFTPcjSN#ze9ZK=N~q0cOVg|okj%5vjGmK6w%;9GkuYZ^3GrWErxK2^TL>b z3Of?YzK7(jvl&sjxMX1)R`~E{^^gUC%-5up@tKE@4FhSk@9?}9W>B4t9yq8$aSH9W zfFAqS6@bif2jR5pe&eXM@UI(ca=RWA8)32S6gtkJ(LJZZ93BY4VWcz4V4H1 z@Lx11?4RC&VI-F9D#CPn&XpLR7ZY8q;`IgVN|A+^+BZBbrQqb)4-OV8#&_RWcVTfc zN~d!%qD#ot_2-vdxUQ}bB$3bEFZ<)SXLa`bhhq_k0joJ*t-UT@R~exsr$cn)_W~<{ zp;l0pCp!+;0YBS>zuufg&7~Zf1)>%sl!AT~gGGv0D5LH9oMp_l5}r*BYA^oVsdu*^+&`X4VSRS zYZP}%$Yt{Rs|)vMvHuTs-xwxYx1`&pE_Rn~+qSJP+qT`MF59+k+qSFAw(Yvv-@(k8 zIdkv)y+8BG+&g!~UJ)x|#T)U)H!qOd@b_#+626|^B1OKSMO#7exe}u$Nrj0*^E%V~ z$`0*<7jAOUKZLstsbJ&0)7UM*2JgP*`}!T@pk^Q!o0dV4f-Kp zGz?dltZ@?kc|pR}u2+Y4Hmh|t>98y$akw%&JgvZ~wufX-TG1&|5iEhywpmSC0Sy^t zlY2!$jK_p*ajBmB^nP>$4sZ?JRhNP>(3Pe(y`-E?uKf)iGYy3a11l{R=Mf7|??3Rs zKC@ztR8^c#nDZJ-v@}GvjkzASNU+Gt71RLatxXF`dWWl3+anR?0X;o!gCM3+Kdv`% zxpGdb4n~13x$%f>_ql3AP?Ri(M(k0?$BpBEw!*^l?id3JKcjFt^QvKVi6x#kjOJL# z-yGvVGVJ|4kFZ?;!6>1*(X%!e@|K;OnCcQ*T5;;KD9dB9I4T4Zy&m0#)f@YOHa&@# zRLq)4?Ci>*D(@(11Wj*8k*q^5Fmuqt*LGD{Pb!bi51<(GxAUj^s8lPW>F+u8@W2B7 z7N@eJ*0-8h^IofvSV7Bcj-Itzzc;ho{^;pjmiDnnw0!Er$aa1BIZ%>IkzmA=ken$q zkA&T~;j(#th;BNe)OqScM&+<>(w1tLker)WLQ&e(wt8V>^k3s4} znjb;I6cx#mbmJZp^7F27LGXGcryhQc_Y*Y>DLzNCkI%$Ll$%CNzG+Hrn=gjAEpd%k zK@Njnr+)QrxNU6DMCT2a{ zmB&WAC?R|yZW3t9+}7NhL%NPj>jGlj8&o;t7o=aH_lK~ z4{#5seu7uaT_*D7wq!^(1s4~JM;jeV^#NSqTrS!*R;?6kSt}ae-D_*P2dT4vgaUMD zpbxtxHr&5lZpZvvGE~VKOJ(DD)dGULhXI-3-95wQ<^w7MR6xzeTxG(oM(ce(#ipSS z+mcoyk;kG57<2iSGFm$(Pi%XaK9HkhGY}wx8mI3ry17L$DHpHvc5jM|frAjUg<3-O zkNK+qIiXJOHYL)nQ)9|5^`Pj};;3L7qMO;w(ujOKpejsQQ}khWYyNyY#IABT`lYCtus9y0kt zQJ>y%WaJ?|J(VJa5~p!gz?JfRUMetm9JVrw`7ZH2$m_)rE!>bI@MKO9YP*8?P|w-I zZk^9|v!rPdea7{GiG1C?>dFvVDsibQ zJu=_4Hc4i*!AjbRjKc*2`F?UB@(9kGu4aS|QAH~qGJ<%>wsu;j@*~GcN;^1ZZaB4r zNzjZnFZTs_p=8=%o4rmMpZdFLKCFpcex&2ge5YPVBZw6&2~9WkZQKZhGyBKeV;_#g z4+LXEmun;;W~JPjWC+1IwLRR&^dhD2>x^M0ge7&~BMf6SMQguf@s=XdV^thojVKa()#4*OU_Mv#N?M3K`#U6U*?Jy5;4ylwk} zv78zkW4%mxx?W#yAaUKy9%#FPAFlp+0tXX&_ok6|El_z)5w*yL+@w%jt+) zxcvO73OanAM=%+cZ~6*R|y(bGd2+dnwKU{cCR zaNP6caJ;UA!^YN2FtX;ikcQ__&p#Z5!tBo9FgQS7yzH))YWAO?k>2%>9`O?L$@N+o&61Qu zZuW)x=li3_*nL7>XAk>S2X=?f;c;)X_zP1D+cYxcyJj5pQR~#?qOf;Yih*s8>UNQO zxm~f4cewOPn>;42pFynyq38pvw>R!OE^0)c{R zrFw9ekE3(D8Eb2zzshvgkeZKIw@=2}Te$pqQ5y#bp=hHdEn@DcN%o~6}5OG zvDx!tc(ECm)_mAjKlVBrNNZe%cp@AnrpMd7!bz*7o4)?o{6xNg?;@WOJZ()u*g z5_T2Tu%NMmfV@)W_OA}ADYoHxWT+gAMUkJD4^54-TLt08tzW6uf630lp8KUn?Gn52!EH7;MwEkS&fKk;GuIi*m3Dgnb<|9^4+P*YK38@J zKnS`6jtTZH#Y8l%#G{b_r+9-rBSAY9Vj?>i;&x^&{&!FKcgLyW@iOx2v|i&9#~|4wYT!|Py*I1T%spS`;tQJXpBEq? zQAVLMe~m2ZSg1%O>7R_!LP6H2vu>?YCbS4$Z*;+A$+s$YJbDFs65mJ-`J8%PX;nx# zEH@K(8{9WH-_`T&o2SXQ8g75;bfIw-+}ZWSVg3d0{KsynOKSU&glV^8-Od9_iQ^6p zyWT#JGxhzCGyj*p;m?QNfIr~wB+7~NzhZj8xyTlzFGyE^R^;M}{0ZG{z{WD)Wq8p+G6!`Ssk`apfG#@Ho= zlnk$;i5b6dy<00ezS~X%&ds6WU!i&w1X^!IqNAs02TsAEkU>;;ir**SjnWc6p?oTd zzuxHKLG}*qr$6UHU5%)(#$WU}SGc|>vY#QX(~5>fr&rfDxC2#T@1$wO^gy5Rba~sB z@Gr52c!Sww#o%D4!}hH^P4P=|0ezS6O3%v|ijeXW-n;nY;kCk!n!Ra{*4@KLFD5k| z^vGqmv3L`X0#Yf-xC#N-xJm2{zd!((7@V@9r~6D-$_@7ubD>o!$7IRxyPIAwhx|5< zDkhv~tLrZfOe_3zwIPL$7lPF??$X0Us`%M+0lk)uW%UsW#&(>^KC+;_ciV|SGqA0A z_7A20i0z9HSWI|cDy2h8j3hnzNnTFQ+x?4&)sJV7=F;0*Ks-W0gdMPm^ClF?NjR+X$e)}Kb;@i0;u-O$EV*# zmv?YLzR(Ex-)$k15t|p!97A}4WZc^w%G-%^V$O&v+4x# zIw;-NlJieJ^0}z-Op1Gh@YUQ;L*`F1?KY5lu?tWYlwm5oZA{s%KGW{DtdedYP4=CL zJ^bln`3iZ~*Tth1*j}0UG())>RPKq7uSe(N1f%Ar`4=w!A8)7|g246z%{c>?|9-pl zZ?^LvBK`HyXavAOUSvZG=ohnQ1MGnzA0KP>?W`vB6?=;}ZBTJ@9`=bW-xei`kT1|k zUWwzJW^odK*Hx;%AY?rMCHzwapXJX|VP#p_rcJ|IynpX-V)!KIjFKm`c$hn?rW$w2 zGN?brO~!O+U)+hC94~~E@q0<1)6EPK=+Fpe78eB)92$1dhRa!(LLp(k`W7d%g)I-h zr1ro~G5o7L|EDOdpil4lm~2?gM}ONr6~*x18)mcWnM>|^>zAAp|B8AqdX3cHGfKoH zQ}j6iAu(;6CwrLNS_}3rQJ15blcQ5}7~-vKs?4~7i)85J&ws0||Ma?jvHv~^HmU|@K?bf3z}?~Z_`fTGp#4egO; zXxx7;nE%_Kp?LuIMb9%W1#9^K>@xq`C4|9zVy0;Myt1&bEG_lBg?o*k_YbjcN%5-% zT{vUErJyeVu7mDnQaEHp6Ei~t&xvIls;20FTJL{S$6vSCokxJcYG6JL{kIs||N85H ztkM7WWd9ViI~cD!^q6pm!It=cq2K=o8vO6qGqmpaD_&FY(;}YxVpOccya(#9uE*9nP8#|Kl?HUx@in(f+?wAQ}|#=Fc6#Y*27k z7-2che@mP2zfpp&COia=O2z)*e{jI;#`As8{JGzjj9vsX?xy4hYOD`gN5i|-xs_>ERbPR_P>mVpROI@7D4zkx-OCTj*o_B)v%g+J&qqLKU(cR-!n#UCq7#L8Zuq+8v#{VeKS~E6hc6V=W2*p&=GpOJe z1meXbL-VclSWP}c)wY9y5crX8DOsDevbn3|EW;%MQCwN)kn!q%%szdHRSAXOTcfT- z;}ICi$43_do|w|}gb5uK$&mDSc0NHdALO|pI2KfZo9Vtn3=R(VAzuW|kP!uV+nJ5U zNB~yR{d#G$s$;u~b4k|_0V0D3b7sEi*Ds&U2b6l{bb+yf#Td2Ub{b`lTo19*dTzN^6^$pZ6b2qV# z8z~q%f|wVdT^oghBl>CD_(9h_C>Tj03556Q#K;Yicx|#i(@yI0Z`uic4K>Z167(tXZ5DXlsU|^txZL8bKs?rW>v5&TaY>M5{ zk^roF05}8+uyrACpFA$jUjs9?68Rh*nMh>PA>zz{)z#JQp04zoj`zjlM*P#w*r$Wk zbnZsBXWd@z%!*4&daid#`*i^g3r(O>td#?2$LJ6V-_Vy8Xhm&AL7-sYz70I1o&!3> zd4P31&f1cb$huA}`!_dSLn{hkH}|((=)xNcd<_a)BSzUGQW-h*Lc39ywXu?>DG>5WhEJX@3&4y( z^-@Aqm{S9fi~T%Y(0$BUNJx(#gEUJVpnN|gy+}{1)$X60OW*|h3Q*P+ArLlspmYs+ zpi_2jGlbSVxtw`C4hkpowa96EcFq}0Du*XrF1`vU8N^F5k`$fra=hC@No(rq4;2lt zTU}*-Euz;qA-w2vkulLnI-RaBMK)OW6Xhmd3sEcN6ZsV`Q*^BA>q4790Y=O71A-x+ zfOy7q;`gfm4RpbUw+4r-FO~#0$a`;&@VmP(#u*3UmcqYmY6_BUie>87R^rcQ z&>f8ckzK_ZM=C2KAOPIkTdrXui3~CQ6r872Ge3_cH8En>LZ42g^AcTeI-|tqde!Hv zAvseD8We#KygmH3=s8T^;^qG}P?*qUK)s*%T;yZ%jeh>&BMqVEOj3+lyeiR8uaYz1 z)-1uu{dzOtL(F zNTM+x_BtPspIu~9%YR&AGa+7wY&wTisTR2wFdSC-d!^X%vC76jW&udF>Gl8%3Hi6} zAxSAm*VQtROM{|MZ2>J3lSS$R1DeVh_-mBSt^H(28x1FBO%)`HSUrz06eF&F$meH) z=A{iZ;>VB>35(=B$m6fPXqd6VITO;^h_R8giAz*64W_Q1OtYULafn9Fs>zBXsssBS zuO{CMNSb8eBe-jIsrM6Bn}nZJMAUoXiY3~di{h!t6v+y%UpPX)wob3C{mSNf4*2HO z=mWPRE^>K;S*i8mY8&35LBj{`DTD-U_5%{)h~Gm}@KgDIXwT_FnDjh)UVs;QFQ%)C z7S4TzUwp-?d(MC=YJt$o^7byZS>jN^qu62iy)R*H2CXt`LL@!y9Qc<2A)F{D6q5>a zPUk`$_OJ*ccm)S|fQTS2g3wZivjZU4)F{dq@BS-U)3t=3_EO+zTp6wa&|B%oBSgm! zFfuUchBLgp2?(r6sK}e6dXF_VHO)OV-$M`+yUc;cy@SMRSBY9%)5xUjjveRKkHLsH z>{@FSDN9^h3!BXd&&N3z&=aGhi_bi`Cl}I+$_$Vr?KQ3R4Ym@x%d;@-TF!+*Qumc7 zXGW6Rq?v4@)HayHW_sEjRdo~91}COjdhl!f9uGYh^oCrEPxfhX`z==6@y5uEO+4Vp zIwI<>s7Z1#Iof#d#)#pfCx$#1LAk_9R*)tqry8DHYkY(ter;tA48yY6+JEf2)A^?= zme*(hvfLUqq}qjh{7AfHvj=x%DIkp9v6e7|p8+IC(&3r;B?Dga(gUM`*BzKM$W?A? z*tee<-2pT<$)I$?HDkW9aF_Ec`Rc5qn6|*=9zQB|eR*EwxEvG8k7^sadNN;hjqOjk zZjjU+j?M^&fw3b8;$U)68b9md?jfh66V=$rf<_n-92!~M)fOHWRfjfRTv_=b#zG1} z)pa`nyXW0(G)8p74x7hhO5#aQy`T+y)IKyU=JcWB;~=B?1Pe9DyUThYo{vupNqF`^ zFsAClBq0mVLb;1_d(Er;0!-QRnR$4vY{>=6INz0G+|2XZQzLM&Ag1B`*$Z); z0{jlz66Hn`r0|W!H)iS5qpd(r^dnEgHv|NK`e$MAE*G~-1hHsiHrnK!gM|# z9K@X+t2Uy$>{h3Cio(a7jvORITt25ej6%Yd2P_5Q=Bx1a8uz^jD;gT#pdNr%#bMDP zOqonB`Lhy4K_+_IOo8HPsGw%(w;wipVjxrKlG6Fdo>ImIP-A=`eBER2Uk;Wa)7-vUGe1jC@lZxdU_bi!18(E)_83KcIb5(seX~u$$=UHwGNwz%R zw*ZpX=~ZgaFV!-%<9!_i?-Nb>#`!<(R;o`?FNZVnxx@NGNE0=J>g_ertYAgq_As4c zVBX~s0}tcmaB$l7a%c10Pp>}eWc4gs5J0JVc0W75nl;)W52{JpD%>~+G3md=?BZBF zUaOuy5*8KNN`H;xvt9hA%0}Cx&r#S>`bG2+_pY=#R;z1(aTUvDV0dul-bL4}vAo5i zUmCWuZ!*jJPJ)Hh7??1T&!3H!ZnvLi6V-qJ^MITwqZP<3e@f|Q=D~})JW7>Blm5@n z;)4s(-`_ty8F`H(&VU9J92QnrbbfZyn*$45vcWAe$Zi~a(|X6F$WR%Rk^-qL)kJ6j zj(7zNRO^Ui*5tV1d%$uXQCTDmipM4LasGvg1!g03v3r_G3XY}Rtc+a5sxEhSamEXM z;>9q3IU?Vmkc0wjA>#YWKqiY7Qej=Ydn5T>gfMhopQrdy44{*Yh;H`9Q&xjqf;Mo5 zRXKZTZF}w)ZX1{{{BT+slPz#8kZ0P;es@3wIV8xOceGr1LXCTVgcXC1&eWf6*)Dq> z#lXM{7et&-)`FR$)ckxZB=X@a6DxX*SR17VDhZgbfF+kYW$94a{ zx%SLf;9Ul|R6T)gmGziLiEzf5tl3L$>Zwc``Izl7q8!nB1VcIbCdr4MocV#E@u!VL z(%*F{v{-|m+SMK%&S(b1rOx&&;q=-j0TSq1^Vav;^TDI^a3l|b{rT$6Br|T=K{1uG z^0iI&sY(ORE;`E39S=`6+}cUhM#XX#i%knpL<2=q;*?2*(#lt)kffXI#W}W}uv6`J zimJtVLu*QsTx3&=vhAInley>bi|nIT!QPh!fXb0oftJWi%Vryu2^+y%w=>*@LCNO6 z;bG5e%_K+V^TS!p@v6}X2-SMG((0o?>#S& z7pL428z<~RgXJy;5PWS94RzHYQXvff=?i=iK8pA*O zaF>>G8On*ymxeW}nOJ|gyKt(BJ}Ucgc=p7cFSo?S&%PJ_1S;le%k3#AB$ut0*-FI=jo41x* ziULP+O?d$uQ_J}DL_)mi1|TDppT@u+1aO9QFrr;^cS^loG z1oA#v*{Uv=7G?6}1!D;AD`VpDS_}yK+`am_R-@kb!6t`3-FTqxWxqxG;*IDh_yQ>@ z=3LNsBu&kWgh9sZ9?T1GL_L_mUeQbqb`7kLcb2obdB(0pMIzjv=8X*5d5j)J1uYr& z+#v`&OJf7E`13J~x?VdfvYzH43Q{|`vFTg@z4^4er3A)XH0D8<2BY0!O_Emz++Wvl zTB^QXVXUqmROHE?)p_2nZ)yPf#d&RMii+vn65>$CZJ&_o^X7+-`tm)aXkjrfu}CefACao&4_W>yvb z`2DqG*Xp-oyt!08S&4^EXR<+YRgG%nfHc?Njtbcjbi5IztZK?)8HN3h zoFE>^h`5CJNxLh?ua}lm4 zs5aRYmOS>>sX;IbOaYK19++3xBB3rhhNYixNpub}C{o)J@A+%z5lUnqrmQpvI!OLz z?2OT^#_S|<1noRR+{|=yq5HE_JR&`tHw_E~+l?Odam~Y&ZhiqCGD&o>l3lEl3AA*@ z;QOy$QNMnw+?nnU0X2zI+$fJrDtq0aV67CD28m{#rPX|txh2P&`pdNAtS-kT06gJ(dj`6$W+f7VJYcf}P$0f#iR_YhO zH+or#X$ui6ar%eOR}5zgGDWq+%@4xzj@eRGSF=~iWm|KW#m`rSRuT7YFz{(*l>iV8 zR=qKJQDZmPt(1mg1~`=wMR2u8)YIsPXB)k~!+2PC<ko%1y&_4la>X^rC3UJy z;Z^X{1dDYYk2m{>xTUS%K`6btrxp;o56dCP)psF>HN&$q8h8VF*Hj<3MK--JiVdVV z)dq4nYV?Uw5Av43_lGx7)S4l)=J)kFM^2(9hKYh6-dk=KUu*70rTRr6G|3wrJ$ZlM z03Yt7)~cR`#V1%*7ZYQSi%Mti;vZbK|tpgB{42Q9+38UUR$J=QTF03cJj_)0+TC zV8$~QV}pC$g0kQyjpBrR*;vilzNb0vy1xyDB4M!R({$i!K#}U6H_R<~3S%hHWDXpB z{#0-%S6*6gdR2|ryJWm;Z>~Q@U9P5%eOYHtmVB3Sh53QP2(_^(b-nWL@)7a4^)jH4 z{u0tshut6?K$FF-uVt^i7Q(EP99hpcKoEjtV_ni`l7%xsX=Cw-uZxW1riYABK(nG8 zp2hWnfwI<#Q&uVEORsp;G(RFSi8U}*Wg`-&dZpWT%o440`nagVVdc#ky~Fx`&2~^V zRmUSaoGK~95?ysob+gZda!UN5b^3INqr4$wpoJ6Rw8QAnz>Iv+*N52{{QKN`H^IX8 z@xG3pe8VkLUPB?UL*vswV@NB!uQvV+^Q!xVOG-LVIAVt@=tX_RglWpnGY&dzxup4a z=2F*-i(3IWt@^%5c6+a#({8F%?ZnH%qteFnmU*x3XW(c8I{RV5{9)3hxLg#eBDYyN z&-2u}tHoiC7bR!<6s-qt+(GngPAcYf9A<2i+4F zu+O#7Zp&q6n`@9!5?Bysj`ImG#hdIPc?BJL}{kvlTY=h9Nl zyjT&^0pl|@*(7Y_uY8U~y^g(4 zV!M?s9SgS}(Nw%(V3_d8X~AM39WF7j7=-FaD@-i&IYSf4#^N+lb#m~fkKCSyGo2}! z=+YC?G#A(fUA`z(4a%rFEeZx(F5u_h)H9##!y`N9fVMSy8}=?vzP%8V{1Vd zjI#=+HZE9AMuSXebIl4W?vPsbdrZF$YERq{k!M#!N5fEO_RY)hj@`;D+aoI_4evlx ztH3#@mCy2#jy>@hvm6}$3QVx zqo!5YPul72jSs0|@`!(vmVTE#FlzaULkhZ6*qh(Z&;M*@6~I6l;ZR&|A?!-jp_rpm z!Hk@c8V&P8=f7e&Nc9e7d>|uFzO=$P18bg^5?{SK?&n`|w3$$Ym3ffujQuj!S z)~#G1BHtBOy1|RLen|N;rRlKSnzgeCC1|tFFzos)-s7~-RadRlS%212I+XDpKB#lOt_K7+cx%=SMcb!+uR;HHf4DxO2z#Hron(Qf#}{ALDS|u`!{DbN zDJack-#rz2JPZ82AYWbH)UoJE+qM$Qfl$mh^+e7^&f=$L@cmRdf24Sf*`dVu;};rr z2U6q7RDOxHw0^QMPIktbN};l_tVq&NkCX%E+2e>|E%DKJND{7x7Y_>dkLD<3-{18< zdm4^atu|BhXG}%zif3=AlU1#V?2UGPw)+fgp8A{-oS}|kr=uR#&OqcFaiXNhO-|Z_ z&%5>*ypJAgXLOl)j_$7==E)5(u;a7E;f}DzGD9F$?`RsCo=}`)%(G(rAk9(2Asl{O z4_pmIqt7@hhMloSlGEd_UbKgeqvA- z%|P=<2m)FuE_Re$9TpwiZ-&Drp!@*vgwo;lN*$b5 z_3TR(aMUt)f765!v>!jp(a#Ral{9kfX|k`%QN6k!?P7g~;M%#Yf)Y|*cv|+o19t$6a;l1Cx3`+p!N>@(O z0FIzw(S{g-Y#=~mX3tm~^1Rq=YroA2f-?8q628A!mW11ewT@FpMGvki@R1`JkG< z$`f>Ix__tE8f8USs+|VS&reo_;(BnEmw^cjZ+vT5&=#_a+nsCyf+%#+#aHyMAoTId z_E+=HhnRtf$i3uFm3o`T$;k%d^!s)#7M?3CE^{db0;eA=@G}tpz5vYBImZaue4J09 z{N1X#l!wC;lw?{*N&|b8qD+%4zqI!00+K;qOX0i?k?dD7_BLX4ww5q)$^h~g!84?O zj0PpNUygcogCujCpo%(FCn|cI{LL=fUG+g;GyX+*lKeOE_6zif$kzVoM9UmbHh=-w(JW+ zGsMm=Y=%-<tJ<4cOgcmw1#`)q^4AAu8 zGfl2k+60YZ|MWM3YM9c;Q@Ln1Y*3Y*O2a#$R1b=T(O{3*xyxkDUTm$4R?hSd0_#g= z1DpA37ZOILgprmDC+cne8p2yuqj_hWd5n%0ml_~e6o#)PaZ6@ z{U<(*OUL?QJ`HcY0rNgulk0)LoU}hnAL+P2`<{`_0~nbJt#UWBte|pa}*hp}as6CG<%bcoMW< zsTA9k+~JY16nUV_9qe=Y3c=aN6>K2OyhzDwJP3a-0f2XeS6|m~m}wD7*?eIIFSxU= zpI@4Jm@+>lol!{K4Lv1chwio<@A}P8-r+Y|S}c&^2P0&(<)HK09v7Y(cQ`XU<116! zJiAd!lO$y_U1|)4`oUo)Ih3dzQ$S$9buMQ(F&5I`@xkkH35+Z1wCVY&ypmAgT7IE& zx&w{Ui{?O&R>VS{l*)2d_+y7umRxp?E1z0ie3p%t2+7_~K)_5)KbFszgR4$y92ue%_d+p z={S4WEpLyna(n6dL_0neQkw8_j~uQV^i8kLkAt?Fg9py)oN2TJ50A(`Q4oQTnJ;fV zarF_#-zkR%*zau!g7xaUCeNRGD9_!y%?6t9SJUo1YZ}ZES+vL@dq`HUpWd(ivUpcS-c#e^k{u^JT#`m?{U*kl|OkW3LrYGaA%;H8voK znpCbHC0%%8Jm!fdolL;O5AdJ6*bi+jI`5KI!VT1rg?ZVE`7N;|W7pFXo#cm`IG0>&GhXnb z;9v;F&XIJQS#At}w$vkKN1U_MtCUq5=BcUtEQejph}DxoIhht@UQ}=NyL;(%f%jUt z1b|_;uu-OzwnL+QBrVA;z0V?JVWu}t^nmSna*z8*K3pDIbVQDg6K8JW55|LbM z)~vo)p&!-s=AG~yr<7%M(K7_MhrZD9-FUU@gW*!eAZwRxov=IV;B8q+3HJMmhp%f= z%vijsO^8E%DPyu;igo-}=rOjYCjYh``!^bll z8#BEx{cW(Nfz_p^NJ)B^$H& z$;-pHXsiIi5kc}IO2s}q;L8sx4@orQ`i&!Xs~_e#qx;8_oTJOMj!RKvX#qP0wG=Ak z)lTs20JEOCx750%BNJi(Gl?9B+9_7Sqjy(Nsx?PwX%hZeshSjNO@Vkkk2tnGCbJoGsUZBRUH`w!DJHHQLNO5q{R0pxqYpOiQWSWXWQemM8ji%Tz z;U-M`R#)6j*rGHcJrTKgbnCZ-xmpYj#TtX_zS zq!H%L7zF`>nS5gtGX9`qE$F8Ry=Zihc-qq14;06Q={?*$GHxdRxFl0JLrrVrlCGj~ zW%`L~vfbr}&D5B5T0dBfF)WPlLaXL4%wTBw57IV8W@#&T;tt+<_}wiRY|)s660kk8 zn_GE>H}LoQOjG7NgKr7fnhr@T_s2x#%ptP_&BW`R2OQ9~jao{j-g)^bSqn-J4OZ1T z8yW?+&O?^tQ3y3R#(01qIz*FDq^_`lOPf>DRdkmWu2Pe@q65}Bm-0!+^*KS4BV@p~ zB5mEZO6PNtZq0Ncex=VNTWf!t<&a%+ZOQYTAd#Tdwa{_zV?A%-IegIJ0~ZSZ4`@w& zgo3#aMh-5aue8#aWM=He#S~FyWu&4nX1yh*kHzndE-SHxz0*9gS>o>BrDjf$lrQR& zYS`8CYf|ZcqN*08Mgi8YEe%3)RMB|LaLg?LjNT1QjAwj9qus7r7pkqHA}NV}kW*F` zM#bKCOy~)(20e2g<>=&0K6XMgeP&xLLkP44wm%Ps>lD{le^=XTaCvFENzc@EOY@Z@ zFj{16bRT62pVel59$s36oaY0*mZY3_&~Jlq`F^TvmO3>K?cIR2il2X8^0?F@=9MC3 zxM0s%+W|cvZ`$EVsr_}ZEQjK%jtP3d zWp$upjxgBuyV>^X*a+>yI-4#rG4q7BVK!*3-8JCu1QNryXjEI_vhX%*@uujOofZJd z$w&N_UHS7F$CYX@HlG|BJBw5ibi!=bI@J*pAn{8B?pHy#NxjW4q=YmvFIA%u$Y(zu zUA8+(9j(7%Ui72dlq}uM;|c9Yz@nAANF<4}n57I2nq&?{Hl^hiozxuTAXqL6bHZuu zH$NvXu-&z5dqv1{ed%yLxxNp&?4LcFSbtdc9(>GH=?e{+u-z)GiXqdIr+4o7{MyKs zqp`02Ji>YXj5+@no%}S#qPOa66-alWJ@{(M@GFxQX(O}(HoCx*7^M{Panlc5IdS7# zNwr>)IV45>SB78%l-yNA1GDCUQLR)P_%n+^!cBKY9mwntW6NiaS|6Na?3%Y;xW*Q)J(+ zTu98BR>f!VCH)CT4CXJjOQ!Ynly$pMY4(fpbeIaxGmZ9qZ97KR=R<|zHmmw?t}tY|XOvQ#5Y10tZr8n< z^Him~(fg)dizcn|3S~LB0VUIHx>N+P*xr`67qKBLZ8vI~!mi_M{(7v7K{O}VgD~H^ zddqm7ha%P1pYUs?+V~#u{_i#0YC|ef6IqEQE>f^t*@F=z7|V9J8U^I)vZh~=zIWVz z-*A2X(w^r=rmg53_@WOJ*S&nUsFl;{J&j&_xBS$PxNOJw*c7Pz^Eth72Ufc?uP^Uu^w?wj*D&*YU8(mQu8C&Esqz^dG(&M|Zb6g-b6!tc>5cG3e)C;;Om%Yyo_#)CxsE32Q@ii3mrGqf=B~6A zrr&7Rt1+HuSVq+Bfl9gCrZ3_uZ!`nKhF1y>1pL^ZPU^Cs1?8F`4&NcyIRoUn*_E2F zcGS-{z2)!ux)MyA>r=fJdivp7VLzH2Gg$$c*<@N^$s}rFYil7XqCwp#CTwx`(zSNY zeRWhdw6fxIJ|&|9eJ(*PBt7rD8Tx&$PXJ2Z2OG3DTD0s?cnv9}GCXc0E}};Zuakwq z+R&75Jv~V$slL}@+J+b@OR_#U0UlQgp8pNOYmVC^7n|or)sWdDc7t$MMdBmMyeNDvBx*OH{`qjNf(7HkSE(1!_Y6 zC%+!hPs4Em=boAGjusiK-(AgVe9Zg3@*fFdh-;~6!3;&c^0yA!$t48s_;KAiIO%di zJmyALj^(vf55`5cjal~UsOp>Ng!a&eM zi(cgCVtcD7qsrMOHzDKvGLG==DvRxULq@Ro!@>o2hS8tBYdf>5Bv%DLyi$dz)sjid zM%9QkX%#BGiuMVTIKToA^a_KipW%1RPQYie66{n&+eoT$&j=~^_s7JTu%Cl%_f>kO z5taAPmK84NVpIqU{L1lMoFx#|j+7nbvLuWGRwiSN&ey2!BEl`iQ8Bketm|H_ zc4ZKzRGoIsuKyK4nM5KUUvl3aF-u@xHUbyWLE}%4kZfMqdW2J~DvxQk>W6k@$sa4- zKs_Sippq+A8;^76lvm`BXFiti3kxRN#Q+^-pPymLDnF%Uev!$Hj@Vckito2612!(Qt6~uN z`cd?bL&rIf$dkYqY}>em7kMXvFBLv9=O^&c4d&MFvtgaz-``pCblE9F2{y@lwq?}U z1-noi!l+nK1kf>Kg$-EO^@ZVH3WrA{@0`#kZ@&XhyAPRwjuEfZ54uwTAcid}VmOjG zw9EFoC}S%~d*7_}n49f+xrx10YunN^|tY5eITN9N8s!3#LL;mU|d@7D3aL~p6d-*LFyl|T26 zZl&+~#4VM)ZYbtWfi<#^6TAWWoG@I3;rVldvF85yWaWuywi-&92tQ(_GOs zk!R4NrURoj!4#|Kxv?O}Dn`=~gxqcb`|55ZT}f*~|IP^>p4ur_=MbI*su_a7*5#P; zPC)V7oW(Aw%Sssb=5r;H1gf?;+T+&gk!))ml`LX!SXl-WL}EN4(9y!o$k*PkF1IB9 zc$!FT_hUJ(kHn3htx{EZ11+7Wx`uGc2&-?0f6TPg0rg{S_P;w@=V1XI?~ z*@2n^)are3k8Ieu*rU%x=^ZI7(cCd?SWG}fnOD8isX~j>yh8<6@ileDQ!0+560x_Y z7?a!gatx5I^*=nAQ`FRGQJOfNJebMnluVxy{^y}x`#fQi*rMm?0%;%cGg za1)N0KVcnkw?Ur&#U_&5|4J;^Di&8v`Z$(&;9H<#Jq?!F8x`?b12MUEq;_Pp;YaKB z4rJ+JMw-fzHY5D%q2mFxn)N$S(C_PJe4@LR{VzC-&c}Sf3-wy9@jN9ooh|z!kvO`e z?@qHu1z85qx9e9+rsdC%sMdKq6=)){kG!N`z=k|@kGmZ53dk<67Vi%fmOmODZShu(e} zJE)#CN`mvqwbY)dW0G{B>v!bOx)4wc_g8a{cg;r*e7-XDI}xGxfX z^#8^uzH4~TagnGzX4MbrilDa{_tFF+O_VOq4erGEOfzKkw*cwl1+iI=PsoCQDwFTa zqI8kQ&X@5$YE$%QkDKbwYAN*#_xT0+-GH8T#;*Y>3s##XM)#?Ibe;^~%-zkp-bbPg zdfT;$0>5b<(9#j?JgkV)#eqY8QUXcnne3N{7T9by!anSKUKgc{OQ#3+VqfEjk|p_c zEV}4oL#U;fFPG9afe&7iMd`w82R{1GU!Y6Ue-xd!hHT>LE@Ro{D3)%h{=@%`*7jcA z18*?_CNM7qoYcRuxNfl)wwDI>dwWy6_rz+BYp=Xg`CGmEGAyd9(nRUg)Q@?z`6yXj zvs)yjC7m~zz&S@C%}t^ZHP?XwgWyv=JmW8ke?2*>NGL$7M@sJv;t8bs;h*z|-D59{q#x~CW} z6_@ZplJ(4N{q4-(+hGu;3m@UB0rW{>AR|lpWD@7BU7GQHvdnDBk9CUXbd&_;oo(%s zC|!g`R(-v#7?t`t9cc!z$RNSL{%Sam9ty)~p_oLX{YOc_s;ACVQf6eQpPIu~CK=e# z1@d8kuOik`Md>2oX)-X19P!H9O-k$^lWQGQaa_YOC*v|BI?Z;vEOkAe#NJ4lGG zcRFNb#2H`_g{uCEYt01|4R5}GGP1Rn9U)(rQIsws5Bbp7DfM4Db1f}|&o!Mcw^Z-P zdJLj;CG7AxhPu0@?wm{*#?WFC5Q0}s+|fko!UNTlz83hjdIIF-OJjTFBQ3KO9=$QZ z5DE2VQMw2vNc|n%Uj1V;J-^&~g$v=?F6T&-<|{bpo!72_lL?2crIYb5%>}3pl0@ms zaZx^PbR^P5J3VeKu0j9v^#qI4xiVOp)Ohn^)`@|?(WX;)}R z?cGSNZCkMQo}RMuP&tx)M=?Pi={bf$Nt7;5PY3CJsYe<#c9_e?iTpBYoHNi*^N;EW|OL8A2Fq%P2~%82Mk;XxlOGJNb*5eW9}$H6yF zCKp{PS<%q?1*dR)=XPDxD2H(LKX6hrO#l=xy-+@j&TS9l)qi*}^7l`_GMv+P$PA5q z_vl@dnvc0}*pweRA#$4K<1=kvePOxog+#H>nyl-pCtrN+u+C+4I0fshYDhEvHj@Qx zSzPJH4UheVEU@bx)c%uu$jY}-R5nwnvpH`ElZLfR^g%!(xBK68%hYmOx?XzGAiS(N z-zdD4{RZ2PqR}kwR6OiNi&w7!#k4GCBB%RIW`B1BX4WTn2!xpyeUUfbs?7NRU2(@zOIST3}JR|$8V&`A+9Q;@Y3LS zq6dwywHpqpI|o0~2Pa%)HK$TNVb?EBT9GZuzxUi$Yb&(}p28u0{1&w)4`)Mh;qwW6*cwB9;pb;CM(dymq<<`Jv5U~mU^O7#Sue2~Fr&Dnb&Yr#e~ zsNOxf)w-QC`Hbu~d!^?HS-Jk7w_DW5c0Bp`4(!;mQ~BHeirnt6#zoco&Er45-(bmE zkFy!i{#Lpl$ZE%BR?U)f0Zr<7@n!u|X>0Gn9=)x}^w26L(n(u32hqIqW$Zt26rE&c zPcrTl8T>TI5t_hoe+OC)>_bb3Rb_}=Q2B?O@Wi7((f=O18(+F@Eh;5Zx)6##`BQ!M z3)p-g8Fa)X52PkcKl%1ibZH&&WDWMhxRp)6=5%b;uf;N{4z&FKb?dg8 z+LZS?)z&izuXjXG?LvNjnV!+oIJTbtQ@WKxy%*_|CU@q?Nw4|%eCBnEtb|&w&M@#B zoEXx-nB4jDEWt&nDAi}cPIfn;N1yE=7_TyxWebP6C z8*YQZiLA4C97bzP;y-KqzR64kQ49^ z>s+!VF|H8&XM1#GI+FvvaV!ysF)|=MTLc5U)d7x7WJzHT59obva&E$tWHnVjVBVgd z)cYGKfB9rN-|DgH>!R=(kQwcnm(R zoej~Xd}Hmmy^KxCJk`6?!3mv%n0S}1KS#8*5R=}M$LPKhe>5q=&^fF5vUS5qJ-MJ4 zY`v%Cr;;CIu7e0jt1rmsLIJW6t{!lbWpe5H3kOZ`(jGlD(S;^>S>A)8A(}{|pUHCT zlYP{n7xHg#n2c$}Y3E|oZO`*~TC5tPK1)xu#(8g>0?qlHU$+p;IB8M+{G#E|nE(@5 zm;@3}(OH;j=2S5OCcp%eCg7l{hU?a?LsphP04xTOMn^{>mdnkdC3r=5h4?$~yk%rT zJrhTc97#HS_IQpGnEMxH47h<~hhvV#JK(xNUh>k3iZ!>wb-6QUw%Ih*b+`0E>a^-$ zh(_XGb1mx5t3zQyE;6YzN;kgZgnswLOVQkp+n%4rln?F0JBZ`&?@Bs>+Q&Ry5$tWZ z7AA?%4s630zwkOdg~F0#(!r!ri!|C4HzD0PmkC)d$^6mP{KNvvy#wIiT(en;+mvd|IFpW&j}?M(Yx;XNe& zBG;uY`eR)Ehf9qXRz{BE%~yX%R#BuzKT$N&eP-p&PnPYUxc^bZgc$qpV<~2uz_9m# zv_In}S&Sz3Ysdn&;xfyz@d28w)<^ZEh0cA{jJMt-k@(;~nvi21SibZ~^tT)}hHhzK23u1&Msi~ z%>!4B}SejxT)QYzQuFQP6vq?xr?Oz(Td)lX3+WZe$+n*ns z3MPS|Cu}V#qlldb0rQw&7dM+z6`mM^f0|YgP++Ii*qDQ?0HW3&>4!g7)>h{q{-HZU6FFNv2=`>95mkJE`Xavh%QQCx@5`Mk)Xfb7|7}03yzP{ zoe>$|6+P1>wHF{57{%Bqt^6=f{Z>;Xz9opE;CS+)@Hu8nOnk{Efp`XuM?0xK({F1> zOn-3PsK~;2JQoq8=0^JAX>|dy!e=NtR+%OV^T&sWV_DIA%;gjxn6cJ{ z?tp?aCKDlSO@oXvM(+zQo>Hx}Uee8(yR4hdv-6!JxW}NP;$;oj{ zi)NM#flSZ0z;=!-&hC0o?}FlW(5g<-F{{G@r$e^tP19F$XyQ(K*y6pC8pw3%a5{aL z&YO#u*f~TPpzrCV-8?*x9qC!f%Fah7y(ec7yU2TQBt`T6C|!_coOEHZM<&1o&P4*! zC(*f>ea{v<(Ta9HEy11&p<@gMtoB~mLGzDFaTe0K32eEOLIuIsK1kw1z z`4*zu!(>^FF60h+yR9v&M)TUzCpto-{@wYgrM;*wG3w*=|F|-Z_h3zZ%6FianbTLs zS`t#<=<_Sx*XrG){?0bQh9$ZMGEDf;W+gO_2I^}WP%LppG?s2umePp?{*y_I)o^Jt z*TwUbZ|Z@{u1jFqJzgN@<1~rk{v9=VXyanTnU==w*lsCUHh4Sdc8vAJX{aajaUW}d zO=YhgkGnxuy1%glB@b=HQgu{-1otJh8i4p)bIn!QMB=Be_T$+7!lSX`^!f^vXg6LE z-5(^X4AchG*lmf8V&Qol3XT$6g!;8hW9jA9qN4cMXzhtTWqpK}qNNEbPU$7iAMm5U zqaBBS|0Wtq{BL&iav!UaB$!m8dNKd*e&U;0cF%)YSEs)ZWS5p>rTDvYH8$S15k8vG z@Gh-5vHdl(z?!VX7ibj)-u5NFznj(xpqZj1G7Q(B9sm?Td}DP;Nw> zysaKH|BCC)VVr;d`KYdmd{+v6Ktn?VcJJP8zLfWw027!c0avcx&k!6OOl?A!s|cFC z1+ru-p3(E|rWL`hvG2*gIH{Ep4UOJ(B@EgjiB^S253M+ts!Pi(L0M&)(XwZ%fu(qz zo%u;I3HDu`97+ZRgcW- z*WdFIhAPiPfjb%^34C+&i+OY;q`h6G~?x#sf z(%9a7WGp=wg%vf(%hc|I`G`enx2>y(m~5cew#kXfgz-;J()VOeq$k9gA%4$JVY(2J zM{-G7oTAkltl{ab5}iL)Wvr)W9=FCZaIzgv8mmx;g&nRedcM;i3D$)RO$6xP@zP{k z-<;a>dCUX_&Gp`jufwEX$SN$>%Gt{Qd>spiwcaqJp&7d()UE5y9HOnyV|phkS%M;u z*1F6bzs)`tN*UXnEe?(eFoCm}fcD9H7Uz+(#srwaIZ8lSOD`;pSSk|;Mn^^rqI7X= ze0&`H-`|flYpx(m1rEhpK}~H9jx@2=bis$6P9S)!2NT!SMT|Z=^HEG9$o4+{{F$(o zE(x)e^yaO>x{Yg832-zEQwWeng;9UB1KF8Los|U(GJ7%kQB&DLosIO(TcG#Fsb^;V zl|Ln?sFRzW(GqsbObjSx%CUs=V-N9>g-&4bIQl2Zink(kb)k0UYO=s=7DU>eiNy8D z?$}Ogc;>b`CUT3xh2ThxFFqg$oJsX$7yj|?UD)vHJ8|{eB`DF?+>8_@iQOxg)MMl3 zpJ3fvFJsHoJL4CzJ_Z-x&lz;4`uZDD6&2EBq8}giWZ=A7A(YO@|d_FlIM8?RY`nqpm`9tqI}PenDZ-na>C{@`MK`~Ih- z$zb#_mIv**Hz2VfC;2bfL2Q_P~Vry()ozxW|c2<002M$Nkl`c>3HLco}S5!`aWi&Cn1w;OMcvjkxA1aHKibFPGJ7<=90Is|`RFoRc`Gh9O zLOr!N%EUTKtTQK{crX0guI4Hf=tkR#A!Q|p{QMlU{;r;h{AQ5#@?!BvD+YAYJ6XcH z8^%kM-y=)BC3Uqh&N&ESe2j$9lhKMq6SVUvee*}wRM|`%lF!Up=2Pa7(#;s@S^Yc&ZB+Qt6L=V_q#_{6e<4k}FFaa|G9>Opa;e95+1kM@)!Wz0*3RgJsuG`h! zt!$hB8zI5EpO(?h$&Pd#9f*+O@4Vr!pqj&b~kRlq*y82v6em9^4JTC z|4#2P{gy|rrDbaq+Tbd2N|NI#&}zO5&&gj}K`(YZ_$=CTXRaq0?TMe4!kh8+jrB3- zm)>wYHtxFzJCf7A#9V*Y9!OA6=HouLgJa`!WD)&2vO-t27FVvVM*~@}Sz1?41A}_# zl~>+~%^fGOwJ|EP?(;$1Jta{u`T5nf)vjM)*mA)w4a@`<_#~{H%l;hoCHf$A`+F~= zwPg`XZ~Y_Wi!l?22bbP-BYyMZ%f|N?L!Ki$PG^zD(HRcS$9+6Ql*ycKdTkrN_Zs;u ztjD^`SEJ!PswYd!QIe~Rp0lei#&^EF5u1OyBN}86hH1RMCR&%=WIZyG%hrQJaKbRd zEYW3W+_|Qvb_A~}k33T{Jy=-R5)bbi+IcNmLF^Qq>j+w2(nnFml>yT6| zAzvrDMBfcro}9@UEM<~NC$B;hrIY2_-p+Q6YwtMG(C8h~6o2H?jjW)HZ{)a+>}yKrr{h`Pb-|!c!q=e z05h_YnU#lZ8oSGKsi8Y)V)inG+CRj|jHZy2j5O-ami$mM)s%`U(EY8)5TO23{aCy- zP0KAnJWsPb?#LxWOS&jMH0DKbUr&t1`3zczHak=5447Rkr^om7I7SCg(jU#=rGbTv z%p7Eq7(Fj9OJ|)~fXa#~v~~5SHd!D+&N8SEP8X$zFw}JtKC^{(;-5vrbVZ<B&)QBMTyJBv}L(cqW8c zV3uxSl<_PRos@T)Krzy({5jGyk&%&uOd4m-$s945d7&PD?AFzeZvKh6^qU;^hj0cECt z^aCm=W-G>V@>08LQ89ZQuYCAiCD3;a-pMtniuN8=HC&0Ny|2fiQAbM%7HGmRPoce! z+ljt@>YOZ&bP|#E_JUF`yobGU(h~1*F^Y@Sh1y6H(cFlGjr(Ig>t15d&2%J5MX^2k zF($^?eL878nP5+DC9;djS^)XAwx_fjH+}j-rPHzh_#QOAouma;If4Y~Fq|SG>NhQf zsEQwVHSYM@t=Rm7?S@P2+>w)z9$ zby%(|$y$VO?Vwsw6%q8g$Z~{duo-))^E+i{V;Rf&NjW{UzHlFob>E7mOCqs*majl1 zUPf1(a4tHZI_#r5DtDPa8O-urWgYR8}^_NAZ_&K$>a{a~l{hJo=G1}FsZPMEdi&alAM%!cUOiUQ?;$0Cc61E}u`;^UXvz7@>B+n^&U?=F zI6pd3Ph2{DBFXn0C7v_vKZCZ&jmisXVh4$2tX#wTjaXBaO>Mgmzj^Kj?KyYGJin|m z#m7=3Ko*kYxsqDF-GYA*n*GM9ezKrM!gS?(G9AU|EvFSA;3Ny%E`-`O8YUs;Lb>= z$)d6ChLY>_Jmlx70?dqv_;~J3mj-l-R-8qCq!TASHy4inA%tctUUHDASo;nQ!`pe1 zMCn=-+Qw{KKTS6$LWofXX~7ycY{`!y#M8JFo+L3U#jmhUM|O4=#zqVuIC|n}3?WY& zqL{*DFiw5aub9M#-LzBox`mKBL6GoNbq%HZO^iNQqRYc(FL{?@R{A0m63!_u1_YRjN zik==-Ccaq}&us6(1PJH-ln~N76>(me?gO&=PBBhT1*mPIzp;J{^*fPUyaYwjJ`lJI zkeSwt@dW*dvrn`GnbL}f{@xQLO4q&sXCIunA{;+~X*4-Qt@j{7zN{%%o)OuRn>;r! z4+CTI(ve9P=C#HE;}c@sMs*}qCezrS=y|8G>S6ipiJwL_B>7jbS2jMJ||wbxDo~06Ltzc zA03MgZZ1cTd3AvUtpQ(u^`9jOEeBOM{V9pp&0gpuPx?Lz(twARbCF0ms(Y|H9dk_X z40C1cRyblj$_H%8j~w7I2IW5ZG_AW%_GGzzuw_6$?pcEWu}a^Sw<>S>W884fYFtf! z8$Y{I5q-($ zYV#_C6OnXzaP{q1StoJT?YLAj;5ytp+X)xe!6rI7CVlL?OQpyYT-4I0^9Kp2Z@T09 z_`VCT$LDU}L_+O&&dxH9SW1e-soBMP`@kS8%C#PWcD3Q=|28|EDvc(aAD0& zcWQgF8`ao&`|Vg)6?;ZKvf<0Olb}@Hqm^LZ*oHfHoX`(MC#vWN;%}u=@8gGdn$OVl zRv%80)3O%Vtdj0&8fY1oPTPAQO97{_dDG_Gv1#M=*hqhyK6|5O2!~#J6o=$jROwz3 zt9x|$^xEcGxf*LMLjg8jvqV2L?L)tG3+g8p$d-Q}4z{SXekSnYZ-1>NY_f?gr>n1J z6NC8Z@KNoYts6Gq$8$+r<%YZQrQ0I)WaDi&E0es;;rR}1$FuKC&nT)V`dbLl+AUQg z@t$*qIfTgm%G)kCOoHj|Jd3ThHXld7e*573_3@rP^|)!{RamFI|6PMSKD}0lw}78t zdLr%LvTl3rk7pr<=q#wv1p#sbooi4ht@02U?3P4u9T@iO0-&7Q3&!s#fKj@S^gb5^Z`aj^!}6p30cH3 zaZOuWtCEZ?w_B5%yPPhF6&|fzc||!HnT<$yMBLmzX+?>TF@YorkfrlHkJ|AW#7JC$ zUZU_E$SKr6!iR_CFUmyM*>H}Y|D)1teL+!S+(5HD#abJKDH60Bz7^wMmh_1b2|hKK z=0Ra@f}UbWCbDx>A)9s;&9|Y|V6Jr{~sZOQdI}FCSrsLdR4rI9XJ2hVX^KyLVY#XDcHomlOnNm+GYnDM;JWlsV6BItDHkStMW$OjT_yRwm?jV;O^>6uiJuOFBgH}v;RO-MIIb}_Qm zN1%R%vX$m8(TrY*wZ?;{Nh-1~ULH3$1S8UDIFM*(T3S!RiFC`nCAxkN=cWVDwbTye z=j#*JjG>Zfwz3XomDTjO1O?fY82KsQqxQL~9+lP9&eC5Att?>WCP%uJ72niz zaUR?1XSGLlzX#Nh&tvHd!EPXVzN%uO~(`aJF=w7n5ysizw!!0&WMUX zzGwB!f+=G)LHx@Em;e(vs)`Q@>_gxQc_;$ zpO33Q`w8PRdrAuG(C{~Zjf+>Tz{mdTE2vu`OCLrd^;@I3;aU{u>B$yb1siU~wd*8N z1Rc}w6r*2tZ>UWgq{&}~hD+o)RbQrGTk<1^*@Wh9y(6x={xbPw!tF!PyaQSwH0nr5 zdi%ZDU>^Gs)=00D%Glc-wM433XZ$_#kt6~mD;=L-Uv2b|U@u09`qqosMhe`x@ zwq9M0RA1Q{>+Tj~ z(|7NTnGmz?_HWVT2fYK;N7m9C^{W=(mLJ|d&*HcLeFz`Dy9+(~qn*;~$49#kp{L_0 ze*4R3(Klc?XjPE(0`4%>q zCd7Ew-$Cyx(tD1t8UOxf`&^ShwmlRjU z#q>TBJ3(Y4O(0pSwJAZg(TX{`Te#0JJ&kkU>Le?_veT)_N6(RMTE2JfpZt;G{sL-I zf8%QD`!IyAqx%g&TKApQ_Z@|};)Xvqg+T^MulRE;m&EP<)=!NYP4hui|Uh;liEISFaahoI|At>%2OYY;Sn z7}UERkX^QvM0+Y2Dd03W3aXc(q`Vq6l@-Q5WU{cX%Qe$cR8%BgC^j9)%CAF3vEJ{Y ztL;r*wOtZrlVxAkWtT)(tWyuf`L!iKal$?whXVus+A{_;aiD^XZkRQ`&Kwe3N*0m> z-d;(x7C+UIl{}*7Wrdy9CE;-ld-d@OSAI1LvQ70QEf*!#GzrV<`slH#NvU&@EThMS zq4>)*h`#1U=wM5J!Wik3zM3fim2_`d2>@NW)mT(ng)*AFS|C~AjzyJXy_W@aR8Pbz z3kFA%O7hC9hz#QZHtXmn%fvF;WGsio`9@dEUZ{$$<--Ob}^*Vt{oCx z>&+1IN-E$oA#}RSQMD+sFw~fuELss@QA{|Q`HQK1bf2Tcg9g?ie;@SWigc7LqE#eK zX@Ro{<&~1S-QOFtvcYsn|L%9>mBDQu5KQ-=w5mi;$V^*gHCbQG+<}5ZbNfG20CPDX z#Hd%I;;BNRx$aZ&f^C8JD5ZN$u3S{V?Jr|BPsV!(aV9pXzT^GQs;#D4Gbt@ul2uZJ zsG)sh@U-%UhQxSgp7v5}+w7|M_Gc=!{MeEXn%p=jJ&zqZ<@By-HCZejIVH=K&u0TBNMbtA$?5J$DH0Vn+1-u&aI_X7rVKvULCk|4|`rjs@n6y7%n_azB7Io3`CNby6M}LT` z=~!@rdX=-OBcard;R8Ey-(#{!z8PCzJd7u9TcIVZX8nzLWc6AcJJJJR(22^$HK?I$ zHJ4kAN-@bnHU3MR_Lp&wVl}y@G(yrACD7=XzlQ@xKH zx4w?6AH5MJ(Z)EtZZ#hI=?W4wwxMf~mPRG3h|8${>2=?Y;(}}$EKs-+U%h3qer(!{ z?caGy+u!kn7trwVt(s`LMod&8!SVKH%}dNiYW3b2%vCq8#rYNLKtvFh{hP*1=4~%~ z$!a|D-|Qxjm-%?YWOlfu^+EMD1fgtq`ErlgcZpJ-LwD zlNK*60UUsbRzFy_M6M@5+xs6F<9hp1?7o4XR~730Uym(6eGn}lk~QcFCu+`Lf=YGy zVsRzaqZbVAnlZSAv^UkU3$0cO8rX#o{@dz=y~k|1kL^fO^Xqu8Zxz-=+xYCNi>W<% zFxs93;37+j%g&=VQg2Y;Ki+J5FQ8}ooAjQuKKk6Fc6H-7sooqvP7}4LO{!ahh6?G~ zMRJ9`JB;rqc4Q?sj4Sc+HOo*IO?xmX4V1=uw*AQNr`|9;dn&KE9*>-VF^-&|cQ~>H zRdxOX56=75rWbnyRh=BIhqu-<;OpyDI&Ua1v~J_ z*SDfcKXg`aIg6I#A$AqBgztBAJH>fX)jP9ouETu4R zr|+^>j7(;txM~p%l&3@VWhgE@gr?seFa^?#qem{lCFe!IJJa(~f6b@R_u?}qf4s{C zn84{E;7F4jf=CK_dwZ3BNKam#av&!=8z29}kJG|WJ_N=C$j!|~9-ULK6fHpO$yNw) zIy)x71X3YDLYo3z#69dYbvz^)WJX@GCa#_&!MF5Ulw=5V^A?`yhIgzG#W|7I!Cg{| zn!HgAQQI*Uc2eJM5j?V*j8?=N7}3QobBkTRT8MeNQBYeEZKufEYUMKIOpIb=coe~K z8ZxQ>%p+S}b!Q`;k{wdTr6iyk^M{d@9mz|2UIl8&I`k+B%fl3EmM2H*7m3F0%vG!g zkDGLRa>_!JBEQkH7NXz9%P~4itLT!7Fzn2PJI{?^UkmyTTx`gXoQTuC9rB{jSAw$W z3IXYP<*0GzV~G0bgVSlqqI!~Nswaa69+3=WcME>7WmXVW+=_Fg zr6K5RNB^)o)<6O@Uk}EM>$FKBo(ifb0jekd38c|?Rh~y*K_niw>3|ob)A^d^R4t6r zF$C$k=*-APZjn(iIYQ^=!`YFa@MI6wzXGyK998$ai%0;N4?mTUpA2LPF4;6*lBEw( zA|rzaWdgc5*qpai>V0@}n7-Y}igq-x-14Px2gcy133X&A9l7%T8};ML&PAHnXBfkA zWR{_#ynya8_2w1}B1nmM7NB}jjx_PX0Y_*EJ>9)}IAra-q?$z2Gzg`ILiI@>igKc? zuAaoq>RAU_*`7du$4MGrQfZJibP^nU%A@zcE1$ULVwAW}(By_`M+VjX0_4e-uP26W zUr|EH@W(~{b4S0;NR(K)m* zlG5`gQXWpSOn-ia>r_|?!;=$}Aw5XTEt+g8EM&PN_kd{sYcldMI!WuDQ-?zutt6C_ z?ZRN&5zr8Z?QUwU3%;r4pdk^(Lei-N@`bNe1zI0 z63B+8DNXcDH`bML`exD7rKZpB-&EQ*(73Z5_1^Bhi11R&k3A^~4tHR*kXDn3KC`oE z{Ixc3T>1W-2vU2HN#CD^x!QX!sEx^>`Zg}L?Y5*OJPL2`7%IymZKNZ+1l5c4;iJiy z6QWI__m%v7`Q0FdzP^52qBaL&$MZNiMq|mv>clP@+pnRO5XVL_MbEP|Cq2*QXHGN$ z?yPJK1%w{J+D(V(y_HTy-;hyUdp_LM_D|E7$27g~XVA*@E}A6T(IZWCBmWDgjIFc9 zN0|TiVPR2HRAQODN){YHys@^!q; z1Ox%^FCWL@E~%40Eeqw;+0?Ldg-MhSwD0*9jvtQCE!rI!-$TMP`|>~O+(E*m!~$Qu`6zyKQtnlw&Yp^5`lEq@D(Vm>@uZ8y=@-eVsuDuf zYW)Za2zPwz34LE|HE+X{Z%S&HOtK_R)|ltR*}~+&Q+VW+6NcnvS5#xol^0{BNtEtu z-h=x{pnNKv5R$b?#&~E%Kq;Tfx^h&Kuv~Pt3JW7K?#(B#mGWaKSvLu%FIhnr((8?) zbRq0}<`KLokA==l8Moufe>-4E6Wr7xPS%oYmXwnyU35OXP*JA~>SOXXhXX#U>xMc> zVU^S^#+vn_jE$mnQO5d23pvtV*z({m^lJkRlwuO~uOw^YYc4U0(m?}YkALea`C`j$ zX?Vo)ym~O9zf|sHC19G=@Ds97Y^*4#si#R!SFS*VL6lBbyx-o5t&Osxd^I-TdzGQh zd~f?x*sUg7`Q3x>J+)6N_sB$*l?Fe?os{dn9E{=lA)h!++f>(;`;Y30L6k1;zo)lh zuT`?*2bTF*Hn*Uf{PUfs9tE?PacMnw^c7^*Y8~K`lqASY+0i=>)6lh=7T zPtTr5sI8WtJ@n2i-u+gZC%X7f;Bjekke-+Y`uw5<&ZZpH{Nz*Ja?uEBHd*Ua|KtHv z#h-Le_;I=2G1kA;@Z{gw)qDBM8Mfyw;7GjbR=G>hL?KNm%gFJ-AW9Dp;=NaYZJFTq z|9lzkBxctfg;8F&9Oo^sRYd99ae69z@ba^u=@Bu`f9O~EutT@}MoVSH_~8RgfC(%t z0`I*24hg077wB{nU=>pTOI2khi8*yqx=3|@e?N}Xq%n3(fC;2XAiV&juZ=hoYmcR5 zEun)%caeDfrHohgT7Js)96>a%i?kf^Y%3Z>;`Mo~I_yWHw(kbf4&Lu1Gc~+uy<;rvt zqZ)#U*_j&aB;yd$Vd~RU!ld@qL!xx?9_*&EpcrREeqzErjR(g2KT?e5Xh|Tp1*MU) zF^JNsp7gY~TTZfY&^u|miv&=aF740E-$n2I>UkH5Of#LP(G8k_&`0$|F8Xv5<`z)D zw)D~F?}=-dFes$EbP`kN<#{Yc>54BBoSRCR+7YK> z@Jp=+;@4#|0q>CNP(~*C&oF(ckr-IiAD8SeDq7Z3mnPRmN{1^mrVX1KYeny%+yJB_ zm$(*__21I65~C;`be!0JgMEXUg zWhkOm)@4z8*x!$?e&c;2QejIOQ#k1vbiYu?ihln%P4$|liAeW_Fs_$on)GT*TRr7P zr>Q*<6FG{+Go8jPjiPj5sH-)#m1kyIgsHV{BmlRg-p?|v$#_pSKgonWv!4kJP&*+l zETg=4d5WX$fkBiGjP$g?XMS;;Ig+G&1V>L&TPc3#`i&m1nV|e#R+tF<5gir$tj(I5`zd*C} zQRJqM{h3_*(~nV_Vmolu>n4UtUXiEnNxyT>j}#VJc0SmtcT6^{y+%Gc{9fwpE7Xr|{9kJ&A!-nZo`1^H zdibGd9>8uXpV@V*@VP7WaO~W&gGtj%TXDx@yU-#FC*?%a%<=a~?0@&x?ebB}?EqPb zisuw-=h2hHy~YU{vDc8O_d72e#hkLI=^*-PhPss#`T643ooMQ|K2P12=s($vZTH_r zg6(!g5c5{XG-2W1XZDeWWJ7fNPB2IVHu`S7tz8GY45xYzyqmyUy6$x^)yca_B;92g z8Pv}QMH#=cJ#iU#?!bL_ZpYq}WVv3yRNta9X?uSU?*4ibD+C0F5w8Xe6ARS^eZ$rk znN<(;JKOtMyR>;b?)&mKY6If8)qZae8lQO-Tb_DZyG(3U-txz2AQ7Q?K_Hft}t%K`#y+=&`IT!BOJ+*ux1Y5Y6R2mNRZ>clzVi zI{6CI_S;XoD#mb9)Td~Zp1k)S z?2zX_m_mu{PNA#M@&p-X^6P0Np-0z@VZ{mO6dxWQ97sLJIo!u`q;k7MW@=_^cjRj$ z+dJ{SuResv_v4o_sBKf)$h+gWk&$Qm;rQ=4qD^}0p`_k(;&UCrm{ysC=u!19@E2rH#} zPX+^}_r77WKBv0igjUJW*(tT3alVbz>r(j*jOzpZJ@5Vw&E3}TqJe=9?EA&DkUpVI z(RHBtrGLZ0qdl0E^(m6CQ5qE7`-^Spv5rFVIk5M6yu1H6#^MDcg~yvrfC-#B0%6J0 ztQ_k!^G%*meZz73enVt=xd$CB$EAK|i%7#Eox?O)M3t4p7T&E6 zO;3=u#uF_Vq&_n1%Oh#&q*a>?LMSz`kPqD_j$=swNT8Lx)R4mTzDN0>^P}2(oUkNo z611veX}?n>I6OvS%7Py4B!wSBK(an7oxz;*BL`-~_LS5|l`uGskL)W%qOv3C?is+O zC5mvQp3tNx-Qu)-y|CbGd7;shX)j3Dw#_a~^`xD|@1xR$5Ve#+b#H(KjzaATclR+rvsg6Z||o5B8xOo`TP1#qP?w0XHEv0%##zs`dMQJ677*yY(tD>E;?Sh z#t$Z_Hy4tp@xh}sX@)FZ$DN!IZ6lAjAkpdzQjjTZQhAWI@BYCtDW7BwJQ`AvtaJBJ zUtGU5IoXw|+lLq4rl%$~|6;O5SJ!}Ln;)Wn_1=?55UVBMbH? zKcw-2`1gEp1V zv>mA{hiNs>_;tl}$sBi6YuiMmcGUYhCf?%m)bkSwEY34BCMLDDF`W?gzV!%tY2}M} z`T?bkTR)`9ZIW=@6pS6a&pr3P@B977F!SuaSM1+jYwh){m2@3f&p%e_=EdGrs#9WFL39+i z%O9`9gxlPkI$?Xp(7V53H|v)UzceC45OjNqn)V*B znqw7-2&6qzQBWyZrxcOYE=`R038qDH@6{Tw;S8ETmAc~Nm15a8ZnWa_Fr;sa%NH76 zeNP%UL<$#lG;J{|^o%~1*3W()XGVrfY<5@z^2Xuh&D)(!GHd%-I=@7f%7m1Z<`3`E zPq%x%(JA)R@qbz6uR&A*yxaowFJgUCy3=Fs&O()j`+S z%`qDFGo^x#H`t#u5l=ebM4{KZ$;u@}Dr-h6Pn`G3OJwd~kHMStZ1`EHE|wN(I%2Az zYY>0Fl)YNc1oUR9!9I%x=RXi>DEYL6dAc|{o7+VTUnswM@9{L+R)a%xl`#F{WSDj} z98y_YlR+#jW9O;s$BDv=ewG0d4 zO&=ASBH_|kV%$qygd}t)+1Ej0cXb7=NAbiUx+2 zewm%JC`F`Pq^X@XI-3vr9LziRniY*WEgxg_f?m4%?fGkpjn-;-{_CkG5y$b5Qb%(` z%Lx2#BpbtRWXP^|B2Ceu`WaHAjn&rJL4>F|W#!a< z*TIX}lQ#m7aQ#7}1>gz`50}&yI!Y$_ax$0%FJYVHsSb7e>3lCHWe}t&ut1hP?48R&*QbY^rlImxOj9 z3hzF0AH6bPPxl&ype8L( zEXL5Hh(5&FYw){4P5J_TQphEJsbj)^X{`XqgOnmtC*(LtOe>}6XXkeMCdM+y(&0mn zl)tBjexd`5A%HeigkM?(IGb6{PMv)IWYk+N#Y283VL)7f&|3S% ztFL98-{!@>(92)8vYMLRu+9(pnsZl3yv3DQ^EYDC=v!n?fvUYedy6ty4n)ihqudZW z!Xi${XWrU6)l^8*pUV<46>dnC9HlEtmh_^1mUQ3JU8dyvCf)dy^>vh`%VmNm^Y>7! zAtJNz?V6~R!Vzp{MN%8!mEGDyh2rw-lL8Dfg*5tOS<#M#)47}s^Yj>f)kstOIMa6 z9}%%jyF(0o757VvY-6IQ1>uqYJH|RIDNnid^=bt*>4V!hEaf9N?_Ija6{=2)Qlh-0 zelQE+E6Zav{O2G^(U6UxBI}5P?T>wGwS*d0g|BJOdg8%}NMK`20b=jr1$IulL(tV# zA&5J3#NP1n-&&B3b_>j}h0EQB7}UNLo-P0IeSWSApoSXfQ*^}XR;R9jl^NXK8K@r3 z=vJrpg%9CsKl-0~g1>l*m1R!p;`jUaoO`hQ57>A5I^L`r^x#@u-hoZE+xdND#vgxN zKfZ;#o1kD29#`QWc1Cr6-FDF{Yx>m2P-@xYRq+*jeu2EkmzRt89W0zK>>J@{t-sUz zBS83*_`iP`WCAM%e;0gG*^dmF$9f~0B*%S$hb@IN6IO0~d?yvwE4lVa5L>a2%g`kO zq%NJIT!mL@FpWDSf`FN+(>QjKf+In@r7Q=%*)HI_Qh>kAay!e_t@q5QHP5#4o7Sea zTMIhRudz7U;lES+i$K9#{>$1(Nt+F>;7*PuewW;`#mnPkRnXHyBGBtel^iUtp#V)= z!XJcX2Mf?V423ragX|O1!PRrcKtveCI_>;u?c=6zVZ^|M`MibyJm`A_Qm%Z+5Ydu|Y>m1{>>y`w1ib?!OTOfRbEpW}m-|hDzj? z!TD8X|MR>6`k_~L&@;6L;wUsgi3NeL3?ME;+y?=vl6rKQoZA?5i) zTo;#of6^Zs@(X22Cy>+nH@G?HQOrns>;WvBqQ>yu*?orBS>L`$0$% zfnM6omz<)LiHj?2SP6A(jQE@p^haCuKM5VYy+5?Ah^K6;UQ>8QH<^CO?x?&<7FBUN zREu>UeC*OGC4kz^K&vcJoOvwnsY{54eD~Nh=}$xa=|giXd2=h!UyCn^`!~+LgwQYc zv@nEiStdRE)9-#_)c=A7ST6zPP;ulk=szca_7p1<&*u2C!rs4M%zvK*043(*zk^UH z&MElY5HFv{CE*xL?l7Y+8vUO~1qJEWNdrw+k6ZQGZz2bsx8r(?=+AyPbxM$*gh{3wo!{CYp=f=kwJVjmp%KqKrsqN+{ z^S(z-w)BQcXW%02zbJut7+3|O*4i7vUvNsoeu<4GVPHV9d7{|z(#_2c4Hj}Ra(+OO zo!5*aAAu{g;;LPTKVWw?RkzPx`V4~@=I3Gh@5sgC1B8Sie#^|Hf+HXzlI3ctsi^_K zMuLNfC&`7__!-O~50FZIu}YJZ7&q&xT)$81e&RPe%w8H zs(lPnS5ADZJUgMTzU$;Xcj&a{#4|k|zcW`9~1-`@G$0tU|_O529vP^E6d>_8z0YeJjtNLAT5Mk#~$6EYEKKxbmgb;&P$W$VIB!VNfs|5d=hdGC1mJ}V7) z1)Jh=w|CX4i1@b1XO$F+Qs61PoDT#>+7l?s;x;IpxW+b=Cr+sl8iLKQmJYu^v5P*K z-!L0Zw8(*Fp2AiNnYRH#mqYtu+J{Os8Ok+nOlln8U8WdcIQVt2I-$uvoMEqT@jl!I z9|@!eNmo^@Q7qkxdYqLlu|=;@{$;X1=B;exT$$K#^?Vkf7}e8SU~zBWQ{LU~dLu*P_?V2g8TA=>CJVQ`frhBmWvNnxoF z<=Ny#bWtN&$IcTN=zYO)Tyt~DDyi@Nb>ki3J5 zLcItwAZ7;ycU<-25)*}~NT$|mwjMn91hq=Ays<$}yIaS>QxzDM z(^VjD*Y~(qq&bL$tf{VQS%CSF zS=L8{);WvU0X8-uJ`87B=n`yFMo%lrbKL{HItgj7-EG2#qMSZZOPYh0AIT53_+w4I zVExcOY@vde(~W}t-Y+mkSdT@mTR$Q=QIh8z+vvs~OT#O}f&OXx%&PI)=*nZUwR~<( zP)CP>UhBm~to=95<^FZweoE*pl3_od_q#o(uaeTidiTc!zyH}>i3!^qg0jusjQ4R&JP%y>`UI--lMg&KhcV1sW9DiPSHuyM{6j(~2Z!brxuGmtWNdm( zA1+F*f%}Kcrf>^(4a&4e*xgbtvUKeAjL5$h&H+9M*(^nT{x*${5(qA`Xt@EW5rB{C`cvQ&A$R=m;X zGJ)XZ^f*oaa%XY^nvHy~lYy%kfv6xqww^1NsntSU{laug-J(u+Rl`+!&#d%x6JrXt z)x15ELmh4^e$ihUnpd z$HqkU39|jTE&GSAhg6d(5+q)+&MsB<6Z+!eIkZ?p2k3^k_v_eW|z_ItHbMz|*h@KDhe6yT| zde%wd=9I_9qmxpVkNsm+(-wzK*N8S`eO9I6SX{l$3t8SfCSI>nkI)1D4dJ7MCZD{b zU9o1ZhiG>O*%Tu+8 z(4>~Aa9;K9d@EY2P}6fkh@iqv7c0?c02P+F*Es#j{&%SOMGF<7cnMK%Zf<~w zI)n{~v2zva%?{C~_q%y0;+^OEY)r1)>+9{L>ZFXx&!8xW(*&9zy%P1Uhji<5_c}<0rVy+rs*Z^3kH(sU z=We8*&Sy>36Esw>5gc`V6&7|GqG&Qv*MIRETt)62##*=;AJ$rZ-{i18f@dkno7V%D z=zbu4`GaXZyvUJ7G~aZtH4*x{HtsgELwc14bq-b>xWgLZ)wsrpc{>PCBg)d@@b!n= zhh;r{w<|%9)x05`zRI(>HLUs_E$6QpIc^jLDK9Uyy|FI{IYX>L{3x%$o%xP2A!aPU zKd?0j^J!om)MOFPcuF;Azp$>W-4!x6sb&`-SM2(C~Vcy2lK+37xb!3#j;wVyk2*l78ft%vuSeT z-cuE4K=pHlkhx#RBS@NPHXHLD(_CdbF9bU`?5Q5dQ{=_6Da>=)C>EqSR7CHSrW8ez z-Fc!YL1$*8y-00e{~}+e-f*_P;Ih0BS>ZWytipTDgDJREf+IQ%FQ15t~x!T^;`J{3;5YcNE17y8&%)vpxia%vFnXT7>J3<6x>`_5 zpKI8s4rc`c)2uN zz@o;5fb4qmXMvN5&OLRrf#GgA-t$o7lLeM2SSKg_@6JSSb67Sx`k9OFe4pmrLf1KV zMxI}_-|`z7vhv?p-E|zz0|pf$7UzySEm22!4JzB)r{GgxSb{5H;VXUbHx|7=eg-uBhA|4l2cHe@3@H}6LOQ*Fa-&2e-c42sy}_(kXMQi_A@>R4BtVHJGwn- z`BdbE1)7853t)JCjUh@VaNiy*yK(}~rGViFz4_2P>jblS$>P_U)Qx-RY!CJaPFKO; z3c7~?RvTzA9A3=`cXBg3ttZGBxb2F#g1=`zguwVSfiW!#v9`80UFA)bl!-7_=jKd|4`%=zHTfE= zl84EEVZfhd%%i|!UxUB72`tB)6E`TRJtgoscXwW%vZB*Abl9(j3x7D!t_P0VCUHBX zg?sJQnO6``3jg8%{Y5{JusQA4Ve=>T1zfqKT6&@=ROhoEZLdA5tSRMBtTVeZvmnbu>tL2^I^odt%~6JF&; zwA=+ZIWvSLtz+()MMZjPY?x2BcAg73Te^1a+4a!`VUwc};4+tv7*m{d@ZV@w=(}7q zH2U>$EcoeH*I|o2j1lubd>l#5rLkOz-!XOM5fUqbnMBqEb!r^%JEzhd$=^uuUT<)* zV$0mq(`pjZ>sX~kCTE;JHN90BLNcT;^F28sx?>S7T%XcxnaZfTLQ^%_=ne*@?qtC! zwsoxUU(r=JYWPzaqQ*~+WhTN$i%v}&oGK*i$U6~&2e*9$*|4VYs zF=#kAI0BNvO~cxb9mn%|MX!>z)m*a0AVzP&b`YPejFi5Sk!b28Ko1>9-rpzgmKUPx^}0Tsdz+RMKqtR zbqxeZ47`Xar`8K_ODB0e)Vu&S#XCl5a4#oHWu|o6M#+-Hs3WG?RN!J#7IWz?4hh#twt?GKKd8G)YE1sn9Ortm;+E zfip2)`0A-Y(aLm_*F8K;cAqN9{GR-sk!qdOC0=6xpq^QL+*twI7wx*Sh#WKv!)@<_ z7+bhsI5j{5=F~tL!!$bh=ud{!cH1Gt=d^jU@Or^!I&>`MCf(SJFT{}fQ(>XZ_w^k! z-ptWxo9|S|oz4$@4|B;Kv_OBM9Vo<9ZvV54q7{#Uit4{cO#avu8e+>gdqsf@4s`NR zpNaT9k{!~nU`5#oU~y(XBx*`?x*Y53CFkT&X*PP`x?daubRvyRgu%G;RT%v{z2K2q zw;>BGbm)f{W)Brp+8Qps2D~XgZ);ls5E$>&b%7ga9~XGuA)-1ttOj^3Z$xBH%{WL( zs|_Pqn%ALtpM2$!OL686ogT**LjS091>LsOA=hM!JnP^&dx%sE#PrxJ>tb}7(yDf| zMybbCtFW{px+!vPxWn)4De}b14v76Ux!9|{DR70TJ8xAH&67FH=Sx8ZV!v=iSzbm` z&8Tol?L5>tYFh&7AvOU6b>?;n3~#CajHcj-O`;Fl*BYxt-Ht~sW7l2=?u^OtYo}rp zR>4s7$djT|vF=aKSxw-@ee6274O4pVLgLke@g)U0xwY#EgwcD(tE>@z_ERPQVC)Z_ zEoOsM@^L9!f~8a~INaZVS9&7T^JSjo6Vv$Th$jx1af_3)DwQ&2Lonxx=5p~9$`D9w zw6wI0j15>ATZ(B}KF^W^VaQT|LZRq>)u1(^X6c0v)^+2?Q?5s6W1MoX*}~q($_-uT zZXu9yzlg+z*CWTmz#5cXCndOJnsl|fcGbT{B-pK)d$4eIr?a4ExX;d@kzt!nr3be0 zpgdN?Q=inv9u3W3y+|mO*O|;t(9?8T71aFPOOVWw=6;0AeS0%9hx$ zDix#{V%0hAz-1H~=k|%(T35WDJpefHx+8x_TF{}pYrflPe=q3P2^j^nVGOMBIsjqkk4CpnxVVrTn{>3eWm!&4fzJIoOQafE1O{ zXSId7z-Blz0MR*v3*3C~REM!Kkmmnk1fb=6gsURZ_s?PSA>tWj@k!qEASFLrrj6#LLS@?vUT&> zIqUVVYgpp?8wnfyp{tis#Feh+SHGXq#=xq}CdSsF&Tq7J$9Fh>XRi%76tS+8EX^I# z1Ktkx+-6=B>yfi108hfb@i<<)RPAfAIjn>>U30@}g2G>9awYzi)6Iiey1F-mi=h42 zP)_9n#>NyEMAJHMSB07((wU6x?3EePF?)BzY;+yLySchfgxQT1^Di`I{=p6@AWQQd z4ZrVVy1Mr=ESt#finbPiZIPc0y)?q_Q+LFYa#OWo(T;TjFHjgl^ zuySm2l3H!F4t}Fd;c%j?2&?mXkH|_iNZtpc502MwYv>OCf{5No@ba(@&bmd|rM}lJ zaFHy&`yAXfQwFr0L!GI@v=^8mE}`qn1UnCy^Ex59>MtY8lV5pxcw11V2P~0Y%R#e` zcv7E5dFqf(D_g5wd>QkarZwpo@F;mK!`%{qkyy{dua8%)`#c(R*4Mos+V< zd_;<0Q6}wW8ozi5;Um;I1qrA+V}~ueU<9J*z?{2ivVFf3+tPkrMIQed9@AepT6A~7ta*s^Ytaaf%=f|aKKO6x@ls3#-#*+Ja4OUc794fJ zfIDx-;cRASDUT9qZW##`^gR(!g>@GUK9LOR=FTb!(E}jL{m2=t}Y}SUpiC|nPA9h+u9M&wMJ32pVFHogB%#h#5 zk-7iwA{>)oyvG~DvEUV4Qq4N)eaUm4=75RB&!s{`siiV47xhMZ3-MQ!diNFVI256V zbbx`WfXe1RVsB(}7G9DHwV@O{R*V6=5jHnzXa^o}lX9$9f==DCB zdY&%*V#s5~03D(c9I^EVvdy2PTyDqDG`L&0>45Ih5L0nGw?oP^tFU1%oLb@?egmnHeLkE8XISgoK|nIKx>-aW@tL=ICLGiIXLu&rVpLcSpcR zmH&ok;Fc8-TttiZfiAvHcm&ZcF-T`_ZWeiM%d3D$(QZkBI>v_vRU~mKtW1{oWqfyr z`97C_6hnya(ZPL(n;8JU&F-jz){J;m=4{9NUyW3`aIm1KGTNEJ!P6LQn`r{& zrfDi(!pjNOlU|x4i)+5pXTLu3mxC;s^7txyF*JKHzBGD{^xf?-@%%*=2{>?tZgoE~ zw8AnpsbV*-t<;4MclfZD&1gzW8SAjAjYvRSkx5HQfa7_=bzf=s3W%0R<0JJ7ug$b>7nIad~{U-%xxi8NZXW-A{zLGBab6c zM|b4Ox_r{jW(l)FwcoZ0Lb`LB7&t(j42wSBVD3G`ehxR|%I=x&G0$4JX>xO=YQt`! zZejoRGS_q3S=oCa&Ef1K$eggP40Mby#Far9*!1l7BG0YYZxoHNvx)cgyL|EPG_`c@ zWX(1Q=pF;c!j0WY+j_* zKDOlg0-L_RvVT@HA5O{WGgT98cJwOEUv2T?earAqV^s=gbB(~GF6t-LR4Mw2~($0<5D zv?<(NpUO>dH!I*RUAGNfK&go=U(Cr;S_8eV%Um`!H!!bPPaVY1*NAyp3OO)ZQWV%7 z3WDAgDQw*mwS1y7NG^S)wqxFnF>S5xvKkS-9Q&}%l!Q~zh>x!D+Vv2U@UFSxsy_-_ z%G_#cq`Qg#qxZw9Jx)9ak;TTnbbt7YKLdzL`|4rl6lx-Cv(dN6`+)32Y+V3?gYeyy@h;msN~P)aq|Vb$^J~_ z2K4!4iBgSOAN5vzb}ZghOwsy;rb?)4Vj-I>jm}VBEpD26joBH^mg(58sKdEt{e7Ty z{r%8-H29W40KoPfw$gDbe{bqxz35ocFVlmmMDc35$P2!WO|odfwRvbt9!TStsO_(Fohg&0@2T5zmG_RRj@W^^|*U333WkFn!YIB$r*=h(O3nDfD0+_J*h0Tjd+poK?Bhb16m8{ad{-RdE7>r? zn2i@jsV#MU*9SLy_8;Ht@bl8E65G3SGy5O6t9>({e^#v75jNNc3+d5OJ1XCvHAsS1 z0IqVYsYRnr?`e8C2UA39I+Uw>wG#W;-ramc>wQBOLjdpX`hmi$UmS2Y4eRtQGxG&oE z&FR(8)2>ME-7$L~L!C#Lx24RUXRS)3!!^WP5Xy0Crfr;a()->_9VyqdA|Nv+ek!Lb z$(6u!zA)VOU*1CTx8|WWBz3vkFNt>}!Fz;X8V&8MKmS#u{u+gmd!q~d2I-wjOV26q zR-mvS)X#mAZir{?B1v)FA2mBWYu*-(se%~F>z^(9qF@bDJLaN(etUPXSo>@^v>G&3 z6d-#zfd^V?T3$Iy$}^yGw>>HX89PYQx+#_FqSWra%T$Q~V(7P>DwLpEqq+Mg3FjQ1j$l-F&pK4m|j{L5v5so z`^y&p`x4UxpBjhyoGNLKrWQGg7YGvMSw5Ru`UU|4T;2_g4Tqx|V|(3j@P8cg-X2IS zZ?O0!s0|23)9nO?+HR@*@D_0aE2{L8lsDR(-#T`taT+gWz5V!a!B*esgC@QEo65G( zzwi7%+t9_BkfO&66e*o~he4G_TgRa=DTQ%r=B1(pCvbNL3y$NtiDy+6%^ZCGsUbrv zUvIskZ`G4WCot#DLr_ORq$5m-mExk5)E!8)k%GCs45;dM&@JFd4Kk{x;>gDug!}r2Hs|Gk6 zPr@z+TJ`cmmeCx@^oZeFE5B&PzXfvGGX(fj8Q3MY5kTYSD-?kqGNE}>_?m=EMizW? z<7qx!V3G&i#RU7EUzu*Wy+S<^^7m1tdF$3Sbzt)XsNDK8}>MaLFaRkz>B(=cmPnX)S? z?P+Bn*m%VAiW5=ofjwF_?HVcRJi&^R$>MS5Gw$;kmZFSs7K2)u7PKGc@pm$tyO}L> zI`ye*DmbaFUv&9z6oYYJn#|^q|9HJddg2v(z+X|IISW+|xB4+P>2dY!$pYlbBGf(2 zK6gD+mP7KuYbB>9&QfU^@&CJ@HfLcKTkTGk*#5f#{xsHq{IhuHF>!6j84XYT zuUq9mKJ|-0bnOus89nWfh$_SWD(S!T;-80Y&cX)AKC+hHSiJn-v-sz*fC0M4uxx|( zH242S_W#nfL~S3yPNElf3E=;Owd_^kiwus-2fe-jqQC!%NfvHk-L}5bYKQ(Mqwc?N zi$8{)o`<*?Sm6EN2#1zLx1`OeLi{Ul=}bSff6ZfBQ8N}=@jKm$*{_3E69FE4p_+xW z=!1V`GT}W2#D4>R04BVHlT+)|eiVOoe)l&PaL#O8a& z9pKcaWg>+Yg)KwUVxX_M|AO5Y928F$P}C)=^{r^DJ6(~)iAOH7BGLRKOqc&v;9yB} z(uU-Ru`G}Q@py-U`Nb-_&W9$j9P+zPy$f1fTU&H6mh{m=9X7b?Wbur}Mqhvr_`4>j z6$pAwmjVym?0;4XB{aDy+M>EcZj)F#;j^==mP>EBOhemA<=ev6<--NG*hFj*11687 zr6%K)4%*oWoA1{3-j5sE=Q_DVl1htg?XNdEjI+iDVI3UERi z#xyHL40WpOX6JjCUKV?sqh?{M|t&R?NN6E1pxc8kj!I$KvbR62Q8{_F4NrL|fJp#|=rsz@d zIn%(mz}HSSoz>&Rqobwc`t*-_XR`s7RFIkGFyr9%6bY(ABEZa>ic*U@0&!sv4;Nfp zJUmRF)Ki&3BMOD!9tJg@GrVScRJOF34QknGmb9nNFhq91fVc*!G+1&yeF39>+eva0 zSb!5pueP+%i1m&vs;MLL4etw~$`oPA-f_kJ-Ig+8BdfkOufYAf%H~M zBVa3Hq+>E-WvU80n&`M$EJYH=ZI(7cicvK|aMZ13(_)#}PaLs$1IR4;V%0%dG63FC zm8jJ#+eq&Pcj7Iu?91%Mvm(K$zZ|9OV7VQcb{4;b3(o#CEdx$9Ha3=~Ih@cj zjfj6u(KRnVjuWeBEnL*@@9)>Qvs2JX{iie_@b2n|fI%S?QH&bnHJ>@D$9hw0Apv(F zmAOmV@#=A5Diq5XFhF>$_1oAaK4lQNN6v>BZAzj_@8 zIRxfG0n$`KjoCHkusac|s9LWk=U4WG%q5w|-1(Ab2?0CTA-rTbHnFdsU}067R5}FX z6%Zs-9wyV08#qE|O}Ww@tn1I6RxkDNILuuxK+B3@-(})iy)qysU9*dv0|;}o)5|tf z9#yl{p&Y7+T}#P;qt3sv4gS(YtaIVK zc+pDO6Qf-%sIEeQgY*4G9AB}!KoMtRA0}Zo-X{^Ds~OLfj(3A0YboZg!Z|ae*4D~D zCErl$qQgS_ZSU@~4&+#mZ;T3Y06u+!!;hs9U}uvcp9^YPv3dC-RHc98F%=xZhV@x$ zYrrk*4DuBc6r;v6(#?6mK;S0ugpH`=W@PbjGH;-hoQa*O0A`G0l~|DE9WSMOs^^&Mge8F8$J3J4l zBu}6UKl%)e85wei_rIDEFHfcWXms$9povowK%G-m7q;ny!=+~s#|o9X$7a|Tho3k_ z@wK!j*4xsMHi}7+o)m6XyG!Zly+#AX^Xq(GSCYosG>7X*8BeEz<29=T?pThaaF6Ro zGY1;;;cO%}rpvlwYo)+`mOZ?s!Y)tSB~~K^MVX`m6$y(<^eyH6#Ds%)I}jadFSKT? z3M^^ztp~zxTQ5|rZSOBKM&0}=&!Z@qh_zoYqB720@M zAl`f4yQxJtP-@=Tb!&#L{T%gIZ>V_?bJ|;%pZ8Gz6{2HJ6U-tJ-k|Pz$km(|$rJ7i%O4GotrsQ`jOi5- zg)!&#H{F#}g<}pP?v2I^eEscvaHXV&Ci_1!R1so8%vv5gL2Aq`n=&6NbQ_QQKYV!A zf!7g|fE})u2w?)})VyUIx9V{w-oA;Jk}U8_i{W^+R+Y7DSJb{(5#7Rdg)x(m7D&cQ zwqzbaE$o6YVcoR0C}-c@Xo+0jx>uQaf%I9L0u@1;g!XpIVH$@fp_4VWKCY8o=MAZ; zf8P?F>_wpqQFk2&>kV~lkJ;_qtG#{oav649VUt~Eg+cmqn1$}G$hfG>Z#D3eiWIfn z8t_MY=0@69wek70Mh(fMV^W3~V=M1Uu(3FN>u%Bx(cZo>{#;&}CS93{lyeN3wTU%6 zKZ4REhJe&d!p#yib3NPTozc}W(11X2(6JP1@Z1l@+%s$ao`u7+ zraygpv-d0kDNB(pfv3o~Y+nM^uCNWls8dXjTiJX;XCiN`NrR6isdS63n;|6Fz>=Yx z5Eh8otn6Yv$#+@U!8GTRji}Mh#merg9d=3GRp!Mv*!C)wq%3wLj*SnxkHh+`m0>H> zD0N?F%$2Huk3}fzGRB0D>?a27KM@ zHl&P>c#hHK1~E2qE*iK1>!Z1wklpz7N9NZ%hNp>;vxVGauFpN59@NLYAyvPvOHy_g z_FX3>uVxh&*g#*xdn(aRV#_Ka;6jKC_ktZFrvRA)A3bTGaYK8`%pX#yj zZNoNF(UhQpNZjS&IV{JX1e`@(;fV#YD8z!}} z@$H*~Q)qbpksQ7LUZ$!PzljC^MM8;A<@Y51jpawaO%0feMag3IuLd1>2roacwJ$Yb zKMl7n1H^Z3+F)K3HPHo}Olb?}UI;=2ONY^MU5tOWfkfNi7qzd@q8H1iI-D%$f)hVn zKxlH3VWTTya~+wi8e$c*diZ>4I0{VpV!VrUq^EJdrlYKDl})F&TQx7Y8rf|*VQ8$# z5uyp<==7;3gvJ< zz37Up$U*Wlt>UAlu5#+iZw!SN?N7ypGp}F?%2l$0{(LD?!jVZ~OuHMN6x-0Syj*sq)X@fm3-9;F7pJjb}!Q=CJ z;HcD)=L8s1`zvP4tZavh?LqVyDs`vB_fQsk9}f$Grfn^ z0y&(QsvVZX2I_V=fje;KU1@%hvg|r(8PEfNz)o0D=EA?ChYpY+9h-kt0(m+~UM+oJ;=+w)Be}VGwOTuWa65d+aYLUvX*VW}sMe!-c=lq6 z=7u}qb6=8RH-?2~ofeIbzO7TbtncW6FgszJugD7byf)nEgs-I5_H+ZDL0eHY)V5XE z+Tw!tV`?}F^({Gt;H*_DRYv_p@S&DgH7mC~8-nY|xJ&F68D+!8%PzU-{VQ!(Gr{+A zZq$TggS%gRY!#ol=I9%kS5zr^ek#ej4*BlYz#8+NZG$s3b0Z5b)+>c!l0vO_O@hlP z+l+Sfh&cHZ*r9T*5n9D`9#6}|D5`)m%+$Gt)hmxo_o9M0q!ztyob z(EP_J(EdBXYxm1$3V@86+|(=CRBkPtqD%g0CapTu93k_&fr0mVvzF|T-}*!Ook-{r zb((AJw|Zmj!5(#5^DJETF#fo&8Oz7^Tz?yeCN_IiZBo{{JNP_GJzKZXkh-1e$eHli zSt)upMOf;oUe0H?!wc%=;zK$yQp@s|Baubd>yVvUueVJZj6|xgZ&5#*0(zVvozCM+ z-LsjvxUJx8HA{Cf>HA;t-jI9QgTBZ%we({T5|rDbCtS=C;S0)xOI9O>R5806aft>Lvvz?`Qd%OE z=o5a<1z{=<;8de7C3|p7{(qM`&}y-e{06ywZC7QgpA|W zCRt+B1UYUGS)Z4hzI8=p27#sa+B;$94<&uEp?J@z!=796>|G`_w?nxWiSy?lYS{_< zIccslQN;I<L2$XMX+N78906g5;$ZdA(#GTFLf^yFVa$7CZx1`gxWCOhua zp-=ON$&GSmjg82M>}4Au+}%$JxC@9Go+?x2O;mVAb|gf7>?dC~XQ-Tb{zc%y!T^!po6Gab`eOFC4$@>n{23M(H* zg&Bh;zNF~NTPN=vL-mweLW)6O<%WkH;WijoiN4PtyL zoa~i=zRiJqy{r5xBJ|~!egQh-;*6QaOTJKBML9P;LH3}Tkv`FvwG~i{jshj!QE>en zxF1Ay=n&qjT1qg8>t09+Sr?VnKuJRRSe&md?gDW*yw=m>*r779(M~@OX$pvVle|mw zip?{Y6WsX}AB;ml6iq=%y3qsgx=!Zj%}yZpiZEv9RDGUqQ|h7woOqzDL_k4;t+$_i zdOqbr-H-+YvxTnrtsKd46KyPgw@hNK+J6DKs2;eceK9nhDVde#Fp|#TV4;`L zLQm)=p-BmWQ1XVm@7?v@yVreo|H&u$mC4MUGiOfuo-?{?K9$5bac(QtEUb-jY}@HV zgg&6){mi*r@HZ_oMLx5qTqPyP-0sr3h0ckOT=+7-UKT4I7oM22lzbtQN!l>i?1&q+ zb{}OmBhoxiw%f(Wik7<_{hgGr`E`mz<1)?UoK8z!lnrIt%``~^W=^|H z-P9U6F)_{>V=rn8#w#l;A6e{&goHf0iov<>f~GZ_Eed-Iu599t?dI<|4 zzx7=1;mc^Krd~x~@we$bqPKagmLE3SdP_hpG^><1TQ83fI#7Mv)L(t01}XcuFHZ2@Jkpe@qPc6k(^hJk3Nf*8sq)dQVtGU3Gq`f^EOO4p_o~Xx zq#jyF_hr{)iH>9HZk-0}%*N->2_bdV0;pBZgzb38q5&b{vw8?yr}NIqA^&E)u}l1G z-@?nMHbOaapVCEOHEN|Fq#$qEL6mpWK1KVhkxB8%ZeA>Hv5>(5i9*x2n)A89R zT7wO>o{Y`ct3n`JBC^+Zv}wRASs5CqUy0`%I(Ojb(p80wQy?NZN&sW}^A@|CskT?-tp|PYU%Yi8nj$Kb6=QtNO_u;Ec{rSO=VeTRo!G0M8b3C@ ziM6^r#`;aHB~>H{)l#``lYuUtNleSN631TJU`THfB~^-bUB81LR$I$~`g%;co{@M< z=7C0pY}Hg$8de>5#*}vH=gE|{deDTv)3YA|u>`{6?XxyLd7Jl5EZ4UzbR&;2!I=#A zg%dl!KH6+UHquuZ5-N9EmnxU^I=6n0z3Xz5&A<;*(&?M8B~72ilo2~Sz5JG2=wXoT z!#np4u(oY9GT{Lw-Ph%9X0Bx0dzMD&l)||VY@B<2`zMmi8?IaXj>UPm)+h}`X@w$E z*FJ8XR28g<_7%jK{!Vi{R=kmNvgrcA1_>^rx=HZz?S6`5Ldl9sJ{+`D>3oHPVtpi@ zRcj<|UU-D56&aO2zxOR9^PtE5q4HmB)8AcfGHl%w)s{~~KgHjnP2`P0j@Zac=Bm^8 zElxG}jN@>afB{aWRW>gL)x!T+|8Di)IwuyqqYnJC>9qrGrzghOUNr_kzjFsjv zDsY`lfqD_%+-pPLT!m)l=6l}pn0mocO5;N6mTTolqjx&;n%5A6K`5x!$ftSCOm?{~hF2#8VEY{@ zADiwcanZYAAc0XB;@o<4W3TY$8v*-Vh!kJ5gZQId`li(W4sQ)f**lthlJzQ`8}TbK z6QmmTqRb+12_)SGv+@)f)~o*Mb=A|7X>zMD7jJuui=2zg&2`W_zUiULAsZPH=#>%{ zxfZc@Gol9dB4%hUH_`BsV3iQRrq$-k-$B4|K>>oY)-#`p%?`lbNjn-G)|P|p?vuww z2pQ%~k%DgMn_waenz5wh6b_Bs4$b%9GulPnECo5 z{56dPPtpKuuk`!6skiz(9o~+zRb68l2KBo3sQ%u3)2E-wLTVm+@TI!MDBbTWm1-7K zG+$i2(Qq}WJXaA6*!!ACG(*GXDnoV~M?3@RYW@tTQ;N*CQBVQU92JR$YMm zhx@i%@!38R^hn~x4&j{_F8Lo)<6L%|lJj#32l(4i@-eY7m}Pq+FyGi>y%9tbstvm- zZ)y6&(}%S9c-i$nRYt-N`ysB52Br6#Ra^fuhYr)a2gL3lMBF~5F!2q|-b4#PU0NcbsqWp(Ep)0xvGJReGUdE_cd|6)6>QJexf?JuebH=9@iSlm9}l(6*q%V z4ezXa;+$JbmgtloP7N6(@EAZ5GUH{u`gCdaw*!xD2g6OM8wj#o%eyIzYn$fncE7TH zS?llTm5dcj#$Q7W7@OHuRnC1EvfU8VGK;L~fAc_?Kdb~n+%E*O8`v3wEIrUFq0eAi>`);`i_k6K8SI_cy^J6)O|IWTgmTUkZs ziCW|$bX`ex!{LG<4T@MmBT=^Y-C#uc>ea*)*#zkmSH1N;Cu>69-_b*vD!2&nIB~lP zPFv`>T+lgQ2dYKTM|GH-M+P%h`Gia=ZvZb9Zo8?ZOXvvQZE2V!Qn+^A$8_k4*nS@5kUn8S?Qi1M|k)?5VX#kMK0h%<|B>EjS;dX35DW$JI) zM2T?uSg-MI+2#&X1kxZvRLmBxL@b{xLsImKsf52Gxs?eCzP+9M**29S8(%JyqlzTY>jPP47G1Q;u528V{H2EybYHGppeX?1SF96*gG}0gk+A`ao*l675Lf^?O*?;v!&&k?{4r3m@1{s4ayB| zr`H&B&se_xw8y*Kz)Npp&ROIYOS1kByK8sBjOF#am+Gf)g)EjK9SU6&%j)rRsfE{_ z%acJ!W8@R{zV+qo%OL`5+%u_ctMXB|LU~&aZ}W@m?OCKLyY}@Y_4`$a8#oj_u9|8n zMN(>S*z&&5;r5{N2xBN?=b|w|B>RsCK7925Y0(x*g@Zgq&TMW764t$K1N#GB0aT;l z6J8RLtF7o}sg{|pzP>9S+l;SC)Bq2VxWv`@nc`KN(z;?0NbQN<$ESAk2^9A0f3JWD zzmOr!Wjc;Bjk!4yWfx&AC8ud z^$yZWX~lObM@&zA?&Irin`a}XTjZ?4rAq>l`8FAfdm&fG+l_5~A0Yh+4Pq`FmC4>< zsk*5|o*`T3P2n>YK7Tx*)jh)~9pMCRYo)fckqqyt9Ae2ZpCTi2WtD!Eb4@ry*3IJy z{z$kgp$=r_hWqNBH!pgh*elGNy1mzaX4)cjqnDkeQ)`F8R8G&Ao`&7RMr&q?jJfIR zBMS!nPz};+@8H8PX6o|E9Hs>qG#8#~K3UmHAMWR9@YZjj!;1V?Ub0bt-EJiE5vnQ=vwsKVR-o-7=toGE!tZzgj=kb^p-k;-O1M{ zR6@c+g@gD`TRhBF`h%kpG6q*fJ?;n6E_Tb@5&J8 z14?q$2LjDQgd^I|9gJhT^A@;`6rxU4oGX#5m7K3)>630Dyc>oJ2d?KpS-J_9E#Mz! zn9Xc#oo!DtaK^(qz$37fUCkqSUdvWu`rPww6c`wYccrWSzP}3(H#X$A%M36Q@uda29k*L9{C!Z*p6|~YC+xNa5*GYA1>QDk zP7_|Yvq`j7ldrwnh_Q{{+}tz|2$Yd23n5?I<4?L`!M1n%A991mIQF#`&yR;pNwQS~ zhZR-!(?M3egjp=K?O&l4N?weoBSSBH;OHB0C+~Nu0s^7eXUz0I3`P4qNGBrpk->8T5#^!TH;%Aq9utzOQ zaka8q2P+4?X~}JKvQKa4T@5^g<)u8SVY9_HUgbY6Te+NB-0#Kz*xA-Y&~y8(W#PM2 zKV65-we#maBq zsNRW`Q&shZLdZhPDOx0(21T97@Y@wg;{ciu%-y%Yw#`ZH?{CU(&(&V`sh!p5ByqvP zJ^sO0JggN#(v={kj0rWIZ4^%GCBdlAHaXl6G?}&&##zcDijY3nh{&RnHDow5>aM;k zO*ZK_TBpq~wxqU`xsmjd@C)(Xthb02g|jUR`21_=ptBCEY{itn@x$+`_#dO4TsU}9 zZSjZjaWP@0Nyd%c6g)WHZXe z{G~c@A(mm3Zf|~^ZwuXw&0sicQL^!`yj!d5JStyeV%mh6P>+34Ie6iRQ>V*$PC0_2K0CsTmA~ z&pv3G_0~OXy2I5N%_YfnvvVfMV_@L6ga>i@7x0S?9U?K`CTD9izi#7sHhNvx&t&}u zzH_e0)pNSW&+n1}x1mmK5xCPIb*`p7wCq{nogB2x`r#QLNvRM{pmTgRjg%$n`E5(* zuh3gE)uMW?E{uh_w=-<(JlROAo)$Kdyu?`DwCjhhc?z>~-YnYNm8UH3Wy{DQ?~6!% z@-o}#8LBr<84`7yZl>6B)|2q~{$Q$%7cK!=j7TAtqF*-SEdBKiW}a$Ve(V-oW8V{` zZtC|FuNz+x|2Z|=ZwgZKw%zZXk^`) z?Oep;a7GUbi51h@JM$jiSHpUJY$cXrN3Ipjyp=)ZG2lir=A*a#FgoR8iSlk7@$9bb zsLS<^6Fa)CF_SRQP#~=jLx6nNgC%>H)MLH5=0}v0DXaB-v+9#^jp{jWkuL%VuQlI_ z=sD6`z~4P!uTOzJRZZ)3`(BSb`uA;Za?fpH+9#Pm0!F1It9Bb~W~5%&E84pEiJdkL z4GrH(`W~_OL6p9U_2Fwq0Nv4W#8sN36jlcC8*5R<+Rsk0fMXfNUN^65-$ONt* z9^asDb0Ak@qNk6Y+oLH^m@krr7Ue;syw!kT4g5B5TUaQ09wn3h6J7OZZH+2Z<|00l zF4re!vCKd+q!udly!B4MnsmIJRRCkYYDQUVKhBAPEA~e`f&cMg-NHvw)-koleVkdK zTaip)sMxmjhaZ52O=Dvu1N?g8gmic)SGy~{_fc`+P?wq>VVe8AcoDXe6RD9^ zGW+c)y*az#0|V#6+Jz@YN*lM?R}Y@i*SZKF2HET0uzDO%jF|o|MlcDmd%{j@(ecq? zYviIYkFp`FEwHe@ck)gkB996cUTp28a;= z^P@rin;isf&4CXdhbMab)E>%DSG;(3av;4WFyhjDNx8FlhGwqRYgTLHa#ORa4Mhif zNRdsr91L!xT)v%riRiPvwY)FN zn)JSyriYa}Hq(+d;F@v_r4H$8?A6D8k%scMI5feII__MqgonYBPPRL~njq+e(vhxR zyBsg*@b1&TH0p8UZjUA}9p{TW-EYMMhvxU53Rd(}i@Ydh#yc~mWiuXcE?1^r7C@Nu zgYwml@b{3uOfDl|_S;8X{NAuU8!jdfS=?OU`V?O3n78usP)J|b1bgSUz>TH~*GOOY z=1Aqfgv~@hYo_H9XK$mP-Dj-fwU4i5S?5>uFeE{4u7;TvVYaQ}*W;9Xo%z|e!`1q{ zTIoF!UwtG6U>XqIzk!!`~0?^rfZ|l|o!PV-H zSe_+MCI2qA=s}U}#4+0PW#^2-otEY)?Ihob*@%cI=2sitR6d~I(ua?JN*!5nPv7eW z*cm@R(A4Iiv6Xvhwn1xeSUX<((4yZ0TBmMr*w|AU6M3cgnByf19cU+UXEjFPQ@Cwy z?lST1srn>8e6aKMj#vTjWt``I^xoXw5y|BHYwrp4 zcMDn@25)6iE-uKYLI0ez@(&rO4Zu5H@ogY({h``I6R_0bcjWPqZ;00W{Sy~&tt4ef z1K%$_0M5A`LDN^V2E|2mcooA)?SNPkuNFh^EK`}PnW<$&l<0Sp2Ymx$v^AB_nre9a zZHPUnkT~qTZXyPxo4a2C?p%8T%e_Co@T7B4?cPVR@WOEw5vrG4>kTxexmFuppGdTe zDR0%wYmAvjKdxGtvLE}Z;bt#P%73jupUqR3#FH=Ax?iz1!NN#9BhqX&~_P zx@Y&omGv1asJM4cSn%L0ZDV9>d5@<|K}Dm>NYA;F@1Ms=67*X;bTsQsj`9o%t##S- z`C09)4!!i01=_#7s_qTwezcjTS!+sv3mtN563uM)-nh2Mwhr7xsZ~v6Q*ImW&w8^6 zdfd(~p6{d*b21hfc=1Of|90pT)!qn!Jei%IsT}eq7xeU~p^+T_IEW}fJl5C=@b zqATS=iek6#E8A08O;Y6KBfZi0$|@FLZ^BponW0yZf1Tb9_X5r%gad#B}ga3vO63l$td=@N7;4D;bGEAIQwoAVl&E5E^Y zCI;|_tf-Ko=P81J-Rgd`Y$C3z1+M+$i9mPij~CX>?vRJWg8Vo~)zlhojMy0;TkXAXOwk-p=$*zsG=VvO_;qr$4FdZA!-a8ZOH#{mhYOd*H z0h=v{Ku{5q<9w4+yyrf}^Pw6)#wETQQPPtBHBac@OvS_o{}i-^cS{M7qs|&A>pw4dj&INqmcvYG}+^b`!D+N?Y*3E%E)ip{Q2MN zou_E%Z5w+0Hz^v%{RAcCg4XeqEo*DDQGV*0$$5*`nt8Ai{?YCepgE34n-C=>pazlgJT?Rnci zAg29@s(t@Cu;0PK|Gw?tuG(^ZRE3zFoJgdmGdK4Kc+DtR=xFBcOH?85(A?g8_tx^G zMbUn(oaN88YxN%CB13v6B9+nq%|E3mFo%zRb(^34-mgB4{RuBC85sd1BQM}zW`6zOe(3Mu6XY4~tNQ#sII|_ED(Swg0X2)OgHbBLIL0Y2msU{to9_LZam&1Llq)~fcuMr^=lnu^k0)>dcpj0l97RFJnC#qp`Dbr#Qgx~zR4>T`mLz6|0IbW zT#=a#bba|=J}Xl&9LE%GNP?|;tToJg+94!31T|AQ8%c&hVRx&*JHgo@^g2&21p0d- zc6_(hj6l~vrb{z4q8Z6rT$LcFX98mBt?$|X(51Pe^R-&kN^s#9>>9XCLcmRT`j+0o zDR?;T)CF&48R=A2j9uVqEl5~ddEB0A|Hb%Y+x}zz5}6BuJ%k?XUo1051Jm1OYa7Jm z=HHR~Ven7^nF$`I)(Zj6TGno0#BV|sLYQ8ZyB67B z_}Y+-RptYGu!Sm?1A$Z02fi2(dJB-$q!7LCIJAhJxAoci%(wQV%O@2b&*WMS>r5$? z=913d2>cf*+B&Fk>|~lws~hsKi+}k>uVy?8_Ae?g*HiDMqo;RYF9lJN8LQrj4eMNd zp8JBUDE2FE)@4Kk#libt0ct)Hd5fJYR&DrJxQcR`v*{k5==ABW(d=z-S$=@ilmXzO z>$kJhsa65{ylDou`z=?k3=%!p#*B~}s={0WcQDC>dF8gjTHZh0w^UbIPMu}deC+0G zB2PC`N3RaSDYiB5q;8tXMUhLQKAo+&s@`qvF*J&ViA?)9Phwm}%kUz99^mp-9PwQ4 zx?cGMP5;PsIDsT4CRSswXZHBiiN9pK)f#B1hIw@RGbt_aTHmpypnyPi7Uu2;+{AF- ztJuc#M|S8hm6$(dlEMvWm3Vo15WI=!kKQASFX7ELbN}_s(n$u^{ql#kn9O7!(Evgi7 zXg*(Ss%PkO{On!QluaqP-Rb1rapKLNn9#TuU#PhB^(o~~*Zw#%9IqA2&ILTqdA%yH=Y=&9)4#d~7NdwS+ zegz9(gsIa3Ln0J>B+osIe7A;ZN4KwB>QWIo8CGzuHkYa% zp9+I)FK|war>*BeXk}XKl`4gxEm6he87B4y1C7W7OHqZKD?iITZiUw$5WVVIf4KOk zy<8uP@9Q|Re(4j3#yw?K)nd`qULpO|4q_7=J2y2s4+M$MdM%RW+5y>d++l1_K)yC6 z39r8AvEa_Y>zuhbD_Qgz=$CjKp)}2cI{PY%=x0R?XJCd!+&k0B`#A&(hu4#v)zE`m zMnj&huC@WCbw`K2Mk4~!KdPS0zH;}oDTh*m#O#hMxBYcy59bjlr^AX(s5ybC^)Vjz zB(vF(i1v}Pw+l|f(0JMfc-YKB+o*o-Q`p#L^5T<$SBsj zGW_KDz*-Xt7k&0;;rT7fE6D?fMv3E5aNvnAW=la}m1iVK?D)no8i*zplX%grJnZ0) zJewW+lHxnccrZ|VE0+JXa6r^B{45S>d4%$Bg|C7iw++0GJULEO+;EZ)ojuI=x$ny; z2Wy#fWQ(G{=ih0`II>CPpqA6VYO|cWcZ|WF`b(mN7XUuT_7v+;+qJUn#9YVl;zn$@ zsRs<6ZFFQD^$1+FP+1U({c-Gr%mvUgw9uiQU*#Te`)FeqOpl=>Tejb?og$9DU&kyq z`3Om`OOPUm@vs#BE%lpUjyKQh*-Rj0g=HNBUqD+>Pk3LA2@ghNLOS8+wPB3HH&Zfd zVG;ThoBaHq6!p0q3`J9Z`1ZW5hEg_?if4$r%YmM*y{&U1HKH2rk6KRuQf z4lX!EYR#Oy2A}4mk#iA*c*`oKW93}~En@p!BR&|oxFVC~Yzt;ALn?Ec=bboTg(RRe zU5Wt{oQOKK3`1!(zH^Tm&HAsXpr{FQ#Wh1f2WycK=~4yhA;4gQ*yFl~ zT1l?gc`tiu4M_NIrEbnAyz^-!E$Zg+fahAa9@lK0Kw(F+hyjnzJFtwz5(Xj{-}(%w zXs6~@)O2G!WMg)<>22sSik9u-kv(%qlnR&F`i!{qV^xX*;LtodatC-EL#|Wd`%0}* zV^p-2NZNjUkx8P$O4YKRoc`g^R;pqXhgjV<$aP;E(}*I<6<>Zd@3D#fE{Pdq4NYxt zE~G(#Bt=J$>|>CSo`GM{$JXv^HI>y*1`f10JS2v zJp^JB&Gf)7iZhN3wtaldzIQxvT-mgL=tyv+k;5^dQjIyU1qIkL2$>PO@X+3Hzzn zxzoh?5RiH@sT&%0S(*AiJ1UaL5#r{~JMg&ms5GD>i8U66Mu1aVgb)oysf#uT`I-L3 z+8zSmXKin zNMtV-qnV-pl;~`EJWhIa-b3=3k4LVVlybaS709yPPYm6N^1Wg4v*wwJ#IMyXk0$vA z8(hHU5Ie!r*GFek-%q$!rMI3|gA!rYV|7{}JAZ>TsY6%kRo+#LN42$6a9C;N0r~0X z>{;ox_d)Nz>&r@=vw->K{gYjHhs7PVz>>W) z0?dX;V46XdeKT#nQETn%MuVT}1t3Fe5Io7#r0YIQO)Bi@U?0pL5edFJ(@-Tps?=h{ zveip%6HIc+@K``{A4Lljl5E|nNI%)VL$2ldiEDgP{D2t76O z|H3nbe&4yj2J?5wz@%pG0>EluRgZLXTt>8^A5S6&SQRaaB4n6}ji8}Gt!a2N4OS*b zHg<}hK>5}xnnv?Eu-{ClQu^a&vDlMnM(=xoM7@HwzI?EWEW+?k#U=Rt*m56soD5eo zIx#DgW;yMFQLHtHv?c)nLIcjVnAq_OYQFtKk%d=R()=vjg_b+Wj>AC>vBKq1mOMO_ecuocdw=^?B|u zj8Las(ox;P!!29SCfJPz!K}}pSv(ttljQmDt#(Qa368GQ27JCxUD`^pcW$%{<1?@r zndM6h91b@n@KEkzH774km6(a0ERDPQ4NqsI$G6Aw?RGSb8uVHwjcqJ#v0M-y5_!~t z?()olubXj{<#q8L8$+CQJ#M2&?}q$f+#13nAu=s{hNLuT=*~cNbEaE9Ifv7M=c&#@ zTIMc<$|B0+xkdi>kA{A0ct&cC)o1nTzWWftnhodYn-0v))t&}jOk&$5_a1Ee%7841 z=pV8Tvx76;EMb+28G``q)G?eCwK2|+Hjr>q*tlB%^=wI`Feuj}q-8|!%UOc~`Px9# za!|Xy!G>D^u3H=5!+qA!QC+=h>BJZawBm3iXt))fd)}+QXh)qVJFm*!43v+2tE-L= zGZ{}JU~pM>Rix)BZp%p!$rwL1@|APg+Bc3Or}5TnYvYPSw1fOw;I1;N0Vbd+o*$-B1$3;4H=;Y0=K1S+;0l(;+td>5E# z1eM`!6s8;*%mmeLGr>L@b-Ef_*p%bo`mHBfk-n9nsiD;<2XtahLaJ2RH`b$de#P1G z?s7t($IXV4^9FZ68?`Fz>|%zGB?r~} zf=<|r+@!SQnr{p;*T&cRBofdxc<8&1QrS$tA`L$1*#!q2Pm!BU_@YNJ2OOThkGVf$ zam6Xz9obxeo^dBO;!(qA5xJ#5U;MKlt8Mw}M6GS&)RgW>=<~_eSzok4`(iJJ4k-aX z3Dmm~kS2CE&vYjHP0r9}#7eLz<7A1W5s{Z-*1r6vZF{OgQN_aJH>Dnm53f(u1k@r) zo)``?fk%riw|TD_r;*F^FfO$q7gsocNP~I0&=Zq0Z@)rVebzvc1ud?iEY|!z;X05n z#7+5N-KkqFa((T60mi{vb(_h?I#FOXd=iD^iS-ZY3)j&yDCQfUoc7gp_4no9R0Lf6 zuy!ErrAxHesgWzv4+*96D9g3GbQYO+?dIh8@vZXbtku=qR{)07yx4{?#9Broqtgzp z!m;}**zTdv-4a9k6p!YK@(W*vdBUIg(|XEj4@}-HXhww}Y#c2!fIpnDp!`p)CC^m3 z1%R^MN8W|s&lsxcQ+Yb-J^k+)yXN-Yxs=8AF;Hr$f_UQY zwWiV>rC;d12R2KJR6EnS(`@O9=-W~pOW-jMz7c@-ZNVJm?-3QH`Ynt4uYPyo`h4r> ziLrZ$(+owBNuPfuFDiKPna+NMYU-_@60=1=UF)EiHnVqjNmd+i@oh@99wTO-1vwh| zWZ-hm(xib>1_Rh~M3Obu1ny@yMXCguZo|j@WyPbwK+}AxCSOnXK_RLkWpN(nMl*|T zYOMf5T8N_3R*pxRSSez+62hbOCAGO<@yzq~sDD~&L*V}KE>?&NRh1d~^{iw&eEsr~2&7YUlY1;Ys(x4K%=q-M zjot^@4ajwH9MmkN>%63B#JcVssaWgzcsJ+mY0LLKkbT>i3lI48DhSG{A@r zeQy}{Uz5n;kcNS*j^U~SvY}_KzWcX>t!XAJ@c*S61advgJa}%yZU6XBM#LX}j=g9j zzUvuK^ni!k>+?IZhzOEP!3ewc5O+{*9d((>&GR`_n%f{I>th^+zwO)d1s-`Ih#-jt z>z7alwCWE(P2QT^3h7FiV5x3=nzdN9oEAaz4%7JV*Dt8*Mf zxNs&MI_)02sm^)-bk2aH0Q4-GNwkpGsM2_IV^rEW5FuiD(WS}PJ+xFhbz1w!5toR? z#aMfPzkPi%F(|3DC&22wWFtK*CE8q8G))UNoM>=oNWIav>lw zn|ey5}lOg_;}k;&2{CL-y^ahPfX&q);+)&^8v65(=0)EjU(lh&xBIYvLj4LaQqYnyL#>Ent| ztNJ&~w*}Pi26FapKuG8noqsmx3S^ACY42*PaWwr&uKn>RAm{bd*h?JWbs zV(?(jXciaPNh$~bO4r|>S^}HAH)9~I;92$wzLnvz zYK}LWfmuj{yUgparuqEXqgdK~P3us*j7(pAj?u_bPtx?2%JP*u)q(A``sbKM&%6zk zmgeP?^Lg63i;!zjCd}~gpIH#?BszBI1}tp6e(SfIy?vm%Qb*;-ILdI`()4KPL45ZE z!wN_9aB5g5P?~ubR(=tCQpry=TPl|U)F$#w;C1Ot1TzCcL}w={nEvgweUC2kmpfW< z>BR-oxy7cWKTF$}&v2U)r|b)|pD+HAXqWBC195x3faQRdv2o@aWNt2#<{GJkB`wW0 zmod>}B_*ZCbx4ME`Qf8H{kE~Kqc%o&H@Eufw4@XV@V&HWuq4mjnhbG~xjudtoUEfJ zy>$j(-wp9w9|UC#o_(Ei@Rgy!HYP&#hCrwcI5+na4->YKwyd~RWNkib^FWyQ0qE{k zRJqZpt0m9$VJzQT{kYoZ>34rj3Ex$}_cnmKqkhYMOa(|0QqDLW9FB2Pi<0&j>@`li z5gQ@8n>T)jBVCt$=>8AKeedbChJmL2jaA1TWX1heKr6;2AgPFtK@*#aejC}<&%`5o z;|p*t5MVg!yv?N;t+zEif~Fx>ne}`Mk@8I>pYf1^1gu(9(@UwrT=jK;C;qOh*lt=B zEyQ2lbM{o#9lbqqf;y6LSB+>5lF3|Q<$9m0rcsZTZlTk4Jnr33>Vi`a5$ z&oi|9Aj0)W7aM(f*HWRb=F}!;n9uIrG?Ix}^Xinc?*))M1~jgWgMy!XI7G0-b-r5YQ?9 zFHy*G)Y>(ce-=6gbg3(JVDRaKMQr}ej8c0 z4b28(Vlb-BrGZxZn=QUj&bbj)b3=}J2NuvtXmI z9UamtauC-r!`MX1?D(nbaqv>qdN0sL343JdIPqw^b88rQk{gBGynZpPLk>APQfxRq zo~B!8qma)NQEyvAvszzu=4Id058E3udTHSBMQXjQLA~`z9l-@e=;_=)Uf5g7|DJ|6X4bf`UEzfmI=@X1KQFho{m!51S z4Uc5gZ(#NoHok?q39o`0_ZUyVz7AaKfQB`Yr05mp&-_!wEz_~j8T^9b7s7@4tEqxV@0I~2Hvs= z6$_LI@FlxJrQSt>bMtN(KeW}SJhFM!oLTFB4xIkjZ4Q8@CCJsQTLl;niWur;4KPW4 z2F&j9KkI#@#wtm9j8NYmc=wgYjJ|4aKjj3v;fAm7>1)e<71d6J?b7pDQSsBj#Rp!4 z%D(VF(-U41N;33)qIx#Ygeo+&*QLF>qPxvsfv3?yQVea}))nL-7<|&>Y&1f?wj&LeK|Wa3SP$e(wzGy{E#^dbD3Grjte9p5+4zI_-r< z7vC4wni7y&_viRvaHD7Q#llFC50j5hr(*3r%5k+(5w$OX@R5vJ%(w0JLz$gT6|Ixc z=*abk(Cs=|f_#79=eC}aT-#BtfqW;+v)vkTE0ES)tUkM5W79S+fM*$SY|bFA_w^1V z083wvbj{$3g<&^H8?iv3p~7r9Ca4s~`qV=OGyCubI8uLS;?r{jJkzm+8LFtrLTQlN zf@?0iQm_C0syo)veMRT7ZwKKUcvKF?ZhIhv~f?y!7oP0=u4ZT zBe1ecP=H-vS3Y2@z>Z;0OThrG6_FNT(5X^V5gE_m+&#Q0PJzs$2XStkJQk%HZ}<{B z#tu9{x@hiOV>=J5L(}>{36vOn$Vdm+`$IO77*l`P9wp4*IA1V8i|;f8s9CnhR%fmx zmUWTNc3b_S&m)Cd{W8n4=e>Q{O1)ZB4{cL2Jxxn@hDu)xgM3YRr@zRo^-Yw$QyQ5c zqM~@Y6WAJN`CN!uYcj(|Fi`COPpTdM3AVf6<4JkRSu-lT6$2Psh&@>RK;!=Qi5T{q zVA84EZzKaa_?MOCN^O2bm|}XV%l7zIS8(*))^GqjrBrVysn9DbFV`KRbsR*oQd`Z} znOpt?`62pF-mfN2)=9^g6Nr_JHZ^(`4X z8gCWA3J%1HsRS8+cu&Ti@DLjdMdj4R6JPz5POHB~aSaU-F9_+)9a~nBsoZU_KZ7hM z>}@X&hzAZR{o&o8Ju3g<#!GG)W1n`njd%aWJ3pzsbC<7v8gT!kS^m@QU*D+U#Cb0O z?VSVvp^typAVHoh+27q8@DjT9do6(f(0s{roLaBBQz`KC(*L`5|4mzg2>oAzm3}d^ z#n*7y7EQm6b2mdS)4i>)x_=dr#w`Rm z&?KLCWcXiO_&-dM-L-R%SoixJ`u}YxKDfmOHr%~M`?GHLZ>9LZmF#zL$UDcF>(4~~ z&#(O4Od#r>veE-=RUbi3;Rl`8*c7yG&6 z=aXd|i<1T5XDWAKf4=j7cp3M|m|~_!3wfXOucDhj6NQG9Ac)1BpNu{J=^Ywc0jR$7uTy%MWIlS z$N6eq92^`9Z~x|@)Z)AP5&uAyv$n^o@U`ZhV$*nN30Q8lVv+#=%OxmujI-gYhJ>@b zfpK8tJCCikp48!``hhe?HJ9o%W6ZfP6Nl-Qt=(>xEj7>DX6H*Co#^{YJ*y%1j}_VW zoS?@~s4R!B=ie;Re~}yzDs$)BP^i>CORnjI(%zvR=hLBX$zGzxY!>)(-11_fh0p}>`5yK6Q(-q)=2P4Iuup4kszMI{ zvTTa(xp|t?p4(~#`VD4}sw>BlV`OePWCstSM8T}6!jQ{AGaVXI0GAb3_T!+H8h;>lS$q{lgXYZE+j_* zUUc*Oyn^!TxGJlW@oXY85v7+UK_tafyEIPiql0oThb2(+E(E;CirV$DGr# zA`G2KA;u4UW09Ao>zvxK_X7X7SPU!i%f-pMXpDxlUQBYzr@^?>RlP0G_?JabB6#{q zpfC0BiT{H(IGE}Wpzwb}$UU1iaW!UV|{eYafc?-)YjGH^ghW}S5{HswUs9M&4ER%owr9LGICVHp1;ajz@F)( zP~0@@<<^&GG@VrcBy_-2@1@RZoH!)jkZaw3fwtg@p4R%jqpAZOxg<64s$`*>ZWYuufAQc$X{BpT);-U( z603YpT3+be7wf$Y;IKMse~Pm9>Qa3m-*_EoqhT34pL=T9!1jyys(--Y1K9|=K7k3Y zru<6Q2DXT7Xlj_UcRjFHHy;@pu^|rykX1K%g6Pq!qoVx$RYoaTidFP0rJDxAU4<;=k%xV8?Adb3 z$w??$biZE0(UyS?iLNj06Ctmim`4$mwVv(;50)BoXcm%hHDwmG5S#V0_b#+9Co@7P zMYZL(2{L(=tPU62myIj~KPKz4+SqeFWa@rn!H`%Po}6T)ow7xBkejFFz7_pw46?pk z)hhl4(%nEwW<;mi{mGs5f_t4%&3*w4{&KFhh^Oy{il$Ql-}bDySfWQYDZeU3%{!6akT@A|M?>IwU{{JyZedy@WvMz4s0`&N*|= zoH;Xd{&(F^_e<8hlJ)NFXYXe}`}cG~s5x>3;%mzb+}VhKnL`r*3^fNcwP7C1KkSk5Q{Iv zlEIs=j59=OQbYN-4cghH-PxsdFB&TZKrAooJ%?@4S+NccyG|#c1g=ri%1`J?V^E?RW5H-PnJvJ{;7BXP9u;&5(GgW?forWK0CR zF+bYNa|-w&yGh_`I965IR2ytx%0r*p zY-3Snb2c~<PBQiU@v^jaBCKz?yC~uYnWe9lM#e0)Qlxf}b=i}` z4$%CVe(Ks;cuKj2>DM}Kx|}FW;5W6Wr|AX7r^Y`v!jvZC(SgH*<(N$=Ah~bdlQ+Y# zb5if_?v{=;{_1I(pW@`YLRu-#c9Us48t`}cGbcCqsf^p217|l?lJ3I{qN)O6Ayh__ zFr`HKw^dhTs_qo2S+>BRQG7;fgaLFpr7O=C_pR)Dh)Os`rL_6vs#kJ7}y4Hs4q_KSXVrmNYY?p|Haqr+DmO0;;=EN6=6 z_LYhJnINtIqKwC_!Q72xjPUtRp?Z)0l;y(;{&Nu-x91N{n(=AK-SwwS_A~oVZu0fT zX`l>cg0zE~Xe;L4cEo-O;9prO#v|AVU3Z6>7GVQU%E9m!)pMqlFKvb0mj(T@I z*c$JafL-@B{wn8s*y(}oNFIOLcO>1I@nQvrerr>Eaj>t-HH6~mOaByFBtbCLN-<@; zmCXRT5KuT)k36D3_Yl?g%8XIb>$;piI`*(KS$U5 zKR>R$<;@Eit$IjJQ+gp!L%&z#J+Q{LZg4ztN$zqRcOV1Of<#AoCl_o`X zRO@Rm#|Gpzo6eb%`L>gb*W5I(|B90R`|&w_AM&CIfPaH{f8O~&3({$+Nk33XNK75+ z@jVbB3d|(XinSiVU=m4Xi&z&5v3TSj77uWTWB6rSt!r2ir&$*IMaMh+h6bw@{wDVg zc&CVonMjO|#(ADwZZ1D<&b$^79+`}@`^HlESQ$SU@MP=?q?4?EOku{p3;M2S-InIE z_$Bsh^%I@`sxoXqnhP&|V(&MzxvrjJY}$`*L#2mF5Bb9a`xi}c0|>{ug9y};$NE?u zd#VTW_Dl^Oyk9UM5M^?UnlR>D>^|d5;%9jQG?AJ#Xr}eiSKitgNyqf>!~nS_3UO1& ztz>jYI?G0<-bQ^j2`PIU7NKz$`i`@l%jA7zkEO4G9U8qpK)l?e zIC(wtC(5rHr^@~J>)Zn9FAuHyfF@?HhH1eVvbsjV7+sF zqof{vb5RmQc)0dLKKF-V+xjurW5jC#Y8pn<();y^sb-4Z@3gdeX9LRWaUoVzWo$t%lHjdH$+F ziZ)^1Z|)C~;fnhjdl_(;#Pt(Iyo`NS#$}2A!H@BH-4D#($SNZ)PyfEhX~@8`GiDW! zVCHj>>yLjkap$S7{(kx;mAqzD1J8=B}oH@8|}>Hm&agckmA^!MgozWGo~ zRuF}OPZUd5SHPc4+o%Pa1-R;RiHdKfa4q^k1b&2L#?iT!Yd$fj(Hb`2z#HC#e0sIj z?z-aE&ITEa>Tm2gZ@jBiyj21rd2Zc~k9O9)JD#zQaXK_9vRs%#R&6-j=IlB9`e;1l z$bdm2%oL-J@Vi%~%X95!v>MK-HLMTC(B6YmP6ix{&v_QSs}&791YGUA03>TCw$@C; zqoo!)d8qN$Ow-spEMw^$wB`A=+U%vhBw&M{V#{W5w?I&ftxzN|eK6d)Ns=n$EmyFh zWjlT@b=x;N_w_D9WCU3jT{aFI+vrBatB#9zt1R($DuIHQJ*V&FHk~Km)uvmE$cUsn z(+k_fESD-kHx8>klmpMtmse#6Yg92D@zxT9G&&Jxcs{a$bhdj|rHB#&lWgilyZZO!a%CX@p%2X;rx3~7v`M~|_uq{T^)5|E-|8-m)JIk-` zI3wq)6_<<%sj7#9e=9dvt`6!iOiYYyxbZR<%db&UP*is0$D?=s*V)5~43{>E<8WR}}Y0{9UM9=Za>Fg*L(?cvo#a78r40VXCU))X8Cw~`i;9Xeq zb=>X4XD%)-RN$-Xa+~c3*DW4nd&pJX$+#Ait~d%_mm3|+)qv%L)WQ~$()Q3FMVJ^^ ziuh)oRmN^*XgMi{9)+7VBp1yG7+NLFaq_5H4%X^AHH1`tLd>4inZ^M>HBx|jl8~;2 zbiK=VDMQT&kcO8zlIS|fs};X*;(^ur`_El$a&kT@89$?Fdj=n9anPeWOWp81XkpDs zCNZb?KR>9-q9g?kBO4?2|(G2UIsahU0 zGco?9eq2}sP6a=oEylsgJz~B=Lh|k&CeR_TH5AtyOtoqWM_(D&Y=(G6qq13rW}uvP z&1>TBm4udct3%GpD9V~doJ;O=e5!25H0fsLVE^!R0mx|v0QzLvhW}OBzUbLKxBG&3 zm|eAj1w3RYxKuZ4Yk;deX?@z$PC5wwNsuNwk;qm6L z&Ik?*v1L_l5Ov9wxpB}_^3D=IRCCtcUQrg#_A+I!l|f|F9H(N>8nx12A@5PG*H!D< zcI*;76>g$odvFkrz9ATG51acQyBAz*ZR6omZ+3; z-a(2@T7t74Tq22;K6#d%omI|{4x z?dP&+xIJAr?{9^QhmrR_z$sP5sgSGdJ7b?SQU=HJ*ya8}&MMk6poD{E^t6G`YGE~(5tpHB9|e^q{pxCYqx7k~3>%~aT> zGnTY`KWN(q(*Gz-Fc$*~0fjYwxhABY!Ngs}&)lh_Ir~;Uw*0-ir++<2roF4nN;>wX zrueRpAx3NreY0#d=OH z))EW^X6P8D<}Wz;a4Cxc%K1;}f8Y$(NzN_ zd@(vX=LuJoUDV^p%B~yZe${K8-#&r%QlJ31#z&&;4O>iEB``e}>0xf(Vrc#|##WEq zUjrdHa6GCfZF2ZNih3-4cpMxzJDVUtCxV($;T?VbT1UjqMiACs0%~0pm5_VgGr)7q z)?+vC@8VZkoip71-2OGv8T5U=#5$q&2$qhKPdjL_5#)0~R2GVyN5f2S+xcJOY@$U4 zdl&U47A6t$%tb`-I5i;qNDUFAIsO0vncdv2CbQKTo(iG#UHS)A=BIRrCs$v!tht@G zsqMNYKZ^vHG%$j$nAl-xFPA51mSF|Uu64?K-6%e0gAXYyXa37>%he5C-NVXAcQNyJ z?b*rW7{PqyjoCZT8q8f?HnmhC4b6JrmUeVs89sN#!m(!Vg~bvw6_3j$Zb~^0>+ZO4 zVq4={WioU79Fg`tH56IJCSg`wJr-Do8J>ud zwE!;I+q)VQ;nhK0X+K%J2f#IPm4;r_R2ModRIS1g;mG)^Y9%5JPboG{bd67-_K%JI$2QU@%yo%y0+~h60z5k!uu( zjw#-0FAPUEUTR|7-F{4;RJE z2u1?bfa9HKxufsQRpn$W%<1b~X71HmEd5%n0_StDxy;v}@XDq5RfqnIkBS+>r0@m) zLVnNn$VX)h{PY5YK@Y}iQ8Fm6*RQ{t8hPEi-g{tOR$bl7r(t1g`u(4Wf!bdhnzegh zO;F3>vw~hBsLDmHd6*aDqHu86(D9aAS_^rf>a(PgppTB^O9Joo1R6i76xzZjjygFF znJP?ebG36|PxmSKt*mUdAKo3o`sr66-gVr_PDtuePR-_1twM@@wu74~_R#Y8`*K@N zjJR@!Wkw5DP14p1OXcSlAFj8S*o=th!2kusrW?+ zCw@fX#j`~dS~F>?UtKQN(x*#fvRu1khFw8HuLM5;M#l^M_(Bybb+#7R_$=20PW-EJ4 z%LR1@W7hn;R$RI>a!v)*V)TzTd zVrl~mXdq3{psdmjstRmrwx4 zD#^Z(&gv>3A&%d_!xlGkt9rP6%-vbw8FX#!a`2lVv7BKj#g#8itbMV=oxta@y4zN& zoCAwo)WiDuE)TXkT-e0>T{m_2xDWQ>aTAHQuQ$JQ&m40L0XF$8V5bTlZb7Z-?<*UU zJjI?O3$4hy-gsqwhk!JEGQ-AOgN((K4hY;&h1vnM=)=G?AxtW4V4M<}~4bTX2&u-`oqk(A5{dP`4=Ec);P(T%n+HZHk4c(9HcvQ*@+ zTs{lhwT_LKbHDa$nzE5*Hgis50?UiG?_cM00$4!@eRH3)7U_Z(VldthZB)Cc-q^HQ zt7y(iBPAAI=6S7Z59A!MdJiIPL)`2(yMyab%5-15y~fht1x{wVkq3ZfhZc!s=q_GB z&G$ahH<>roOaLKxOXzm1CK;MHyLXfNs4d=R;3bm0v7rKoK;trfN-G+VEz(h9ppp6h!UU#td$#)8$j49CJR5=@K&DVrp zPYN+^ZwgcIGVcS1r2&}n-A~E!Y#rCGxz%y?gW1Iy?Axm;$qt{A44*!CbcLe>HsLo3 z#A?LnC*`{gKPuHh2M6sn-F4&h`Dq8fY*tadEsycIAfnx<0%6JwGpxPfnh)*P(nr21 zIa9EXShpg*OChbUV|~@SYC%z(O5VRE9x-#1{VFQ{k{J}{@%=yL%A=&+4XZmSd|wrX zuUcT`XKhU>eRl~`e)yahm}nuNS7+Sm%Fi$LHbs0yK;&${>-*%Txi8g zHz15Z3`SHKyoggR0hu0o%KK_`9;2T+%5A&sZ9Z|5Xg5Z<OSU zUH?+-_NCv%28?~SF#C_bpQyS9)=!VjgdHY$m8AV%>iK&y!)T3W=U7!f(N-iW4H@u6d7 zqhGj!MS&i6d|OU?GoN8?$tKKh2-gu3F?q(J!M)N?V*6H>cDl|P^l#9;gK718`;)%) zkR+&bvP%!*;F_k1B%(oh*nShGI1nweyw;A4=(4&SzFOvx8GMpvZjmQH`UVS2J?=K# z5cv-2e%_PIHE3#o^NkBsP;f1@T2?;Ya-5jT3^UOWK|OFQRO{)?&%(mcWkshGOB)C- z5gaFidMtnd7c09*(N9mY2#a?jSv*Fmp>40b7HWle!YtzQT)T*eN^nj`41KIb%DuD? zn_l+o$5LXQo^^6WYjI(t&4;4XlzXaZjI1&)r;@co3zL;%xS#Ou`RJyBTWV=(Zreso zX4cV>UzYSiMIBhwWvv%R$DDH?@U_z8<<}E)q>Jb&3`0Eh3TWPOo=$C93h_xUK5!WY zUd;+a1sUZM|HD^4m4^$-I?t1yaH0DPH272A36v}7>c%A`qNaMMzrJps)s6yGk59~a z;DT2AhyvEFIyh&`>gV*7mit$SlET_G8-*EwQ`0fh{NZCjAuA**yMv;gO#g$9_jhlA zw;`}MQzYB8xQUZXkhVxLw(JqQaR|XA=M8cl0nHMt5%XIjCVbzkAu<+y8mvK~Xw^+C zz9T%>w}=KSB!$)F*gCDlqPfdJ&sG zIR<%MCgW@ID!;0Yz&nAQg~;bIABK8^!tRAb1f1ry;R$S&X&zy56tYuhu25AY} zL$d+!{tE=H)_xUSCqsCDFbFgFMm{X-2iFQC6(;LyE2m1)iI>>z$+YYDI%lb1l!)SWuTj1VU`D&ZnRPsg9C zy|FZUB;&(4)*)x%yxw;C%yMUj(>qK#u6m4dyuWuwK*v36Tw$ccgB?Bx(i_2fIef>7 zxw>-9@+l;LxEUGy$ig2L2U!^+8mcrvw@zkEh}KR!Q1|;2t;xD^Ehy8Kvt>#%c}@*V zHur`FCXFhaW9VLqWWVqZ)a{Bi1nD?ur*zNkKLg2ThW6Jj(d4FT|Kl3t0~>MHY4X+S zsQi6|R;a?gSHe#B`FkglJ9@1JBh)ipRt9tP9|hap@vHYD8!WeTBzSMZKj8VXw~jMW zSJPe*RatkpC;Sb?O^g6K_zd4UzuhP$iMhXiS(7R83(t*$gx$7<)^Khg?3-?TKf$(!?h+Sx2BycHSDXJWP8Mw;LQ45WW7wkg)CD;l%W zp#ZHD%&)L_#@f`BTHl*S-j~Y%uK&mhn1GG}r*6A&E!5bJHm;4zh+mmb&zg8v8pJ8Q z=#h3gI1@e|q?C`d={yt|o$`AlG3)KyoEzkU?p)`oZfU>F`dA2m^wrAn@VF4>!*heV zZ}jL{ADMYeh|9*B0@|NumwFQz@0^gt<24Q3^D>}*XyG!v!lRf15I=P6(=2))L;hZW z;ZoJ){^Y)uJ@JoWhSV}VlFih?%%_`nR72jIN5@in? z^FyXu@huGNlp1)MSt&=GT*#O;q)cY|3i23I{KFv&1K`BL z-GOLG)}jKDTc?HOo^MPE?G|a6N5AMQ=_VxTi^|EFLHJL&7xEkZp5OUEZMiy{ zkiyE&++A3eC%=8y_r#HB;}eM4a&Q<663e2$$>e*v{yv~RvHY^8%=BL0Tu?LS#;)s?3IcMPha2bb~qV?m5bDq&--V!1d_s!-&SO@ZsW(W~2 zmo?2bJ%#DUn|ML<_b_}IKI-b|k5W^nS;)!E=%?iM;B4n44hlVQEB@2!-BVC|fPFM= z(yD=B3XREbx-rDq*?VbIq=Y<3!7*mNs1A#KPk zP&bxANUy9`+hz`MFiS*Jx@djNY*EV%g+Y}+&*q%S*@Ms*`K@Vbh>5S=J}-d3(eBw` zMIVZOckLr4KQbb4dYBZPUv|U( zdVPVDnwXvZs)ViIDwgr>^t0~c zP>UY*ObNfbNLN?nU7n5EPS36+1M;jcGZRqisvOP63-5=|nmGDgZh2U{>sAq`@Cd)#loWAqv2zv@rg=;JJ=g=!cj z>EORav;Xx&qG4KAS@*iJ(0K0pLG+izp_x`G5N+{jEp|t?-BP-g{lwdueprO_^RGl6Rh$vA|x#L=#t^(n2 z_-d#6O8>1D{4ZCh0E7#j9b$g@FCzb6&Ex-<|GssJaF?%lG&oG2s@tXd(r_iPp$_kf zAI)v$Z)T0}?`A$~O-GT&01b_KD`Vi#VG%Uox%?m1ylutvVd?xG0>IjrpG$N@*Q%cY zKl-?rQ1c>ROuX+i*LIC{7N-U3ca)m--{c8RQ@Dmlc|qaF*lBcu-RyeiUYD|rM_lhm z7;2BGUzUf1>n`>ZQ*LkLDop;f{=6SPGrf_~NejiRzplOiKTDDO+w#}f@7Y3*J$HVq zJ^tqv$^Z6SaRJ;Q5zHmTzqQf%lLGj^)vy1nGVd6DKmTRS$f!$_`F}#~Xa#N%3A-OmfAZV^T8ZE0ZexwNSqAV< zk^LW)=Ji4pR8`5xH=Hg~U8E-*DCFeime$tZVrG?ZgX?Ez?%*0?F=11Q{(4z$w0~Bk zAL4Ct`^z4azs{+MljzRJtAH(ks`~kR5`qBvsMNFa)Pm7rTtS_+S}O@3>=?LfZpSk` zmAO@Bvj$_PIW zP>u0pyiZ~G!`b8`v+ItprRx?DssFC;!9VyWfm7r8d|$zs9@YO?l!^c%gPRexxawgd zcMX&CMsAN9a5FG6HegY@GQ^p22ZtU-7CqWWL#t5j$%x&b;uv!29x6BKW*Cfb~YW&zz3zMRN95F0-y+&&}Vq>NoZ%LJ={1sYSu% zds6=0vEffR-e2r0i=@Mq!a{zE&95c-hg5rs^I^i}MMdwnEopXlZ_4GVp-?CWCZ_&j zhgjT5^({mtpBUwskiN#-1%)rclK|O0c6Q~_vRHD=^INQs_mYOyvpyB=(|{Su0Y@}; zt7tc2+1GzOje3C!>$`VGibTSGHY@%cHuPV=(>pX2baC+`;ko_id44%ue**s7$~_70!Y z1Xod&vk3+BzugWMl=aIz z1VIv5tt@mG-j&cO$H5@w;L+upcP>6gml3%YjPR3~H0!Dj6?syP+9El-dT`CeVr0z9 z@{Kc-hbz81^q8&2r@K9QgLyQtDPPBMdlYFg^ofH013-6$+q!UI31K~fjaUb+=Y5oI`-a_;c6wNx)39`Cn`s+PFzy+iq6!HWYU&xbv? zDBH)kSBysk)yGfm9p+jT-v-89Tg`h02pdIfdMsn2rk2_gl5Kba+d=kIWhlcRKPnRY z=r6BkUkr0AwD^u_P!thxH?PqLigk$cwi~ttKhTo!cln!K4zUfO##8nE^3d1 z7{nN!B(DGGZ}Q|PUr+7O6v9JI%;-+caPX?+tC+}P?XCfsYrdMs@F z9T@&u0#ImmLaOX=IdVx8;?Bsq7DIAM>^K*F_}bKz;Sg|80LdsDoF`Yg?ok;T3zPF$ z+P0saGD?=_oiCkGMFg@#7@!wzHxPwo>rS>>K*~u^D$0u!ytC&B{Yx}ZyHrW@a zuj@N@|3Oey@DYy3Defy)M>Ct{pQPWxJRd1#KUPuK9RA0->#eYSL6;uaYvsPSw`bO2}1^khUXXDZLy1Jgx zuWj&=X^zW-j-v_rBhdqpw_)bSTi0v+a>@2f4=Xmn=kO!;i=~0chQ8tFyq)VC0dt{n znTbmeR}C+^?WfD!nr_iQB82Zwr*OEg_DLMMMGR7?=*}BwPY#F0ExJzx!gWY8xuY|E zUqT=O-c+-RsgEs*0F6c_ zjtKY(Jl)J`yt)_E&+Ko0hBX&H2A`7n99Zj=tp>WwhW9|ne>_`n3fZioQm+MZ6Cklq zXvg_Yyi0KAsw0$%p zDUkDm%8e~{K=3KlTipyD!tA>!KIQENq@4XKvv*~NFH+acvu=I&6W%$ONt(v>^7C!T z(FTDR>jJI?;o2PO*-#vN!+j23uby>}HEVaHicf5q^404bWBU}c-reJwQX)+wU)3X` zR>u8Tp{uhM7ZURC5p^B}%Py3b+PANO_8?QU47JPWOV%O}@W+bX89Yq7*hM&wW+q4q zugx7Z_V<8wLLT6$$O@FC(DErLhNg)puU^0 z-^L_A`|gsHxJ&XOe~OLqg0z9)xds>AYTv}8v90G3Bz;-E-vrT_`^ z!~YcEe>mp#IybhwP@~R6YzQfl0g-pj#tTjyBDq>*_7^*9G{1OPC1@?|zs?YokmJ7#AW><~(I0Jmbp;`3YgI$A+K zbn5c^6fE#ciVeKZXY&essVNBD2(v7w!+{Dt+osYz>aLN$IYl( zBPx8r3G#I7tnJ&YCqyy0^0)vQSNzKjU;ev>>r%V2Y-iRSM->J`D)B8{frXCdTUCY! zaJo)?+!nofM5Uq&1VPCTFG5Csq4zc0xi<6eVXUJG;y5p$mA+?&w+<@7 z23cWbk>@#|8^>MCO0c@U=!~&?LX%YH16M}G4`nbCM;*nsZmqxkF$Q5(CVPBG@|&hg z%RYxU(ibPj%FSSaL8RG@&VPfmf8~=dYDtf+TjO>yiw44{3r>=rFI8_;2RHF?(Y?4! zGj*W#vQ&Bv__^K{mo-!GK#S`br-;XHci!k+p$%`I*7=6tT(=WIt0Cv)FxoC#h;LnI zV-`M~FMZLq$#L*e<{o2KpyUydL-Hg^I|?+Mr2csOdt9n8J##|en5@Tcs{;n=#rQZM ze>BQ>_vut%pvKqvhP}`Hd9Jhn1u!NT9UH5W&%(izfx6{_8SAfY2Ce%**?lDv|%(8D!?T-N|M=2A4 zi$?Ht=-F+T%uHe^oxGgIkm!!!0q`93U>WS&Uzw_$>W#yr-lU`OUu4;tq;AFN#iI+E z=1-f@)M5~1&ADe%N)_uzf2UhMrkj9Q>*FJPCz9&_d8m!@$qTjw2Me(-Wl?{N#c?M! zvVLQtx)05GPaD*2enDCCN@UWyiG(7gsbac?StY(dBDsHAREx{CPTo%;jioPJICs)z zi3=Cd$o%EK8l%#&3hu9sX7Qinwdfc2jcAFxcuyVw0P)9FaR&hF_81~1zg={j`drN` z=!r3LK`NCdBwHZ*H1%6-7ljXy7LLYzp-lua;>RS8BVf4@40nbk#EXU-D;vu0yJ_~_ zB64~u>_9Fe6Q**dSpRtn;D!9C=K^Qa7wLe9ka@YlkFVn$De3ICrTjj-h272t2waO! z8B%M13~ZW2zv!&V_4RYgIi@&@J3MDA{l4%L&EmUNSl6O;r%$gre=qtQ;Ry8H|FMl* zAUjh)40t@`W0V|Dv!K-AkN#-7W~hJ8e|tS(&^q~=k>r6FDx!N8>fyuUK4H3N$WA%A zD@1v|%J4iH5H`TAyxqhuAGOr^s;wJ3TpZvqD$UFnIkP0yYFx5I7?~Vy^3914{J3Io z&%Z)*JJyOKzc-0V=|wz~@O`q~nE%|MdOA9s-HfhQ(uV2pjR^GM`gOP2m3(a>W6y-- z_~xSuITD-Vw8o*1Xn=iz2xt;Ib#9JRA!iFECLf4e4IxchDGg39tX0jl><$i5n~*Ol z3Bm1Y-9NFmf+k_f)9;)zrF2eVa}QWDHd7iqprng136ri%{3%`LLfn)WR5SuiNSrsSz^Y?93S&Km*(Anu*2Z zRaWKUR3#h5^!C&C`M?_-KRkmB%j&ZX>)friaa}gG=nq(Hm^9@JQaLBEdwet7*L?J^ zcnZfqvRUJc#1-#jflQ=$*0>O+&gaDjdLJt6G)Y+OjIP>!>pwbVYoM;%`C_UvX+n4C z`bfwr>a?kVt^KQj!hp+Hf%qZC#1HBzqxi_1p zIYPG3B(*RiTGcAMn4yVx&f=hvxe8Zu66iT-ycBa(@N{-PRc$I^wIeW}74Q+eteQ@Tj}*xNw{TW^uC6Ea>smU{ay-|t-@g5=pevUL0-ZQ<~7p4&&OV8$Wfwq>fQL}ZYVyhxn+sT(y_GeqEAJO|llzTZER|H|lqn81r z(NO=VPYLV#2WNojW=C)s>nCHDo{MEo28u$gdXdnEp5cH_iVtNJ;G1yzWb&0C72WAYWYQdGO5j&78Jr%@%|4YBZddZ zue`feI|YBZ=zp)N*vc_R*vcd%he+p z?)?a$jV}ZH*~IEST&7`ZBaQD~)TM#dEb#J3a}BkdrNZY+Z+9_w8GgA4zwCKAb7Y?K zophP|)wS5@zSAn9np48a+WtT~-zSHGlO1#BN< z3g=fUQ!tK~78}u9b6xSo(8K$(E*qZdMJMT3Hs3 z$T4P35BZBJbCZS(udS4(-reA+C|f6U`_t)>3eoqekV~~3(=99M!$A6Cy%eGa(0A+X zh@M>4LTh4tpp9=e8gFCf` zAoXM^WlY}!)RFjkbywcf|sLM=sCjzpxSLJhF(z9}8^Ux#xcbab6X3Vecs4|m{k_uShi zn{=r%P#F_$LUof-hlZzsob{H{(r-j>nRtJNDpPmJ9)UgRxC=0hcO)kKTYr(PF_(6r zXM>(mveX_6u|ZGnv%q+YwrTs^TaiZ7x9l!Y2tIAsc#Q>eH1Q9sFs_=+%aKGvc2A2Q zgmC(uO!^X(YZE;Qu|L-IxuD~(0r=vptCp=7%4SZU34qRqp)GCTGZD~bb53EdrXcEV zd8_hvpuOCC3E%B9Ti^hlc}l}BHxdsI!f`a5aVTYw+T<~{4WB7Xv~SF=ySN5`?51Ri zH56Db@XhFdKK{XaIQt~3awth^C-J10z+1k77aFXa-I@Mw+=rg+Xz3mDLD&Acf2+K6 z^l;sb$Fg+~y2IfQ*4TP+x}ucZl@T{QR{n&Ee=jkNQ1}AnY&v#B>G+){^u`PfOM-=a zDmr@)LnvRr_QkUT-ny<}VZm)Mwt>?Wzoe#?-q0fTGj3j4YnsBozD7mZwZ62}^nr{prC3MIY-8?4jkM?05R&$<3k`-6)AGKH zjNvJ4N-pN4wGM=*@QJ`8y3iC^2!5+A36yQ}9BV&w0lcT!R(o~ha|zO1Lj zweLB+Bjh0O)+RJhatk?l;=9=&sj1>rC${s`$6HFvhb=TL33GHqC%o^%*opSbOaj(;x|7iwxeh^z5%a2Vd_q1ek>m6%oo?OctZ}#CV#TXt{AiU zb0^X~@t;289sy%Q7ui}ip~s#{@3>aAJ}IqDP>lPJFdblY#u)IKcS`_% z+6$UUI5`ep{eo~kXg9xqGS+dFp)RKv!#{EFasrO!P;70zk+1pG>E8Pc=<%)Eo%OiF zRXj z8!dR7Bq*kV9J)83y@!n4ZL2)-Jha^m3-vm0E7pho))xMs_^Zf_s5ImutU4lMxcH@1 zw(ZdB-u%!)#JaWTP)D9;_Pp0>_)bJkUc;5=^GUFE>#_6X& z=69R(??>1zJP{#nd@WVzp!IV071}F6zPu6qGuw6D-dDR?V`I`qrJt`~CFTORp>DHK z#+77y%i7KD68&ZP_(2=hd|p-gOCFFe>aEUYfi#?W43jvsU7X0~K4b1PlR$ zpob-q*%?R6ysf6oGwOjPkw%v(075x_1wiOFBHQuIRBdCGmYFVA8c@R>zTNgqFmV9G zc`@OXy-Ld=ZK9)+9ZTi5+cl~uX`W0=pRhXvsi?P0oJACy(&5Yp6z$QfTJmj1cEaze z;qc;~1D2MLRFro_q=I7o0iDSZ?UOMy?@rbBw|`OZCs2QxIw&RyEhfSqwaK3sv+S0h z<-F*(I?6wx8h9|T-6g|60xa+M%76`l=09Ybtjy<)EO)e=d4cvJItg%WR_xHXF+F?z zH;J|C8S{IPPEU^BF@xgBc;!{S+@yiB71xs;tKF6ZWX+1%P|bi7%2oMT85A+Kvr_VW zHGhP$uv@g71P?Ng0wDjq;!DOzlr6&}Vh0ZIFKVZWaR0}v zzZ>QM^jKf@(;;mqz46l#|9^Vp&-hLS7ge!F@)z{~En@raKXIZH2SeUP$^3tasYt_x zRG>-z#TS1z(f=_;qlfs{o=sk7cmH<`&Hs4g&z6ih3qkc8UH?9p|Mz*-2NUA<(<6>|xW_J5|MnCA%eah< zg|7cI>iy{@_HsY7m%gnH{U4a}zXsmX;ePS&k^V2fG86kVb?IwQ=3gfa{Ttkm5E%FW z;sgH{*CGVQ(c6p7f1ecgIvwK#Qb10WKs#)G_8gr7y5vFHbQNkyZIHgpmoQ`0dF76c zH$7~bm@n56t?fN8l8>%@kulI(M&_oloUSZ`^w~ofT(Nd0o^ZF4>bFfNu@!bOVl|42 z6$!VUYQzo)x1KVV=l{08yt;^mQbx1z`1={^Um>%xu{pOu@e7m-$8j?&6_F#*!q8S> z*P4Eh)pi~Y$qp;7(9q$MBb(D8%%vt|f~NI2aq>3w;v9Jo^_F)H+zqlJe2|TmQd6!l zKlUiU+$Ir{27V49IP4?Kwu_j()#C`lLat;zhRT_Z7mA83syZ?<$a8|vkVyQ%l8ql; zSPJ@cwd~|?d7+L9_z@xJC#^pe24U?$;r^~W@*FbQdM~td+Xc3rpL#F|ztZnrT{sK* z;^{xhe+U!0zxAv#3S|K-%*Fe-Jh1x>BB?7XgzEnJ`^GoFo5AAk6A>0dV38^m)zOCXU?u_8}6AUJOqSc8Az$8nSd4`nsQ#pyVqu z#N~oS6L|w1gAFk`*=5Is57%uRWS7ftby}U#-1@q+%vW_ry9{^sURF>dLiyC5t0H5h zebMaMf{rmpS+%3#8w1QpFm{1fy^a8C>TKb8G0sKQm>ww?)cei=d8w-i|EP55)}$Pq zUR5KqJb-z!W#xigP;M)O0L)|ftvW@9wrLKOSMZj_^d(pF=WieVR38fjAh}$H zn5thj?DnrMmt)+|Liwc*>?wlbKh&E&=6aLv$Afk^GSoi5JyEs&M^#!nhCTQqXNKilG_cBP!1ZwA$GmW4I<|moD zqU|V0UYx&qdmy<(;763~S*qiZ-L9S`_mDSRZgf;Ua=%I7LvLDPW4@K%d`s;G1DA`V z(&rnNc$7qk2zCMl`FZl^=sz z@(CCHGdH;3_^`?w!x;k@bgS5sUCp?JBbs&#Lu&EljD2DG_QWyDzvTbC20}>9pM5^9 z{d+;Kla46qBY|Jj;T}E0^2n*-F;7Ck2_hKK=%r!E_~auD6zA;`Wy|jKHaY2#B?gv5 z?odo+-k>E5mC)w)!Je(OWtC4dUKkJvk{RZeISwI7!C+2} zJ9Bi`n+Is+WKupevDk}{hxAOQmSd`JTWn(S+1WKAW77*$tlzd&Xm$wSNXdjuX!ljN zZNfQ*Db&UbA7sM5M2R56X6rwyg;PVCGZH)8=|~SPya?=_*N_D<%NHfQAZl>`HDlH$ zFe=uZ!K>`$sizz9UgT6yYX7Be^v#j>nlwqSIz)atQ2tIqHfErd`~RqmTWvkI%E3RF zvq;ijB@n-!9Ujba_gG?9y`3l?w_M2s?k)*7p1RVS0G~+&LsdJ*r_3ybj54~aiH9e@ z?|3(ljOslz(2;O8NaXe8HIn7{icL9{ffPH070D4s1C~=SwXLPn(_I<+ne_ zJuiO&IcJ&DsWPZiq9dQyjX8j*v!?v0w_T3~Hb<_~_-}@%l-Hg%(XwL!LJ%6FV-u6p z48A#AZTa^?vHU@>|1~UEnLDGjnEKUgMMXtxd^By57UT3fgG2yhJl_Tr6H}Gf(d75* z+kA(`xI}-AyI;wQm4e8WC|?dNCr`2UI2)Qg&r_44DIdEm?=%Vay@cq-qX(;A-4#X0 zrlyvsziN$5lleIE{zA=`AOD8Ukn~}>5qfKHn*cJmW774yoKx2qBGyOkWCu$kScygI zfYLgr947%bZoky_iphvS z#zPBlVkO>Ur)KvLtm|7Old;mKn#&&sR>i%{i$B##fdskN=c+W!nUKvKz7c;USyV$9 zkUdH8$W=!#(oBr<%dYZ=YiZdlvgrvf@dzIuDyu!|Fc7lv=rr&yE4lSMKXFZf``Nz4 z(?^`k_h};{8wZrLD|~+>0V*|NTzNnwfkPnOq4zyAk|K=rN};-~V>1G2cl#&#Bizw%mX~op4M0M(oixsm#pL%Tcyv!h)Xl z)80EnEp(4-sgtJh2;&haH?~bzxqjo%T||e9xO~2eQk$X@hu@pJiq5X4i)Bq8D(9UYxyPp6SPYmSv?tBt~XjlXKyl4dWBH@t*fdNe#jNN1BpBr&Rx2NS>#BJ#z2W8V@noqia;JH=`=ppm)MUj*bHAPD zck^KhX{cI7qGy8y1AwFOlZRqXe*5~WT_WoZg`QxlN8MXa=S0y;t;FxBph`FD7&pRk z1RY=Z#9xtZ(q096jD+i7ZJNbW!s`%X;Bkr#^D2rykdM^%Jm2deVjMe4z{iGpA&{atHsKL%mL9*rtmVSN_9BGb z;e0nXXr3RlBL>iV@K|Km&Mp~dB)Gsxvhdzm`*Gd!ioW&3YNkv4U-VJu^?+h~LN{U97?!iTD;^TE{mMSW+XNS@IJ zTFDY@ET#p$q6$lUQ@_nqx}2>0>-IL*ZM|i~TkS^RHP`c*Pq;ZFo{87B?JwYEH>}F- z+Dw=A`i4tUn~@;uLs{<8KhGU+Ev!t51(hiA}xRBj|xB7D<2 zXaxy}b|tC|Yb{^yJ%VI@-#)OrgUpdU`5GO7Ipvk&7wqW{1z2&vJw16Hzgy4@48hPi zG|I|2<7z_NB-E*ei+~AYIc~c-UcuI-lz6Lkq6BhO4rbh^N$9HiU$UwDe;mt z9``%z{HJ(Im+y<%*xgh2Fo1i-x@QL98wsF!;yzy>-(V(PZfYh-5n;OjtwdPi9I5Fy zZ&7k)(4E0?wVeq0KY5S%fh&l9XYmrPu1UQcN@z}yb7GM!czcnTZHz2;-BkMK7C5rY z5R=|TGg`AkWcsIL4q*`670u&}DGn>h9C>K0CsD7vYPrq|@`X+KGTU4>PTixDt88ME zuYEyLocc;hdb!)&{ShD6EP)6=B3-zgyPBPyK6c7%W-(Z;(mW#TNuw*PybdsxzIPf& zA-SwqQJz(v(b27jc>@swa(F|YuyDGV2Y4dD-U^l!qV>(mv|L1QVh5jQR?E_fM0Z(}weN z$>A?=rKS#z7MJD-Y@^U~gAuvVeV47Z)VizjHrISf`>Vp&&6%aMBYJ(2!lE%s`Pq4D zp4)Q)afxDy%ofsKVr6s7`H0LB`_aBMCagw!MK2xXZTVG!8~a^^wjFi+^4?-Viz?Ps3iN zxE@(`=6PzHS*(n$Fbwt3i3^CEUSjHR0~r^x#R4<^8M&D5TbIFF1I!acW*gBTSCIB4 zWcAM|BtA$VKZ@EjIj>V)%yHM$g2%EkKD+9!%1MYi#qP@z(tf)ErlxfJ>u4k z8Moe>M-9|82fjM&+pVd(S&9W^D@%#Rvt(z(K~}S?5VLs)QEcuGr+`tRy=dn~N46#7 zWIl6+3t(BZ(KBt3s_(1AsuTL~t2ZUENOXfxZHIm<>!#zRf&+dn4@(vY7NW%9*iZ!R zyS>UI?_M1^B(I#$U7Jm=HvZ<(PRc{4`yh#RMeCid3iso77Sc#?5Vuha%KXbn>gIcJ`XUh_vtcFu zNfC1rvvI;XELO?nTPnzTcnKp8{{zRn1>1X-B1lo@7GeR<7CiOIHV$2nrq#vW1S zML%Dn)d&yTbfv@|H8SlKqUkd|eBnLKhe4V=!`f0$>fx^GU@P|a>gsv*m56?v!3^DO zuV|LYF6yVQPlc5^++EEK>hLU@)8_mFS+2SqcpB9rXq~6-Z1gGVJBG)61{^i}b7}TT zLtlrDm1;Cc!|$^E2_7}St;7JJ({r^6vMI;N^KZOv64{E||8}cQx1fbr;Nc-xzmTe% zx7V2hDtBN^e`h)-Qih#tF#XwERdVh2>+^!iSHy+g4~&#jf-@ZZtjR}1(1m?LoPmyG zo|y*V``hE((pDtwE1%CIbuFjpNaN7GK0!V|**)s{He19dH)-7`V|2SJX`PH7K_bId zxCqs6t29?%eg*-Hc)X;Qljca-DxIo->y-m*es;k+L?AL(asZ4Q39zU8YZ8cE$$AWTh7dOKhmKx4muxox2VOqRf)r{ zlaiqe!DKGdvj`i?=M*OTGIkP&gW(bppVF%ygH`_ysF_K%DtEQ~aHBt;ZENX8KgMqI zwLIvEvsrk`IYtkX$dWWO0-2kPZbMpgQ^TXX4WJcr#1lzNk1Jcc1&tas)wc~%V0gXo;-e^zRcBT`QP|HAezKHWcDf|#iATc7=y2roX=%{g zAZ}RR{Vbux6SZa4YmnODl&d@|&-6TWBGS*PlCL{7+Hg=atJ~%7#wUdfKE~(o5SJg& zae2p(dNF^SqE|+NVN!Y#$JT3=v>*VcVbUFl%$8KU9-17hBERpSSUBXpVI$_Co&v0f zcQDuq;s3T*l?f~FWNU3St7-rKjQG^~3fp_*!w#r?&Md1p62+v;RPWx0rY;}G#Oe?+ z;4OGNSpvK(Phr**jWoY&TE&>wS)Ymh(>FUsx01vzOD~B_tc0v!*(N;i^ny zqR3}xm5p2GX=9?Sr*V~L=iYFU+WEnD%X@+{p?u1Ma4jXHDx_6IwP`uLMD3-$x)|w~ zuL;Bn<@LnL53?sijSWiq=PzP$Fz*?S=ZUdLQemb$$k^95H#0lCC?IcfH)Wt05Wni( ziXD`*^f_=FTvF*Xv_r`tq6f8-0vYd96LeeUng>kN9xpIAy74f6`E>HC#H!wL-Pw^8 z$HWk|&sMk;6;Y+iVOiyD@?`2e7srj5TZ{}|RW!FFsQ#etBEJ722}f&$AR^Bm%x-SQ zPXM>8AeQH zPHmu@i)a!#5-2=cBHJZr>`Gn z^dG(FYklURJqs4ln{4Q>?F=~5Xu(nd3`f!kktRygL*ura-+eT99kya1_qCM-_&Lmr znk_NWe*t}NB{g;l=*A%)vWYQt1|L6@t`8Mt_a2$EJde-UnLv!l^Vw$JGQjqJjNZ)! zEX52`t+v>p#`BmeUSd~6ElZz<@g-?xJits>Dbm}`%nJal;E(~`rcA@T_U$&m5rz&kdiX-WU5^5<6@T%f~R1oaYo z*)n_Ft6d3`Et2_X8k*7S>_JCzv&xOv&nfC#RSrq8Ed`Q;(Im}uBI_ftTKUnVEEECD zBlZ25Xe$CO_78bTYIDvMI``EykVnDzqr{{bRhmp*#^|3Dk$g*{j<780=6JZB7@ z8i)>w9%8Rc`>9)yu=FL7?QZx%sF{L*-#qGn?UgE{cK*I1`8e237jsD1=VTo#-%cPZ z3Zjj*tq#-(`g&dNPlb%c@|=z}2GoAFi7$_)$AY1RT4S{_diE>Pl^2);9`CKiWc|wU zWlM8N@vCf_nXpDEU;37*=16(&vsGm*(*FR;-7Dcnx= zRNJPc5@z{D+-mY{u@grl$+c#VO}dyT+2w0BrocTsp(Y)H_a}r5 z-9tA7yH-N43YVclNT}!Uz0SL_QCi@ zcTa3=YSMtGH@6NlZy)ILin~O6c_ac;NejL=lPd6GqNQL8@i10SGZuJ;A^ZG_C3Pg9 z;c7k4uh2OlFn_bGlNqDdjHjE&z!iu8XLu8lSH{_+?_hR6OXwebn3b6OOAzwR%nb>d z^U^b~Wgn|Sq%~~p2vul(Z~1|6;WkcO%Qu;KANAdjOD#~ ziOR%yIMc?%UlXZ%f52<1!;6m>3&M!3Y#!;D z-0m$w)yi7Ql8(4s?$kaOGYgsl)0YOIlA5TGt#rbH#Php+Ie&`>7L$q;9mJy zN3b#_5&o>#;eKh%8 zIh^+ZAHMtSE%{bTF`k(k?)kG!zVf(KtV#jK8M|FgJjE3~_V_sHWk~*dB;0rgYdbr; zf~RQEx)B;NC82}H1BGaJh|Upm>x-3Ae!83j)rnVi5GF9Gyv|$XTTY#5kyI?jb83=< z2=q+}zp8)tD-5UgaHNgDOf4?`?|u9T)_LHp7&JPmjh}8MB+L_Wd|cF2W*LqEm)nH5 zf@4`*@8Em+#_sJXUy9_r966~W(w&GZv*3uQD|XY|nZtv+vmd6%(2NA6x}B1>dtIB8 zn6+7ethOK8Cp(==59}SaB@MM=?JWh(99`1-Ea=~f=-}O*)E7+)1@EW`8)5F*hV+!b zj@N?<=5bvwJ#W>=v<*V98(J zHv>TrXCGFHBN>0fHKK`auD6XrAqHlP&JJ|-ha1kv6_kB&YZ#KTwcnFYPI}OG$n|6? z%mZpzPQLz(4Et2@Qg||%opRFQo=R9lR9cLPAZ45H@rH!Zk6(R*b7x))gRhsy7WQ`~bCsV5oASTM z@m1~D+)s>ba3xonj@c=3lb)4a?!kCas-9N*Ea(Q=)Jmmuc{D~m9OkI7p-GjGJ6$ZUkh_}6-X5}ZrTa*j zEph~~jAFTm2qv*6H+$*4#3@pcW`a#7|9)P^-b8G8R?*D}j&&%9p4 zU1pzWI^S?WT`D-xurw2?;n!LO8FavnG_QTx|H(P&!1S*gi7krvXR}GABzo&ryTYD0 z35ejYAkes3Pd7n!?#I5BIE#Ze(gE`}LSiWvOiJ6_(f#;Fm+!!=#P~reVe^XQ=b5np zvvxamXlsf@dJl`%JYO*xq}gmUXxBS^bG)FjC%9Ezw0ZMqlf& zvdwiQejdy`%3Y<+CxIWpwmD5=sHw?7!l4)}G8VC=D9#RG(bEgDcCeFGMT@%{xTh}e z>xFOT>i&p@z7xVaykuWXiIWBF_}cXJB+5K$D%;aotG+6AK#gFV72T&~f2X|ZwZnis zUEP)&RITg@<0pJ6_XTZnFVckG9oL7kk(2lJRDIds&s@3WxoJ+TQd&O3@^tzpPZT?B zlP#JLQ`RIW6KwW#*QIIMHNsA|uCAkF3Uyt2sUSuRuAj8i&UNJUgov_3&zndGIAkBN zi_){a%kd+5Ux1apJQbtg1E&re^m%r}FnNq$;dW$M%q#&|M^!7LI3gxewQt~Vc1l)$2P zS3=}QN|N7FN7TZH)<)F$A^ND$Lpi-)vWVH>N>XAXJR zAmY|oBN;Kn6*|pLEkSMnV4X7XaESnv&-0$@e-`5vZ>7E|n{hy`A`<+~Gm^xL1|VCzmg^@~ms z?SBYX=dOg(6fMkGt8FLo4%ufb-a%;2H*BxV8Z?EoqxctGekfg4=0~nbfR^#DRJb-T zeabvxD4)MuY+0xV&3gCfrB{s+CvX6&)nF{>o0d;(yM(ZwT{+S$^G#TVvOEu>ko@HR z@bnbBTWYWrYUT$}Psf_ts839=qtYqPp24aJlmvZgM0Cft7%Yr}R^Z+hiE7mI-YfD` zDUYVW80z{^+ZH$L^*ubF)L)#GMzivP+MWlYWR(^XoJ0v7e-o`hO-3KTHP(go4$RBk@*I_g zo;N5s7{fN8?*KE`D=d+eQn5zP?t{iv{xcn)Dba0B$x^KWn=82`$FrlSR+wyHo$yKg zJiUkeY7S*sUs$Z~C6~wpR~qZXa<)eoqa8}kpO@R8!Vb9!4(1gVsSN}tCfa;YlTLID ztJ}P4&o7Kx*GLdO7pp=}4LSp)YlE4m1VIn>A!xU^!c}gUwwLG66-!6DH&0v!n84K2 z(ZMERduuOcf3QOfsXO=KKss@jSrAxg?mFyYSsSU`h=uo-N-16+NF=)whu@Qc#OkQ- z{5oR1Ai^`jw2k*N$4>;mxuvBP?;xc8lo{vDI(T6+8(kAr=Eaqs@pjU!^&Jl0XP`&f z)QINxD4OI1W$C?xYzph6C=E0%9fn2l?c*YxmFg*eQ2D#AXAY|2Er@b0oQaGWp^^%J zj8I`u+Uje)*DR!K>5F8LHd9M^?AT-^rh{$)D#%1v3c$=|O3XUPy`gU?G3!pP0`;Xo zXRR=OsA$K`vN%D{d{Ih5Btr>bKUzkigIZ8W|^p@Zd({g z{BEDMI7{xq*w6Oc$bxsHIa*qPzMPdHxwiHL@M)8p2hLTw0B0+euqUorkLESk4DfcT zoO$@=FPBwg9x{o^^GOC#amtKe_V`~P;_XX%%sA9#A@RZ)`$B{S^KPtQe1mwTRyA(7&Z z)84XWHXwJTPbTH>V6KM>v-F%Kl>-#Yb(!PCpo`%b?0rS$QTn=(1|uN}P;gQCCo4pX z1N#7NRRSVvxrHb}@{VofEJlU!?XpdFXAY0rI>&Cg2OyRSH7+;FLoSmu zPmO4j?WEJ4uW{yI4dV*Mn*1HC_i(;cy!==!*(5g`T4!gsw37CXJE?2L`=~*-Tt<;I zI1*=sx%Xgp3!iqRIr2Sh=|%lj0|Rg^*@Dxct;H`!Eldr<$;G2iMCmyHQh$qKyjf&0 zzq;8#Z25jMeUkb2nss?ukgR4-bHZs|-51dsSszr6sOW=H&PmlK){#spez__3U}zC>RZye~&;U5hmtm{tDa_V0nLzeY|+0fylp_ z#nQ07c}}oxBh4i5y(RS-YsH~8Ix2a9ap}c?SDpDp8H!aCgIS?@RC#9jJK5!z{WQAX zVtmnkHhppPKs@KL*IFL#vLmn5<(r}z!h~$Yr*vNlv{kBHotItIUfKt5*Llc22bK~S zv!gC}psDe-K+bnd-7e<}D%_%=<5)4nEv6$G70jTDc{|kZM7;F$&a3xYeHV5XD=;s) z91928XGAf8Nbr$7ik(Q0{)q^2_4Na8_TpCbxxqKC7EAn?b_=gN+>J?VPBb3FMjTmQ zG)>2-0vsyyZ2P{w;nC?W+X@)J7mo5uMHVA;*tu>Rn|o@$u* z1RD~xu1DKrfHB!lfVZ`qj9dN4f7Dsi1B*X@Io(5`1)}A@Nn>tVCz`9AWDPVNvV7>X4FiI!hA9hvR5> z+w)WWPBWA9cBIGHE~I{ziw(dK?wJm)1-ko|LHm|5bZP)kow--dS{qu0m5sK>0c16V zF10oXFcf->g{iv|RLtkv+7d_A?4(62@quprii>>=%h>kpO}n3cn!*5dA`^B~Rby5; zx<$5($xlk*L#VaARyGYc6H2o_N*OWW#|eft_}ag+OFNQCieREh!@E`y!9YEy9ZdPvKl6SNfSDjIno%7kmr>Wr6_u2x%xJJ?rmAm z?Y!(_QW;2#1$%;ya0O~RvBuo29z=E1AD0k+FL`Nh5f^uU3K3wS^S&*r8Tbr(9HXLO zscjV{v-?z_;ho=76CM#`QnJ$F#xoAs5BR|=i|{VrbB&UsQ?-#Hh{}hwNz^_{pz!Q` zIuyLHGQlwV-ug9{l~j;GC-hDNc=^m7XaI*0QFKxWSj$m|^xMMxUU z8>s(AvW^`1Hf6HM&R(}oII^9^p~Ow3slJ#9-uBu|O7UaMXPQB5OAd8Jmg)W@)3{vi zxIAGMhWIK0u4MawDbL%WHye+K`p$KW-26|9Q3|>NCbnX^N0#Xv)5nI3cKZ4%ri}25 zaF54Co6O6{krua_NAXZ7slWQ5-z$7Bu$g{MeA!6MYVD#;rh2>f##!^kN?#q|0%S(x z1PQ~MgKg;R?a|pipME}v)ri3P$Z23We>COIQCC#ga zs_2~LiRp5fVW#Z2&(D;Ul;*`_>b|Ti9%XxRafz0K!I^9dRO7(Bg6%vye@yRsL)hzPfxz zwfat(ui8Fn^F8iB)VaZTJ-VyOE(_kC9JL%y2dr_dC;k?R_{IExEL?F$#VqQW9HXzu z7vHTrQ;#)9;;S&kKJj*48|~E|>2q3Bx3Syn7>mQoDTeJ`IYfR@U-m@KH1N-N%gRol z^V~Xg|9s}GhP3@{UrlchE62&ZG4AE_m|~a;n5C%Izvp_C;whDt%QxQ5T~reANW$RE zdYt{Jp}bRR$QMyc5?6u+b3cFEOK-q983bc{sgorOx{NI&}n$RyGeh~XYi=g zas+XDqOn<@%t2|8HJmyYE1$>>sWxymdb-YVIfJ9)C_|^)!$4G|Z!{@DJ>8(wDD7YO zdL^zYkOmRbh z-IAIrKeRNCGAy553|)|;nrGE;LZDx-2GVhY=bA?EiC^khOGUD zD2D9uEGCa_b}4eQ*`2&BHuPk!QPVX8(p9+XoHoi_A?h2ex!SX|{j(D{OB;$U_=+zk z)3xRbj>fG8{i)oRe0sB+eml_owe|Wtk2vdM%2m#tm}0S4V0S6`86XN7{M_Pvp5tC6 zx^hKHH>-3*74LmQ#*Qi*+{2?zG_EVdvP|sb`f$ncoP*L88%xgE?3uSa3m-V;g=3=9 zP5RZ4?lX{fxbu8?B#F#0sNbJ1*_ykDtbwk$M z82v8r;t)ltyr%8+wqmOMa5ujh2$5s!(~GsQjCI(T>?TLq`j#G46DwkNsLzuc3qt3{ zq$lMDbo0;;EBE58Hm&x3K%b>1-CRjG%GZB4?s%ALnm3V)}yTqAx)_tu)w%ap=n%z@!mYF)Pe)n@g+|W z;?ObhH_Uhnzs|meci(t_A|IXkIoulcFrWmFB?v~A)N zuygy_souFp#c*y*mZm^B)~}BDWX}+-GH50FG3sAovvi$krx{Bq8f@d){cV zZs8NR-@Dv*pb=A>!O_HgcqxAW+W!X|;eVp^{UY^Lu7smjRqizJ;-goJz_8D3Y*?3~ zS8q4RY#1yV`S`d>q?v2*$N}-cBM}5AVm?S|;}-ZAzVKhX_4m8~H4frOa>HFpo9?H2 zm5<1OMz|I_F@7#~t|`p0L;H3$EPv;OUKWr_EKckCF3U4AF#zrWy!(FZHj zB1p$5_`&`DfArk%H|wwC)Gw$8i5|d;>;+kr=V~L`VE5WB#uR+7lrCVBA6fcbINQ z3i(5ec$v}F`}tZgFKLtP9dDWN9y2mh%F!LFyC_5>nXklSI*!^vqNOIl8zs-0v?llN zZ}T(iIkKy52VG)=M+*D_TF2XGH@IbgLhCF_N6^6IQy%T#kYL6hxzkwHutK{@-?6j& z>Na3-V1QN6u_v0s7PFz(%vLdfjEstEe0_Z)#G~dRf;Du&9l0&yMK6Rwk1$d|!{$oK zOCklIn1;dib9{?GzGTDWC`F#6PQP`gFIx&mqS%e$py9lYrS#i&eEDdc2OyH0>r?0O zjVKeg7kG8$)f>K*Jmz~<1=t(h?mj#!$M;h@T4<8M_}Z%ohZ6=us)XhD{=odf9_*DJ z%l%V6P#em>VC`Ps$#{V^!^{)%|>pr3TZ#SDv{hd ztS_{TJM1bs&GtT9-pvXi1UnU=A1##z!rzOR=sBvF^M-y>D=>T0apqTjg}bc0OgoBS zZ14L8_5tsYI$+Ph_(OXd7`8bs_BV?pk;8>d86!K$HdtD+P_owh0ns!Pce<=l@X^?T z*FqM)3Kb<~xo$KrViR?YpJ;CFHHOTf-NLhM?n@Nqe&|4o|y>wm^z)Ht`( zno~;O>)h&`GYui|hf+F)e6_iHhjhrG8Cl>s&}r=QvN5g?;eha1elCWLVb2kLCb?SK0w zt89ObSk{puQF%%!Aozvu&C1!t_Xm)YMgDYJ_7 z)Xd4Mt(a%=&+=UT*P;Y!t&S)UmfMZAq5`r3AlSiV@ibuenllt3a#(>Yn=yMY!ZHha z^JD>?x-vS%GeU&x9T7ypOg{VyR#U1@?^)^Voxz?VH) z-CZPY*wPU-M;oN+>3*~%dg6;Mxvyn>&BD=cisA7I#tR)$e~(d!GooPRo!wk&SEq|I}sH6K0sB*Xtt)7PSx=sqK=sv`X3YX3pl z+cN~)^Oq(FKX%2;jFA>PP^;nL3GZ3Es0MA$)!ErP*+DC+L&hMC5W8ok%`H!UV&isv zLxyel-l#}6HDoHNl7s`UK%8< zCirlArEd*BXC-b#_uMZ=>>_n}9C9n!M>4tAe(nNs-|9J^7Y9k-f5_x+n3^CnlsUE* zcw<9Bksf%7@4tKM>l|1ZH*0QU*0GaK8+K-8bf<8oQn1_UBwiryUDnERy6bX8gkk%g zs;xl$vL@d`xnYl+GISYEciTz$(0^Z@YT`o!-qZcvw1lzu6@jDn;%VY@q3x$W{@a%0 z$r>6xMvq5xua#m0i(6fu-)S3-zrRC2%WXl==tO=0Q1mo^cqd|6c+1fxb8GzM<>A;W zY!U1a0b3yL9KUA~x*9NR_O|i;V1}p(L#G^37O>ZD?9=2;*V;eHQ4zaNdHbpSoX_$F z`f>&E=(#=e^$QCIHJ(?Q*T>kt=jh8Ez~Mhx=pAqbfTzEICcfU!UGhg+`rkkIq;pD3 zq2@{)yxmwzfWmR8tuB9Z9n^|@s1-6cprbqMwLfF>bMfYtV&Mou1BoU@NMGYVCEOWqd-F{u@RtdFA5laqUA>{0zQJH_;gylgo!0& z{7YsgR*JRLUc0S&;~-IyA*=KDMS6aC$C-rps;{Gn-^f0sw!^)Uz1VFU{fsH_)!|_+ zk1BDIBd!kCYbAgbq}pnl{R!BYe^;2aq%zV9WHa~~al_oyAdRU$S4g`oc#3EGb4rlrt~*zOb3SC zq(9_n)*-D$*>w6YEj@jMO{TPPob;vHt4tA>YTLJ`LCcsQGcwX@_m~Iw7n;-smb^z$ z+DSewN0679anT?|6AR%}OQPW;d+ra}Vhs{}TW8x$;%aW7_1pH+WgdiLMtGWS=#w<^ z8m2KDFW#JY9QnO;QJ-ETS|Ev??#$XTvz)P6Baa?Hl#-4wBU^?owVhOttFBC-#eUr$py6t>b&`@8sx+f= z)4>kmtv7Kk3VFQVt+8y2bz@n|sZ2KXQ7>lrQmEUxOyCy2J7xHLS=r6905Po=_Li~9 zA@i|KOe#!NAdtuzHSMSgX3{kjsOO|*DT=?4e@(@Yn8unV0U3FETt%Jw2Vy3Ali^H! z7M@#F$jw|)i+e!ZR`8YN&inU81p_IS<%cRv5uj_s+luxxjeo0ER>twgPm8fmZNcKkC7JduJoR6>TtT0 zG9NJTry+H5p|N;~_pU-OC=s#uByfX+TQ2(A)EQ*l%VYK3ebRSVGu!Em;_Gao{D?UPy4 z-)H;CwBH)W-nZzE!Cot`}x_0(%W=Lpn(G4}~@wItpml0hXdsUW&VKb*iDcwL9MR!S)7!+<~h<9l$$oEhKl$Dntvd+D~f@7|*8g zcl^b#v_PDlciG-@R)*J7KHaB7uswqdmx1!sSE4_XjYeW`>zcL0sC;$MeG!o<#^<-0 zM?yJAw>h2{9xX@%f0B6m+DOxnxAuJX@%|ROu*@!4RsETQ^Qt9W=>eRrVd!Zy}gThCA-tx#*b^HtKylPD$wbz;m&y z9;#^p6`|BVaL!50qT%(s;!#3)9iS1>MdYK|^2pK6G@*sCpx0RSZ@H=vio?l4>(w=J>lk6Y|bj(e<20Bmd=Y!)rTj)n-jt?b|Fkz}IIc zkCj6u`0hS4x!NQ=$Z<&*hgiUZfTYccIKlBC$@{?NcCjY3i)->vf^FSQL0|sMoAlp$ z=l8!l;E&{*X^Fur$2C^y=V#-?+ro^5`>8xmPvZyYaADVeLe4oNBSTBpmfSm$%?%!V zi$^{UdU|^M%4>{JIChVr>J&;f&rfl;_j08kh@MeEKeTh)Q)0CnaD&~WpIULh`S`o& zPymrza=>@|aLqC(N5E0u+x=rfB;19~p$S8WFpqk6t~}YmKpWlpMK*ji+czuIdPhqw zOQ)Ebpu7B%#I~zYs+OsSVnp+j$G%WQZD(((3bEUSno+)F_-KQ>xf&>;O__7wyk!jc%E9s^hGTR7nUGeefu{q$J)qy4nm|HP~R{S)En(l+#Y zIV=h@$Q1I>TNZ|k5~c)94TS_CDsL!2cRIQfJ^-f}Mg;*v=HtF)`6#F|CZ# zy)-)6&`(}jS@|U8N6JqpM>Ez;=MuD{ZagtVH~{{--z}|WmmH+PB$K(}d}L^qYg+C} zeev#_%4cT}PngzzQyYo;i$Zrle*qUvFpuu=eZFu5-$_2_j*7#BA?h-T^msM{9&Ps~ zTZtykqoSeAh&lA{b?*K0+sn_qp5Be@>>`~^4HZ+}>TrRSQj8pKEw1Jd;HiH)cw2#Hn(zC*D!sI_ zqX7;@0|e@MzTqaE*+aCEP0wL)puGd*F`U~Iz8Ljc+V1>3Qh#*wCtR|XYKP@FdYa>T z%9o|)(ZKjG<3@#zOx)90_BoIBOOoQ{^2-o*S5Dy(4#SiMo>8mCCAhCL0PL@(7mo(< zwdza(OF9jHYX&o9zId9uaA`hqn6)simn9739`62h{YE>eE1GonRGD)v$tj5e@V6K) znDRXnw=Kn8@@H4me`a9B-qw8kR=}yfxVqIlI2iBZF9z4UI>}fEShsg@Q0~|Z?BHXE z3N`6_;5j=@E5fb6`(0OpQ>ScM1zC@;5jio+Os(D;urtDl74;eH`B&is-?}X>Zu>qF?l{}vKDU^% zQqug!6qe^Vr>LmtvxmZ~bpPb~82ioz{g)ty`X~mL-u4n}y05}I8OYEhhQT({^gez2 zJ1|fxL-TXt^(Rs=ZdI)o|1syHY=9I9b+Q>5lnc{s*-FYUq|N;yP(c*`!q$TnmU#IC zy?;$-22%tJAhSV>)dvB4(;8z)-z5zGbE0pK*ig$`)1eR4XspnnO`QniRnq!6o6C3V6E-wH{8w|D%0wO0v2X45L>D)GH4w%^P!$9PIgVm_ zEnVW}ib+Am)D$znZ$~d{1MVWSZW?%id#S>-I=(T62#}`u7+ssCpN)OO{P(w317oCW z+Kk;xm;RPv_$%Q@==#%w@Fc)>1>o(AxLIy7OT7)QEF) z1+k;T!#<^huk}AbJu{%bw8GT4Tl1bSf;cc=4ifU4_>HS1w#D}3-U=-d^~_I4ic)X8 zK=VwoeNW{b2c=`FR6GVZvfkx8-JTgRPu(s-zUg=_`0e(1QJI6~&Qbt8A(g&|9W!ku ztYN|d6-tJ;&5KuOKG5`D5}ZpR0d6mD2Sgte6(d{8y7;zA_v)jrckfG|lrS#R3Bw5J z*wX%y-2ac{f~l2}Z6hMY@ep^-AeJUp&`iId4rUw`v$5Lt``D{B9r88A|qQ-6dmP_H|JjopqG&p4SdjUdV`**J~ zPj{jj$rS|<0demOCigqV#EkB_`mbajOF$Ls`0Og#F3(-qSGcxrA-}Pk+d--Yt%vQZ zPVWcij#rI?ni%}I<{>ko{ae~CY%0HAk0Mo~!kxxyu-x5h^oe7(q)4leM#Kg9d_}O-e)-kTpgAUng zezSqzy(BYy{$2oPq?bd`uGch2W{O>qM|dUIL!tCf3-kM@UZt8XxG^Xv?d&03lsBJZ zGB9j?h=|Clu6}z4n_gkKG3JT1=!!cFdF8jh`c&ohs1_i47bo5^)Y|`sHCk562ZyNV z4;-g@#hU}=XJ0)>qcPKnYfdf69Cv~G^i1CctLUgez~gbRNzUzW($_*k*XSu<%w#ia zqcTO#sqhtTq?{x(Vsg~x=YVqgap3SZW|{ppjX9Q$3#+O0K9tE0nT(Aj$@E%4M#Nr5 zL~sM~M($JG1=+Q1!TH)}Pp&gfg|3hpUL+iO7`(UCcd#?#8*?+mg9+w(ze_y13wf{) z?5`x_Gml&u-K{}_J2=x?N=x`GX*#cw5h?CHzX{8EIhg909_#?2J&G^&E_%%1kLWZ- z3=0rPX0k#!hf%gJ8isGT1|pN-+?oONuGqUP7&NNvbkzhYAUA+uCiC&NOOn1j!f@DS zAUDYaXs76*D=4eSHR3GlI6(~?53GQ2ZA0E)WICtUt`w{a?6n~)71_Wgaq)hp)n8+) zk(mdC`8vk^`#&gfR1nF600y^iG?SLIa&sZ3 z2YD%LDi;Lp9UUFV#Bw7DA8eo{7ld+mDorVCj&NXm&eU{slr|{1FntjHB7jg$@`w-?jGacN!}y?*XA||E)v`6kzm`7*tOdFhF?5cOz%FOc@KyrFc@S^?F0-N!!evT=oC z>#0XR%;RQI;n?+PQ_chdGy7ZNexSeuNBGzQ*DR57W3d}Y(34bS4lwJG-O-*Q?ykT! z?q-w*?iZ|ko>RQ&cZDqFWv~j4@26TgCfGqZz+2I2MRZH8+To=FozXpOyu5KSOSviP zN#2h<{UGmJxly#9di(FH_3!qv;5uCdr?0{Vwa$tdT;))-YKHrEuRYZ>%Ne2`%@yc3 z$t^14E}5)=EqcrPmMgMjZlKVTos%tpq)q5MFD-%vWmnF~Y~xtMuAAtUJ6kVzU6I)u z9Pi@3yZ$CuersVWa8t{lKxz^_D?VSGtGXq%?>;G|j8STOpj^zlbVsr;(|!KlRu3;f zBLL=xx^7s3T6g0wd{fup@IGoehZRijHw>qjeLJcX-f@6R+H2oEF_Yf?ihHl3YX36?EiqX&plpoWan!Y~ z+JXA-xDaejJe8S=Gu4|cG6!j|mCF%2wwQC6HCWYN!-4Sy(9K2iV00AUC^jH<>$79H zm|zLZ@DF0?z<7>ZTMx3MEp`(X5!#|RtY6WNtsL;P-*Foowa(viXhrqMv&H<*Z!1=f8BjAGl9bk-(bcz_Xfk(BacjUDRTo?@f}))l>ne zUJ7((4F2#z4A*85|LFB>pw5~D1bX%CtLfs*9Y0eRt0X;<^L=Z&F$;xE?iec2mwG&> zGEdaX&K^6pO2A%FCC_SXq4Uu8isjP%Xmfwk^C_*pqNa4T3JOIlE|=oDzySVcqUyUr zx7NL?VV`BxGVdUL0k7m7fLt79=}Mn0_gIIclMY^}-z<(enq%7|b>{e5mEyanM#8Su z_iD2m1(*ep*1=ff7zWflkQMTd>-qyTy}RhjC1q03m7a*w-|U;-nB5BI3qO^l74Aiu zK}B}|>8+`poj6D~Im;5t{_8j5spLI19g6*G(E}#qK-Pl&Q#xR~e2S@$o&XR~tU1_S znqCR7A8NW4gEW~n6~G~17yjv10V1r2K4;9tMhlI z^VhGz1~+*~C>T|TsP@19UJfcxqEX~kyS&|8cShsfc&zX4K(puCH6$AinF zEAN#RL-LNlwbsa12v6j?xgh3dGl+@xcogUHYgqFfus1?m=}*wX{}4%y*a5WShozl= zuwsAz3OG+qe>S);{Py=He3-}kCv%TqHm6qg+oAvM)jwQUz)y{8fDKLUe|_Q)*Bthh zE(5~+cWVCY2jzV)!|N><3LmD&4jDUm-h}qQ9_;UP%>ABl*7I9<^MB*Gytx$q|8{3k zP0sfkG%L6CAyMREkKVlUSMmPShW_=F7_8>LyL*~w{Q6JoTX3VGH}mlAwQk8n7tUXw z_tyoMvP`W7ijT!z`#VGb+xI{nor)ju_nH4819KS3e;KLMiz=-gE^TN2I;DSK{XY;9 ztagj)foI5K-B14T&wuyTu9BJu2^S|E|8J@N+jTV=-

gvZ>U||B~9j%f5&ym356A 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
-B@6gHi+RAnIP-bxjLv!FKoDG^=E-QssaPb-u)%yQC7TS)}^N?1Ciu zo~n({6W{Q;vCK+hbv(Jlv45I4Fk5Rtw5t*=A0(1qt5W#BqPpa>AGE*%E)1d5HA|sd zSqGpsU+Xbz90sy=21lU2@f!#iIbdUnXLm%YU3=wu{(ECJQ15PyF1Xq!pxEq4K_BmD_8g~=f=s$9=mv^#sM_eV@Xw6nJkxl z{-GaU+-Q_$e5Wtn>buC&H8@$1;AEWj-SVr6r*M5^WeQwcJRSviUA#yaY_wS3a^PO< zz}DhE>-D@rGFTLMI{sTJ+EBPowSlR$JMyk@J6&b<4H%39Wk=VEjv|yf5$~K14z)&1 zZcKT|va7dVc~*1w&@tRnq_k)YVEpOvjs=Ddj;M4b_%ii>L<-1HO|M35Ek*!pT(%UR z0JvC5C7MVwc+P-1y!MnQ_z8M^u?VpZ>{|B6G3z`gzw(ja{mg#A76nD-WQfNWb#4pL z&$T#sT=*t=gm;AE(u(8XFo5@_`T`DvXomlc&r$*>FK$y}gM0`nv7ZH*wY3}D;{C~f ziwoaSsHgOXm(_JJ&EBlu>(fo2Ec+JAQQ!UborgDLl$+i2KXhA|Sl^@U#k}7xT?W$R z#_K%Yb3xnLnT$x0gyi#BCJyTv#%3ADR2C-9+d1CVdPXuT!!Fg|ah|kyrKBG=#{rJs zuf8`1^##n=T;LWo(3q=fTvbo-=|J}$4(FS5s+(NWA1kvy_{3WIiRgt2m-G~~0?6$x zPYw5|NMNk4?m49o?bkwCWK~D|HWY%_LAST`KR@^-U|XOEvgOXzBi`Sx@X&d* z7I9G5Gr@F=t4dQwr|e>)_N4(MLpJAivyT-#I?-45WAJrt5?vwVL~&i!f+BgYC1=!XfG&pdhLUS-TfdL#~PEBhhla)Mer`xOKv z5vKjqybeEiF{J~7$Ev>;*MwiQ1qQJ3`X(27jFv(+Xl41N>UD47Om7b3S9DKLih)zj zBY&h2qZj!bgp}IcJpULrh`}U?3`0sw;CCdX?R2`iDJxifH(-;}pQpj3ZmBGL#Ruou zM@-_^YH`{oyyKZ|XOD1jyKm8+_+i}WMz3qr2KpZ3yM1m>Dh*LwP$fQ9XgoagAJS!N-$j+>%%xx^*guG%zA7uc$6KbfQuJ4 zjU;EOqB_an*MgKA-84SNJJp&8&(OdGAW#I5>y?kagoAWXh0#%P&MPv1 zvAcf7Kq258asjh~aqf;eyNX_!XFc6U^K^Bz?%Burv9oXHB}AKU)IEe;=~RB$>TqzQ zcJAaTXxG=;P4SHU4$@hNEDLp*QY^Ams62r3IB0)C3yZ2=;OddZ7BC?up3ptS5pz<8RdP-_M<^JI7MMZ3WBeZoFU0$&v`8 ze+Y8B&F#LMDzp7nZG2^{h?_8?nm7&MC(fO!RN7Y!qI3E-V+Jzle#Xc(KM{#UzkV!ToiHh z$Kzi8xMi6=_0!+0R{#0^?^xxJg-iAeF`u z=8O;8;;r27_f6?}vFCMi?nQD0I_l)?ktQ~Ol5KPI6ktU5i_#trw<`6 zXHz)Ok5oNLsd`6U5cD?u8&EsgxaXYzobFra-4ymZ`=dlNj-$TuB@~!aMYA@9tpnm9 zI;W4Cyp5@hB=M}tf($NL`01n?gK@Y#e}q4gMo0ZH@fq4e@kRG~&*nbC74y0_RR`<8 z;a_uq3FtVQ9h~HSzY6P9MgZ@7kNe_xq#Oz4o*8ME2ZHVOQt=BAm2>_F@AkBV6+vq{ zUE=pKs~D{_aXFeVAoJy+Y=031`+#NQeRQq%-|AHUdAt5$r=yEsFYb%y6-9?pf@az|j?--G>w_h55D%Sqe<7s9J37tm)}p69jC;3gxZt(rzm< z(h-+6SGBqC4z$Ji&&ovVoDBtd*nT&hV6Zs15aXNFBPnOI@{C7yRIFSyYmU%*sL+r9BZexgd`?pd6*eu&$8+=L^Too zWNO zT8vOi601+e>bP%MV4q4QE;bp1F^1xlun@ywRViqO<$d*=av5`6( z*=f|N&3_(LSJpzEhFELlkQqgftQXIrmzX<%6bN033Y4)AEb?`puouZ7GM~ycV7!!ckVbAJ-X)#lU$X^e1obu-}=?8uPN@2x)<8vlXf_>;H^n(2HR_M%d}#OhqxKsi`mvW8ts=}=DS|Dy`~dc-E8KO7AoqPmg3@(zC`|<6K3=ml_Pq5 z_B?+2=*NrybO2FsK*r#0ahT*i9O^TFZO0(WOExu%TUGlk&(U5t1a3m!h>eGa)OERQ z7uE_HE?~|bZ3lO$qL0^?lTP-ab$mabmLa_MWQ5wUsL2kPkv1|6y%ciE?AOEp? zac$kE=36Mes*<+E%9z{a1PQJ%@FoJW>yBEUQluQC49T81j33B2_nxd8sTkPV9C{YH z#HhxmjZFaph)fq|PD*b~W41$tWN{Nl#ZH6kb!u#VC=n13^I$&L5K@!PBS?5t;Obn= z_wr2{^VvRy8nYS_R}S$@tb2iBf+j8fLnB5e!wNmpUW1UIPRsr?j;hk>bBWSf)*Q9% z$~W%LNNedMd=0^nF?v5T2l+)r+C}8976}yOu($^_*{hY?IW4rfuqVP5@@C&yCPU3H z?Y_s+W;Y&jG$X|(#RQ@;z!hDC`t}h=rrJP5P3AZGB&i-N8!U7F#-@?npfL|D>2^iL z&vY*$um`o?r_b_C`9#h}CPa70%+<7PPwI?A_c}cV#z4V739wHmxqOfMADQz4x3(z+ z<&PL&$oXR(yFxh8c?7kP+M&N>wkv*f;hxT^Yz{(erihi*7>D z*7Mfdi+c9s`-v~W=Ka!3;zqU(4(Qq0Hvz5VkSE$O1qvH{8Onq3cR2TV>Q^f74Tug? z&v-6=dZBi0vU}jSuqH8C+4?oQiEEq&qY@TA($XTkrxso3oTfEKPRI5MX6|^b)~Gm- zvTI_YIX;!Ax6&a}8UCL0cunr;QOwKITS!pk$o+eahOGUqb0^q*N$=W%bz}2wf{32W z{bWz~XR)2WS^NbblgX{rH90s_=0&iZSg?iFP1k3BGa%v}B^}gT z_gUt2@3ROdi#fVk7r~!DD%wFnA}izSE|+C7DHHLEMFqkCiKK?pR_b3wIia)bmo-YR7!$QI;mCxB__`eR!f`6Nb>h)TNbi1yq zc*eco?|TQ`?X!B^9_e5I##2e)TFg+gzF2_t-_L$s=VLS^W|YmyfV8)G?r2>e%A71F zk9N?ox69Z*x&!M3>*F&k+gI|-v2c5Y8W7bXK0X&ptf^Yrwv!vjJ=YhKvvM>D8*Fxa zmPskKVb<>gtNM@AeK1}s?UCk-<_8scCHwj!KnJ^Ka^seT+nS?uJHvA<8@8uoSz-k$ zkY33RDyI9IiUR*W-Ci6@vm2cJ!VefzVoRMRbW`v}k<>~&+7ExC6d;>i;Nbo#DC0j*!T+KCufS>v${w%5bpT~Sn!BpD(pO)ai{nzv<1pz1&5*hWQ z)BoSzO!*w8zxdf7_vKII@t+59`zd8_ajv_H{1{*R|9IB_p{F?KaT5EM+~4Zl{ulfD z|I$UW8 zZR)xW6-Kb$=SN4qYQe=yZd&mTQfdv@KHdhs0{=eg{~heEjh6cLJ#Uo{X3{W0om*wt zRieF{o7;q2Q}mno`|z~{jqJbf$D?P3t-^B>F0N~D}xli()$43PMp=rMkJZ|hygX1fC)GI4LpXy5N*{ay* z)Tm^;`iBzIPNwYM{MDqM8$a2;x|~#!6JF{11_sOn@#HX;?XcvdG_&C+x6&Ljj#^qg zxA^16^)H|@A`T~ig?dx+iWCIA9shZCFFd8Ds{U;jsAjc%`o;JA7*B$B1}E!9)|I26 zW~;m$i=+r|yoCKTPp>4+pkS?ZmI3+ak6bnj@<|wxyJHx5CkDjJ5A7Q);}+XHrGzGk z>xHavF4ofQAVBLi%EY^{r$WhWQh2nJ(b-?5OXjKPVdpE1O|;fbRTpHc z@N0ALt)C1~!8DUvmg|hm1M>$eg3gvkN1X`}txgpc;8Iz{o}V05Kd!Zy5{->fxi*w^ zMoCiViE>`vD{ZwW0yQb_S|QURFD_Ba z-Z!Fa5LWb5C48If402J+N1w4Igr?HzscP}>TmTTJa2QRcS4k7P6JYGn!i(IY&hwAJ z80+v?-euEq@Vk#Fhg}%=DWMr07&ArKzxgw)m~yOtquuZRSp@KJ4$j-^*W?(5^h#4x z?^TVt0p%Xl)~UByNUPks!1d0Vbb7Alpp#N>P*9-oAS^1t&&}(h$I!T${+zvy7MSqH z-Qh|9;PcW~XR=gWOvmcEt)o=wTuoApPhgPlYHF&`S6>`*QlNPAKw54V_01*TPpVCp z+g)98a*QUg?=5DLCQS23B+IQ{S}Tg%QjTU@-GZcqs>YatSl{|af~EugnYF7przEJM zsDu}MP1PsPG2^%>QXqujs2sV(E0_%>&HIP zm8+M;N+L5iZ*_HaShUq1weZyu9evLP_C@7>7Bs5O09tq3+O<(@l^*L)jAo;Sv~!oW zbTWE(cFYrV*tyO#fc_*TafJ<4gz@2IL*}*PikP3Xo;4|g?3;DCAy?DGYS{&8ZfbhxCfpg;L*ozXc=^(VJ2-cVe|3Wx2ugKg= zuH;X(-N8>W9qJ!m{9|MOt9}iTOnb!?=X5&N;Bu#;vi6i$y}S07o1Ba%;dweL&Pixy zhS6uG0@M1z>Gc{VIE*oD#0*VYNON$Y-}A?KeF97J zNs${0G1ET}ODs&e63Qn8AeIlmxv>6yj1)F(Zd$69ohTgA+BcGAY?`iG0c>vvC=qU31?v+}qix#VvsxwRMazk2)-KQ3zN_j4G@WH$jjdc{^4#7dd zIJq7rOmAFM>Y`=xM8FY7CmwXsrD-8M>ZwXo+Ldqyo)TrrRxOs^<|p~6jiiQGl-z^% zopIW7+nKE9Ksg_kqb$X4eraJN$GV`1!vjZLIJ)-mZry?I<@{Ctes)xa2Iv5wBq z6;HDQno#*OGT95wC#keFi(4h7E_$Cz09c9PHQWyC;Snmlru!KE0r~u;+*C@!I(%4% zclS0(RoWJD!ffGF^M&xGu_3`C?@+UoI5D{>cNku)znRT$gH=+L-TY*B=lX?{e2{bf z8(!98e(Q$*7t~U`!=%5_D<`cgkC4Q7eN4Cimei#w@ko{41;+{9ZAM41>9u_6b+O^ZvJjL3?d4W-e<~m#NU7 zuwFKpvGkk$lx7uZv2KQqikE9?V$o}?#MGE0&KFyao3=ff_zz1}yr$ zo(987Zhu&8JQs_PWCh3CnSW+ft({`Aadxh{P+`SP!D`wD9x|7?ySww~vUDVxan{Rj zgtl zLPZI<>_JXT!)#R^r7}IRyGF=+Z znr}W~bmt46U>7qZC1^JnC}FK~9>Lv{yRW?YZQei%&ZBSF_v%GL_M?}ZNv%6#DVkbF zlq!CffnAZHu^A&o-;8WOn@I!JJTb6hHw#8f17+JeDtPOeFwQLZyCV?bP2F}hC)yoy z_1NJ1S1taJYv?is>6JGt)XHnU0;|=J=;`S<=F|6E?G@M0t;|7 zGD!~i0l0P-VO0n%N(sT9^aZXV($Zi)R2p5zN$L9;FnC=ZW5zW$8!rNoeJ;%ESi|g# zmmaV*5O%x*Au(b?S*3~wpAsEx}7K*yY=^vA>@Y`LSVx{sZek|=NF zl`D87^ot6&Dek?Iid-HZfSgpSEu+|SktBT2eM-|D2eN}oy+nXb$t(|2K}IYg0KoGpB#PD;TW|&^$SkX+{l*(1 zPX0iv)EzCU*7CfA+9$!3OxK^aBV8R8(A~<0-WHcm(zFI@r%PSc z-fB}v*&U`z;C!h%yl3EK3sv1LVS`d(@nI-3EQly+Lge$Vnj8H_ImiBPCaCK*l0_@s zcq4vH75s}KoP#Z+ z)>PfuzdwO4!hrQeRIi7YPVC56$9)`xjQezg08}+QP5EZ^XoZIO(Pfu~jAnDK7lVE0 zojQ{x+1a{^igu#atuwBD@Lb-oeZ&oG#F+LogB~RkcS^Up0jUA~@>SFMu%^*86^x@R zl>qFfC1y$A5Q?=nuXQ6A(CT`G9$b-#SMZbhR?%(2;-uk_a|c+iRa;xJ)$s~7EjyWL zh{<#uuTh`*{tj+fyG-3Fo!JJTdwPL#dkJ={g#j&gc}2z}r@!mdinI9eXCanTyYc$3 zUq<~l!gNAdt|$8=t#u-07pS}f-D06$)=@MF+b=?+Z}r#2kC{j90s3Z3J(w^f$HcI zS*gsaFDDq^18fm`&GuXy(6f{Ct69ULz`!$Te{-MR z#8YXES!T$u2A(KY?WCmoyfd+Mj9mj{OS+V_50 z(3fv{rjc|tT&a@{$|sxZG3fhN%n^BNgDHV{FF}+c>n*$sno;UtE`fb(Usq~3;fSdm zHT)fEMM-P|V!`yD0a-r{Bvr8F6qP;j;=`cp3Z9b+SZbd*$v@Ob7Dir}|8Crc`2|zu^WLN+u=N@xY_u(-0M*^^=gb-!kzI7+wRht z!=F)~<;AlC3Gw^4qu%;8a8mMNGUOCtD2hdYCwliYVEuY-E-lWRm4mH~(g(F#)CC~N zeRh1b`012%c1SPTgoT1pRh*u|iQS#Aw@xq^O=MImP+>?y7gL7F_eu4!xO)>_QdMl5 zXEs-N2{^aOzd2Ye##)S#{yry}xr%CQGt%d)aw(s`v(QYOkpsj|!(SXRYS$~Y^bbFS zQY1Nf$nw3Gzy0@zrNTxu49Qlj^qi*XdPCnLxcu4mCpSLS65Qn+1*;NLX?Eh{d@QF00qy zDxvL2=3(gTG8PjDyv*_xv&6m*kls_-RKjQswAv$}1K-yuv`kixS4KzXVAZ;J9xug@ zY(^RP&2XjHG7^*RSKK0o?HSUxcbw{W0u6r;x@+I3cu>*mxcHwrP)jua8&Sy?r76y1 z)f$urwAwd5s!ipTS$EsHxTvr07J9ZOoM9L{Kb+EtQpieVx^wAQ>3bU5hdtf?JEHUq zXXg*t!~;^%;uAZSRj9nLbT3CLL979b-q$IqFn=7VH_RkeLdL{Z zf5v<>C{J*os@)^7sO#yo#E9@1`qr)6x4Sn>D}cgGE!oPy*a3Nbl~P_L_~?rPm>92?=X2mioAoJ#xpPV6qS94V80LyuPFznyEfnUf6Nt zoL@$4FFqx}~piURZliiea>No&I3YCCwgLEn`t$ zp=94tgGUQb&6L;El#ilE2$E61E?c(ML)yaM+S{8|*_0#)={0~;wJXZwkgPcBT7w4n z2@@+mi^?acE*v@THpoGO65>!n?Bx+}t!z>YN%FtSFgvC3a1vQVI>+4~AM>-~}qSYKl8x zb=t!BId&|550w-nLffP$E+?I{SiziVoQj=e@D@2S-_;uv!C-CPS?E1??(V%IRG`Bw zfB$7?qwE_AH|XYX_S*L_ber*QLTMqY#r|e&vMoWtJ6A3e%DKq{jUECzA0uo#{ABKf z^S95mq|e7NtDLpuzVE#>GGK8o!Qwe1Qy)U8JWa9_wQkGVQiCIfVXLQT;FW z->>ywXsoQPGRkRHh!)@EWox?2hb6_OGEMCzK4%SD_};FvSmN>gKspuzO`1T0GVW%) zvbIJlcLp=JQ7xD9wJm-9zB1navE_rIx~{ZsD@OBBV`2GuVx;_e&0@if{VZ*9@w=(N zd_i}H-nww*k^z!2RTj>gaHTHi*@N_X&&|W$_Qi5>3GGpld_A3kQblcf?K~KlIY{UG z38iK+m-WD`s7EWpCcAwX>^$2B{T#J(GxmJ>W1mhW)Kook)SVPR^SG%1(BKlljVXw$ z$%lLP?nd`t5jJ@+HK9Y$B$Q~tJL0j)SNj%}A5L|!&<0(!TjP};Oo_3Qu_u=|o6kG1 zeQLL(WQtu0U$p1c4NO)mKS{oa{X;a08E6uZt{4Tw(x3fISQNym3@Y92i3CZ@=}zlu zSGK(`zcE7OB-6gPeIPJAj(nWH*UqUTq2ZhBZ1W*n0}vh0`fzZmjcgN(JFWoDi9U{_ z3i!HNWH`JXR>EwGm*>jqTw`PH+Zw~X%8X?e~k2N3|ZrEB>tA%%C`|0T=o(X~f ztbSKUppE4NleWnQn;~2%>u}$vO3E`%{2wY!7fVIh^TyX@Z!!GDRX(qq@(P15i%Q|Y zbT+S{!JWA$oK^`jfFwaigM_jR6Dyri|4EDzKP=HaDSO6w%K9JXoI@L z%o%Qjrd)o@tDs4nQ$?jVrS_IGI)Xk#a;e2lzHLp&*)3N+$y+X_B){+NKtjAxK%Q|3 zCws4)nP)$dK@Sn};-eP4;_!=b8Cp`y;!>-cMp4Om>F-Lp)Vt^&$T(`GW zNcx9!bl<+E-UXuY5jtJjYg~2>4OvSX!*+;)hoPMr&fQ&1YBTm!df4_M%KpE@+HuXN zjKusd1-7!N&OWH%(iGFs-mJi0l{{SxK8ybAX_AV3s(4Ol##Ei*wU-OY_7!a>zY?torg!7RnqnC z>$6Kil`}WasAkHErWhnYkqzevupO?aTcT%u-WtE#J>S_idR|g9iI(Q|T6iZTT!(X# zUm$Ag1F5ImJ7>oJtm0fwm+MC2-s+Y^+J3xEIsxuu;U+CxXZSkvO}%)z7Uios#8V!3 zN$}?Rw_3icO6Cw;7^I(9p6Uv@`Dx=Fj&ATId9D}4H&D8$BC;yEyPy~~SJJ&`WPA_P z#(*qshFNT>cA83A^n=R_!dQd$-uUF?{hQmn@j%wFW%BWS4Ec9OdA!8S%Ea}rPdJl# zAtjAI{7QLt>?0I-tCWbs!w9VR5_=Y%gL7)n1g{~2*Os@^G())$(HaecQ3wcx9%x)6 zGQf-T3uW-L4A{tJBo9KO_T`!QQAEo`I;Om3w+I72DnYA4-h}eaJL=$&|4Gp zcA>~?o6r3q!zAj9pfr-w@LX+D3YjmtJY>(wOoq};V>bs;!3jWUlEZy~;0v->%(YdXom+}uG64D_DKCn8fV6r8Ug7#A`TK%DX-NcVV;q- zOaQHjNMPP>$6%_v@fBgC{wv{~ zhvfq}i$>XWktz$c^sXtxu$j+}D!KpUxFm>*L@>7H)rwZw)@H{fDZf9n z@WJz?;7gKCdEVUI97?YWom^aeN79;cS}~>xTidFGqw5)rpj95?b$z1Gxt4TY7BSb5 zV-{TaFs%|@1$4j1hGL=~Zz*;yM#+jOis9#V+lDFu8E^JT>s2OKN!e6&J61m{NuZnXR3!HeT5aAy;&*)C@1-TPvw3p?!DPZUk0(TU=eh{^g1hC4oIhVz;r4 z-*~(}M@N=~X>p82s0K%VesIZH&XO15X4*~(V~aDpc1HcqA0bzJHbd))^tQ^Nvo-N0 zPZfkq$J!B|qyZL!RW|1W&Oe$Bode=X-#dYp!c*g)B#MZ)PfqtS3{m+NuDhh==qyAy zGKYGvMYa@j;5Ivb8QO1Bxf)+$V;NHtV}p3RnsKk9<2zT)G~ertSrvikSLM%07gOGa&}#w1uPA<4AP|?MHVC=hi9zk?^Zjv0?&}0_iia z>OAF47oV=w`Yxs;GVNFAq=%&DP3c-}BBTpfYyy_d5K>`gdbw-`;Wk5^q5KO41=_lC zPmLRW6MKX1dC}5%;)q{{K&gdra92v;QPy9bmhdc2;ZP56Q|zrmU~A6E9g3?&P|N{x z!uZ8%SXZ`uMM1L>;>@*MLcaqgMrkS|iWu>VFw;T4Q#iP1FMoe}zL!m0Pb}{b$Sem9l5`Gt>fbjc>TbLE`Dn23x2R%&g4iPo7M2@j7HMwnUXi z=qyK-EzH34i+U|Ncg^j5Xf*?-@9Oc0h?8{8bCXu@O!npZ< zpZigoOuHpa)qMqAcf@xEKy?uU<7(>>pc}-@TS0>oD_nn!cA=2KCP3cz>~W zyJKRRIHt?1KDTnijbhHw%ep@NUW0Sux1kwdYdYkIOtN=UfqQGgn>6-vtH}3vi{o0w zrUG!Iw}>lJse?ZkkA5{yUNyH^2z?;8(G03vT%;)6PJqUK$;J3hd2aD`P!&JiyEkYG zu0Vk560L^}i(zTohE%i3c1<&g8&hLj3u*^El;u}~`}@aU_AztU0~gquS|-JBPjwGk z6e9!Imh(+h=rajF^GA+O5SknmqI2b}-rf0&9kiZ7Lo4rFHQdiZ=}QW{PS-EVZ`hDB zq0d03s?9_<7u%S;WKxPw&0uk%onBYvnyd{pj_y@VNj6`RK|XY9jTJ>6sMhyA!t&Y? zt`hnke*WrBigFSQ|A;k=MC(qE*wx0*L5MZ6&WuRir2OkTc~{MK7yFZD=I5o%GHzPr zT}4^*AmyyBtp)cS75vYz2R~i6v9%XAm)UL7b1@k#Vx60td#$B)>s)`T2jKTlV<4>% z_byf|X9;7p2+Ynl)0eEGMt$|(rRu~oiHiI7LhQdG*Qaiciyr-tNXK#)b#x z(N4Wx{Lr!GZq;es;dF~|xz?#1YA+jGTPc?VTrS7VCj|SF5?rdo31$drZ<*PG+_f_> zYLfcWWQ=)!2Qs->?J9$-SIlAuMU&%BlDRka*ZTV8N8VF6FvfCUTF3TzDxORxt~(XP z@$Rfyug%-6>L(9|E9%=7T5siNJlMf~JE6&0ui(_-8V#5Pk+#xxgM!HTS?u4c_GpIuBRGY%!=?~TyLI;UiZ6GF2DCTdfkOO+ZoCPv+q!bu@$bu7kLr|m0#U;EJ9kAc?6-_faP*#nn` zhk3?fg7hUBa- zeG$R_vj(fSU<0NK>DHm10<~2RtLK%Hty3zb65kn|f$S7?wsGot-@TvM{m2H;yTfw1 z#~O%GG)B!Ao_z2mi50r3qCq|E1^gw3>?H^Cx%5F;;iAtJwG+e@ zqxDq5v@_$&1DmN^P~mxDfy)b7FeZ?#z0W$HTiWAad_eK80qsq{rZ7G|MoRqq+INgvsN%$P#g&d5 ztY;ef=1a}Tzgp~1`I7lfhJ%-%{J^;!vDJ{ zDenhMJ+yy*q&*R?k+E@nPR>ISQBeXZ-PW$IuJ)cDF0;Wf4&w&ja)og?9G>AmL-*r2 zEEmK5uK~r<6O3zZc=My_Vq*i z`p8Ct>fV$6^fa&smQk4zIc-%{XsZr>ZW~C29OR55ICohL*G_aTbE1=r%sZgnnGE&b zafD9rCKV=|LYrWccWf8wcv~Z?Ij2?+ha(($MYWJi7?X$+nGS79SBD;E2i&s^bf=Jg zYSJ=|8YgXTC=EReH%rK(sg4c1ySsbNuFbo!u&~#98`QdBO=NnUcyjnlD!_)99fA6} z@S}sHi%1v*tM;gjTyLZIGdAOR$nKJ{KcNr`0<;R421&cdX4nFBeW9Rn}39qpru>$-(pEG!@M zw>H;ndnz{b(*@N>v+Jn5Y^9`jZVwF&wIdL0Ll(|}vX4F{FYo(uQH~hf(gz zF7&+!V34P9Bi8WIhL!PRyrgp zW}88uxn(Zh5lmdE(bdiIbanJXpJn+TSm#rlxGZ=8XuRf}7Mo>>an5#~Z>9?5+F}4} z?aHpYC#d0oZbS%@6A!dzxYvzP9-*if9u`dKr7p%38Qz+n<>AAtPo6xn<}-Xauq03# z|IxJ^24iN@tl*zE4*3YAy=dBi!d>0{L01yjR?vZQwAZC2DlbVY-j(1L>*#&g+Dpp1 z`GdnNJ@IFCUZ6$5*GD0@#s`ONBqSu*IXEZjBy$rBqXh-*1H!Qiod$jki#VV!jI z6(_O)AK+$4Rn^q_0(-|{-=i)bxSi;Mxk%cjOVe>_rS!gKcGOnIeeW@geYtc55GrzV zZ(rZscasqS4YPD`?f4J;#>S~2{F`~cx@xWF3|vISNHC9v^2ioKei6b;37#H!U6&Me zlh`Dh%y+3}lY13&U>Q-#%@YHz^E()K*z?`JS+=8FUXaPOmeGe+-k)LS_wPbHR_L{8kx{C)wXw0u z{%G=8V6dh~W@cz|iF&D>DSIKi{#rE1UhvuJ(cFu80B%R4TDXAXK zdsG0gM-OsnGG?IA?^ikpUN*{TDo`}5ZdLPvRvX(_7C|272OHZ$3tgkOr-PN!i z^sah#F-@F)Smg_&0#mOf4(&%192xJ&zEo}v8%SM?l;KXDQ+bw~lKpp~>Jcqg8w>7plpyCho4ow|Nw#pL^VU$dJ#tvg ztpgEXlKNm1g`^VoB`>B?2iijCnLW@uD2L3xxIptY3LAA|pnwjo5KuX44chfrY$mVB zU|^uKz5+g%-D{OZR1lN3BGxs9zKsI)nlGXyV~L<$n>@{h=Ke63W&LphnT28%m~Xis z+M=v~b27aWGc!Hj>ZjM$yMmUfy=L#DOHReR_X4s((0YSUU-jAPBH-Fos~+BQC**-1 z0Ig_d63<+ROlNQJ)yNuC-{!$R6UYYA`L2J$8kgVjxBN1Y%h+AN&#f~WH#rv_xqV#^ zKy_&_BDNZHNKf6^(534SW0mT@CJ&R*p{-|~IcpDOd}SPwD-F3T88G69XPXW4T$v%v|KyDnOoOHXxmg)5A0*vFc=WImH6`2dpMi*C6k+E+BptI@u4 zH_<<4J?}sVg62X$udduSfh?ol$Ka0lY5H0vI&AD+wi?IZbRcM)&{JDuWU7KBs6n~o9}w;?dB&|>7ndm0u!ICD(PD)|&?cU(daBpcQw`Oa2;-gtZ zC-Xeep6V6bXzx0+Gb_ZR^hcF2bQMS2kiTKe5QsV)HG}@KG}4Wr?8aaxC#OEGwTg<0 zB8SnjbjX7MgKz9@Umgmkv@i$GF>W7^L(5o1wCNL94Cy zYAjJ-`)S{B5DI z3}wu_6P5(5Ev8H;Ox(G#oAJ{W2=?p_o$AY%V`DX6+`6`whR8U$a@T0?FwdV0SNxj4xjO35sH!!&!z5 zr4Sc*egU`U%sq`y%nAzU?uQ7)0dpT>WyINSr3rTKk`q`PcolK(!i5V@y=iYxT{koU zgGu>o0H4Jxk z`15jaN)BaZb8IHV-cw3!a*zuU2Q-Z`gNW&fdAXg#;LF0N!(Wf8i95+j$SIPQbYD+& zR(b!!jtfZy{BM;vB+^IVKeQ*)A<#%Z`)cTE{I!*-({64nfAnaIjkO}kr^o%+pMY=Q z6j($pMe+V_-IJ-Fon*(*%N98+>9n_9-w7-}>nZLTiLK|}&zVitmsdTQ_tR#Irt8LI z=`PmzZq)p?k?kWdikMPg+1x^#3}QyoR=PmD*Pz{n4v&ldb>^=8amMUxV)$Xi;_BTS z(F|dG`_TKy(?fVx7QhJ%RCq@{^E@0kz`Qpr*2Hd&QMEwlo}t$6w{K#K(aOEW#`@jt z+$=XKDD-nn{?t$Ya9LNJ&Tr^h&Ir5pta|9`w>&PdAa${AKp<;T@Oh$BX zso8w&_5i4xLh~SZI;f>KctqNLcP~JlW6EAp1;pCsdd{pj=nynOfJ5ahL#+8-2B1$G z^+{V-5eo0i)z_ZTb6@wIaJfXzf0=`W%Z=T97&Gkbq&>828(OMpmqXHx#YvR_4aOyX`QkA2 zIVfIx~Ho0{0bRoUiBvRo?}&iK8YmhXP2Y{Nwo?Hk1;)?Nq^pbQZlmKq!zD8IX%VJ zGxq^Wrgag|UE~=p89Bq3&&+nNI|M8J8?TYRRC_zy+lW#xLh;#Azx~GTcXeTP`OTub zGY};rkXIbjFj|i4!L_2Ho23OoxUx!0!6b5nLz8ke(5?Bcx>$i4SbNQL0_8c1=mG(y zvQfu@r%OKi;}bq(>#EV)77NiMZOd(~wQ^f|MELiAP${Zs<&klkT!-Y=p?!}9xa)k` z_Lzj_2prlANG5qDsg_s3rRGGYrl#$~!-9$J-5IL6CbM_r<5#*><@6P!t*%l4UkHhX z`%-J|W41j6o|C$2s47X;tLN^iub?mor8#{@0e~!^Lq9~1CJTn=3zyx9-kGc4Zoafw z(WiI~w7!Mea@angXtx85U%Q156wNg}5=;?$uY0UlYA2sqVrsLgfFsKSL{!_+OCG+6 z#dhZnkxtHn>TZG3xGxhDHkjG?=U0_LhB60Ar2z$|Tmxy^m_4+3p2mWBPWqN8MogW( zFz=~4rhOZR8C^r@X+*QHNRpC9`zB+S_~KqAP^UTR+7eaGrHwCw)>_BW(8pO|+fMn- zYJ2odVO%+Nlnbqd6ex*J!#P{PuF|Qe`IW8ZjB_RV9#gbei*Z$ZmZfT5<~3=S@>q={ zY!m{>E&pr6okty%!|X?cgUwVXz^10A42+CCQ&SthO^RSWKd=*6LL`VeDYOR>>;{Y= zxZU;w0Z0grdSlP7RHL}qR}js{l5>RO_H|Tf#5Up}+UFAGgG~;Tp(~e6C|peqO;c$k z>Y6GB$?DJ}jqUqe!&H28<{Ih>#C)3zeiW0m^TvMDmFsH7QLj}8rpNj8(T-)#`lEG| zUF~I#kM)*0RPQ$9Yoc>m&i4p6?cQxLo{M`Wb=8D&*4Xndp*)N^^GZ8WzT5?=aEaHe z$s`;+Ui)oZf)vP-z2I@+j^tTGA#hc#VN$#BQE`!UC1j&AAURZm_+qqanGjTgMQ6i-Kha#D$$VrC2P8IaAwn@M&->`biG7P(?n0{*z3?& z)`)eWQ(H2|w#+6^V7GCRMxDBcibAxKM039>*~=+RZzVu;yV)VpbdG3ZCw)%tsjuIK z>p7vK>uTX(-<(Feo{K??A(^c86N2o*n2q84(~UGhuD{3Wemy>DXJ)&j(ic|V5v1c8 zJs3Pc?>%nrTUi;3_f;lJg5b!4(l0_id5W4tTUdvRteme6Jex0kK)kDO%|sC%)Yz45 zMDHD4&*RJ{RBSofPgih#Znkm@(TTf74qhLs42;0;r^EinpA3_J3)j5p(_CH-#uECjCeYs}unxAHUou0@%QnWoT zuR2j)8{K%Ra_w$=2l9$~Ghf{3{wIggZ)46^pGq~Nm3#V0IqGGk5F_&yEt^FyrJBq@ zK*VqwZID71o(9@s_pb0VWmVYU+m~SOKJU|>wIr6zhkx$#U9b9ZLOU+E{{wjB^o1&9ZfsTUavPeZz(fxah5F^$>M6ohM3B9cW4 zDIFd~0Q1q!Lxy^+`WuFdK+6I8s8y#bDnt0o;RjKgazt*^3D(}$Wy#N3`55>DK z#%95H4E2tJ1682Tnm@qYTS5-rR7Gy09d-|>JWIm-!(lu`@6k&#b-o-m1#5JOx9_md z;-RrD`M-P5$_>mMN_-vNV1K_%FB`*3O6oa^(`--SNrmZ+ok7j}#HRQr<=c*PK#RXHkGKYj%3lEov-#PpdXfZLM%eRvBPPDoHMo;5ot(3)L2M%XOuc3aR z^UxtAGw4Da63cj;j^O3U8z(FQn#c_FwV4Io<@=A*ADRyPF}VK?AnA}m<=1>vSO4c( zwPp$AnGYEIZ~yw$S^~AjIdWvo&ndpF6r6`i%nvGSPF7Jr0Q;Br%Gw8Fo6H#fnTvnp z^!WD<)8{*oz?3)$;y~os|8&6LpHM~v1A{SaHu(SbNO>S6=+$6ud6>{Aknsp68C-#Z zjTn-W)Bp9zRKUd&o-E`(^1c7ToI#bqz)8%7p;Q0u$QueV;O9#JX~re_kwq#$7}^}= z(SOr>m|$^**mW6HXYM*FO=m0c)0}VO0^R0WF6*e)w8Ia$k^vYYi0Q*G0^lG+!#JaC!a zy3{)I`pM7yH1!xL9#Fdnq(OcH@B0(wPdJwZx3#W{RhWrvbz5$lkRPDibF{Y>`mWgz zIV*KipIW%)H>$?ek{9j41xSw9!Mp$v*SFJ{tIf?RytiCuhO%9qNfR{4E@2}5>hN7K z#A9A;kyYG3EgH&qHKi;*O(`%G7NC7mOHh2u56*j=L4?m_=wO+t zoX~JRol>VzIOyE|!##Q^DTyteDfE5WY znDP7s(_cu@(mj9SB2nBcudPDIwW;15TZwL#u+N$5^B!yz6qXxv`RM|Gx+r!_gFKm1 z?|y^!o!@ul-zv{sh$}@ovD4H4%$!Xy_(ZE$1ahP4Cvg6;Pn2)q01-}c&b4f+#Dr6m zb-ol{fdBJJ?*+3x5bTgN8n*4pyyq=F&F!-95Fu#GOJ?7rZeN3T+MKRS7`I#MC(&<- zsNV%Lo+0J%PXy)l!i?I)1q+_~{vAqsARqdlxk2wfAZCNK+)u3ZNPBXNP?8xp*3Z{h zq$e=*CV51}b!T254&!c}p>lz8Y`D)Ckt`!RKh+If!PDX=QKzJ!Aj}lpm?;OiKXy1| zv=^fHgFc-*E&sDnoO&8#C9TJL?gT~z#^VuqdwW;6wY8-$u@D-;GMT2%&QWm`CT6BS$u8Sp48-5GG*XyTy0VFwoheGT=3ifaVhP0KYl1RV z$KYR2?`Um3j&UMAgWOb9Ej9$A3@ilD;7TXKGX&#lFULmp&tJ!eM~`wpbO&485?wMy zdn_se(1S9BhQdln76k|uU6*6=;|mJxI<^6sSB)(Pc!NOPT3;L}tQnwmxMjCE7<$P@ zhWVLWhfJB{9c zj*7>Q?DeTk_sU~NB}b(3Du`Uy^EXZW`_)mtmHU6_k7*tt{Axr&%TYho1prvmGQ&%q z(kfXGpwqXKaW;DD*_eDt5B~4mweCa@Wa|pzH4Wj)6 zg8zhG`5cb8^dx(R)vmX+(lJbY`S46G$yD^* zpUYN}SD1O|YWANSFn1!XiwkD^C146sccIxRyOwsHq?2v;bn5T1eAYFq*>a#~$fO&h z&}`^MKYu0!d9Wos*$m%Ur_-+UrEJ895uX7{6gq%>vTqDkIYXBi-ix$zE*IePQ4{G!ifuHV4@RWr>3TQ1_cF~ z1SKUUrNGh}=KzsSLi{<(E`raVNxC4isTQyRYTbRvazHQSyi@g)tv zapaC3WU^9_Srzv8Ma=>fZa~B={D=1S6xTh&r#rRA zlYGRj!|(-O1LDx71TwV&v}~_g8Y%^#EB`9r0j4ecgbY=vU%g%j<5ML&2;B;Obu>bB#s2L1ZgVRW9EdSzPtx81jQ zn?Gut6_nX4EiKKx(xp&CRh8geRaK>;X?S~)jD*6YA*F#!NpTlG@PbMgC-;WKUTm+T zYLO9(23qD#2LWlzG16x_vU#VIGRK@KHVfL zlCwM67`#^BiEwA{g$xv!V&MQFRN%PrIm*4l-u}AVfJEK>YrwrN(1S~PPj3WA&3oR} zjOeo!`57&Pp@3fETeIdk!uyAWWfl%zOO!yk4l7mTM~zQ|NT?e=u-)_qBbSB>xwci@3EvYx=<;p%pf2^LeYob(B9yYQ-q{^0I|mnFVWs8AaoVih>Hk z;f>DH)xM@Z{9SDz-_o9CXKFWYxV__X&0KdQ@8g+};Fjl+I>N5|D|O@jUB){VyE-j4 zQJ(%O>y5!obzNynb>3jyfGx|Kk7C#AOC=WK2Ob4WQet_g3)>aII8^g+P5E2^4 zfBACX)i_WbcgLNOF~E$C@EHid)ulN^&CSh$g7RjAi*A7J7YZ-EXmbA|dD+!E zFAkcYQR|3R$9_dgC#qvbUm<&Y`ve#t&(v#QJ{4p>u3`lob6I9Ft=VjCaJ2G9NR;8d zLu~sU*eNAo)9>$wMV@4I{V9PQiF=7Jf!3C`dokMq*|$~aAMf|UT<)h~!zQ*Bs#|4REn{3N#^?X=WwT#Mz)QU zwU?)^x|J`k45Id}_B&8iQApwDpY3)QY2bQWOY$G$Ge0bYfe(t>w}Y(qX!>v;K*}Jm z`xb}Ye}ax4>z8>tc$>ZX1^VD~Hyn0gQJO=)Ek*tKTGlt5K(Dfj$)CP_ETbPnwpJ)m zv#dFFscrMW9h%jPjXvz1Q~sf@@Mlu~_@q${SnWgC-wS?Lr9X1P(V@^9Y+5rT1!8@_YaK!{Bc7HKyX~UYRFMY{_{xsC&0i42j8V% z@!_!_^`ZrQ$@Uq>lim44Om~Pn(7@ZkKwW-O`{ND|9Xr)uw1)~~3yclcZ=5K}{=vu5 zKj00QQ#42lN12X3J~|hWcX;o*f~>9FfmeJ0v?t$=(LPYXs|8D@hWA& z-D~@^onWaxrhAk=GLRj%?2Ylt%h3YaM&g4%2gKl4F9RsSrF_G9BB>?h{;j#T{;TFX zlAV)K%yr_^`}pESng_J&l>81XOtu=HK>d)+%ySx+e7Lpiera~b7Tx&iR(?{lj+-0( zj4SOj2hSjz@s)xb!r)^t*_10Z$=_-YJ_#Ma!*htlPB+Z=bR*k`5hnAf{aAYuiBO)k-mPr)zuJoS(|=ohowGU_bX*XA{WoVME8G%^6~c zcnSty5P!%=-j<62hej)do=$54UcEg-fCVoeB7B7;`nxdiC!yIbq+ z)a8zU#(2n^@O^=x#Wl@q<`&bL>NWELElL_Z5qOEo+6W=w?p4>j=RFYg0l#l8@)gKL zh#ar*8?g#4$3gOBTZ$nG4%CxeAS7%yA|Ny-%UJ=6GAsdGGF{_d1jtqJ%MaDuBN^XVRN>yWT;tK#ep6xP_EIEniebG-u_2%k%5BiuMaJ zw(PBqp>JVEM#i~0I8YUW2|ed`1jit;DO6}9qFLw8NjSuwaTIf_B@mU8lHx~Kk7EfJ z$Q9r9{=Id3*U)uQ4Zf?zgX>qmDs(Bl`$8KD(q^5r- zCI?4Xc5yyO)b402;Mk#1xI9kX zK&Fm*ez;u?n~Kyi2|@TD=ZPxsmSoMp#FhyjPlBujyd(lz<{<~tbo8GEu8Z3yT>yuF zbI4(cHb+aa<@?Rc-j)>^Def82&T7-hr+1lC8dgf-`Ppl^ ztSk%t0^+io8W0P3+cXhkrdC|xVVbz18c1-E%Mr5g!y zdj(cE1X>;KEp=I_b7^*>^tp7v^y!b{(sy%NbekZq9hV2Ao!0>d%i7)12>tHEPNS z;Ko#rN1}i*6B<%pk-0QwB8|HwInv{TmdhU9!U*%1IWG`O_zY~-AgIJN^i{{aGhsP*4+v7an|3JU2XoA{qVy$XygEYC@ai#4`=8Hl;X&C0z@uz$(o$375)%{K0zrO2h?+}d zTSTqIhDSt%;BKA!gnz}_H1ks#8FRbljp2C}6)0R1PY})Ldb4$K;3FZ`LiuH8*YTb0 zF{R4L{QHNr#NVq5F^A6WXu$V>L6-+CAN8KdoNl4-P@9=GTu=j7#*1U;;WR30O}9`01x{ZfWjpW@t+M3}V*l;66_Qp&xCC1Q@tbx8 zdTD9N5asw9xWpR?2t~I(#KN3DUyHO;xiro-yeJm~&CVO7*2H7h$A)hJ-O3CKI$+76P&c-UGXT6&$Jz{9SN3 zdEW5j-jF?#0_8BxHF{NKw`ueypBj$P?Ol%xoZV z46}ac4)_aVK&1G35i`|xXK0hO_jLEvl}3S;Z0v1CF+#5Cnw5g2-I>j1+U)luxmOf{ z$hEw@d^KNy&^nOBp;qZduxzb}f){~Edmy7TzgPbSyfe@06ap1LAL9)&qytEKw^2ZP zB2pxAHJldn4GfgY08O|~|(r{;Rsr@r7n=Y-&k~iR>=GFA!80N*D+> zyh;J?fIEiWgRs@Lx;wol#|Vb+5W3lW0wz121F-;J8$ng^PFWM zfkyA3Ub{NK;&NMARRYPSa37}^EwH&wX|qSiq4V$M+TY4D*W_O-6ue5c*XC9uo>@kU z8KbXBz4|j0(05pmyKSud#9%J)Q44$=5GGsG&rh&ZHsZGZZNV-2%9rUsRN(*lZ6JQu zAgqi4E^9hQ?)@!g29w~8bTA#I%_sr#$^$Q~yYq?TI6T_l?Ba_G- zpY41U$`j$b0U@s}zpwT~F&!2ftrqNwQJyd7j^X@&fNe^KdpIn?62ziqURnQ){w9qW ztIgn||Jr%RJxc^kPRw|mDEepaWB&j$3%E(hGhq_HLg=w0WA4eSGd%b?O#Sc6$`ELp zdZbt7IljLs^Y3o}z7(U|NbIV^*Q=~Nl1cw%gfkQ6c<%5@h38GYdTFI z%yzb>4~$`CH|XbFG{7EuSoUbDzjq>$g=l3}Rmps$e4aml{wcpXAqyz)*oGc}F7E~O z00}7Vp^~IfwSv?-6N7Y$QcP-pZvm=(yE+(j4HRAd<=DzV<(JqJtc>YbTqiLW{Oa}I zTzwf6;7HV5Pq(PTr1DbqQkv5Efa}_#>e6;w?34DAVh-B(*(fivg9FQn{JZT#L(Ywk zisQdeqqps~RZ%jv_)(7RoC&OR`Kn{_(Yt}$3!<*h99Bg?XTDG2NGJjkVwybzlar5I zoX5dd_asMwA8alTkoou!s>p&%3g_l#t$#}->56t3^XOIMyyv{IG&estw&+(OP+&Gx zLS$w?yEs}sx(x)VjUd}xQGQ?lSSsKr#VmwAt_eNHRDven0`}Z}emtiWcUMpXyufr| zEcQK>XMcZ~_#TjL^8tG3iZ3P-UMgFJLRg$)O${8ld3jrE>jRSG3b(+qJkjC@Bjxx3 zwjG~Gd~MT1Vr@|~EKKX$RX z=V2FG>1aWUcyX;=8__VSa$7lL&IDAgkHd;8vj|XcQdqt-6`t+XxtU zM^{3g=G5Hrt_%YgwmfdpqmTI{smOxDG49Fq0m4N3^J+kmh{oQqv5GV8yQ!%llU^U- zyqe1a7%=YuKjeN|(xchHKo>{=^xkpuEz1NKqHo>D|A6eojMI&0TGN@4Dh2DG+S|FU zCieO|^7Hdm983QAHY3&@*?7GX2%n??`9`2HLtn~J7Az+xr>GPna*InU`q<+iH`HRl zUzPH1owPV1Ef0cpO{JzFm&Lh!vD00M-&Xs>!ctOFKD6s#fDjo_uYJYTJU_5JJZvs3 z{orM5e!AMdg~4LBi{wRgAkA1tfgWmO?goPO;hWEZt2tO>T=dK@-vb3G9w&XKUIM$a z_yz~iQ{i|yk(G|u0bkqA-{=!y=YshOl-k#YQOkk*gDGcWw#MDn73EIjqoR~8g@I^) zJwZ(%hLUHfwgU(c%jFTMNkvCXJN1*&_%irP0lkXoVv_obq@vt$?5>rKt^C})mL+&1 zBqq34ckh0xc;@Fr##s%e{#Ldw=GNGV7m|Ex9_3IMknLz~%n9KRZfrP@AmHBuJ6*Wp zF2Cprh^4LTMn5IPv9mDb2yNVfng7rp;BVIxfD-P1H3g_rNTvS0Z2jgQ(+}plEi*o=p1)I3>N=slqIq$D(P1S~XXBpI?*n*1m^af6Dc7Af??!37!a3)j~Xmg!cSg5bvp|uGd!qeOE zc*m$(SpDRZ;Agx80ly@j_q948rIP~E#98wu&0q@L8(xd`;x<(SZ}Uo(&TpvDwT73?0^ z)73NCILmxpd~%-QSRQavbG+R^FY|8%h8MJ$HfMJgT4c*$19en z6n{>W{Iv~&vfw}wfHrr1n1-Bs@URu8-N%DEPzl7(!N(Vx69?(Va?nls_V|1j0TR7=?%f|rQsHsD^{E=% z9V2TU@o8!FX_-KTbe4b8S1KbsXNtWMY?!o>{^T~Z#nxtRTy@vx_Ur7VM(l*L>F1#HELJD# zzfD^06zF&sq0oD^&7bVZfy7W4sn^%;>DFjJc9!Ai8d|E>Pr6whGPsT_dIj9qZJZi* zO0P=dV_k^v^Z-s%O9V3shpj-KNJzMVfPnBy=Os{}c^W{Kps66S)7=Dh*b+4hi!2~Y zjEGrpX_3gboezSP->xr-YO$PL4a7#f2+6pf_A7F`2dvNyNZ&|p(Z#KuOkl2%iD?p( zI##aaVKXC)W+%p0fRm?X`$NIwwLWMQn1Z;_Zjuk#+SfVYu(=XU-RrKXug>^00$BOx z%Y=h>cO&D0jMYMazO|YxIP9)Kq_%-U3QOm4{0T(Oux?BaSdH_a<2*mI3&UqP5VwGg zlOaD4h;yzdaL<18@viR61v-q{<52cE_v~TV()2_~4f7;|7M1N5*$Ya!XERDeaPDKy zlsulHnYm7J!C1Nck>dOnE_*cW)sFTDa z+7dMGs1|JMCVUdfMZ4+;vFVGjbr|G|cJEDmvh7ChME0mq*F~>IO6)FGI@|X>oW5YZ zv%D;Jg!}pRP*JWXWyvA$khMf1Y^Wrz9J z8Lg}$^~ZFW(WNn59_A}=+FB90pdTuYF0UJZ!_-|E+K)4-<`vE&1G-Cd3=ju_P4*6-UdIS`^A+SSPG@w zu~;4aEMSiw+p_858%}bP9>~4<=vdl8&s>Rl4R(t-TLL|S_J1XiRq=zy6FD+ zSl4|zfl>&o_3==|Ji=o0n@0?`fA%lF*@Y`TKY$VQST}mu^yE0$Vm{#x`gD@)zWK#R zelbPX0RV@2rL~CP@l-!<%0thf?pJSx49h0Fwfu4wCju}a^SjpWCZGQL&7;hAXo_F` zU~uo$n^{6z-kA%>bHaZB>VFsizm)&~FWYBk{f%5Xtkt#=JWv}zjUA|j$2 z6W3&J&?z05;UOYNH*_8(u4G&07Zju>COUR4s+>9j)?R5q@fRZc;$Vjf@q=QqP{Dm1 z`?0^jf590@U1i+=Y-So#ufxv8MHk(g96Rl9Gux4<=EPMtai&yVNWLiA)!1I@Uc^=A63Y?~SHRl|UdNpdy4J8hi_r}wtPb+1H1780yk$4~mc?==fl z(cP)vf62bK=M&gSR5V*+bK{@%2x4ANGt{2&K9qt^sAiqQzJcfOEAPK=>!ZLci^IoP zzKt`%7IQy~&CDi8byrtEHA8&;`e+f9rKvb+V+{BZJ)sEw&yuujY}?pNjE?(E?<<^1 zjFRnp3jX)lJC0A(q4MY7R=p}7qI9x*7})Uy>Gv@$x#Obd>W)Yxc z7a{Z;H1eJhi!)u6tuM(53&k$p=)42JMsAa5*!26IUWjGhLh1Eqn$M^krdUtfu?zBm z&B3?PWIcE?YHrCYXxZ5*eo^aMhwzuD<)+PnyPM=2QZrlr*^)fM(Mf;z0{9U{LM)NS zM@jnwoh;7kwbovl{B8*IW}9C5=okNeMAdBCna*nC%L}rO{%*cIGZ^1iz7#VWO*au2 zn8H^G(~sy!$uwBGzcA3+yz#f7L(Qguk^bME95ZHqgM7k_jz>gBCW)5Jy?jj1uhZtG zr}^|0Cx%RTV^Yi#xv^;<#4KuU#2t_Q&0q~XF+e1F6<2@ATm6lY|Ipayh_Bzjzs)Zw z80?$OGUq>gYSBpbpmm^{XcWho=j-h=-?G%BM|QbWOfN1PS(f-a^R;sS&*`&S;@SP1 z=~Gs$CX+t+hE=6dAHXv4LF^yuv1-U$r;Yihh(diI;;NeeJ(K=2dn{NOCZSVTHaCP4fI$RJ?vu9-`LprGR=VC29Q@y({>ID3bI57ZO3a2Rr7FP{hKGm+)}&U7>_wa z?@IkQ8l*42h;#I#vs~#>^}j)?YM=Y)xCM8W{N{Hi<}afC$7NaLpSY!z_`v;dOy=Ld z+COfD(d&UzCp`+@p7}c|e=|CCy^Lx7iCYw`w>f_QoWHsIT<%ZY;;XrM_BXcgKcxN3 zNc^wx|2y*kJMI6g@&0cH{r~)qzUDV%EaHB@=6ZiJgfv;x1e%@_CG0Cl>I25;cp}*& zdfW|R(2@A1uaM5BFO4QA{msL}9&*y{%A(^t+HdTN+PzcsjzYxC z%q_$ibWRr@6g^Vn#1DXZ&;O6detq(%s|&y=wf`M$`KO)nX7uv$S)!K`Zc*sxXzm7p z4gt|!ZxyUJqfBmIJbh~nF86JLxb!uQ>g?u(OVCv^%Rui|pGqAlVb6e7dIawzd%D&x z!9%PYoib$GxLL6Ptj2{XIjv!(z*ZLf0idYM zhVFr@4=ehZ6;#i`aAB?zm^o5fV6V9E8sjHpg(N-U%t?;mf`q>s<2%J_tA`1_h06KX zf4%jeR`aX<`9D40DgH>P@#&t_>t3CPN~O{kq2G4wbG$@0YQEs1w3HM-ll~CHGn&Jx0nhiyExyzGp1wr^mx}6klFWaS z9$X+0jI;o29r}~!0FOf)RvNxAZ*J{tyTV=}ji?kK=qR9^6brbdxcgyR=@y8s{8yK# zmf=s1_YVc+|LG$9-?o^rHqKKg-qf#cc-!Y}`zgWcxw_BkU#&}{%F4=7_pg!e_F&q# zH@>l^xJt>%6;kto^+u~>MNW_Hyz_-tTaQsp5oXyW=vN^#>b}1j9XFqPnGE2*a&Z7B9{o_NS7PX$Z9B}+GjzB zedkg3{)OnpcVar)gI4Rp7Sm2qHy3wPL2W?+_n#UwYjt$_CeDuvTR~IY3sx9^)q;)4 zpWZ>ZutuS~BQGDSl=*C%~bk z6*F%ypTfqoHmt{vZuu!`rgtu#-Z{0W{Z3KOR03MaI1P6^Rg-LW#q>7&Dxzc$E>gG_ zr5B*2P*gYk~E&xPfrK z=PLRuUWU=-5~5XnhPr`Qx4D;$K>dkdv=jyXot!Q_Ew8!2pMFEHp+^>%HDj3>BkeVU zAl<}{8I6J*toSi3Li!Dj9J#=Eu_BTlz2m<7gRdu$v)QTuU_sT6k$f`Rv~+H^G(nU) z`_5?R6PQ;X%Co&_ZuFM@7g57juj?J)y~m0$+rQ(1&JG*=i_yrR-7f;@j!=jcD#;HP zKeAZj;IL&)?*~zB47h0;CG3a}DG`q#A7hBsTp&sTfN>du1477o^7sJm_*I=hP_T<~ zvXKZmS_XfjmBQrSw%G#!gy11(0WS3IzF_H#R0ev!8g}_vAtN08NUbsO77P(DQ_%z5 z!8PhR`&im>6T0esOauA52ESPD+GHlj)ReDfx}ziZXGTtSj*{oLe2WIfwzCEY%J>uA zWRnKEAMCpDLeXv;Aw_gx zZQ)35HypNIQ?Y9AFmntYIsMDpsy$CfM@{FKR{oAY_;a_t1pExEHWXD>;7(#U#8-D2 zVs`dl9?=((LjGTRW~5w+NOep`Lo;lTk1Hr@u?KN-awKUdUyDy#mRddQQC%o%QSt}R z&_PSUxRP^h)o=_@oXutMCkZif#1AS-SqW-rgByU;GfY74DC?}`vT-(jdHyk61U#R2 zhm;DsGh^Vq)*$dDdh0lH0M}Qf2k5)e6y4gfa7Tq3ic(F{ZN^y<34hq`H$uvu$v73a zW3+E7AcF8oEOo&!=NPY|I{7Pcxz~+lk_@`vQWqQq6HAo-fSzN+tq)6I2^C0ERY90Q zOjLp#MnWJwV`g{p-PpV~L1RBgTejGOtv#ILDl@52^t^<4w%nn-4D|l3;t_(rsK90S zD~1#AHNwh@z@eF;%M_YgRyxwj;GbUTwIUHMvbXtn-OY)MMf#*viWX^9M)ESd$M9z z6FaXG3-jRPjJulIv5W3EWSXLk`VGo%=Z7$79WBHB(NpN($`NXO$=7*1GY`0X!vuig}o`SO{N0%qp z#QA^O>%ZDx@SwpCCD)QI|A*7_pO`X6$mV$48-Wj|m#+ytatf9|DPqC#+!-52rJyU` z(J?%>t`@%eCh|;ikq}>N^-EVfJ3DXJcFj++1GbT={e40=j2TZDOA}N7um{+_XUuI& z#`QlMOin>>hl5xB&DeS^ikb+1hS41Y{@RO5jb}xewK=$7biA!aYn{jajEWqTPiya@O4qfY^`HweB7EstO=x8GEOv*uIYa9P0ES#h)?f0na>CSte&HO3&4)@x&$1 z;{&L`rk1WJg@YQ)e&9jgJGMU|T*L~@1Gc%zmFC?1WNZ(ogCo@XUigH-yhGBq>;mq+ z_${N=4_$U}jQUrVHIPZ5u64`|v2e-h4vY*wIe<5(RYGbjr{&$EV+hlW_hV?lq0u9r zFnMc>n>APbqjq07YV%{15i4~wGP?!nqnbUCtlA6DV`owG?HFfgH>j1`?S+wygdkQXqammgE)%2cFPyE4W4_vULv{=@ zU(@Kkdb9ECGrk0WeSv{VsGfPW7}prkjQYy|A!)$xAsO85jdz4oTDdG6yz~bRSE+xY zYh3ulfT66D4fib^1< zL>c`iDPv9|~Khp2FfGjpCC^@WZdvq@pqX@e>yW?2Fa2P~L9*Y?3Sw!u#~V?2D)e)q*w zH}&W`O6Ry^lF<}ekSlQ_blyt)BEm3V6FasoH0)hQms|#Obh%!<$nHGkwPnSF@$(`_FVot257Y8P>4cjrHqO5B7j5kyzrwa0Z`a%Io?1b&=qJ zD9>}hGWlP9E))hG_fzCO8vGj$@W?S4o&UkOzZDvCiTEewjz1%_OOH==6QnfZ=l!Z` zcEFlg@t|hrXGRW)h?2*3%A4QW>R!+a?|mH;L*8_EHYSQB@s*BPs7;Zc+T#-$f4CVP zw}u`SlRh3r`NRP|-U=dB#vV70!WKtm0S5;5QaO@2x~1omyIhy9P^g`WH_$|?)9RSL za1v)^o`86U{w@8eZ{%-*gF}{u=U1eY=I+ga#hBp%7uH_BmC%7KM|0}5;-5bC#2UUi zljhtT-0Iw$&k(4kHsjgzF$h@RQ5nUKoRYk{*W4J+wDwrXQYn`lHH_5W@Xu`rtbA`n zA>UA!JPb8;A8OoDkgzvt%$7|0#*ZXHtM!UhhbKz&_qS%eWW9w~_Bh8Ee-J7>w!I#3 zhxLfa#yE3R3a^qPH`~zGh(aQgbtklRav= zbQvijGVxl#BlDK!^0IU3)7%mQwCmux2^er!;Y$7`f+R+6p+q`-jo;0zY>Kzd|JC(=HBd#XUYcL2>P9j*JKbF(XL7-bO zG?i(7qBYVU5UGyRM=PH1OZ%SJ7Kug!FCN6dSz7*~3jI{csq^3v>n{uktRkUBx)ZUw zE{`5+puJVi>erO>TMoZkRbPNF<0h@pncQN`KTT>tR125HtMan>62wYX%asIZ$9Vh6 z70R%k)fs1SRI+O6IBaR@WrN?Rj6ph*f^;s;%pX*-79*8Es&?zeIk_A3k$D4R)bITo zWC-rh^**A?5AN$Q8Z%8@5KWs-d)on5W?*zKX)1 z$C!m5jtgwiwoDo2Z5?)kP!w6GKe88cfa4 zq3_eC_!7ghF#q>;S7S5)xaV%C5Y?O-M7-tQ<12QZ&MybfX^NMmSzMI4yKV3Z=dQjb zazVb0S5ZP`8RDf-j*=>m4Rsok^u$ZvqDc(N}j) zr+yAfDy1n$4!Bu))m^@)Ad{~(6RTHW-M{k5;o(D`q<%E9_={8s@pX7`NVhz%cLdgR z8BCN4HkOKI?R|bGTm)!){ulp!IE#UFC^?!nQ84t2JN2I~)1T;go++>2_)@Rt`TCck zS&D&h=NsGos&cR}%Y1`M#x(PsDm9O}&lyHnsrKTEZ~+Z9-&yPKo>VO2-ETQpxZ=wtu74i~?`-weH!Y7W2Fgmk9hn9^S=d9OMpC5_w4 zSALTMunoouas#|%AZqE}JOxRbNnN+lO3<7^u@3EPoLdu}Wjn$e=DX9{FN-$rNT;U? zV_`Y37{^k+?AJwn=ot1aU_KIfU`<#V}(sd-x7wq zy>^VXheK5Qp&mUrktPhJmP+8^4IkBPV!fW<)(I^d6LpYQm4-eFr7h@7&fRo$Fa37v z7f?^nYKl5saHH&G@cv!O$UjEj{L0Tw)59Qx;!p)XD6gD$`ggp+wH&>&hEJ|AvBudO z;`%qA4H0D6hXuWt28w`Csivq`io<4fgK!(-=bw-08=LqvN_5ozJ+!1j zzOqJ=v-p|e`+Cm?Ug>bnL#0J0HvkCwI09Nd5||Ih`#S1Fpx5<~ zYdA5DR@e3uF>+wAtgl&IRO!7c(yECZ*HFfO;yb^fNx4=}_Esq;fK$WTvR}+eXR-B8 zk)RmSlG=cmlZFqhU$C^R6P=FE%alhZd&GU3+}_eXb=zoYqNj6H#eMB!v8AM#u3DI0 zI+)=|e@(#(n`#Z2!%JQSk=`3z>7Uk`0Q=$^+dh-JDnYe)QKqt=)5au5Yyc8y#pNSp z2k}4|j&vbbD$+Ci_4JaYt<{z#lcz^^X*j=@6ZPxZjOl;f9GYAm4kmy2 z%S!y^(gpr?Wu?R*-?<)>&dT89?c;=f`vb~Sl*s?i*fqSRfs-$=d~_7JD(%p%LZjjj zC$b#!RKoPW>l1=%9^M!;0&i7&6<t9IKK{JFX!?l>0T1Rx;y41u!_#5P z$Jq(R>#b4F)U8NgC<5uNb+2iVw48xRYoBrPh0Peh8&_#9GK~=)jx{!6$_W4tOd>R< z1T;Pkl@mypVn9oE%v)BK=B<~oV%BP~%=xZkIM~(3s=~UF$LP`=!x{7$hq-L(DUa@W_mKo`1A_vFDCHU7{Mjr z6_7B}0h>>AowC+%nerH<)$3f8Fx9Bu{-$vT3a#vSvs2;d=f?+srz`Wx5#9T)J`tnz zRiHUs>RhQJtq~RTOj?!`R*#$S=@vdGySZzlQgrc-QH&!8)MN@jPBnIit#$U;r;D>b zqO=SZmLlt1VA}>3%$qmtb*k;47Obe@q^5#YZTRm30Q$&fa3e(b z#E+dDuv&k&>*vFBy(t&mK&UU`$4cJcJ~;6*UdM zsE`{@p4=^JVjihYUNP?lsej{bO~DZl3PV$*hr02Xq&bHye%_MJGVg#Squwl)sZyK4 zPFd2?%u#~f&0wt?cJPmS=IIALpvw6(V(YKL;XlOPWosPV=eNWxrERORhP3Z+Qba<3!ZOrrZCwwvnRuf>R`n0_Wsl2u z?cEcMWCOx&>I;l4l`UVIjpaFb4w8pBQE(g=0AHJ!IxxP-r6Yd5Yu;$A6P)tGr)BWV z6Z-zllRhxKSNN&NyIUqiI^Cw;QlZwkpF6ebaeHML?*&=(^?9^3SBJ@*4105Mn}5fP z$>?PmX#!s}c1}|lG>`R+5^L*{m7*PC)80+NxNZos!LyO6l$ZYC*1ZvZ6cg zCku`)jVcz#S2~)M$~EC~y)DvJn(72hPUQ!_4qp23w!~K?5!{qVsB5iWgOSMgIdh4O z)7iK$g!Gx3l5*F!PVm?pXc6L8BI>sPUBLW8^3Ib-BfS-^bbNL62Kyj{_)T+&D0C)2 ziki=AUz2n;9fcTWap0(WZUx_%3&HJmSJOQxb&F=&z?zWOFQXGCdampc+;juhfAg0O zc=Tp`~Mn2h#*lH^@ibXF5KnLIXDqEdif}&M;Q{oSx9Y=<`exqueP}wk5(wD zN`9IjDEnkM9ENFqdv&{DB8LeBV_B)f~QMD4()}{FIWNWQF71h za>1#v^O^|jIU#sm#JUfk$)rHShpvz>smr4aGTCwln9alqagp`hHAuLcUr2CigY>7f z`H|kTbtv{OR(J>A5Xt2Wm@@1AV*g+h2wo0T0E$ zcd82IR!s-ApVu^_h^AI~?WQ~S>7jLBZ5-2Kr_Gj37rkVUE8Tv4EDfkCZgB)Qca*uJ zPIx|CvA0;*8uKxBft(fk#cyC_uqeE*18goMt&wPzs^2;_U=ixd{2?CwEK3z9F1m{}Zzo$raVitECp)VXFgWd~fZPZW7gHj23iP_c75!kO#ThOT z9>`jxT-z{F5s|^xb~7angZ31{PEJ_>J%glT3mj%Zz>fn5&x$@Z6?mtNidbp~>bO$q z*jL-oTS)&j#9WcS#kN1Ih3cZ1)ZNQWkS7#|1}YCa*%@({a&`wViBZ0uBtAYT!fJM7 z8gi7$YgPaGzP)%F=arSNkhv2>O?M=U(y*e1q%hF4s3eoq^N{$-iCEP4JL`*~t)0sm z-Og^~=f-^yg-uPmMs9cafj*$mp(z0*tAcmApHS5^Ud6LZPOJK!t>M#>`Idojp@!1{ zYZE|hwl92MOxi@zBuU5K4xHtsqz?{EQ5N4y_Zt}Z)@y7;R)IX47+QVb3XhHTdhJvD zv4fQ*4h_g6lVD4TGm(3Af{DA`Q9w(zpuu&C0Hi5Zk`3s>>a=ncHkWcVE1|^3DLDD*)UB(Spr-J}CAY0nbTE=Iel(PMtExp!mKDcczv9j;Lw<9ZxG_Jk_})+*W5J;O9qmPpN$1*6WHaf$(cQ`3nAo zfX5o*P9e&X^+3GNM=xhDD`Y@4?-B3xpP-g)`w-i^T)qhmqUWlQMb8^tx$qIB;CxaP z#EzGKWCMFIZ#j_Zgp}zjYK9Bnb?pAZqj?1`MFytHf!WEjja@EY| zrlZsmF_ep~-Ji=^)qUx1amD`U^f5=}j)3W@@jlCD?jE zrJNp!#}vD|=ZLR4?5rW55c?AxLK*$F*~uP`>HLXe=okyb3a`c1d!rk>E>8{FJkNQv zXM>v0u;JYLU+-_f4u{;R3%(kz-Aa8mW4%S4Zxs+t<~`Ms>hA=p^vm`itXoi!Zl6z* zRJ}KDRT-S5D{|_DI@qj)TA?M-n22mA>RtsEO73DV>UR+l}O3x?`Pm&&SpvMZiJWaVS+Rd<0Zd=HeqPlNbLU zq&@dj{g2TS+Z{-*rgb8nD~z`Dq0>vL^2u6KOgky$H3{3LjS6LX2fv0oo8rs_pIgGQ zV%k;)k`~3LtIm?H92j$3$g8G~WBn;n>9Z*J13$V~`Srem6lcWj1kxl&-E@r88KCjp zKVc;Neer^vyllzy*^jv|Q5rcOn>Sw1t(wx|ya>#SDbbv$6k=_5b^>gol4^1a+zD87 z^WCqWl@!D9bC#xmxF& zzKlv$**G!ad~zXk8T|Edk?XA>sCqn@9>U@?+1|O8qvh|P9YEhi3do>Xy zw|P`25G|;2filf3j9m?4%q?5j*3RXO5Lx@Vvl}h?OF$@0M6_%ap91$f99I3E58Zo~ zf!=ZA5*JrrYc!|HX^8B7$5QZTUG<%%>2MYV*`Z*1Fv!C(5eA|uUgh1%^uru$HQq+eMd&8y&_-t{iWO7 z%Dj|XS%pt&L*MHhrR8}N3=XI^u?qBSi)#Zu$u(&y{$dCr_TKt5Ei^$ z=cwJfiZxmR38U)uN8^Pu8t1Pj2vs||W=Jo*fZf9yqDwDh=Yd=SZuBEa4O-Vbz0a3( zd0OZS0ha?x#%(hD_fZylUOD7)2tB}inI874B#NvxJJBl_N^0G9!ky4@A=W8kI;rZ5 zt(E2|2b6dLn)x(fj+qItNpSRb^3u$|S*LtKWY#eu8hlBnt6j5w%Gp`6y559$x*zl0 z1?#^mKZFrJCnX-9D7g;_$9b!62UogQm8e44pVde&_$@l=v`_bp7_~tI4b93sZvmu( zzmN0vM;j%leIZuz*L%1<@?q^RkQkUu_s8a^SY!4hq%;en%=6J*&V%rRs-pVCs)ub3 ziG?-8N>}Fv(VpAmp1_wG-->y}yDbX$xa4Hz&1U2)3`B1InkHRi{CU)xd#JuWV9eC1 z(YZ@_LB7C*TU^Y#%Xgt3=T}Vt5~G%fh!bQ=NcB!Jx-`QiqsA%|p=o+KU`i`wb{FmY zH;LV~QO7Dq)O%ZlFjU82Ot8K7qwY%xl;ed{NiATLzNz)$dyL^NK+`gYXRV+6Vq+z=OhyIC!6WHd&LvRMYAQ6X|qhWJptx-4pSY9 zUj(VvGT04JK4Q0|<*1$M1lzxioRt`Q=j}RMBU|ImT{2lM zQW>#R#Kzm?|G1g#s7qATQLu+gvz>wOj=MROG7mk*S(uA?QXLH1_BFS^DF}GNC?zVX zXH4%9q)Dx=MhIU>lH?Ib#6D`u@x8n*Z@&XP3bo%TW!Iy>`jNDi@M$?t{!CZDD||9h z0=2SGJAD!7Tz^m~BO~bklwp+%AtABQX+c@O)J?=KY^FLs9j~f}a}1yQm*ZTh_3BX7 zjFU~oHU8^N+(Ey1dVaQqwFJ?gYJGXx9fWiLirbwwne(dlHU=VUOS0A-5TuakWs@Gy zC!Fo{p{+w}&Lnk}IDyK@CLmL%G|%*aAx}5EI8IgVuB_%?$=ttSar!08)sOE%Arfv6 z0+QarD8Va1_39xY_3``w9~Be7@PsXay-ZCGvJFEXh^Io}cIF-H zba_+TsaXZ`r{!-a;vA*oa=l`Q*wm%j)6vqO_+*BBrQ%-bxTbl%6#D~}A5-((e!<&7 zUo<3|WQsInJ9xq&JTP<%YZ(Y)GpMn$`oWsMbw^^Mqn?BtGlr|SYIHJDC$SH>l_Jn< z>HT?ra9nkqsNW-(<(sa-l=f_Y^3E3fxE%=51g{__(y6ZDMAA)WS!-@nk`-cA0a*$aO3cP{f^ zJm~+p3}gATcIGS}_pfyD-#+WFH_mD=T>Aeg_wYwLWyi8vF7dmK>wnI_f4>1;=wJ2t zA7cIf#{UZaZzcY}*Zu#mN7}=iv4OWX_%tQW+WNgK3QWI zmwgmp_!YEW6u5?Sr>=y>$b2XLUo|SKeMKIPjlcKXfcRPZ9@#R~_~c}kYGD?xY<%7t zDOvQOm2(=*)s#1-fy(LFhc4QP6LZFC?~&fiER7DOjE#g7gdPoX&y(7{zs(2L8zF$iB{IX5WO zE!lnc^f;k(G;WUGx9qoO>nPQm!TcHfDMet8 zVJ*9Gk0AY*=zc7{kC|D`2d*Rr(Eu6-@2pNpB6bz9MHg*xX%F7;*nsg3t%_F)Llz(PaEem~~}u@WdzjkpFaYswEsvmHF>3?c97jGe;%&*1vyNs2SP?KSK| zt^PV~PnWRQoHe(w1Vf|}rAjD=vtq$>&7S5X@1gmtxd@awU&zd>V5Rc*!<3LsMAK7U zP7SvpJf~N?7O^zPl=x|ZuNOn@bc~ATo~NumX$N#DCCY4DC{Wp{u`oh~MO1 zE^TYjNrOK}xcjA`wrOnk;`a?n1$BXH?t2j3C9>V_l5#dRVD4%Awo2n%id+9@?<48X zZJfM&AU20kYRla~5@m(jZ`LsY~<_6}8c z{EKzyY9o0MZ~Y`Zg`lBA<5&ew&B!rWp4{PIr|^*{t%I}+cx6~Cd8DeGF_=a(OI+{@ z$(cMW>$Nt!$gWHt3fXw0fYV=84=~(q*bgR?>{riWYPvcbahcwedA^5D;z{DJRz91z z7OiPbx`eP32ixxhSVguv5z9@Pi~21JS+l9M4OZ0Wv;f)3ydAd#2xc+Xgf!rWK3MZv zG?HBgojkDUz1m5X8B!p{rKA1CdGWv>-Q6v`ys@-KFxJH|-96S` zujuVH6t5h6FB_*Cy1DB;`WCAba-XpOqP2$xrOh1DlIAmPRoXc|;5ce040{^etW8x8 z`Ra+Xh2KrhK@`!);LgQw-yo&sXEyGC!ZGZLA~ zJ9)e`gyS8H7a=FCyrYYbxjiTWu^_z<>@~bsAoI%+x%IT0s#-4%!j4Srbuv|&WcB8# zwKinl*)M2o-{M%b~0G?HOWY1~Mq(CwvRjm~=n!f;_$$o5s`gN*KP=n?UnI<-|v-m!zPiz>hKLdwpC z+1!5Ka(Ad>?)i1zxaEU==1Z3@8Q_lfgIMV2R834wkftH`)meiVuHHz1s1>r`4-I21 zHBTCZ1=FkCoLyYHCnMrV83^%?(pG^ITDa>T=~jXFkd3W?P-3KEPmS~?yYIdeumCh` z8mE+`fyjvM$*Dvs`auuLWmqSCctwMu*ZLJDo@tX?N)rBUfQqStR>m`(0JslNG zviD}xWfE-uk`Ra1(7~?P0$=cY)b<<4F?QS1zyg!O0<_$^Jdu+6*c|__vjA{&JWm#n zy89diX~q$jo5*6+5r0Q_Zj7xDx%-*@)9DS<|NOe6cU+>m?5CUjK=RSc)J)oCv> zGMusq|FbxQNmn@XSH$%z%gN0t7c^ToE^z0c2abF_%DPmykYz5B=mv8?-Vgg)CvCd9 zLr?ayr03Ahn_u0gS0{q*$kvWSg4q`~8?W0i^^AQ}_ZsDG`ofRm*az0n2|WuOnoKz$ zp^}rU-RmElH;~?x-VDcZ=q|6R)=Y@_1f$M;}z; z0YBNji@sFi>An4f5mt?!mbY5==?UQ+qaPEeU{VZf@R-0&Vf(EP{22N-x)aEQQS^*C zq~JQ0WrFH11yQC1cu`p(9a|FZ0ShG-SKJcgGWy5c2ZCz7DB_M@17erVM=XVdnYl7Ud6;?b{-PW&lPA}Is zEA#?h2=+DA0$Ae`u{oj?>q6XgOMMff^RVF!)Ar8jy7K^{Xr#wwX5E~^yGk0lVrxaEu7mija!r~(Z?}wA9`0gxRz|tY5vGUUO?4O<zkx|gv*K`VU&D(qfPdC z@1_&4U=z7WIE+ZyrYZ925g12GX58zYc6eN|7;%usexN^oiE_)_E@6E}M=7hq4X0S% zF%;a0Y`nE>=`_~$^5Y7-=n@T*Q++iyT<6}&7hv>=ny&tv#RJ+ zmy_tRFsy)1=92eCuX-*%dxYEr=fZjKV3(09=x_9ZiPT}3MUe3^V~!CLp$TYRU`QJ-dp2X zj^0f$*%nqgC?%5+C|B_W_>dMpAfY~ZK6~)I;|{AetysZ|#;ibkt;{4VPb(7T8QLJU zZ%wa+Z=hJOq`%>uk>@jeMKyvN zr#M6J$!69XD^Fo%aM`beV_``dsxAR?d$gd_!dSRwJ)%$pgX!T<#ofKMvkU zs8*9V2VE$u*05`kh=@7V$;eKlAuo6lUqH9`P}Xo_3}nugp~Zm)vYh1N<*|meVs=h z+DlDtR!vp$960TJ{nG=)rh-I8~*(gWg} z4?a-VgSFiQ2{GZt1Qiz4#@p?}xu?R=khL>BOlcsA-IiEuG^9QEgf$UF#>Ro|NjAr) zU`x>TLA>a)t}VnneOR$CKXZn=TV7^iVH7oAK}^Wt?oT)*y$ac7hA=Hc8cnz=-N0X8 z)w${P9_q6d22O}b|Evvyy68(Rznvt}(!HnO)ji}vwGz!S-tN+V+cE3dF*k+$ur;hF z7M%S7y-1l4n%o&F9cVaFvSWNHc9JYX?F4l*-+1ha3JyUlk-ZxiSWzgfK%IRkEmJCB zCu?D$jT&f`H-;WohPqXUv6Dj{1@c6OuH}px_3DOFUho{&wU}RAJHw)+8%6v46dzpL z51QQMch=VgHhezZQOr)D7`gX#J!yD^RCsMKQm~LUC>yfuX%tE_7pWQdN{?+?DGT^E zH-^@=>yvZFWy|%p-SKEXLXUDt8aj&rM2Z7d1^di6?)nZwqjljnJodEuc&?3MmvaoPzeN;gQC)Tleb|gS4L+ z2a+aAbSHx=1IFoXyGw^#BX@eN549)SYv5W>3hr1Wem{UmaR5L=evML%lU=yXnyM?X zzdFR8m2G?&1j*I6$qu2cMHPIJ&q@P?7VM7uyTfwLb`Q9%t@f0=ov->lv8K(}ExBfr zKk)LZ=CDodw<@1JlNRrs{iTwYZ7n!S3k(<&34Ez2M@iwsYUuI~MdAY!;5@fg6L=ac zLR6a$b?LqwuhK#)D8{WV*rIP%A(S=v&He;YG_rd=t1df!es@fjR=7qc)pfR^=~#jS z;KOa6A?|vB2rXr6A?*}mwm~KPP;e5jMUNQ-KXg7|Uc9MTaCb5<-MYSX#W!K)-2mj_6{tGJpS;4e2Svdwz z&gyWWr~3j(v}MM)Z291axFP3ze|iQfrjl1LsS}P%mbQrIt5-=`SVRzvJRcN}T|X=B z_wzGjev0}t-Z-akhTt9+ni_hkXid!&^;wp)b|a0N%(6;d01dU>|cq@XS&KVzM|`nkn_fX#GwLAJXV#)?q3QV;yQY_$sh` z&^uIh<8bjamG(d#qhhEroG<-_H{p6six65PR*271Xy>#4&%#M6%^+ra`V%kU9HpNR z+$T;WnM74G;oS!!Reh1M3N7_L>|mr$**0t)yCW{2f9U*rwK~GCY436HPeGEA^$OAH zXSn#_N!kIg^2SMl#EM(@0l`v%Yw?KXXudiL&NfW@H~W?-UAUsQGXfbKuibV`LY7{= zVpS;cgP#7enor~iCikSaCN9WGqlxTKUBer*CYW=R!DDC>TD=pV z7!XYE5-2pElc@;mdb0$XKux8n7KEnn2eb)gWOmN>spO=tKdo$spTGd&^M^W zr?O$nOpEjEP?&fsGxUVNBlypzFxL_1>g;L*S(vI3W z9=xr!o8r2Z;WwtS)~BOUJfVbBKG)Z0(r9I^YzWOs~)Y~~_@4Co99>fpop zer%eqw|_}h3zHp&*0+0SM+zez1bm2uABu}(l^rIHS;A6Qq*QaF-!OvkvcL>e8g;f( z;V>a`a8)K+dvIfEedoAmGpNa15NWP+`{1a8Ppz-NxkGHbwZHfUljXtqU228Z0Ozfq zo0Lgxxw*LijAGTgKfd=6RRAm-FA3R02T;W`^q_-7!f%@D07E>X32;R}Q)}6&{VmR! zAm`{~?1kkp@N0oZtC2#J`Fp@T=jQDizQMSLb)8Y8RgZC%>UH@N6a403rLW9}zLD?b z;p5b^7p(-|zD;@Ta!ueASNtPp<1d4~$-ujoF3grWVzqI-8qL?L5;{;9#YN2z}>hQ)upx^b}HJsyb3Olf%X=oP-h@g;`R zwVM^VhMx7M?czOtRLrow^Oprl6N(#`!H4P+`S4HZ3(cFev}N@R>#3YRP3U01 zt1tT*at9m`x-tS>{85_?CJ%A;Rz!bvL=1^yu$+}p>dDTMF2tQw*7OWC`w zx3ZKhWM0Wm``RYmetqoGPffwI^nx?Zg_g~PKNvs$_S>TQ*oke~f%-yKGgh6#kS-X) zX8OC*crj0t+_^f$?6sLoDor5byvQMY;()kC@jTLq`fLfvyy*xhBKX=JA zcKn@Z#rb_q>G|luc}F?zWgQEz&i z5e8sJEL>htDREWu02UK*em~(Ppp5qLC(FH&Vh_0U-RuvRs@y^&qYu*_U(AMMyu~$D zYv4N0X4lc*fg|spo`WnCRc0?E*HZaC{~yx60yvIlNz;}k+hU6)i!5elw#61ROCx4x zmSr(BGcz+YGxLaX#LT+!dv_cA_V)e%#$80kL{Im0PgiDD)>oNdR#CbWg)6Pc=51zQ zcRC-1wm+<#?Dww1kNn04Q1b+RJr9`{ayH|ntLH1X$S-8hNxnJh=0ml)np4e58C#nY z9Pzk0E(&ZmtqE(mn2(6p1~EQxzcPnYyf9xu0?;#suD{|a#-2`iU0Mfzk^)~&7$3ZMNcHqMFwRFzxx-)0)S1*~zYGT1y&r`T?m+RYT+V;fE+`2ltOWlwiaq89xp*bd{ z?yVunz7D+8Q-{gty}6>_G^ZZ7IVqTy-t{y&%zzwqE96LD-rj448N)BBY*=11SA;Ud z@AFts_Ex=AZDrko$6{#oDssz}_fN^TKY2Et*xTcVv1c+`K90OXNdd9TxP8hHDA{p& z*%ga1(tyEJ!M%K@cf@P=D5>7e%tDr?QvjZ$j<{Ie=3+nYxRw=N0oLQkNsRO!^lGSO zg*WW%s-A)7g3E{oJ6Qo>I}%Jfc@>Pu^GOR7Z}01GYIO!D2{2jh$!qJGoqq5JAjCbrJfnS+xmoVW z5%b<`b%VBS=G3;EYuo3$xOHO@JL+LX#34L> z&Gu#^T00?_w(>!r1B_m9BGz<*#X{KV22gZ=OflGCrKfGfsLSyven*B-2z*rh>zcX`hdCP^IBAL5Hy(1S^JU1 ztwe@yc$|1_MEYq8GK!!y$@U?+{K47xF*!^uCCrKfeb8foO5#?|`cYai zw%p8x9~pAZ9)W{NEQO038fM*4~_P&2F&twznL zf6`XSCmZ2h8cBhE=5`W>8EV09y4OkeRtJ$^YEN(Z zI)t42sVrCd1ofSde+kr=uO61CYCjIr_9%YSAe!{feVHLE|H?{-Kw{plAAn-^z!D zpliEV!Iz}($U=dSqtSZ{u3jW3k7yxAvE!;GE1qwZy~TceHE7X$8xMeB7E?Y9{MTC1 z^iMZ#IyI#l&c}cOsB~B#1E-M}=eW!HxWkYI?W4twm&Lu_2E26N?7De)Z(N>%Q<@Qa zvydg(0P|lfnO65v997reeZ&6rOn_03%X*9}ct+k>;l#vzmKZqjfnc2#q@-UZH4d>Ca4Bb%<_dAhmXp6+fbGWBi82{9rS z{!ra$-w73l`q_TqTq`2fibprFn6RlngYosF_0S3&-pf4Z_SrIT4(SH=&xviefmz;& z-rrW?KcpX8#NBpcz)pjp>px)YSH?S!yey4(FPUAxa8%p9TSKh5=BvXaN zw`H@6KFRHYCqBIa;OG5H9e?tdXFphSDjETgHcA(mlC9u~gREy|Dk;cu&D|rhhHZGE z*z%hmk|u@t7Sz=0r=qGx`SICILuF{c6ud&(=5u$N3ztV13i|3S9T1FX#Or#W!d&+)?NJLj&}Q{0PJrC^_2ELf+&ttW1!;yKiJZ z1B0RXXnv7p?l5f0`?t_LjN?4-^^K{t*@IDgXf8T8f{+5qNs!;teB-#bZtY6H-E-$# zTi=)OL&u%-P{rh$C3Wwp@RlJPY=VU}+y*3an&>B75FPO+D_mUUf9w8OZ!;Dqz6J>Stm74~+ZKWx z$FS!pj+^z~;$Yll+Q3;pmlKlM4kStme7}o^{FFG?k@I3ou?0Ead!E>BAmB~FasYPSU#Vyhb$8oos8_PW|#o)YPa!rutMSa2f!Jb@Rj-y258%PWj z^JUDd-@#+FP{50U?L4XKI_e#?#vx>E#d*0sDh}V@%+tUoBamRdk-fKw(%9Qp3262T zbn_YjK~+5Q?e5|~l%;}N{ey4pQYeilQLeWYo5`M?wR}&>Or?Fv=<~6WjlVakFhuM~ z;TAIrnYTR>3{|pIHlYl36+K_Io1OvS%|P+Z?p!iTW$LM10rF(h>d|_5pOO0On>>+D z6Q!c6RgV<6NNTdEBuBbF3neO45v^Cw8qHI*7vC(F2M${(t3wR{u(p|NLK|ZYz^97t|fI+JT#62Ut90^QmU>_UJ6Ug zg?xsmn(;{|_2oZ=hurK(H>?Z(6q1a!48*iLM1S5}04GF_(BIJ}nAm8Fney9=b+?^r za1eSfd`PB0ycql)lU-NQ6Pv#hbtN=M*`)PjP_|Tr@9O?BauEIZaFexEB9834j1EU! z*0xGC&`yoXwpsi`Y|c1JmG5J;?vlL4Ltb4A4K{&r=(u7G&1;XBngBxm`F9?=s z)P;^pxT|^aYPQWFMo1z3Xm}nwQjgZQI<({yuzC$W>}a-eRce+RTB# zaN0=aBaoU$IGj)n(1AK}tdPCDfr}Y^XD)g#2jf}&M52IaY7h|++N~`>e%9lyoUX_! zP2u2P37r=lX>;z7p@{4~%p!hXBD49y|4~hh%`Um!7bK^1 zJjUsz0r|KxD%j`rxKKfL*Y+yfGDKO+Ry|LJjUGBU@64$K6t6i^T?qx^tp^S$+T`)z zV(+{b1ZS(02(nO`w~(Pvkf&8CIUT&_=|xJqADNq+G}#&?r4+cc2sslD+pREl@Dw&c zUfXR^nHWx-Fr2#SW~9BD+;{ZE+a2vfX;(cK9ij1tc^@! z;-*oPFwYPWU}IQhxM5SLXOVAGPQVykF_b7dn|jP^w967Kb7_%4&mQ-O+m6ru!rRO zK&SYd$Nu={Nk8`jtB??s`30*+8oJC+W8K@?Sq0;ZD2<*ZCU%cySV>=CjS-IP z&CxDKCm?c^C-2y~D*sh$%8lKVd&}#MNO7oYj9%nW#7zP*?*0Vbosq_-e;R~TE-*Z(t!Jj?}^WyxBD>S=htkD}L0xyaobesj25ZJ_AB;&#bY> zoSqgc#JQmE?7TcQa$cF=;K|9L3yq+sz9cDf+~FP#O?}`z%?bW`_*OD^s5C$c)c}-lLwU3BH@ly~2vgqM!GYGry;j!h;dwoW-?>Hjs z#yYrsf`CD+Y1_5tx#S=Nv0Gy9+Z^uRfUUTYwLKX|(#02ai#6ArBL*!g=bu?BDihxF z6u*;UcEsD0Ott#XWI%i*E+w&oAq|**Bo5YLu%kcK`2xH?coWbplm}_I;3Z{DX-qwe zT!gI;yNJMoqCcDN11sjYdMqVl+jHc?%v1PctyaVu7@UlT<;F9Q$`IAoGVZbE&_KPc zxoeMKw(Kk(cTHz!h$q}V;vCr8D@@{62T`xD+iooN!-oYgJ6}Z)3uu;z7mC0~rHMh9v*HHil6XO2AbR=(V@Qx|c*sRM_rAUt?YS$wddGWAQUOG6 zI}f~!3%*7urN;CRGZz~^>s?+}uM;D12mt~R#FMfRX%86RMV|UE|JD~lY&`|d%#s$v z$})7X__`j476*ooz^qGwU26pFJ&Z)Nk5eeF0pu_@p|;%aizjd7vX~6Ika9C}FS2S6 zpz;<3E~it4nn^Ecl*wz=X7PK8g20i_eQzn7mkC+C&w0&GN@HR$lEIk^+Uu&$HG8xX>ha z#@5I8s-oD>jKc^4WI~}AE(A}c62Ryob-K|J#O#d)kSwZq8%-Bw%bi{tWAI#9zh6JM_Hh0_ZGQ>&2OL$EYFE5d^~!v`6BRKh z#+drl?biz>+4LT0WwXi=LNiN@8aP@^^4`l#YS$K~ZMP>C(Wj{B}h1 z*Epr~N_pBMCqa|-^!IEUgDcW1-J$&ZIjRBcP8#!hk%jR-ti%X&>G+iD<6lVz z!hJ+8*68w8mqdnErVjdRjB;VFz8)KU%wH0^9GZoh(9ZUdKA@cDtFR>b&qw*43IZm3f%!9UKwt-DIO#)RDY|FrKZjCu-k5lV$ue>k->21c~{4 zmi1a(;-6LF&auB#TjR~er8HvrT6D%A zaahG(Ff^@p;6(oR9=Q^k{?=422aE9ipKpIvys2WoYowB@P3LaCcUs0)6#Pc24W?;M%JJ@Z=wG^DRd-x)A<6M3A1Fg(y?c0bAf7&v-_m71eO4|{o zsM=%^p_K!(x0}LwtfK~_eVv=spIK9BczCZjSfUG15k}$KZ&}OQDbSc6cTUd`QSn>^ zzf&G+E;c^YFo-{Jw{FOms$r|f0&UYYW5Dot$$86NbPdZ>-bC3T%d=PsKUOGOd9i=b_`zTPiE=ty5~Yjd1gG^ zj*GruG7^D@O1&%6B(6h^G6rM6R%`~2Wn`NX3#4)S$P@!)^E`@)jvs@7y+V>fjw5f4 zkG^^M1kFz3$t2cMdu@4R2p_MxOh1*F)HgN@*PUVIVVBK~h1cE$4VRVO_z@QjSJy$& z^>bKS0J8VEv|u94@!;688EtKEzORH=HG0*R3GKCyLKCyv&DGs;wvR^HID-uk0c7dQ z4*_H>;=k4`_^LNmSm#g-nT=Fw{)+4E^~lU868P>5y{JB+{qdmT#t*0XadDzQrMeWe zeLBQEIdBkgcwB2guv8cN{VLWyTr8?qSegIc!x!G^G&9-RapxA)$5C~vmKWT;qNXEp znXoPDL1g>!V{d{$1ujk9D+eh{Lw>Rh&Mj>^+KlNsS|)1WA9 z>OpLjYP3utnd89$5C9#Z0=+=v#z{8b+b!^^%2dQ4;K;&a)3bp)ltEzBYd8LEHMIJ} zLg&L|o9HxTG!L>3=!NNg7&e6_867GD#CN|;LfyddBQ)%@-2 z*f{GV8jr1>kI*4nnR;2clSHD=C)+#^N%Awhki6@#s4@d(i|*eUoab8+wm#M0kV={^ zf2GlUE>T~LIqiW&|51YI2U^(NJu>uN@5cnG)mp1H=pnA!X?Vxw=c7JES?vmkrE^-$ z2xzCT92W~I5`}D56%B>)&bYe$gywG7fYjRiwtr%XQJJ?$zTg>w(f0)EZML>vi%p7Z zF@~pX=RkZoDPpddZ&|{-{$=~&bPoH&r*|2tp-TGHmakn4^n;|;4R}T}*CS|z=i%`U zxEDNQbrAdEx&s|ny+iGc(CW4YWfO)b>yOpd99;pI-FzEs%32NO10PQNXAK%a;?m+Y zwNyM(Rqxh!mO|Dm5}urGN47Zt^5|7<)mu5QVT7*+^q%y#mY-hFU3*LC2c=T(<_(uo zlB=DA=G2;%e)4msKM&!I9x0R@RyhkF3Y$5&Z3M&x1xPNTZ33InBCH&U>UJqYdPsEQ zu#hyJ!oz6oM{~^6#qE#G+;=GL_Dg#|Y)8M`;aDAlR4Q#_`1B-B0Z}Q((TiY1=&;&E z-K*Bj%8Z@QU4<-EW6Z*HEy#s4{37Quj%4@>y64aAo$`1KsaxTLrWvRI1DZRZS$*h5 ze?k6jvEJ;4O10udeCZ&6dAtb`%@c{hJ6Ka^Gcq5GPCn`l1eIUGu3&rc9#gMEk9E5i z#^m>!bV$ISWVv8k@_G9U1btHK|z2uMcaUNBm7 zyx!pCc-FN=lCeqp2{$Z zv3spqJjErmKx_{jW!E4Tt~4V}P+Tp^ssAi0g=pH#4>R=b4YvPWRx`Zfk(k*Vrq;xh zf8Q6(s^4^MeYS|u04419VMXZq>=zXaUiwypT4`=KP4{(G7d)l_BfXHAAd1Jj?&n?u zRZbffq#-sn>dt~(BXJtp`IO_LYS|xqKCK?R8-V#7`elvCx$1L_nu}2>?cwRLL=Miv z;DkE6J%5A6yNyfMD^4W-9Hz5R@MlVyo2+YcuE^6?L%n1baemj|Fh{ZcuDzFQ6gOtn zS#A5KS#UTg?-shwr5n;eFc=@m;?Qs|_mh6qJO6g|P*HzxaO}Bza?UwQy=j7^`|JVJ z&z5GkHtca3cs%xCA{aIYq&%B*nxd#`9E45}dL zQ0gxW%OLi>iL9SY7d1}?IV!|P(gWSB<_acHtr4@vcM&64MK8EtWHO$l8ZW%3cExZw zHhU&FO7uPgcpwXk8wj$bL#-Bt-LAo1Poo%;AHZ&36z=mv`uAg0;+IL^!Q8E+bf zvF=qtyq>~w5`FpON(*wk{vtYC$@W&U*)ECEIVwlxC4D+1`|WZOShk^^4gJYK=Jrz= z(B#hs`-mS#-JRnpj8g*3Bx%R0$SHj+#+qB0tYL&TNR6c#9uH>4%dJL~M7?F{T)p zkKJomiulcGo}Zh(>PA`TVw}d=WP}toR^dodkOy7aIreJ1Ggl4 z)SNa(#YMaiW&KOZU_mI(V6z!5-sEk#eRK$TE_$b0B0x}-f@E$zNLnASNkSP;#biFn zPMwO`7OS_#J(@AMdL?o^Zc}DX%&PGl7fU$PBYkv*Oz-wBDag$dAE*oU&_XrJeQVEc zZPbjVN@9TFlW+L ze7e~Dluyq}Yrt&TcCuHQss@;LJ)GL#;FvCw`*FOep2y~YuS3Mp^H~#aLTRVNA{fV< zP)e=E*if|RFtNjxH8r@XFS{&-I-VtD9-~_?7CGyTh;JZPh9|>N@=2;73YO(Glf;5) zcnf6Zf0>c)!!M*C?5V40Bg6zDS7ZFiy+HOQq0afHj%V?0o>f6L6qM2b%6IxhvCp&h zF~e;0Rt1@BGQY0yX-*RTLTk9uM1^AOoIZgEr9@d;;M7;6)YH;H;k~6w6RTk32qKlP z4p)A;T47+wb?|glLe^qs?5q+(PzCGUl7rDEW^FEb%zQ#j#m16GPbILjp}&5fOgkUYam*0IGZKWYk*xMxkh474|S?hRer^TE2BEFU7mEbx0_2q@cict|F|S> zJzrbj^n7#Kr?JYhAghX3&&AZSq$*@ENuy>~UduEd`lfFwRuU#oa2gU9Ixq${-3 z9oAO2!PtDg4dd0D!Rycb4-z}>R?wE?SRr(DYTl(dyZyghQ#p(rz0TpC^v>Tgl|Fo2 zyZZ8aD4rBAdPOmfj0+dLdB7llkidQel0{fsuuMThFOp zR@e%{$LJI^1V?Go8aAoHp58U1GK3@uMUr?)AvPcnk9is_#U|oj1&zYJ08qFF>59ml z)po58uEd~5EoekL*xkDPrP-wVzxC$<)ItA<-QZu}3)pB; zpQI4Sk89XV+_vdxf(GqKXFij$WiM*LsWr&vrCkBdc@D67;mrWf2z0~y4JlqhO?o}H z8nK^Km@uUMdH5u{^|kGF}x{N)t? ze-FW7omF}RGV1Cf-a+0@3TEgNRxjOUuZ?&-uHUAj4lqhVwcH{+=(0@%+g(NS1(O|s z4NZ_^RbzSF0wl=j>v*Qsdiw#HNwcEE3CR-v+qRzZmVGlO^7#q>&;X!QQuz~g_KM&a z&xsEvg`65;`My7_Ib)(GTji(?(>Pv*-xrIlg%EVzMptC`w(!~!QI-g$uH}$L&oFM# z3m#T4bzQyZWxnI=EyXt#GVuFk?b`2fP$JY%LimKo(Vo3`pyAa;SFbzFF7KSqXvwJM zZiy3or`&BO?rmnzi4)A=2Drg1{fq)*)hBKR41Z|&SSCou&Ty5G5~VCh@ViKOQBH1C zOn#P}(1vzZSM8hC*yoI-4rna8tKQ&cX zt;CdmF8THkX_gXAjr z_#0*T{RU<_RDwKK2&=S~iscd{QcP9gr0wA{PHW>L>T_;rn(umR;-|X-%URaIcN~51 zjjES1s!mkfu|c=OXWlK%=$LpoDWu1*H--|?>;Rw7nkNXkgD%BuEog`p3Q)6ae$X49 zHwom=TQU6{^Q^x{<3P@)P1t#sh{r#r^bI(4l*es`zZjtWuxGZAaxvV-3k8%~!Bpxz zzl@weV^GN|l;05HmLH=EVSaXYv=s3)rs7J-IX6p*!d_L>v)j||@d|k-HBXYUSR&QL zDKK8eh*`DsESEBm!jWLcbe>)9LLflxH9<$y$;2hVg+k%Z#GCWEs08siIF=&cCal7u z*LzA@d#Cez-Aj$-03RKG*tD(cnMWJL{jvlcsDPfs3)RZfohRR8lIlr+?ab!bXoi8@ zxWCG3Su*i<7QV2!w6iM4Xp)Zv_t4~Luu2;n@+afp50BbtBC3Ry^JJ=4XX-G|0Y|NdksdZktdbnk<~T66uD>xG9Mj&Ig$%l?C$ch9bk(m_Ip^1O>N zyTI*0ktta5DqZzF)$4m<^W`L;CY0ZI)QeG6DPgv!@i$uY?pFN4UTxB{^B+zmzb%Kx zk{R~&J>!g|xSQ@yRK{-DxehlLIlnGxR4t$RDEE#8QBYW4U+B*C*hQ{)+l}{5s5-U7 zw_O;zqotgG%DKx*=jVRuK3SwEYeb?P_om=m{(VucQ&d}x;Mla@RGk*@7V#vxw1G7p zk+|By--7OA{Zzia$Q@v6wU)%8=8|7bE0?|wd(k_?;ruGn^!kuzVUk+wOmgdCW;4i? z3zL<0rB%lNjMCwVEet=?fX_lmab%el`8(~)XtN$d`rENSD!%o|_(P`#Xhz`4k#J+& z;}Vb6Ju~3*ERxrX!sj+WM`cCFZ7v;RlA9(za=Cy3uGDtkj7IP z#uoa5zIn*VMFUF9Rb>~}h8|sGV`C3~Y~P=9oo$uszSpG6NIdAQ%o2F{?T`o4@ufYR z-zBU?7M2H>WaG65K*Jy3$QvX&@ik~uxj{M>PjP^@8HYvk=2L$qK9^S;tOKFiOj?;2 zBV!F?luManZ1^M0vlVvVjBA<&XS_O1jv;WiRcJue0h^H@NrC*fSn@(bw6!k$MCJVD z1bw8V-jiZ5i5{V8yENN=R&nd_p`^6WC#$>es?wo@QW<&5-VxolzZpzW{(ez{EtIN+ zRh51aH9e7mL8;X8e!mQfnnI)^Q(QjOZgyVl*cnE;Rl^jkVT>00WB+cTpM3(DAq?HL zz~`O7FDPeW!D#y`#?9na(l^a+?x?Td66pqF55>1Y%iE6K@p9KwQS<{5jmAing{OXz zZRVBkE;e=$tQoy4@4C|>uT}~5lSFwm%QiAZW z6#EEf5Z;KO2m~~T3=!8_n5l3LfMgW5<+Baox&^rgIJ$+vROVGe>JaPjxbBm?Q%yfK z#xq4Dr=yq3;AxN;%z34GWzbH#Y9&J7QFW|#fcSiFYL%*ztgAfkrPpJjxvFu_N)wFq z+f*59G@CFtwH3tYqvSYWdaJz`wr_=q37Rq@7q_sxIxf2SvJu%Cmi)U|d3(U0gSKHp zQsd+$eAX}?b#L$|3*R6WQd<9#>_^h09>w@R(u8+fN%|wPCutGM` zWjU>D5AGIU`ens&McCRyi)&0{%_*^BeSc6y2_Aa8d*BwCdegsEVF(-@6J*;KSy`)5 z`UjC~whWLW1j!7XN-jQj7<`c|+uZU!Isc{(CacUJb-Yc$C6B0R~;&mkn39(9N++f4c~-fg9hO-;#7|yIcnnmdp z`m#RXa6NSP)y2xBaSHk9@)yri(8a5fsS8lfs@V3$!u@(5=}Gy1Rqpw)=P}SE^dJ83 zuwRd@QiOjWmirFz0|LAjcjtH-myJScRtVcDOB!E3Uw5@w)%Wi3^voakrL)@SqrZNhwHydH0thc{s)hU-9bB6IHGEgUy^HZW zLaD~W2o5QS^R>zwC~%%XPUvPMnfeW=!$zc+Et}n{?$r_8A%m9jh%$|o!WFSE&e;}n zDqF{?bBG0~6_t)DI(-mXjoQ9A9}aO4lG6AOU^g*XIgqgO@WM-*)5@4xwE=p2skF)z zE<;FmE5>}~gAUWR=vL=W&Qver4I0lb%E%o*b`T0iY2N*&?#rrPR8t_Jw!j}lNNF1X62 z<<7&OhrdyV&l}RAECdXjaXunrRqc;{YduF2p9Qlr zZjGvhsJjwevx6W%n7=(=JIPjasil7(Gw67wdezY&3~Ds!vWQ9!MaJlHIkUZ={q65!?s?%-?;3-eSkuY0$WdWIQTxol@2;WNqaDU=lN^9xTu5EIB8&Clq9B~NmJo-wfMXPB zHNbndq$bW;ZKcdKKRwp%2g2|3>G(pb8^jxZwf+I1wSL@2#(G!r9RyT!aEhxFiFfn# zeJW&eQm@dfu@^}fFd858=_woz$Q~={UbiMZ6zXp4td=$4-jk+>@pt2-KkK0aEn@;C zNrFoVCyttnb-8coLMB%MQV(XHzuxYKd0ooGubmth!o$kIBe*@!`#DSzH@BH(&g2mc z3L0i9_=cT@nH5`wE7MoeO=BC^*Lj?}v3F6ILcxe(Gd;_%#1?Kk^9K{a+cVo-qJQs? zYz+NutgF%ylk+CR^~kqxv)Q`05WXKZDKZK*t;q`cczqZk%{PZyfrL7lFh)*y;thw# zjj0?|bd9I`uu7&Il$=~okrmy$?3%&r@dcwGjxQkQhRo(sfjRCfZ>+fGmbcuB6sIRz zC+4k|nPqlE&~L8$pzp*9u*f8wgJ?SWOTSayUp~EltZ4Dt>8sZBj0D`=>l1M~ILW*> z_3fZI4Eb;{i5;)V*3uLu8VRs3+y!J^LGmZ!LTtz-%c*ZhxQvE4MycvpAvA>vjq6wu z`(DZ;Jt|x*`nxT8R-}~tbVU`D^oylg*~!pZtQ|N1comP7`DZp4o5pHXA(B3eVoG{x z9CqpyO1Zvb=e`xf&a-TnEgUXrB7b%WB}$=d4Ov$iU;a3YuMz1>QSkxTB4*~q!l+XL zCF&FTTnr55dPoN*3pRbP9w&y`H6{xT6c{dS98)TqKKBIG^9VkZV z3E>OQYz*YK?NR>3B=Nw4OhuwPXcLN8d)m}uX4O+%Ra?-$#^-~%DB$fhQ6+FoC+|5t z+Ur}Nzue4fB*=+OWWl`1{$j#u_Yt^_#!f@{IN#KDK=o1;GWI|^XeRy@F{i%JVuFh) zo-bgD4IY8n=}}3&u1=ZQP_XwZ9Qi;nf_PaF$BNlOXUF^HVL?w|`m105*%0GVMqc)zY(ce3X zu^E{QV!ybcZM}4LS!szQy-T06Ju9*&;^l#=vqhvf1=;-wJq1{txnCpWwuHA#*cI}2 z-;O_3yly0@*t@A^es!@MVgk6lt2l^rytLU19!q58*7jLf*824nKS;{uQ4YDEBH}{2 zcNdf9&adK819{u=)bB(rP~={Vi@K~Nc>)XGo-oI8mM?2l)FpYOq@Zq(eC+GV(SyMD zY~`udge=WWDj%~XteF%Dz`Ow7(jdR?VV2P!fT4zsbaGx>AHH`fBnBHM-$V0ob6t-! z*P6^H$F7!|-oYZGsezZwCg*OPikDB{hKmv>^lw9O8*&7lUe6koMwIn0x%52s+^X1M zaykfF1=84Pxaz!IL}vDJYxL(o(toUjz9haKqp!x~Ep?(i987864~J%G5%L(Z(b0NG zN}5#+=GPgun9eNs;c}?|>E_4VDO4;@TbetPPgUz~44$gKhl+lUR-4I& zDZ6(uV_Q19WGI>RYlO7QLR-ZEF4!!v4SB>0i3Lc@N0f~f#4|i6PbP)`eH`&mEjM6D zDqWV)pK}=4?}0s42Sp~z68^`}{w^;n zO=@EzvF<@LisIwyWEE4@ZPp5Bn?#8JFPO3L%nUh7yF0V ztk)v|HTpWgAPJFF81-@*M27p>|KaxXRzh|*JaxKAN!w+&xfbB&*&ZmP zMr$#@ctogMR2)kFqnB@l?_p+$bajaT-Z}m!ex(Yj^>ElwWn(lK$6_2F{}1&!LF_8B zqcOXCG(W?;@4j(+G({wChhTXx(1XS$?+20+6$gX=*#yXB!X5ZLApt2>pS=zske`BA z&mY`hBO0{407@A4zLL@4f4GHo)w(6xdH3^w5TFJ>RZU3yDxxDS`pN58lOFcPQ(GBj zx5Pi?wU*qOQMC<5wes7v+|M&KYt0468cxKOP&KEIU-;Y&S!F8AxEv!r{z(NgCh^W5 z3$a<>Q!+GU{Ug4EcittOGD>vIe>I%4P~H5;a4KGZd^z;>WohMAGu-~4ukhb~CLnpk zV$ebg6N$Vu5{*uQ`8$+rYG zxs>}u`>n;wT?8WU@?yB)C+{*w{=SdM7(N9KO?i`ZTX}r=bZ&-@_JN3lWj zRY1Op&X|cu=w7n8{75Z$&w~DQGk&9g@T2~U5%up8!hhUl%m!{wD`DYK|3mftX&3*d zFhii`+u?y5-QN~_Du@rrFlQ{;QwEtgBukOU0Qi{fik5xgI<3phdHKeFVw9pGwb8|5SeA`o99Jbu)ik-d#SQa-1@NfgmL35u>%C80Wh*r+CSxc>yUP-S^0WXx@#pDN!CT#&8mc0gx7!!>#7V;M`#c5gE-#(p5B; zD$^szvH`zUXsNfwBi_~Ut?h(EdJgJ8+`iE70ODMY4=Ho;sY96;s8TMJqt+OYhSZ*4 z?<5*OesCMesXBspH@KbAT*PLT{FiZAnH1cQDn_q7e};nB`l@~zHR467t2jJ7B&VVZ zNgjv%D@lP{Y#@|(ZZ5IDkr5Fu5M4=gBD0d4I?FE*+Y-|vaJsHES>~m~kziwM~oX6|exzp?NE0vcM+aAREEUwFcy{iBzwBTe(;8XezrL|I~@ zW%2%Y0Q`V*-hx*k&@TVK7+`w{u!y+cQdA5?#wqc zaNPZ0y6=Da>iq>mAONAS@K`pG7>mzq6Jq>f+%MLcqi~KxruQ`K^!KcY2!sV`q$}O& zbHP;L6$VZ~^muU#Uo)f3b|Hg{{ z2WW0Ws@=m9w!YI7&CG%94{dsHW5e?@KMn$ca+KJfzq;Ti8rBm8hk&pG%!nt}-(K&? zIo<{Ic$bz+xXkFI1h3Nx=TxM)!(!GANc@%Hz^H^4()I2%EGkD>P4Ez&aJ;OTGc>$(y>w;8gMXFm#fA+}AMdRs88Dfo8x>N40k9|YC0 zXlv85&{wuQt`ex8>XG@fKe-R|F=Dkk+rq1IL2gumjGj_QOD03`(@eG;Uv`-pA}Zvd zO|rjvaB-Ot&k!WOK^&HB)^M=>fOo%T{b3{Mu70Ea%#yMD4>#&R7Yz*v%~!JSK3rOL zkQfBdF5>FNcK_zG8PimWaw|?n9NigT|0jH$KNQ}c_Rfye=BP18<)>-SLKOwCx0gGc z*VgA7Z2RRBshHik=%l11QE~7l+^;WLONl=Z;(j>+JwEXQ?jF@-&e$UU!%+RV2Wug} z3@O?I-1kdcj&ej^gk`R+-NKj3&3i*+(Z|@Eil?cnTEnwV zG~0D6P;=B`Q`IYK!3c!>#24Aw`9?-VzKk!o;MZ-B-|7%%eAtmt@4t+G)e8wn)dcZ* zc0z8W3TcfBapf-JE-LqU^8K1GCx=j6ZQg8ep12)49rd-7h5nn z7yTD|r}+asx|C;n`qdW&P1n@agiRr0f-^-wHd?O*f@EH&MA)r2-f`na1kSs49oiET z{P0-Mk{#W`;?)2A5&o-ha`M-XN{{o6E^w}f?^}*%R>jN8x2H#Qq(VSvI*;4rY_8RQ zy~4o1YWF{D`k%-5(AS4EBJDkR+LP=yTY>>Xhs$?M6hjo=oVy{Qm`f$uvBqEu54Pl- z07y0Ijq{Pgbq)U=0*}oyV1#^Kb7AX^A|^*lc;@VvJnX7#4O7VKeVs?+v5&T$52nFY zTUop0^F+1VzAnzMQ5qe2`ZS45H}BaSXnfRRHQtxYx(roM)OtBwhyXYGr$1o;7*^?c zwd*m1zAwek6^?(US$H#Kp~ z3cqqpo|RVPKc=9|ih@VZCz<31iKyE8X3m7&@fh>*_5}1+4RA{{5g#X2G9Z0=%jguEc?iTRM3IKfJpQ=xaT`jWOBTziZ~zL-k7);FMVh4 zz(9_yBFk5bDW2sO-ij7WUmcP)s&zBBa98^8zK8aIl6NHQo@6yw+SS}Iy-<2wq;tAH zYq&=cjqPHHHJ4D*gmIDJ5oW@LHR!`YLmol2D)tq^{xox-r@$TO)%CxVH+gb4C<$?J z=%)aT{Fp>ZZ7 z8pfd)n8#XeR>q6!EZYz`1~TgNPQKHiGq_?e*qQOwMgkKYL&?TJTC~VDtbF;B`gEd$ zy)pBi)Enl$1q;HaUjO<4DwU7Ms?L}caGg8DuGkD)kZshMEBEo1g>B0im(T6zO?ukD zV14hAh(8!|o#P~)C^!aprp*=WDVFHA%IOR!DsJ`!YOl3jE?|*DDQFNr2PQWsg4bI4 zD@b)oLZ8`TLeuuD-v%h;HD9Ff4e3Ia)c5@1?|FNy+PG$^;I1%57#KxV!30Dtj`IN9 zB?jlg4fGL)56~)~uhRlo^4H;>{OmS$1s}*nHMWsjAJ*UIN*5ftP!xjY9&=EfY64qqmwE;#)`OcRUB0L7xl5GikZQHwA^t10!vqidaN5^f zY4OvegXZnBK-FfPIex$Zr9e3S$5k&8QC~@6%H5C^G-xF5$4SDy?pcc#cZKM!(bT7Dj=|joG<~_2G+vO6{9+ z-fHqJ*HgPKT9tsxtufy%wkDCxn1|PFkkNueHuE})x=$i@hpEAt5vt&fY95omkSNS6 z8zKP=0=(_++{p5)w_GE0*4kg2y{KF~?S6u;bgz;$h+V<+p?pqs`j;u{MuvmDI@;Qo zcGlz%8cN32#;#)P{{y7yx};l0pkLCMhwkC81WBiqKV4*uoaNb(zc(APNaGba z!hFKr>wZvQlXlSQ{ZK_C5byaU*rfNy%WIpuRyayo;*r1trE}1I9_wfjpCLN%IFdHD zk!IMhcEm4g#+9$}`gLyWoSTi!U>oNhb`%&txqc+k3VW`_OK_FgS`F%B@8Q2(Q%yR# zT(zz|>On5<$GH_{9cxOukGL#{xAo9%^ZD*SNv z?BHPWvAaKNUX}ar1C+mrelw$-o@(gD5lcZ55YS=uA5!Z^I6brr%&BX`EgIi)HyF_g zd5w|^!r&Jrx;&M(dIDhGv!b{p6_F@slGJ}@&=ODuzrmIWci5|%$O&oO$SeqLD(%&A ze6*I=vxN7n(au-F=4QyV2^2sR_LAhc?O%%bm1aKY$(XAzVnhcN_}U8ou#J=+eqDV~ z?l~VHOGS`k`ZHwYHFbqzdJI|=jFV$`HddHLkeKC{$fU`0ep3*qphpvqGN-AcZaKm) ziGA`m4SGlluF)I@P`9>^5~u1F@ejGOwp0ynRa>fTZQj;2w{|?CD6~zCscRLx-`uF%91q$Cp;b>BW)n@aWZ`MD1)z@`^AwSBOdOvqQEB#Vhuc z%v4`Hl4M8aFje$~sPK^Dm)Ec4x2u41wqvkrV(aJnu6RT83?BtbqN$i)n09axX^zOF z>FCH`af2u;@5@uGAde|)*?Fnfvnq4GD}8AAk!C`_W!Vj&k=~`cb3-aj``q8*3DH(a-YS*gkNx|>% zyLA^0LxZ@+K4(V=Hu4!J*&-3(lvB*orBa;IB{ICx8>IlOlry$ML&7Ybv zq=ipr9EBDLZ?DulK5NVCG|G}vZ?d(L9av&Im2NO!`(EQ2^$lP3w|OWfd5a8WLdKC2 z*Ap&O%Pyz6O=x zXRKz2^UO_)+KGw5+2z@xM{q|;oKaEgMLz}Rh%e}N4nQH-1VS<`=FAQR6u)V|XewIW zv4#U3^?O!24TCi8{A1V^JEmox?%1P=T-fgHIG2jE?W*w{n+l~ex#0flD!RQ48riLk zsrWX)y(F=|HIzvEv_}#Bg=Ir`b39uJ<#;niGo6^v1s(>}9Tb5B{i?N8_I5X*ht-u& z0xJR^fi5vRLIbh0b(!&ee^Q)(RHFYFS6IQpA{^ovx57G}9j?1)*K4Z{;o}VS^u6CI z&@_u)!ndb?)xST{i2~}AV1BoCZn+@5TE78r`h1bbvZ8s8nO}NOA}qAqc(jCvS+H2e zq;%_<`+!l%kh%M@f*kO()R&t*6j5pux^(?bv;m8_`lKuaHCCDRNrdw;#}(&!G2nI$ zpwc3FrW3A?a&R{9IqpE& z3T@wYo%Cwf1npi{AetnvrPteQel2h_Ob(w)EmJw~o6E3LwFqvG?yHLjX#&@g`b^q& zy#P_)_?EYgJ6`pod6vLh4XCs%g}5>AfUDl zm$W7-&at<{@R6`o$39EMMW{UD>S!f0Ow*y-%>7jB^RAvPYoM4Mt3jF}6dzEy^R{p< zNHy6dHm4?gvxG^jZ7_B>kdLm(x;vJj^J|pi1VCr;AYJsuRskxJ2O61U`kvEgW883B z|9hJw7A}R>dso6hTOv7jV(IITqCri>@jxfV=!zCwl1*ucoL;WP~-n@k_l3tV3b3|dmkENAL;-{cXeomA1o%Hwd{=(`g^+BNX<^GrZBaob*q{;!5jqzUAgVKka-9ASJtL zEiN8trXQ7K~uY&MH%rsti1!iff` zc&ofuJGsjnsbfbcLFRUtA*do;(UqVL1QOn$edO`pC~lzCg)=Zj-VxydFh^1C3wc=? z??y~95$%2dNL{8Wxj)98m=dFAs(on;={MK-S!3XJN`F+k6byc+@rG~nndDc4HgC3$ zYV8TaHkS0J^rw9V2mRzdE)w<9EoBBSh|q&=@&#)qN8A)+|o;8qxkm;^QtI zf{t(d-HA8hz4_>uh?_S+OXrcVoL@bWS)kwA_Vau_vfKZZ$_N_C`R!9a@ttT;Tq zCO-9X{KabfAIe7zsrQyi1`&Q+XVKcxjO{BmqX_JN6vm9M*5i11dkGjhY?&^rXw@TE zJH=$3_EqXVjfg1xtjrWJ^FsxC+B}hIEvl`ZW{@Ne3y=SR|A6x@Pe#u3G&+5{-JC=a z@|~iOMX!O(ya|Pt4t+~gJrm6VXFqSLY7x0=y#tOnVM@ibjh#_F237_3wq_>$fPA^p zDEaO5EmZ0K2r)DJ(P-m*;O; zn;=m<jOQ$PB+haROt4R)!8g8h%ifU}xeepk8PDs~89(nT4KJ^}VMYs`q+WZW95}{Q{Elnk;%zQPj{4hb_9Q`cL|5oY26APlG z_d?dJ7kMo42adiO{imHt`&f_cb$dMM#jpjeI-NHJk{TeZTFYFxiI(BelcHE7E=Cf{ z4<0rRj2k$(iirLT=2`&}7F90_xuaSx?AiFpz`(%#TrvsTParV4WDAuKsEvGle7t!) zHSD@ydlJShn&4u9E6_*yvwHfYs`|%RCREhZlLu#`N&k~kq+mN~=QARZTOT95gp&i_ zx#c!NLhZKa<}i)Hd%@C)H0<-pC7M`m7+OI(a-Z@WMOE3W>@PYRSdUf}NGN0Ol66)b zEfVE#unMDI^BZ1>>9;FH-A`nTkuyZL|K?cEX!**3LH?O!wxOcGDKATiU$!K?ox-c% zoT=f1-|2O=`NdKHoW42LJA`VgMA?P#%78$Wl8}>wM7o?i_F^LCrob9ZP(~oMKsEOmYdt*3$3XRNmdOgupd{Xs(pf;&+^lZXz&AHR$l=drR>P~*TCuSV{1$fIuEc)0m zQ1x`SFp11AA_<>pZs%RW%SVX@{zDZC>1-T`wX2g0+{VmW*}X8GQ$%+Y-$F z(iqv$z)dLZ$17!4F;gz^fIe5=PW?fXWTDNw*2_dBjzT&Xw9+r-eO02FGsgR;Y`|Y$ z0yc$5qV0Cu_8hOZ1i(+MIPkD@aO8Ti1H*!Y;pTfwTi*J;5axt%Tv)=16$inYr!*amNx~=c{tc>>g zcaoi4_?+A8RA+VL_x-W?o!(e$kH-W%k^_k)0H!FO;~ePKCT~1;0W(kSlI!pn9k&5} z1Qnm9T%NP}d=b&|4M{wzo4LRMjO|3aOQlIK)DVKxhz=I=S2-2$eb?b1VC380ik>@p zI^1G2u^=vg_WQSO4?~et$+22B8#A?P3H={Lc<~8bT#~&NjeTAZ;5@h<)mxsO*=~di z-|%>WJL+GZuwXggWj#3|!djnAD7<5t|4Uu0s32T}*Bb?zporH_&3fcgh96=1Vll9W zL!6JgVV%9?*8os&#GV;NDH#bTe)-}44HCJ@P2v?I?iSgk?`=5lGtMXxp`VyL_3tY@BUGBX2E#&$HSz_Ami zDuuinr@WCl(CY%;g5C_skkCzU>eHLSwO|^kDTf+g!|t%anI{Qvq$9L}+hGOCJX7$~ zPEZUj1`Er!EzgTiU%}WRsvq=M67cug%|1Y|b4fH=b3?JJpjDXU$h9CNeMR3~mMQCN zW}jQof=)qg{mnAZXxsP%a5$Q)@K{Agi$i@=c3vhSt=`uy*r^pI>U;KnH2WGsvKfOc z4#!cxi*Z13%xiTXyPx%a%xT#AUf=9$=jy!Z zc$P%tU$e*9@T`TuCBZ&n`-9>-aP4O$k8sEmgBXFGg?fb~SN1!_lBHasKi?-o-(j%2 zY)*PSg_N!m_0lSrZ8=`Tp{Mhb=3CCZ_I_FelRU}&J7HSy*aYtPSvaWa)?D(($| zFQ*wnN?a^FEVNphnDzAy#!jrV?xsy2bR^~~!q-gKxJwpy;^DEd!o$nO3#g}!-MRx5 zk)$e#nYLMXqxUIRG~!uS)3?GULchwq{qc})`zP%C=cE-S zc2Q3HXhi(%2L(7Qf=i)Pf`zsDT+ixeAL!f`!IaPmRY@<4&?FRg{$kpp> z8v1TQRk-+qUQSOJ>?gN8$xr*{xl(2OUm4htr)g68exuC)TN#Uz!!Pl%eEm)Gs&;9;UsSjuoqv_DLOVaLrNxS?5)UjLKx&xhnz0H@BQ2ediq%&o)G}7kf9Zij`*J!9ibdhH;qzNw-x=Sr%)^=GW@0RPG2Wetzkwa za)-(o3OUWlq9raici<^;x2eEVu!h)Elha7!lVsZ+HK60V#}ZtBf6{&2xE53?bj{dt zKUwvRL+Pqq`4MSVCL6_52>jko_fR;FrBhS7DlIK zfG|kNfWwEW#C^$|AU(sz@{ep3_gBUvW>7F)Xkb<#Dncu|1M1e(PUn5M6O;CzGUK&Q$)Rv^2v> zI=KN~#z+lLn`b>VuKcqt??7k>B7Lu38iAA3Us;G^sjXJB%3ZuGK?-&JP-tm-8; zJj`3f1(2L?^KLNT=f_79$M96EEH#1Q^&92JfK6{ZXr%yo_JY1S5EM~VD*4q9Zj5Lu zHIJN;?!qcKuxWj0f}OKzGX}fKHjQ2ifY~q#Ch4q1GuWnf+WwhX-rBK|o_%hP6~z)z zA(X%Tx`frxZuOo?(5E(GC(Lsm*6RRcY61xAxR2KRz?SU09dydlvc%!ZJ^ z3cQmR>59)M$C?=G`E6gCR4bH?@zxu{dJH>{B<8a+fu^Zs(Rvp4#utzFffG6+NYQ6d$OZQ#`(lnYGJbV(|~ zunAEQaE7!!wK{H{Lm8n;7Xaw=v#j4h;s4e{e;IeZ6kA{a8S*oGJigJfFoIv-o1kdz zbYP*DA270sFYoU!l!WmDiBhrao#A%e^P~uSDDO+)C|lvNJ1y7SdN& z)hxmY6Hkw*B^F`D^ZK-%d2hE>wn>Ex8v_n6c3ifzo}y33178I~jLS7ng0a+C!r6i= z#4ABjaUD1rY;waChJIL*Pu?tepRY0_J@=(anqK7i@@mkEL>8;mHVXT(M0VU$a;JQL zxu=1-U-_e(JTbk#)1N)}J@1JgM>TH7C8IE;e8KC|k-IzpZNg!#%%>d-f9us-Mp%Ov zoshH&P2z6(jDXNF^OEP2`B6@KEag0EU$A|Z9DZ^5>Q(zkD`MsYB>Bc%e4Lu+*@u^C zgtPZLVj&NmPuo;__ar>x$Mr%>Atekmwbi<_ds4Gw@jTD=5==(gKd}T9!N)<%^)}CP z{EnL?e{_i9LJ#RZiTZl-?fZY>TB=ceSvH)Od|jcA)Xz9>r?uT|oV+X5W;EgUHk)qY z4gX}bT8$3X8vO)OPc7AO`V89))`pLpVV=#|Ur?^=$}zLLVHOCA@0<_LA&y*oTC^nYE$W2OD`mpK1tM#qJOS4){O$Blb;L zAJzS~eI3IE4N$Tfcs41hK@gdUJCY6M7$4h^AKtgkG9Gz@riLrQ(h^%M1673 z*)Y4~)c@t$Lz;?DdGdP`eg49Lx_U1B+C)BqOI~3Jm}Grc-2Uuv5vYlFy$udK>kH%n z>_6?5dV-2v{L!w|bzd0FJRHbAxW#eDePJ-@xkCHe8+bX}nJnCwT+!p(fHBBZ{52RX zQC4CaP8m%G6KE00_O7#7+xh^42u>w*?Lpm?(zXgl$4x%8F-V%On>XFP`+%GjN;}@S2NyLE-J^kByqG2r80cp>+g)KN^Ml#c!(w zdHUZX+;L^d>H8DNE}f(G9=lF)CopZVF4K zn4~0?i|dLkCc0QOUWyV zO$R&i2r8N3bj;B4cJeN|bbs(I@Jdk>GX(S?o_2}dPA|1O3WjJN3^+7eEm-IofVw04 znHlM;H_KO8a+^($JU*yUxcPrnn(Ww#P$7W;NJ4SExY=ooSOHTF zWgs{-AzwJ-Wqqk{JN(sKIeEk1t&@rzRC5nr8gLNXqsf1FbOQ}LyIM1(5837Y=S^>P z{^|^pm^hGtqvA=DW8m;GOJSbZ{Fj4 zY<^2Jp<+m*BFL}Irx`po;6{)_>k;eEF$(c33gt|8yP1n^@9dadA1%<*(ftg5iDFc*O(8l)tyc+*+ReV_ zy1Vba_{dBP=PGICfah`YK!HxgZ#G!7VBd86cs|Upya$*IRalWFW&NZ9wsF15@^m^` z=5uq8xdq1a+eZJ}Yev)t=?p`pc-uQyE1&gItog&yuG;Hwtp4=0wP^n|p_=etmG$ON z_!A^=2(^a9EP=C?h5Xo1qfP&L%7Uz^y4IAH7@+bU&dAefAeVL-Jrd0w*-P&>PIslW zWX+4q0ke_)LkUo1mv`PfOf4GhePrkqkfA-TfJuQcLt>4tSP^99GgS*jWM3J-X+J*nDKF?YHL5-G;4F}fBT)f zqDe_Rw~?W8T70ox7McNygHF}2tCon)?h#p1Hk=44S;^qWQMdc5KRR~p{jv~~(oXv? z7jd1O@>e7WpQiCejrPxKZC81x=}0&?o(CivewOYH7ny&;HCd10Z|;YzJK;Rxh?wmCtxUE%_25?-VsBlJm87^4$FO`&A{nQpg23#o?ThGDQM~Y2ie?&Pb7w zk*mBf6bA>(utda(0hmiGM`*r|V4*2Oei)36+wS z3O+O}EZ0l)^!O^hp(uRLvB}ub)xWc=dV0}iWp;!C zyF`RSF7N@JYjsUy4&t|oeB!t0bG2GbgCiq7M+?MWg0<511voN^6X)CNURSfg1o{cFKQ8?LV>|>a(iHO6 zVB~uTS1Vat`<>#yxBw(N%!U%!w1>vVKA+1<(x!`u?3K5-w+rF!ScUwTnEfRN^S_*u zDs+iqQL^H~<2de*l%|NIPvfy?DkZTn=QLa|{5=}&FV_11nCg|m%1t`8DvwYJQkRaU zR8%JGAU4*0AIzHdrdKgM{ueKpK(#)efwtZAhwb{ySLH~9g|Rtq5A-Db8CVQai>BF* zDQXtWe&}iN9X}c&{*5sI=U=Uxki*KS`rNoI&$JK_AMxK51U?UZMx(?Dy4>f;Pl_IM za1f3$9f*xt>>oU1eV9W3PsZ*471)105IuM`|G_dcMTS&3s72g;aCES@W_#odp8DwF z6=LKD-`BU%(<))W zhn|fKggIaCIoCDjaB11t+eanz8y>-0%Hho6Y@TLX1s)2`!EkgC^ z|0z}V?+^d~`6#9oMsIYTQ>cTADZYgd3oHtNxaSwAur4Es8=w8ZDDHnHkA*5c0m0A7Tcc|9He_Nm*(V~sfU2Qe?;qw}kQLmC0uF#SIMO(?;#8cJKWF#% z;!b2(GL1d8UC%8uJ1{a&#dR~9^I_2R{?yD9Q81kEkBW)7Le&oNf-%$YRhoWFM?i%B z8H#<=ixjE6Nk`Fc$MuHVZOfggrv`rCS@|;T9Djr^n4v_bKsfH;VN#mY4yLnEE~_D2+)T0Ey@`RU6!grctZZ87<`P)(NkGdHzm){m;IJ-ccF-)jF~5l& zSh16YCkJnn*maF|CpO)uFvP?wB1&f+D;ya zYI%CoXoWdH6AJF6&o4JDzA4Rua)_-tM`W#apzaLL1B%&S#x}SGuYkU+rYQ?au}S^E zrH!=yw@5K5>tw*g!LkqVzk@!1ue1~>f+VBxjAMB}3=NKc+(>|ESpG9gfYwjpK+HQ5ynv|Dm5V357Je$CMnIv|sICEuf+Up` zd=y2=zRU3EP>%k3IOB~?9Bg<9=Ike&cbc$KgSDfx8@|&?KU<7LUpInqdVsO)e8y-T z6d2FBjIpfvKc0##nkDpn?}a~if@lJNVz0hXZMUMy_N(A?L@I+mLqL4-Y7m?@uqLM#;ti98RMO|Qr$MQt2h;{RyHQKYTiUDJgcbD30NgfwD?{iR5K(+ZhL%A~uu((i*m^jgMq_mkwloV5Tl zO9o5#Ws6x!VcRG$y9KSbTLV!Svhe~Ul5);%<%EnxOFySVY#Mtcm{e&Pb8g#Gy}9OT z1SzIFTBBN1!#nYEdJ$QR{n4qp`XL34)=)bvFtCnH%BZ|jyR8F<0gpGt9F8WV>i7dr zt#oVDcy`omw$4$kOQ3FhhfExLB*<4P5;K3m^yrE+b9-ZRO)Jd%4LHLC2X9lzFe8dj z#QV+Cfm`szjXHAzp?Tua2OK&PrNNe^yCTzhU6Ev6Bxb6)X+iTXODSosq>9VlcF|ky zGb})1T!^fvD*^u$5k7LK8zZUeJXh#5&7xzrDd(aCm*jT4@C5H6|R@A-NA~6 zEzELBC(_c7Z!%9%yY%Kjpl0tyjcc)YOaJC1G^xx_ z@pG%fFu+7rQzq@4}Yi#zHUFN3U#U)nh+T z(S3Qd_KZ5U%SaQr#VvXWJE#E4-(JDsNWapb5@mm}ivBTG;0}t8MpaYOz?ay6@!|!q z_c=~_dis~L_2qpxsg^}pI5Py%cEhO``fkOcF~3ohB|1{g6h%ePiZ8yqBhZ>$?3XC!Ab{#$Men5WGeiRU<-X`*RU-wOern`!!!Vv+(C z9lJJVm1=G6^gm-1bLjehO1~8=dhncjHLszb*YbYXMN^_o*}qYPhCi{9+AH#GpGCcg zh|V`&F*$OK z6T1R&Aj z`c8qQHzq$cD)nRo5uv{XiB@7;NmYSrJO-TMQ$5=DV_qN;0=Mm62KVNUY-ahq=UJg> zP%_gUt%(nVlv8!{gcDrE5dShggwL`Dm?iFq58Jl8QY|>qd(CfL^Tt200((JC1K6_} z#X|L)i)bb5dO9a|tl?9$9h~h|7y@pG5w_OOScefhxCW*)MF6E=-Xt;`mR^ ziQe9)J7&r}&uOSghj=Eb)w8$|x>kj){$$_rNz@}_hYT!@OMH!P9P_$D@aJu-v^U9f za~CxAKj}N1hM!LK59qU}##I2l&54c1DWk*Q^Y9df5T;tTc)~SMYs>~;9z|#y*~9c= zRASeBCxd<_Aus)Z){Eh<2S-OgEtMB1!T1ovbii)HbKhP~Um1T36b&4P!IHY*k-j^2 zVDK3781{bVcFTeFUUl;mo?ESgd+8H@Tt#wBgRvebaziKOOA~a_BGQvyuW7VehN^X? z!{The7_fuC3SGgr5^|W^Crk?5cwR>P+PSg-Bk*A$>{rJ*g_iH5+~^2;tF(HFtRa5} zhUuLsv+$mq)Ry-(c$I*T>aqGNr@P_w!I1KphVc9M_8OS#1JyPXPvfgGbXngUhR_7eg+@YP_EIvHQ|l!_p4(^kxCa|7 z$W&x$JUu|KqJ0u1o&}I&>C6AoSWDzyIb(9)(IL}0MuD#PSiRlkCrhT+qN~*$)~cM@ zTd{lK^y^cQi98tj@n@-cMgH2#9ddxH9iBsbD{{d_Evkt|j?==`NMlvwDy^2f9ize9 zlFHu6wWv^|-mRP#Q!C`8JYKW@^B$z0}X`y2)HUA(6K# z8JtP%)u}SYM5wqK^v+{kAakK5EtUmu5>60!eQqh$D7TC*)LmB3E~lb&U_`|Bm-h$; zPv+4(!9&O9Ml9``SOmtYfml;7&}8Vmr9#d1=y3C{Nv_h@`MSri+QmkTCxEwA(ABf$ zTAXh)c0$eolM%y;Bw>`BAdZ_!h|PwcdN9P!AlmzOQBVUFVap!wiH?8=RKA3*pPJN& z`e_a>uIy#M`=DnBHrjpc`Ym8lvH!4Z%&-}~Kxuo6s=fWJ? zuG@up@gY>?cxr3p8L7-Uj(XTVhg0a!o42>g|b<_2{yTEUiFGt`dfrL-($w7}LtR^;;t6?CtnfOSwlmMnk(A zjU1c)3d0c{fBK(jgw-6Y;oJs2J2~I@nhVdfoF?Ktj6G}oWri+n+e~H0F65gnqg@Tx za-3NwHFHjy9A6PH$ar0p)Xn-psjYEC&*W*`8gpjLsF!1fzbRBP{>jVwe*C zQY2KLQXKTZ=)`1X0>8uZl?0q3EXW=#9(F*EFg-oZ#%pyA*p-Qwk-%(RvR@=AZ(rTN zFvr`+p`dia#H^a4>@rJIN@C zVGJr4m!8f|)bTU^RLq^DxYe#ZXB{$v3xf=ueyH=W@GN^IlS-#`WkdfuoYVx9-w$F#v- z64OfFk{BeTy{-mY8EAJzQ@CMFG=p501ATL?0|~p$d)iNXG7Z~4?dI>;h_{DxMfJGS zQDBTvwJhOekyHx#K4aKfl=#9OT?iD??_{l2b_P;V*#cnIx zRwPy=fsF-duF_7_yF;a{3{Pd(zpvy)O@vr0vrUK3rJYVtt7F3TSnyboH-lM7tYGK0 za0k(nA~)Mt^{DT3z~kp>BOCDM%$&z|9N_>8bDGyfhGcmlnMVi0dE8bxiJHTuNw*Go zR~);LEUSaatv&Mn!2~pmcNr-PWw-OQTD5WuZkPmi?+h?s zPE9Y6i(Z2hB%Ae-b4H$Fxkgrc!RlM} zXR`cw#jwHlCQTQ2;_$@7#8>NCse@?AJP?Y6WKfh&!bu+oi2nVtB(gEQGU&cr#C5x zOC+nY?QD=L2gSq~B5(&m$;9Bgo(r#eYb0JK^KAt!B=%NNbuNGJG@)j;gjF6@p@UWb zkjnJ8Df4XH zpY%nM^xF*vK}3?aMm;Lfu#?P6y1M=ys1#Vn?PVEU=hYh> z_v@U62oo;CceD5^KFYofN)2^+z;CBD`49a}v~^RPTHUn^3wEpXUi2RCoHBeQO z2(GEa0jnhg^0D5z*zeyR!*L5Ryaj$O&S7$8qpAfypnNT2^2Q{HmszmEVQ5J)!k3ta z?#?D|#euZ1l7S6~A_Frz7S=Y|KAcsl5@6zG|5b&vy)Yhn{|#JY703A$MfefjJc<2C z>A42gtg{1sA)T5kXaJ^m2AeDdUI>Fg;$39XV#+x0BiyJ@DY~*iKXjqvaP(t}&`Nc% zLI^K?ivYpN8a|aA2_E(F-X5z#*MqtyX!CR|y28QdgqAsmK~9t2Ey_uNx+%)ZvyOIU zi2>Lov~$-qY=+%!pF4(yAm9=cB4+SN74HqitRrJqaL>IgjA?RrFQfGstW0)Iwa&Zz zcv;Yz&vGQB&7lU)wE<7tqwbC$NJfJ&Z&-lFifJ9HI=2n}im*V?^QA`aymvIc!VRsM zD+VNfyZ61SZD1YR?6r2emXpmxNN(wf*=O13*yW8nc6vaqPk}jcSOuk!YUMzZrSqzN zhEmfen{s)Dwo>Vn$2Kv>)bHE2bqvmT;iGJ>TOX#FiGz5gBBo}&D?2?twz|9&_AeR| z7cXnl(CiDJ!hPrGq|YwcEs^Pe%Fh^A`4Z1og-kA~VvF0}A9teHH$y`0syg$n1_Stv zB!7q#|FD+>qdi)>gDmItM7+leqaAfY0ZTfGm~&|o6HHs?XaPF>KzstVOQO|3*_gg! zvP!(4e|;|RG$1qyY{EcXwFyx^dABWmDD3!y?1Ck!VkN|-a+t%K^gsh`HlgFeANGIx zscnls`3m!qOFTx84?h|{c$Cze*LYSTuIR( z*#CTU`KSV<`2{d2jZt0&!P-yGsaM<9TiBUYYbozb`JPW@O^VZJ8|F8%+eD}db|y)E z=r)^KRdNjaxZJanrD7Y@wrkwupD*b9eQ8Jm$=vPk-mYs2ahs1whr`Ddfy8g_FlXPu zdpw7uY@E&g>pz@K7^zp2Wgt7jH<;J)ud<1MeAx8m)%St|G765P9cBJ(24d;tIN|R@ z5z`x@+SbKe+j%?XZ~Z+eE4&oK=2e5w9hE#hSSz5WwL0+(<~Ytin-Nm5QvOnHL0INJ zI!rW>p+V$IKU0{v!f)Yf-U(9vwPD7|Jli{^p0z+Le_b`_Y|lsdYG718@W53H-^<0g0xyvi}ZIIQZp8hZc%vWY=To zN&x~br8@fhLKMQpZ@L@)NW)JBq_A;KBCk?uZ&?it}*bQ61_cuF@bwGA7ju< zZCgjU0(t@2Tp)R1PNIY%hq~U^b;!Be3g>#KYP8H(!^-#{K6@nYR95s3I06N0 zQW^5j{e7`eobQ*aA4S%BSAEnYEe7s!(t9CLcVDNr^B6{Pu^M}z8&$O#)_-+ypj^f&7`Nnsl(@@DU7>z12>p63$lO^E zSMi7_rOz`UY(Wxm6|-wBk5NfvLdyD;4(KDkr9)%Nfjd!Yw)n<1%~`N>Ye_}!Yjks^ zszxq`Z(s-Z5`}Gj*|wohTx9o|XKu9EauXf4az>kqIl2DjNl72Yxk`v)N1#8rA@7%U zAVZfLX8_`ZiFUs|(tD-uG` zE&|XnX;3ZtgP zG{M`u?j{;k$LlN}rn*^5y?SlD!-san6=jh!mq8aX2r4ZmJ-Wb;flsm_SVX4yc#|vW zeovJ-10s)Cr{G@Y^w;?LpCbTqc=S5!#f;qpB+Jn*E7>I{i~k>cZy6M4x2=mt2!s&a z-QC^Yg1fuBHx@j&2X_zd4vhy5?ye04?}p%h``hR4TU*v%-#X{~y;WUZUGMDbe&0F9 zoI~aq&m)!dQExyS0v}zNj6@@URS2LwQ)kb8y5(~az`F3a2U+OT+J1~m6kUlq=XR|& zL_r>O0NppPg||F-oca}@!YSeA4a#n)qTW=JI#*1R$ZE~Lzcz)WDcGX6f4HpIt|Y7R zjvk?uCHjAJ7iBT2bj!6o6$|{d2+@ z&#Dc>9u33Kh1TkRtJe#^yQ_l=Jkf6H0t2U)e)T9daF6vZrm@W z!N3%`X$h4$?b2dc>5C*Y8ivc6!yqbx?11}(1vEi{8*i9glg!)co@Zj8r106U)4bM1S|653*V1 z@clebmuZNFfI-LL@khMtpjry;!ry7*7h~>rM&Bb9lWWv3z)mOyK*ws2iNQZ1OVZ_> zFDN(!SfXDKlRAa%tGnQZdpOj}qhlZMF^|8Eiu1;W%N)Zd%F6Zg+$Cv2g*E6woco$a z$W#3Y;&M{>W~CGb+-*4mBY2mb5XIBl23h`fNCwRS0D4R_(n%Np9!oYTIw(-1GhL5S z>LS9)872G#si;ek;z7H~I^pBCEP3H&yW2rwLHAq#9;z@^?avRetYp%XUNr<$*}Uji zF`G+E*cb&yEq83@JUNNzbVbYd4i1R9m&DLSDl6J~PXCHy65mEozus`|VA$ACM_D&Z z(S%@0^EOcN(+Zrwnd(gX{0ZiujOdpySmkyMXuSM>+nf{r6dGil?$*zTpT^;tSUoTp za)KXH=Ql4AQd6xNZ@3GGwh0Z#`0gLpa5@=IBRAI2wVwPH7kh9~0b;Au6}W4ahk$Fo zl$z=CnSshZt{f}du9VC?;y%u;3Z!Ts0vbcQPXVZ+u)+NJjvGYq8Htc zPJ!K#xcGUkM^aAIta{{ws0rrz2I zyrr@~njbktod>!}LBn9;aDhGiMD%PxYotgs&kv5)38NT=6xZsLn5q3huhIZ2XFMhg z-BRQNnO4ia+Vo0vkNdh4?1_?UZ%;z0euY8QgsaZt54|l^a}7e?_@kn8dS5OCgkzrS z!og2$L5<{@GQ|Fu8(U`g4wWv?oS`g}v|z>J7FmOgd*B@(e4f14v-1*fY6KWS8r(+pBsrWD?5#Tfloh1&99devZZ)+e|hFwQKr&F!K;; z?0Xhofxq|Uzr=}ncyKZBP5Hivyy@^f;Boh`UCM5jI9h5+qCT~u0nj%Cl zevosQi0gMM@{2q*GSjr$2h%ARG4h3F7A|W%BSKM=kz%-}`ZbjM;2=cpX=MDDSZ2nz zaavI6$_G~^KI7K4{3W`QvwOnLb#yjXfoUd-tIJD)O#f#&KnVR+t54CNg-H(3$m=7e zqU5N~ZnE0g*o;>6``22^(`O$X!3{R4M$xcJK+g@s=J-c%6#}qRFeegvwii*4&pG9f zm1i7Otcy{^Cl~scdM5i?2*V4`RBp{!c@!+3-o>9Br2uydfu=XQwuFgRWT)uqwKDB2 ztWZYYZbOscIp?~3sgM|H01`L4JK6NX;ICaloca1j3*?jZk9t<9OqKHN>)cTjI|-;9 z-2fOy(qx=t{5X9%zpRIor~?1&Lmd1L&sXW1%MQLl=N2!-?)7+oC*e*(|ErtNWF&EV zQ$)DEI?W~+kniz+d4HPbFp= zqlD;G20FI9Zd9`EyUg9>c|{``NuiycpLyo`5h4^1H2wsKCxZPKl8YMImWO)iT4*2eIRLxepW`bV62l~gs&zpSWdv+>>Dw0S9~z> zjNGV0e@b#9So$sFgdKM6rs7mqL@509@Jcel_6@bTraRkTKsM(c_vTkcgVMbV(k*KI ztlcS5KlWb(kB__X>(@_-^&F{eLi4XGTsaiD`YHFB-}P!#k4iA_&ZX=m1Zpzj@4~+q ztI4l4%q~==7g=eb*64F$6Sc$T{CPI=c?^_X(v)vbroc!m-!d4;rbM;_>jZHEV|8uG z-}c0)WDxJj?Eq*`l2)*DoMX=g)KBo^4`#BA8Cg?vdNY3UsM~Ea1dC0F^=wl`Oz?%|FVLaQ^h%1Cz0#~lR{=Msqb>`^= zp&IXvgoDCwauSseXlpB4`V0)fsL>K2yu$nUyFohIJ8|(S6tRS~;t#J57*3@#xzj0e z^Tf5%2_GjhRe)sCu3>}wvW5U2zXt$7_1srt;42~`BDC}r_oBOI`LFJPFN{H`sGP{8 z)C^cy7paAKk+XIdsSJ{$iq=VAZ1wVF?Z`6StnDJE@RcOWZfGfFwWh}7aF1qwDmALI z^G?u-i8*`@Cc}s$mSQ=?Zq6nDQCI)Nj^WItKA^5ffcgPF>H*Zs;^ro`jXk568TN@> zT>Si3ms@ucu^`p^mP3TGUVEL4X{V+1Y3(9=YBReZrEt`14BFc>9*){)9_IUW#Kv(r zxQX0vt~_oEi#avjGj?Y8(8YJSa|i5}xbyF*5E14aG-(nSwWBX=yjc82DTL>=!JoE}i!h1Yx}Dip-eXL~sDY*ZoKt?SAzs0o zMNTpQ+{mj6litu{Nd?l<+06;gVI~cx45GK3+VKTS6FFqo<&<;e-@+Q`;@-$I5}xOr zMRbOe7zS7ZX$+1$^J|c%I)C>PE@4ZC?Tk!{AJOfjo9vLH@K&hy8qkCUJhm1>PudyK~t@{(WIKllD8!N;1Igyi%7- zNRD`vu@a0UI%3qp73sxj4NUPur%vWFS^7u-)Nxc5A-TwtWS6Bgg}U-ITHbS_MghbR z5@kGPT9U>2(n%I#dR^wx3e#QS0o~&sWmqE5bTYXGdbQZh!M0{oHm2_<#B&e|^asV( zf}I?$dE!MOL}~tM-%&d{S*6)38`ft6PDYlXf$mf$0$x`n!7l%cc_O=!%v_|~Y#nW~ zpF`P)7Jd1&a_eJ<74?h?rcuIyacVg{{`r_2AU`2A2Bh)atZZ$5Rja0m$=G}EkNUV(XjJCA5Hw*PvguhmB)ek?&NaG%>Cw&&r&R()WN7u_K8fP&=+2DTm|{IfPW z^QvVTTD;R6DzR<)!sJS70C$t}cj7V*LpcOvu?BkeHm%u0WFYCjmJA=HK6PxhyU?C(5rjVT;6pm^yXU#p7UgX6~P4I$;h^Mw%|g@Thx|g z@!u9>gOy+}jft;vNw|;{ME3p>K$z5tvxS^lrm?dCqvthTow9%;eIIE2r#^2ke69h_ zYs^R{lOLiHUuD&q$diI3mP26#x4DA@5z#Cyp!mBOMRy89Xzbz?hn?#?-RiJ`EB7!s zm)~EgVXvM(hq_Z+M!6W=gcO0g?&X6)eY}Wq*#L7Z{_jVwWc}qG0S=1e1|X>|6Yt;Q z_*Zb$ves`j^*}*CRsfx0;fOxOROA6nk| zd|Qg1w00SMWYv3KX6#{+e`4jsee-t-GFP9bPt!4)|^)8&tmP>{*Px^WvltKUm;1 zVA_D%^^xDX0_pXBS%!rB;^D_K(IK8YhGZNFpOm&o!+j(Ja0zk2HBbZCB) zi34uSm4&lf$(7!L&5C%7G*%m$Sm;fp{6J%<9^oCjszN}G+dTPC zFDL?4kPFI}{C2lJOWVvL)I2Y-rBl5IcJ+w{iihbN#jYoOd_d;N@;GjC;jpp7)WTwLi@}U#Z5~3mtZEC7V2p&opnf zz-1rEnX)pSFWk-IEr4^1wD%iGmStn__k3sAb)^ljX{&NF2lD*Lkh&rXO-iO;S zVY#}!9bpfIuO3iLLnJTciLdmF!yC3PJ%i*98mF4Nq4*VH5M96m?1Bh++Z(U|8MO^H zz8jYo%gE3E)P9JSu)grW*k8I>eYU=ZpQ_;>pliJrnB3Lh|&I?<$a8t>yyAZvD_!ai18>iM*0#70;YGfhiP*1{B?tNki>v3pG*##w(TzkoDsQ3NWnwUN2fEENOr{3n6uGS7A6KiktH|;v770 zW57AK9p3bty9iiZ(IppZ;+xE3HtoYQ5 zKq-6?QBhF|<(eN4u%;h)uAdX$5ah37=Ikcu@qgqJC+# z2Dyn35}2O|6qo^;a4DOSl#u>O_+iW^N%_wMCNwByZbB0$ds9ssHedZ{rR zo!J&(0n{N3<5XWu?6fi;7t>F-h&W3>Yzk54YU?RJM+EYrNv!Yxips_%i~CuXe{06+ zQfEX>NQlQaj+jP$(~eSQg?sj?e6c7V%ltQ=#2(&PJ!t?qMgT%M&nhGCsFM8)>(m#| z60?1qtqnzCr;I_7K|edbeXwya2{}F@)a={(qm|-U#9u)An7+3?jshM>PV*C`i{s9s z*>%!C&qbnI?e1VnCY#7f=aLXzL@EX45y{Z9d1>TX zHfCMfSgjO&ZBhAmMk1I4!EtZzUrO!Bf#1I}ZOuIaBa<+l7*S}wyMZ&J<@DdAx;*N% zYE{$R%Sqx!Ry4O$>)TXF@_tITXP&E^DedumcJi@)CO$eH%5ZyFJf%tIhM`cBV9mtR zNs`K8+;FhwAwK#T#hpCpSEAolE;XEr=_1TBYDezr=1x7Vrr-J+Uo zTQk#d!RUMpdv+5499N40(D+T=MpQom3z!=d+8t&p3y!b;XEi>HZcxHl7+wQnUBWPFV#H-Z6Gj^lxPbv?xyC z*K%$Vn@j$03R$7L&Hhcq&CN}st-^YUxu+9Pvyy69y|X||ogp^DI6N%e<#?V}eCzS? zQL?JWn>vhu3J?<{l8K%>_Ip@;#IO^Ek9zqK zB2bB*7v*FTd@D|Ei8;l!>inDB$%eO~nX)%sc*W`~X?hc9;hc6BCn1l!CiOC!Qpcd& zP7GGf@A3ZZ6+V@5;~uYcPUJ4agJywfFK-Tw!i=RH+Hyau$&>VmK;2Hbj-vD*`{pJ= z(xqHPSA`l7RKMkLw*yX%0#0^mf#c)k=)S(yx_k!dgCJp@cSkgaTyO~A3XfN4j8fq? z7GxGj=F{+rM10~Elh2$Bs^&4hxoim=pruI2mInvM{-JOmbf^kls?YCCL9wf~21MrA z`=Z%f0<6B68gFvd!oHs?!$u+9-(YrD@VzpY_IC@l3 zV{Y;=by(x=Rc~;COb^jIoKzP!ZgV^>@d9d|TWH%#OBC|>tj&#hALH#Tuop8Wck2~G3h$pjEvpNyD zalTs&xhFB&p-P)?@^c1<06bq6n~Us3mI@7itJpNqM`I$;A&}dt>S*}eZ+)(QyjZ=l zWTfoC&;v8fPWIP>6c)6NN~#+-nh~v|X*v5s`mj#RPUd3v(m;*3nGW5q+k&@Sfrv}$ zpnjt@n&;WRBq#U>L7iMX&HSHjfPBE*CtqEO?FW==?HMbX_3#p`Ga`VIVPsSpnq}#x zU$~2Use)&%VL1P$9hu^-*ZD7MLO$6~&Xqa8>ftrFI==^|CkC&XJjgc97yP z$0%Ls-Hb4;l9AFf+uxs$jibDSLY*C+o(@!Xet*+@1ONeF-3?eKOzTOQxsmy(53KDR z`nU5ZC)&`t8*2P_fKTm%ezn*zlb* zjqrsax12^+Ze|8c45iuJD9l61b(FIwOez4bAv===g{=3)mbY3nPVmN~keLOUx37mG zS_{(oq4y}Me%}%>O0v2NE9pg~`Bi6DMO!6e{nGCcA4dvE|6V8KK{zKq|3p3B1M#Ps z+UzGfSMnwDes=t{cE5&_XpRv&{lVRKkLpA?)3GUuusLE+CDv4C|vY| zoPVYyIkpXT#}VOZCC|qktVepZrFwtI&BfL%MWCc-+kv2)G|*gDadp%+_g5^XA|r0w z%ROn>I4kF+QT+t-j+`Qld}5(^)!DB`am{&WNFZ#Q{m32)Z%!^D7Y@dg%d`50v)%wd zeS!&j*2HJqGenxGop!H_T(kR7pm>>)h_L4X77N%s9VvM;T&1I(Ef}$x`}XsgzFRwc zK>+UXxd`&)AvX}lhxBAtM<>lPe2Frn(XH|~iI#oH;xRxc?P_+;B%8k)U7wmYak1#k zS>5Kj$+ErP8BDS%n3VoS*AeTpTwzs4dt;69ZY zQT$h_PPCRs;gK^w-;>9q_Juujk0 zJcIRbC2D@o-hWtYm#fYAaP5=&IiG0N^oxDy;q%*r2Tf1JgY>v|Ut)pYq=a^xK*FBY;u2^)xT)xS zmwCQEa=zWqw#9d>w9_=6@peVM!C3}XU;vnrM%APwPr}8GDIa*uzhu@AlBdD% zT`-=Q?(X3mt#Ek_PKogCt6OGu1~Cd;Bw;n*?GfxhtUqz;AS=4}Q`zah(Q(E%RGW@G z(<3(;?e{x3TWhgQ-oo0fGrQc5gV;-`8AN|vCQR4j(y~9KvS$;7q;AoE#BauePZgPw`*P_cVc#qEPd`#9cp>}cPxOlpnh6Igv2AFvA>!i1EJ2^?0+mr`ky|3 zL@)EMgtc3$kqnDCPR{>0hA`k`3pfNH^+D-k3X_5ltR}NXb0gLcCbIAaw64r}S62Fz z0HM&vNoYcdf-mE*wpcUD{Es1S96M2(1~AJC*AW{JE?8%0u6bD2g*6=YJM##koa6=R zgLH}47w~h}e6!Y#bvh8 z12@PJ9 zJiqMycs_X%@i80_Y0}cl90kkdIxqfSTQl{wjV&fkG-o_2E=^PiCEP_52SpOAotFe# zMp;BY2A=dIe1Z5OO7|@Q2&@EFI>}HUg&bI`l}_#p9z0b5fppi|w}7Q?QNros4h^AP zw%lb&^@#I%=}HYZq^)EC8^NyPqP9LMF=V@pFL;+y2&*$Xvhe0S5`}WAid9o2Di8XcduzbFE zbLX1@%nWQH80|*2ok{0vH^I(bDWeR;v=gZwpcRy~u%meR-JhuXr$~l<0b;3Lo)?rT zrs!0jW=mY@vCr&U`}JzLjMob&Qa~?s>8rHYJ|HVxc=!Z9?m8~kii z_(4xLN}g)=Mqq7J+~-1?xS)=@r@X#qkqMR*n9;?w5ku|1N zbET+|5TC)x-_qSg%vXA08Jfwf@JN_oS0^KvU_4u%g_&diF7*bJ%Ldlqt92)yE58SK zJ8YK5XX=UNkjfH$9}-X=upIi+cW~s;^k|Tl?=p z4oE%*$${#<)><5RNH?b`kI|EFTOi%^gJ6RWzdu*-;YfsHCMKk|b`zLn?%2$rH7B|A z74X#60uGe->SJ1Ov95Y#sZLTYJyRt0jv7c~J?~8ixPw_m^(!8>ygUANSvg-2M0V=X zUeA~nvx5r&oHTjy)AIM(n4BDJF4^^sbx8)nuQVYHsT%r#&Xy&-ZG<&Ra=E6qe@ePV zyJJs+_UflD{A`>9riRBRy&f!%flF`#l$!Km2g*Iyi6CZvYmLj4R>^O$er zXR=(lU;Vi`d%~2?enI#{M%Do_j!+;-O#>Tn&|06JbasJG_He_zTGjI-c)RQpGZtSV z^VC3WupXV}MNt#(+$|=h)FZr#NZD6e0P*oCif<^q2Q8u1%ax4Yg9mWXt~uOZ-ShGB*2?+HIMl0{YcCy~%}2Fc z^T+7iw0bY2>e+nUD$5%YcnAFqH-! zA*y>WuM))AV-z1K_EXMk@|P@b=G&D;quz`ps)MqcFXByj5Qf#jcwy%7`=wH%6fzqB z10$iKI43_kAGE#Pl?`7%PP$322C=x5G!kJaau0%v^EvE3g`R_$dn) zx0p79n0q+0IE$+|>kKX-_;s}D9~U~|=a{^yb01GhG^_YxWN+Wjrj%6<1qnMO-w3Li zPmbB5`v+I)nhIIG=P^3CA6n4R-1R{xSEQPXUf!A->;#|MoEkQ(2w113&&TN}t^-2} zecR{FP9WT%oE`%4eck|AgRQ&|S@lH%r&Rql&M)KMJ?_WzPNDSK^tS{~jErc|b0KSw zU|#7iuMkhtGCGbblW4)jYufWqi@hkE9(^njr`UIMIJq_j$nhQg4RElc?hd zjb`k7mmb{)4>mtJw>&h^IkrHU73hgaH3f$6THGa&3M$-;?`Rtg|0wra9{~g7rVekDE ztwJaPa0IH;5RwkrBb2nq4MJgC?uM!N`U&rKH#-0W1h@@?yN#gNiR5$ zdpJ}?wZ?;UFEF?s;OM*{P1K#vM};J&N}Psrnn<`sbf@}52V_vcgn39)I2p}~1!z;I z6jP5699oKEr7ZCw;ERqny%wugglToxSa5h5T`%xay7;{!8M5SlNaKje9HA{ozz~iZ z7B?x%oJKwhtbo*=UDozj5IcnO1CAny>Ip4ol?8!-$UbjWjT1l_se5ZuHudPvmA7<^ z*K$up;{vt|Efv=L@R9q2Cgu33ezIkxBh^LG&KOUu`m*Kn3cI-j{e$JnL%K9ZO8FCt ztuH?AIqXDe^B=K}Nto8FN7pL&a9n-%QAiD9$KQNBQIzw)?6_{)PW1KU1003$WjrbC z;ira1#C{Pby0%x=Q#%j{z+VWA8Cx}=TKkD&6Y)DO2%z5xf{%fsxTJRt-gCM zT#&DlFIG*ldB6X-R%|$VjdTC}{c*r8Y=x>|#iotvm$#-5YR=y3tnOA$*ye*_lCACd zhm;qoC4NpMzYZv)P(`%cXtrak?^QzJ!1Klx|y#O12 z4b!YMNi_IU>tX+(xEA5A92wXfZfXEAbfb4$UcMz;VR8tSC6Ve5?wamej5}u11XPzv zsElkG*%USEtHG`sC++G{CvA)(=M0ro*&G)Om%A!NBoQO=8rkmSxfg0v`E&fTe2?(r z$2RZwZ9g-(_hm{bm)xT#IX<(rz;dKK%lZ0!Rmjb(4Q-JF~-u`-MGr0QVz}#TXJRIMga)NvwvM%D)FSIk>=pU z&2zEMzW9nQ$Q9CHd9-P>DinI8AZVwP_dlL37N);3dXl*4vl*&UN#BfdwgFB+&w4hz zMrh=@|4c)?5$5D1(uty!w7L+7#3{ZD!0gu4w|_E{_?1hDVn7_s{Wco&J-dA@N{J6X zNa(MuhXi(zbLi2`g3nFZzx^qR{=26~^R@wPp+qQ(3U|cVHJOW_KI!e|ZCVK-QR5%o zTz`C9UOz%lefS*Q|Apf5FTM8)2Z4fVgiF06&LV#F1wW@*ApN7HORt3t6!~}TPo3NJ z-)Hpyt@VNeg(&D-PeAl#=2laU%SgMwh!?DO=0BRid;=(4T9*N_AyV8w8vbuEC9AAK zNJC3GgsT_IMP}B6%ien!96d)lU#UQ0c8?O$ONGVQtV4~{ZP<)C=EDDA67s!2;=HQP z2{=sC{i8?yH!z65LbCtxlF05IJhs&@tCjA0(C_>>k>NRjUnq(kG%I%cyh^TkYtHhU zLfMCiv-#Lp{a|0RH6jo25B_-Dm1O$J6^CN@U&LIRMuJ!Oi*5+sYUvM>y!~DgjZokG zU>nm`0;iag8v~wf@q#cF?wvoBI79dB3vD<|sTHP`(2Xx4fQs>e=S!)ZnT1%vj#fAw#!1X)r~m#^p< zzyFss69x9|aOf(FZ0l>`-porptMvaMjI*FOf+eltMI)^LQ4#)6K8w)*#TSdY(`fT| z$G(5fqS3q5NrQZ$&;R6M9KxY!UJeJ^^`-yhOaIakN(v00q($v=xiJjW2l`&$|M>=k zTIBMf4gz9MS~dNm2V8${xO}gpFutn}7DdpFVt&ORbsu7~VQ6gf-?U6cE-)Z3W>ws+ z-91Kkh0AN;h_wrmh{NMwz#;kvYv@1h28EGO2}#e*SW6gvy*gcp(5?Evgq{<5mq0EO zf0SS*Blq7QnX+ zU$Q0tlZIsmy=ktWc+*@gubRH8`h$E9smDHH=L`M+o)-M)wJ@U;xVmyEECnV~O$SS% zrl4M1fUxQ4kP-R+InVEZ{+0iF2h-nR$|@a1mt$=z)XeDW6&q2eVGap12l-7c(ahD53m40W?194+=KYuUS=?2nMzwMv@{( zhW)izp^C!yPRl6gTY#4}-n?dLW+q;h-mRAXdegmY*T~T!%RjWO|6I=hJ}UKY6!$#2 z12Vwa8iNWsB#g~4Ikm7fjNj=GH+_uD@j6k0Y>SR}%sNlS-X<{JrunB?r2K9~waSDd^>2F`@ z0M^SKV?Da~6Q-T@QjjjID7EC5(I{cioRTNcMCawCErb8@D@a;6J0f1_0VX9SC6;sQ zD|8*GD2hamp`)X-SWh?q!Hsykq#wMxstaWtkP<4*S(_5x3NHjXA(BVN#tsJ05sSPK zYvRlnxl6}3iihJ2cp2=U?2q~$sXklK)@gA!(&=}4vFak@KmN;$(czm2=-lPYk?HWH zLC2azz>3Vjna`jSROP}e@AxSxRn?vnT()vSz#$6YWRo!9X*cWcW(_R~O(ko79Z$!i zr+qC#w{2ntO65Z?r^PSR^&=|5fg-cIxCF`hlalA@@;n<4qf^(=*paxG z@x2(tzWXy)tE{SejIqzXg_D>d$O?z+SMAL627xL6YTD6$*|Y6F^UCag(+51{&>HLc z+y8FIvdZu>H!pD_fk2QT(+tog^AEg;|F-S%ylc5~!4agujKt~%w~!*>#(cf&_? z1cG(gk8)92?Po0}o3_n-g2j*M#Y;;|&o+Bd*L7|_((q1>a0=`Zfu9KL(uYV~fNFLL-H9pEQaRnYV>m}sihtsV9l&-IXqUbeHQ6o?* zCc{;4&3-WL@Q~DfAX#T~{5;Pf)|mfLBNWU&o4o>u>>o5i?2zz_2W~uyo0icGB>%J< zAKqKi&G6u?hg351eoaq_xo>gqA?A0q5!7&;&J<-=T9j$3`*z4H($U`6+~c|H#8Dwl z2x)Wu`)2lErTYI}pXP${!3;Ni;6(&=teOgNTfu)S^rJWeDW4v2lXgb~nu1n*7_4Aj}h++^l*7q2l_wlIBVm&8(MOgm({x6H^u&u}u|M>MY8VzR}QJ~sYD|el_`(Edb)s`Tf za65VR&h20&auTEi4l@+)Vs-ZE@HGc;W8m4z&jr3^#EXkuGKn~M#4DKq5}Sol^E4X^ z4MB1!;za4|4t5nr0-U0iZuS%NVGh*5-RMh51c&T<%sqVH+)p-#BO6>}h=q}os1(j= zizsPCAHs?KLwa7^1?@rVS3!@ZWQ=FJjBD*(jw9|~+d;3PDFM2nUun0(zAfrFtmzwQ z-DGvd{yz3mU%9R&iK}olyvb3a?tpNl(hU3=#13~JV>Dyc4T;S22llV@J8l3?PSXkW z+qQePTdr7fR=-AWX7R^ZFvzCn%Xka9c9%SmB?lZp$l!>M31q@A7x4fUPX zJ~Ec+7eS-4FC0X$&&2A5^#Q27NG3Qk*!4HUFZN;OX;;U`wig8c1NR$XD#IBEkj~R6 z{Ucr#GQK5-cjc2cdI|l`vr@@=sGbv{)uB&a4yh}mS|g(8>3VE4!wl8s)rD~s3A3f-m}H_@VV4e-%l)L z7oEuOlN$T(d%flXGWU5N27DJnt`Xbg%9{^NL<#Fuo%%?(=@LJB6u1%tB`8OccGu4x z8&)P$s0a`sLYZgr-sYr4-7~L``c^qOa{atK6o|Eq`g{9;@wJ^@USBQKMb$_7tQKQ5 zw4BX%?z;%ih_fkCQDq(q>N)k-AM53E_F6?J;dydMPXegPo&;xCRg&VwK5It5o&-ct ztq&3z)_pd6@S!qjV_!!_0L@7o8@|kW^@Ls_flKglXNVzE293J+=^U=h1seE5&`w{0 zQjQdd$6Pv?~s+3tld30Q+T(M9Pz6hB@bk& zmN*QV_*hMok_PpWzjBeMt3WG9FuL{SiYxait-UVFLk)oyB=el=VpeZ=u(jdQ+{x8c z?A(b+!0>6V2tsny!}Bt5_`s&Z`3(`Di_E_iIE0-YB(cfX$(dRL9<3b6bR%K z4=^(`V?7Jl3WvH00*~virOsV)X-tZcBXsJ`ARqJlh$W+dG39XnH29!tP2zTWV~GQn z$7{KPDx;To27_5`So5bHu~}SZ9rE(DFD)>(M#MEo0i2Ee2Z*sB5YUB7@ zFLK)PBMo8I38SJq-+}F$oY0JDVhPJ{i*w57dXn(^)0Z)l$bo^x?A)h$-N^$|LJi$B@wzM<9n{~QHt0KzHbTc$YzcjOI;fwd~ zV^iL9*$1-uU=GSDk6{8M72qWS!=Q}I{1P>5y=Yx6r>R13Kf=N8NVb)7MX?F@pDn_m z4D>mZ6E7sV#o8YGkj$3IOV;iHo+T3Qrn1PxDLp@dY^39pX7KGuP!cBQ4q(G+nuy}XuU$jOPI+;VcVZ@5!bkEGPs%(bv68sszK3|DIZ$8|_{ zTo_`;OuHFI9`0k=pQd=$aGz>fXu|aTyfSGyPg_7h?yL!L|0~JsK{(Z9riUpIEx#iE z6C|>ATcJTc#Pg8(UN-yXVmPm@tDHXJ0oe0|xjPiww;cn3(5*vLZ4vL@Y1%OmWnGtv zCj0*}|L}5|vgEuMaZobSQE5c{D%BZY+uyu|B;o7p1hKz5TN|dXZbnNky()>Ay?)mG z>0xoweqdz(?cj=FJo|eU`$_NO)A0E!lTu>e`;aG6htaBzy6aH)+;^xk;CwQRXS^*i&t=WQ-E0o_+DCgC4{opr;A=LGi0SFJ;cQEtv>@*#2Z(;WOx#MKl#iI zx5M9_X1~lj6r!!xJ5VmExV$htlh1~xu&Y=Ymu}E3EKZ1z1_O{VeDB_-);#s{B)7Sw z-`@%5%8+cpk=$-FFzBA`XaHG>5xDRwn_s(R(qEI_o&}_v#Ma$+OUI$zgBk71A%<9v zbG7C>WxW-HJwIV<;YH_uGxpyBmiEZ*4dt`a!-`Lk!zHU2u^m^;X0v~Q#d6bVHdOp^ zYK1NtJigw$j(>lQw{d-zn_r*MOS-V$d`@rPJNtcVtiGaIc+nR;ahXU17@jGo{9k?jykS}=EBT3v{I$^N5$ZDqcH>vyDTqsH20)_giRwylwx{(d_xT6 zBg$Of_Le^K?}SkoQpu4izu?UryMH-NWI1)CR>=PlZ*qyay0eb|d!5lu6~S^PW{H}m zM{?+MgJkvWa$lXDerSaQNK3j@M$QH?$hR*XZrdE3Ox;DzY8=Q3^|~Pt^*@Gk<`%TU ze9sM8jN{x%Z}M2`cX%~z!^|x0WK;}z;b@3$Blvs@F4qJ4#n#doSmbSf+ecW;pWmIw ziWCq3N@rM7U+$gsy{vrMmR{Le|CX>zJ|jfnl;)o3{>*7snZkB+dSA~K8^Olc+8@EM-}`o!R6|KU@GV1FGFPAIKQ z?(+>1zTnqnBSIBlUje=dPdC5A8Sz{3qN(p*e>7ymlEE7t1(iIXZ?K^z@Hca1bt!i# zQLDj`Z`P&AoY_}vzydsGZ0_vZQ>3BSo!kK$nypM!kHgcnA4f9xen<#?y<4f3R2e_J zH3cp@kv9rD8@hQ0c1~2IVQLU9yRaY?Vr7W_?7R^4`} z+Q>v!#Q2_6JNWT{`}6q2s}LAAx+v`doet$q7x*Dza&FE-c~A;HOJcI z#LZI?eLnupA)VzmylrO{#+trzIo_$iYS8K7N*Dys7R+;-u$GWvOVFc>P<3@^QuWn> z_r_C@%-0gf3?{$9!-z^Kag9^Y!Uk@~mCya3EpY`Jc&wTZCh^n^ z-Z1(pP5!Q;N=)>t0;jF+hYii>(qiPF)va-Et+g<}ALw-AGes?w1ql~M9R11!&GJm)IreA2A`Xj#bPwxhE36-i|2Y_7a^}xXKV!by(C$QXV(_H?SABtJn<1sSb*jU|l&t~r`)gkhe ztIZzkgp>A4nIApCf)7Z=T`MeSQ1P z?^E3F^?FSy3Ly5+Y@1y@k6X+*>wWQTy`wElY&AYPXf+#E&T5P?pz=NpKJa1IO)Tn= zATRVrR_q@ie1+LpU)`;dH=4uI`kF|dr3GrgmFFOl^}IlsF}T9s2+g&CmhYUdgcaAq zSlQTDU--1tyO|HZkH52c<-e!t^cG^nb4uhaiWEVfnQVh{n-|S??P9KkJyYJ2N_sMR zVQxFlqqiaKh93h&Qo`%4ZCD6b92uVHXgU-52RMP+>nyAYc3PSGt<$nSza|DYOpihU z7wKSTn(zXsKWTOg?%|Ktu7<3X`v{+H;PEZfHN>*x5E6jxhY+q&xjp~1F#?%ge{ z=TF1|PmyZhbCcYPyzo4>$ybo+DKZ6xF)QRCFm``eB$mky zC}YHf`KTC@@u3B#UJydLe*SBX?Q(VRE%_0VK-ad%l&a;!FoHOZqPs(-wE|F=Q< z{2t_v!VW~uv;z}65Q;#T0PY14&Tb;Px%T6h+a(K&#zWog4`fy6pG8V075U}zxGrk1b*Kk-TlpEwrpPcLOa{P^+BgDtupxc!&H|4{+eOLDq>MBs zW@+}L!YlRvL)mu+G}V3Ceu{#qfP#QZ6A)2)kzS&rqEr#-9R#Fz2sI)C(naYlBGNlZ zhlGyw-a7#T1PB2_D#^@ z=f`H%{_1+Ng%ScWiBKS|FSXBK+tm}IBPX46I!?D{0@S2H&O@)33A6aC&cGg`SyMGX zm*ojXyxnOT`K6ts_r*F}^ne1X$G-ugc)lm}h18z%HMajJpfOhmPn9hU{s2peN+|aI ze(%#hpJd|v?8(SGz~h)Yeu>_dc!QVp9Zm_to%+EA220;$X$MKVr}XB#js^}QNryH& zc$w;VD`**I!>`<(YH3#m*~&_$t7Nba?MH11n4r;nx{nwG`|ft1hG;Z?Cv@ZYWEqh+ z;9oH52oWJO>qL*dD)x*BqMWCuyU7I4&uk+xs`*Dsp)pc(C-CHvej#I5>>~S+e>?Ax zchY{ZmqhjZy}2Xd>X%83vQBf9FPkB%&@_)4xwRgMcqheTZ{hmX(^edz{rLEo(jj_p83WMANKSJHw-AXJ5601l zamF4+{wmv7JbtF{G%%_CA+=LsY>+vl zOyTWhGr9_l6kJ5&I=xR+SYBUfByBpq*-LNO6_xrHjGBE}S^!1$g2#$=`8U6O^jP>! z$PO+pE$yluCDB`i`>eNI(-zHoj}6uJdVY}X^JG@5YOl4B-)<#7oFU0-eBce&{cqwY zvtE`{UNNbs(Q2~I3)fdBb^BHl6k9md^%0fLz%PmheKzmb|k;mn+0<#U;Tt&@zvFCR8OQhpD6e_go*%Q=JSzMlG3e6{B ze{K2Y6%n7lKXsE$7gjp8nE7kE^H0W6*y4D8En)D}#)cbeaTT)m`-rS0$MDD#R`QG$ zbqloU(y)>3r>}s?Bx)yld^iSv_%{XWe_Pi2x5u6L#*+McNSSi6`PXtTYq71C;ziwZ zbOqv*CAu@wNtu;Ttxdx=XL&Xx0=FLBI>g_`A;WoCWEwbR_1M{VKgXVRj#5Q`L)TxV z4ZF!74`=CD2noLIuWewY!z=1%vlZL~H%p)363VCIBxRi^To{LoQk-yjE@d6c9w`vX5;8lX^%!N(Y2zd4zKx~U*{xm=!M5dO^R1G zUsOjU3Bf}Ce787XhVu?KH8&5uZaR3nX{1|as+fS_U<#PN>P49hnPXmw8=Z2f6|QrL zsC~-Hbmgo;xZmcFOLKTIwRf02O>Z?n2~%ndl<)+PswAhnc1WW*-(y&Hny-pi|7q3L zPfFEeQDb}CN%HGl3jDfp=*~PtE$eH=W*@$D?@bL|I5W&NL-1M+C?k?XV%G|4fb8AW zQhn(sJRZs$*x;bBRDbhg9syB6oQvs6wDS0(B--l~18#RBsWt4m)j+kRl$5x|FNlkW zUiKT9hqqz0Xq&1#?l`;wzxl)nDKyQVNcp^rx7w9z!k=1t=xGx!39>nc*bo>?&ZUjw zJ5RTjocDe?#ojhU=;^R4<<&ap$a@Y->L&K~M{d2eL~%Pc#4F({7J=(!tO5 zN8(+EtX_&hdU8yES6$zRVQhK`>kOo7L|6Cu_;>U`K;Rwyw#GlTm-Hs?4`nLQ-l>mJ z2tj<*0Rpj^7hcTAAKMrb@QcdSC?r=|Z_*XW1m6sO7H zQH2ecW%XNtb%;hns;?@uG?b{&nr|{Qyr#LF5sR|*I;#k5?kwNu(VO{#dlEAa3FUQ!(t(+3~%JtW)Bdu_7&vIJ6Cf`rw`JeGq5X#)1EWk^=u`LS-w>)yU!=j z<*!n(#O`-G_1&XrK4s(wn{Hn`N22iHl}8CDFJ9b~P0jlfW`7h*X%6sDYn}i1$tUWJ zAG%vMESH^rJq-Tf=+>|`)h{VF+6IrB!w(Elnq#OIl=Tw!zK^B>EzXi$oHc0I>fY$Q z`}HF8cecD&*3%?&qehbzx(fFgw`@Gs_>~WLFE1W>q@_Tp-I%3|jkLF3axx`^p54m) zjOtQ~KV!FzME%q#a7T!LjfgxU(b`ZyPO83dmf-NZ-Gndn4$$fH1I3yfx^CWWHpwM- z{8o5BA@~k$IOj43n9utSFqV6i?piFrqTwi8-oD&->~+lSim}5RAIna?-PJ?YTI)7x zTeljX#D8Ed;O#+s&g;~(#$4B8ej#b)PHh;LT{?RYbS|Cxf>-^EtJQ*v9Ccsxd3Rnl z_ZOQk81fo0-zfcRuYXqca zL$6;3b99e;?yB+&M#QypK5Ew6JO~GG)V(s(RzZF!O>w4RE{ZC3Utos9vI8*}cUFGC z&2=$3my!GJ8et}&yyC^h?7MYEugVzh`0L6Y7dc7p=nA555oKY0*Dk_zfwn{QN8O9H zg(%LFuV#Ws&L<}Ere2yL6%17Qtj-FsqqTH?TdCda#0dalt7T!cZ%+xSxu~5)B|19j z85Iws6ffya!baRRyMCJ}s)OVP7_3t$h}zTn96^DTRQo1p6UHN|>b6x|g>k!7qk3Bj zCOyY&(cansoo0!5HT3G{nqTo1nPN>InAn%AZ&g}%x@4-Rsy212zl?#xmDO`p>z$+< zkK4-`sC9k|S!~w^=|x>x=Bn)6NG)iwJ2H0f;=p`)xEQ40V640gk4P`+DRSPRN`gRF zP?VlXPaIjb9Xkkv)u&3Z&G2%;)U{WdoGjYD9F-#d*hKcoiwCkAtv!}`lphUl-F7p> zT^FdjapLNw7O#c^yE@^>j3ccC*$RN()xj4Q)pCBNgPq`eH^fHK@s}C1lDx~tk2{4{fnKS2d})_ zZSyGAbyL4(p8^&Nblxs%Pg+`IHlrP96*1ly0zGX|%so!37$}jqds>HTfV!lJmpnpn zUpkMz{8n)c-Ql3wfKTSrYDKC44CK+cGJIJ;LI6R1n#6qd8C|`g^PjuvckWmP-14~M zLlpXFWV3%)P)xi(mgd)!=nQyoGLTt2LR-Wa@|S0-=p{Rm=tfyHjHA%z;boyTZ$R%U zrZusa)wN?O-;J$A7EMF5Z+JE&3vZD{Q@j1Xa&lmME&h+BfIA@phu;WGKfPrK zj`ltUh26}Y(AfD+r*H!20i{B|Sj({*o+|cU@ndF`bbIzwR)6X<{4$vRW&X~iDTNQr z`#q{Y-!I*rct((+I|fyrY%eZZ0zV90c4~lydUe|s{u&1*u zpxivUL|rW2e+;+hldg9HG8;p@W$zm4NoO4oi)YNZLgjj=9%fRi-B(RY^&S2AD~}%p zd5y$T7f}+e%s$Ox{|!{N@8q>9%M;JMhs$PA_scUOj4|F@%tUKu<*Nc}sTr^3ZWoyd z*!3Y^>NGE&L73-^eU*CoA1`Gwu%};c+)s5K>iZOT_-#8eSg+hDvu?!6IYTkZ z<@7SaWHDB^rQeXgmZz&^y)lt6gG1dCwcb5wu*pF@9SqRSIC(HO>(xS~ppUoO-_?3< z1B=}0)eF83I%3Rsic5xIsIR*Adx;_?k9yfL9=9bYBs-qu#D5j#JQ;r0F+lF!Ze;Hs z9KvS|*vvT#G**6xC5QQsMi+W7hnd{d324>y>({&;O1q0tD zxGe8|>ylgixtrbcHYKMCJ>%i3k}#4*p|9L??O4v|WsOQKergb1=mp|_RLsQ*3aX#f zZQkZE6MbcXo{D{`_h4+Occrc3qoew{lF0s=Y`9Xm)l|)bd)+Mz@cNa!3WIUw;EhB+ z&ap1Kl93c`Qs0`6vMHPLmPulmw#C0%E@$-IIb2`P493c9rEs_B^S=gpK8Zpl0BY*%h7C*0`o? zG2&KL$ESf;*`zZNB8oFZHeH;}tK|syGfbU5@3!-B>x+WBw0}NFU6AL97oTimT^--K zG5PD&?bj0Hy!>~hmp}7?l3mUx#kgtb-fUDp57czqwPAFKH@cnn!Gld$SaB_$jrV&M z7WZ1Ku()7$FP=p|1+WSm5 ztNE6_yd<5nBDhOz#l*)OB8}qwz8-&u(o!OY10S)~7=UZeB3xFtcISIc;cqw5NDz< z7C%u%Wj|?3y~EnH(NYmA?{~OAq-%RIys@zz7rNIu!KSj+0RsI%{#f~FD#_!KB=5cR z(F4|d>DCe=bGk42$2m)J%l0xrb%ZHI&|@qi#^XOHME`^F{z2zrT#&(%Vz9>3=n=u+ zdG9OB8eL9DOz#OMh+;QC$`UfxS$-JP!2d)~J6(iKGL%C3B6V~!w-^~s+>Z=OA02g7i0GkCW$+6**$uF{lQ|lKQ zz2)y{isnhasVR^8xgIE{d7>d|Cx~&mx?o|3h^@bIA#&OE!z0+C;!tK5`&el1LoHC(V*_nUdTpNqk$=VK#c181*(dtGk@4DnXT%T%S@ZD z`Ub`+Kl%`KdT+VwqgnU#&FfJ{kElC33<2sO_%;4H2Jq>z}j^AzMd)wJvem?PBOe zzUYGO6`DZ*JM|S7yyllKE=sukxXdU@fgzdr2eQH03YxC>*ybaXZY9VBO3CqMgf;(_ z8gp-T$fQ+G*B`~xO%Lbc@@}n}$~t7b@w*Z7vDq$ZkLm861ZFp!oO!9qXPdnOHdPoD zfXy^rjbo@>pL=r4{YoiR=)d88bo2gLkzdbE=hY8t`Y`hqTBU4cF5=BYt;V4+;8zj_ zY|m2YMng)OoDJ0a|FU-TQXsu$V;^>CGC!sgmMc5hA<3UV6|*m3cFcE~ZD|#e{?&Kk z@=Z1q!(~@^_;+y^SCQW9@ouMqx^!R9o!2nQ;TAcaoA+{lNtuK;L~boZ@sE>g`1;i_ zM!aGHr#HHO(HA9OIxes&9Hg*PGaod)#@MX4Q7zp$>l8NsX(=o?T-5S~>m#bcf6pO* zsJ@{2X6+~L0?lDInub_&{ZGJya7#{<%HttxZYK96uI`vhQ2bmD=~vi;S+o{i$>lcK z(^~3s^LRzc!{D)dY7Jbe^{k?pab??81uj6gY&)8R)jpA7v?GFFluH{QC;z~X<_GiS z>FibYSXEQkoe3k{GK*5ii>&Os0|<6wdGFcXGh(J`NKNO*my7fDE(%lp6lxX`+vn%l zAGZJ@&!Vw-M5Vaz(C}^LprQo2KuzFXO)e_o?`!4B=oN;UYkJB{@&k4@dueFCx4uKp zsxBE&i`1e6_gg+1*Up`W> z?KSaRiefYrOXRhj3p>?Tp&2;2^<23|t4$Wg>Y>qZ?m1TvccUU<@I|V?n=G zDIPsNy(^n2;z!d$3Kas75kS)KJYOYST_&OI8EodpxICiH786feAUgMwZ-e zZ#P2ShB_DXg(U}5y`qj0!!dGP|R`m6eX(F?!J5sA>sE8$bW;{oLNPd-fg5O3%nz5{q;$nML}JFsYhh`(!; zADjtYdXTTs4TtdmT33|`WM`Ha*kq?TB+rX4HR12PGh(q`aiOJ~wmt6teBV+ps?WG3 zUJ54eAnw|ntRm#0ls)?ZY-4u(z-|k&JDLCJB*n@zAgtEl99gA&sQbwB*(v!!YI3$1 zM@PeI%39Tj!f4yTF1qx_JpmlgW1e>g1~4ROHSFh4>u%qJJzfoiyM@P|ULHZb8BXy6 zxgTuw(%%e7)q{o|TB?H`nb3CwWtJaM+fTgq`FV*cF!P<{eFuIM-Gke)d%is5s@Y9D zU+nD6xqkD~KxIEO3zBaC&N2$63NIAPg(7;p%bqYzTs>py;+9bwVFO6%dZDhqJH3)y zUTb@(?*$ScIJtMP`0Uu47(8o5k*;4%uJg?*n~R&k-U0gSrw}^2%;XpoJG&nGh+1s7 zkIbgRM7NZ(KOMAhm)=FK@v^AvTh5H?Uy|m~r+BU;ZkfNuJ2kB0GYy$kjK%vslUQ1M z$1GJ$Bzk}8V_#3(J}j!@&VvqKgSh;4{Qkj7**(ehhKe8-6N6|t{ug^JM4WCn?3;(r zCy(6PR5iZrDL$pVQVX9 zPk9O<0IF&IKe?MlLQiE!+AgiPC&K=Mf_BtZ9B&I=|2z@d*eLkp!EGt2&7~k-X`&0S z7WfRxuG21UoUYOi5&!Q9Z|>c{NU=fVzT?5V5a%Yq`P}hsm-+_KNGa&{Ow^dv=X*$} zzF%kFEUj<+uPb1r${d5&KHSDrokv6K3abjy<~|W(YxPF=35hL~79)X|&w|b_pK*!y zgb&ESo7VsFLyYrUsuF+%1C=eIoFyz8dNqi@}` zi$u797B0$R$}2>s4J@Z&p{?pMcF!P!k1CLAyJtQ?yWq?C%V3-A*crg&H3c-{99X4XZp&)~=SPl>*urzbDl{yfhpM`BpX&Qo~H(D%$-t z9dq<&?+M?~@%v|=U4xhj_36@$Sb8ZMN@X#K zEUe%7{GsTOjeZk(tsEL~q4~I|BAhZWlzHn@3W_(lD!r5+Q9(nx-JO@4>3mx_7L}Jn z2?Z;8>sOozBnyB$g(s7*Gfy}BrY+Q_57N8dWwG~t!Bdf)S-%nXuAbKlz$o2$5LlWF zHT}H1_d`1MYilu$w!-?eU5m#FdE@Ntp1O4bXyYJ?hoUY+H}{>H(jqD*fcK@U3G#KkxQY*8t~mgIr!IU}(9hXs1(ne;N*<_`W%ZwVcYc3Y%*!1PqQb;!`oU?U!~o6y`E; z?Cnm+_JOa54*Qf*+a*v*<3|`D-*yPk#^VEi6&Ch0+T>j?Up$cFc_Zo!)H~ftiw7w($otJ(&{Y=R4Nzj`Jj8{y2d#D zH^Z9=YhLGHDyOeb<$mt&P|JcN&3q*$zMIDHCW)(tdDXnxkN=yBJfh`}H)&wSPlf}9 z4w6pJ3VAgAawNrB=91cpzxe@%LWJD#+eqI-e)_9q$uYmNS>qrz9szabD-RjZ%9%rx z-Y_IV3x49&^&=$V>pAzV)Hww5u7n8R1uW$~a?cWRGBM@^^}SAYRoo0U5V~RTaV+Lr zcHcz*;?Y>O*++fe_T}~K3M5LSUL8SrP2M02^ z&Hk%F9z}n_dRLrf-#CO-ylCD@IXhgAr09!ot3;af%NKa7q+2S0$OQBKC3JeNVZ?{l zp*?U}(GwRJ7ct%Oq{?0AF!bx>Yjw_ICc}wb!@)6gK%WNE&Dz&0bo{>ewSGLY`1Wef zE!igj^G;s^C`>a`8kV0*{s{87z91cp)q%a(mAG1H;Dz}RU>$ULACn_4LF-Q`!=07w zrYX76Z)=`1gYOOwn&$!qd{_C5+`F_32)D)=BlR!3N7}}*MKY%dV`*?9Twh#tSE@o*jTlR#JBa;zrw4J*0+fAdT zo(aDzoM)K8Ol7KcdAD(93gwmXOA*l$HZ+v!Fs0X0drw_eIENqpC5!)rMY!uydb%^q z-FQdw6ab}*^a6Lvrzo57+=hcj53P!(CP{JKM!U>8Awwv8IOlM!kS6nf#8R1o@b`jC zJ1ZTIaW5$1r985fK}@3pmdB=qNP&gf)ym2)Z)vs^6uew?L6sX9Y!6b%whkBqQd=Q> zdqBOFg|Z+G!<~@s1mn9E00I>gzkjs;5%g#-L2$fdD=ByHwD3*#kM1kP<=9j#(E^62 z%+yQVE!%K(Eq#V-bJLIdZ_6E1cY9wE1F0RCl#Iv&uDsEj|1-jQ*|xSiw@&tPJ+$n< z0U-xm)G05X@_TH! zTuvI&{P!4{{2nehESkPj^8IFVeP3i>lo8O5Y|;PILb7T;+4$43_S3pNy<4y+G$$kL z9+wFotrZzA(Kl!bB>lW+2 zphWdu;nzL#!8a@qKuUJ;bW1W6;J{V&OUW;@&p!|3<|>*V9336rfP-DZ{`9w^BGL7X zzro%06RUQ+_Wg@<0YhHn`lTE~A@5DU7JN%oAU^<#w9$`W2&iZ~IG4elj1JENn_%&a zW3{Rbvg|%U7#h%FAt%{5z+L2d+eptSe5EbWY9Og)toVB+dGBEHT(d>8cEQns)U7A5 zY+){&9ha2tzR)T(Q153I@JkEwMw>dP=$Ts7WArm!x|Q9@LKN31k>zh}wUC8;S8$ai z8gw?#N$Evju94ReE?8B#bkfBF*b~`Q5*rybmEbgYr%{X%>8BeCeRC<(q-y<1@?y#) zukWGRVX*KwaSwXVuTzN~sTooC>z3--C|KZbm3TYs@q0R z`x*ks$;saG2Y$cH=AAQ$p)eyrOIjrqdFP?T`XS%fxbOYfCL@8p0y*fIAfKL`Ap3nP zA)tQ)Jb`HTb^FhieFH3(&_0_!_&%ZU(<>L4MhaIdgC&E@{Re8-@c6wqk)P&4%yrh53_{0 zttw-;L_vq9T7_X>%BNK+bOQ$g?Q3f9EBE%oYRVU`$Rt4;SectoWC-@!cSgm<(>&Zb z3+T^=*8JE3H`*m%d{Fw6vK7?qhh(X8hyDslLrq3zaWOO8N-8faW4p*qn>K6Ae$h8N z{h!Qo|BfhigXcm5+pimf&z-8jwP6buCgu33G5#2V`6$1k?z|19X^xVZ>ZY-_*&9*1 zJaeX-CEBhc1wd#QTHvsyg|4(7k)_DZ0)s0hq%%<(#4&LWbWLLRR+(lkPe8l+f-9*B zN;#>M8)^H>LoEt@rSt4V=AK}!C$#K0_)V`T@>?3-Q8GEbZmv1^a=5)_*Fiq}qXEV5 z60HonQ{bO%pTXhhVMJ?*2+aMUcGuB)E>D5R_F2~yoYneSGfC0Qr1$eucrT{8Q0?Xt zI+J2HBZ!^9fuZ0FCeMt=&8Amy1Fm6*)}2ffefNhe>W4cuElMur&a;S*@Z%0)+c<>Vnf>!`_xwhscY?&BaFPZsfo_AhvR?A{S7tuhah~T5x4UNHI4k_Ct6M#P6fNVZ9WE5iGwP68Pn?_hxpX zYT@?YO^e}VuU}n-uw8P#pO|r&+gTk4HGMYkK>Z}*55{|%%WoG#HQ-c-GU7_ ztn{W!+6N6d(%O&e+YD!5jtUzL^t*zHW7a)E|*g`cht zW}cY}FCn_z3rjaL>bmwWU0vgu8S{N;8(9hu9&2PpDFVu-If&ad+Rwta68e@h9$$*FFpkKJ zjDDjdD0A`AqgStwt{6{ipvwgf9+wY)nIZj!bcND3)g&cL8g7VNt*AGy1I4v+Qj;pA z-=88KK2%#19ym+=a_%T0H(jn>mW;F!e;~uq74j}NkAJ@kt^VBc)A-AARg-6de@EGAUpq-4*ukUQROna6@Dq)&&pyGC(U?hi8t7FxmI>u z6K%c4tlnK@>nJ_wLD30!94f~%a-$t?E>^Bq(N{W=B;Z<5j6gu znD-SmK$E*Gpg8@hHwo_V_hn;xdpUTDXT$L1JXl4{r_op0NX+@?PO2+}Llu&Qfwg@O z&Zi2l(0tjdS2|TCyiBqOJ0(^>UtBUl?}@}3CBe*bN~qq~KwBWoS&;ATRlVu{ADbBK z&l;a!N$mLu_y#Y%R}B(Y9r}biHoGf~7ld9FlPlyXOt5;rQVW5G3D1siyA^M0wl*sF z3;EVG|6_p37Kan@<#GgJ-^YHKh+V*gvioek7?aY+3<=`7EtU4K7 z`wBFGDC;4?<*6R zwUDcDcw1Nw6vA)^Rq-js@E5(dO37>7#DP<+Wdt`i0@NS!;O_azj z*s;fFm|Qa?S=-bS@K;u-QH9q*-Q`TNqx{!7wtG|l_uy|LqL!nTGLMXNU%yPck7Ft* zef>}-=EyX7U_eXO;JK`y);87PwA)x6RrV|uk~@fe?m$!~GZ!}aAX{e^06|zmINjf} z&Bhint4@wDi0MIpuR_-~;$=QVFa;_rEc9-BXqIds6E)y#6Lz9tX%f+&Vc?Amd)+(d zag3^eIGZ~QimBsU*G#99i;wOCiip0m^7un_EPT6D992Gbrh8Q%5~tJ!2VPng zXZiJuL5#j^CG@JlFbCHs-6w&zbY=AsUfp2*_7GTfHR()hXihj3SAkjC_r=5Dx=Ld@-G7vXkYS*9^EkmcpcDozEDY9(%SDwXg z`YmcY_~QKOW402&_D_Dbn@@ezn!&mHsaDfJUzpRsGPBJ?$;^+6-TfY9Nq)M2BND2n z3gf6zjq8@;*|2CjhE`d$W*JbxYzoi&kO)kjK9iJ~5POjoo#C%$U`qj)hJ-C=_nzbQ zE0gs+&LMuYR9nS09eYl;tq0QZkSb*v`^90qMcLt>^BE4h5xo9C!m|H_E?iA2yg-*9 zt6%@3exR!=BREea#aPzwkX?DcnU2GjdQ@uGw46_7u>Kuq5D4RcwFZoeZCZFh?%CGMNCq6NZ{0*XIDst1>m&hx7g`P#}6dMyL*TOZ7S zdoL>5OTejXxB^AnE2hWmw;yDD4d{?m1h|w1uNxTRN6h_;PN_Q0L$i@(?M#C!XNw7R zq9nDHnuWNx0BQDtUV@wT;oDUsU`SlEgtQPr_$(<9U!a&b>MeSqp8i@$^+l7ONr(kW z!X!Y2R14hb*+HjNL>QZ!AHK{@@s)e1J_wAY=;6d)rKH>ux0Zcr3RrrVL;@_q zw@0vU%1=E{xW3$Mlt_{AHTX=P|APfiECN2{4t$rA#ncS_^ZD&-gMxh7os9QM|9_p< z-KS45^pB?&a%SV6bgwW+E&x@U){r@D1I2!o>IQ=Z6BHvt<_}?ZxDp_U{4x9@VmHkD z8F7zi|LEBKaJEAGrMS6?1nX!U=yq}_o)^7u+hbUF%4)b-s6F7_5%?2e*!=pG22b_V z>D?*KWePWU6dW|83i_dTdHUXtMmQrKI_Z zG~jxsQe~BKKas% z7&Q$ScKa1lOyn+CJ_VmF%tqrDGng&v_GuO238A+=-w6(PFaCt0vfXu>@iw=1n+=-% zQg?C4NaJStDiW2rZ?aWje_{@D*(W|`ZjqAs84f-1&uZ#{;RQtiGKfDY!+j&h| zqI+%K4(=L}^jZvvfx+fz3m-j32}xDUv;FimNkVGKi`~DCP@u$VV#rY0fxgzY7i?@r z8da@NaO?C+-|9PE6a)roj@LLGBUS1sRZycGzl@Mo3sbbw;5GZw{`fu!)%DkQnuui@#U3+Cxq<>n^(Gep%{h}Pwi=(KdcW3iz+4ZF`&akOj^nBD3n zyDjmJM;0n9Xly+!{+{7Gd8)TGFQ1rHU#V-qbv0=s^}@H`w69k)A2_TmWVL2(Ze~pa z&%p#Dfe22n!c?`MnzQO z3c4~^kNhJOT9N5paOgU^52eZgz^3$(e<7Vu)cZ4);>n+nVr0l(`@F~y_&N=Fyjkhx z;mN#|nIHC?_k9sTqtc%srLAIgk&485XyYg- zl;{V-AmxdJeW1ynKg^Ni3jU5{WdzLMO?p zpq&H`2+3fTxT*>EAN1pbY=IWwqNsoq=qZwe)MP>Ki5v~y!-BK}w{cx?F0%ANLMvuD z5=stUts{{|0u@0=l|g7$u2BwR=lW52pVyT>RA9XQCDT+EAZ#6x0B1Kx7sGaAXBC5i z+x(zYEbAp{kjGlIYV^rP3lGHx)GlQ-DU*-ZyH*J%VQ^(?Bx)N5jsnS(G}y^Ptr(k1 zCDN*|g+FjRxDUC8TD2t4V6MA*Zr4;2GeGF00$JJPouO{j=)hv12J~1axNH50(j&AL zrnUkb(%^R?N30&Zv4`{-Kv75dLdw^y1C`;-eUcjBptHP4KjI$@7wK$3QiNaWPu=4_ zP!4Hk6^M6hTE7nPL++9(+Mw3;7zXk>630MqL9(@wzeZg08s*3#oE9>G zu~>f2=^l%#xIF_XetgsvMx%`F=mL>f&l7`3MTVD;x|c8@q#ua{V*!K^aahWDieAJ< zQLUj1SqFoLIToAGjTYl|pnNRB9=2{Hv#~mC2K$M#Q;Nq@v!$bk@oo5_X^-C(XT$+T z`e)#PxI=M+*}=N%=A4YamiLEA;sH+Nseng0xTb19tRf{!6hq!S8X5zj@I}+27cW&9 z-lKOW?*h*4=}{KIJ+!R_-ig8De7jOUr~~x|!y3{72il^Ae_?D2!}M-_hOSQMO} z9!Us?kt2sWnl=DkA#fB|1?~WPo=GpNK+=tHsu*P_7xzL@G7#kWY7%L`c8iP6qPAan zsu!SxBY?;tN%aCsFZ`t58Fk`Yr!s&ifJZcU(p$08~+AKoOZb+#5Ojk zaj)a3*xv+GRJ}WF81GXVi|!q7Hb<^AFYk0+rC$5Nu&`!5_Vk| zjGuZnI6c)3#chn9H<3?{URa!lM_QclS=3-nJ#L({k;6eD)fFs6V&KZj4yT7G>px9F z|8h~=shF|fR)N5C^~ec^KByj^OD>7@1bW3h^I!8876%56u8R`Gk+MNMDqJDnXA&gq ze%*?M;C)ym7ipc6k@KO%ziV_S zaW-gqC3Mfc&(utGws)_21ZM7&eKIaia0(tmG|#-Rh*!rMxA?5A!1VgsSs}ZFkYkI4 z?mAO2wws^xoJraufXMb8W+8|wkZD6<8y-;xXm+1UHfXB_3ODAQ^r9qN%j9+n%H<9u z69Dd58uFTOBnX?*pqK&Ow-p7DG*?AA$sL&nT;@Tj)C6+=kxC>u5EDobIw6o|)t(*Jpu|N9bKiiTF6_jW;XQc(QS&e1?*$o5er89xk753W2oQ2F2UL!3x4^{&PSOEWo5QSI#Gq*ug#m zc>@KX>;o(AEXTL04rQ3TCd@Tq66{;MmCmZtmU!u3|C(@AYEa|$@lblgxNO;k6I}p$GLnIlY(30{4dqfK?vIj|xJkXI3IV|z z1Sm#89AaI}6#p0kS%BvLIxrYM=FMhwP2t8D8&xk1gkw4qX z_MToGHlq3`J}aehhN3yaUQIUL;B(K2Ht-z*YxS6iW zsxW?oVc83e-|Pb%l`6xpRUBIe1Y3IjvlY-k?&iM^f_A2h(9@AFlLUasKi(Yb5DL!; zJUpu4B1fqLCiO79O!n3ZZpTX~elp8x6KhQEZ-3>68O@%8jk<=BK(y0wo$o==?urwp z#qfMk)VFXEI&RK2F{OOd&8yAul}3+AzPZ^7tj7k$4>%jQz~k!sGye0i{U__Tb~8rc zuEsup!YI4_d)R&s%87y=ahWcw$fhadU)(8IfTzCSz2m4%8VlaDp)BqB0jC`p;*K2Gz{-D&xBu#y5xyJt zR+JIpLDuE~ZNxg8qxYSA_ZpKb>);s)%3U9pn{rO}3CeX{9OlxE|B}>WddeLY;c_!X zQz0)(&@A}7DKW=jGboF>rOJvx!gFQF4=^sD0ZOK9WtuFo{+0fCgJ6eCX8+Y${J+EG z@B4N5sa;i>NP^-jxCrY=S!D!G0)Urhk}De=yt}+dT&fIYqZxFA3GY0iqS@mgImjcGptlcp2^M-cG22{M4d0D@DddO%1}J!?F`L!@4*aXCh_P0eJn zBCm28fZ6K_tS&>wIUxcAm*(eGl+rl44B0Ow2r_(zEA|x!%{1U*RY9gEv-7iT2uON@ zVNeu|0ah5Y+l3?-+bbWhV?wr5Er@>x=|u^1gW!N3%6T6bn)?j(B*gsBVlDr&GV1RP z3ZG8^o%R8U9T?KsC~?UI{h9mAp zaHX#+cxZW1oL=T1Qy?>WrlEaJ|J#w`FpM`<_-7A zlb(hdaDvPOiT=wd_%3YJiE@!1DtWqS@3U1m9&;YZ!`iCPY$0*eK5jYHD-=b0@Nvn> zmua8uhNfatET-2NYCimKKWU{{spr3cqe6WydeKCs`WjCzmb%#Zn88u(l$DWhnU70F z1$^5@WJb4oXj(jHJ=J2bAJROs@TCn%#GRtxx_w|uHt@K8{=E+jPXHu35f*$7nQb;V z2KqH=Y}Z||8>eByc>v8MFJuco zcV-mqA~Y+v9qg$jF*5yJq+(8{Qa-`3B`4Yz6yFBvsR!hgbc#SDIT$d608g-^ z5CxJ{%mETeT7g6ok_aJr3<3N$&S8D)>)YR$Z>`^dpZ~~Wi9FBV_rCAzy6)@V`3K3l zy!ID)@Xtb4yX7l$L=`LN3P1JU6Ogzh$&pFW83ERX6JA{*A2+DmsE<+ZHc_8JF6GZ% zHpjp`xQt3G*N7O2)?qPJBy4|6lSoPQ7+7Q>1lM+HEu)Cwy_wFPr|JFA{)AYBbl8&< zo&@i=p?pKEDJXp{Zt1=9@S>u4XtzZ+w0X5a7E{!`^qOl>yQojYz$X6|T)oTyxe|Zc zytlPogC9G%%_)k)QPBNbU4HSONL^L`A0_+$4Ek$HuPYDbOkpkc18^Q962UYNj;cBi zrg)c=<@$l=OjPA}yb>Cf>)cErV`SJ+xJ(GOipycm{;o-j%axTv6L4&{-0TvPvQ%at z_l~Um^z?rhj*qp6Pf0iNj?8u-+ z|57TN%A6l0a{1&Sh}sjwr1QyxEUdk0{+NJUnx+AZQe~}CrfIHA%FJm-1g>Fx3)BGr zIpKdOivQ;e{!{Q6d}&+#x;iWNNkrRX?DfLH1RRmU$8nvbf<9dh8qUtPtEi~NGN{GS zQ$@n12hY&k^9}Bk7%dI3VQoZJz}VxrE%tlg&+)#Q`J{c-S(;Gf)gqfrLOgh%t*pj+ zt-1CpyM=l^*V&@MzYSMVP`gc*%aEw4yf?-fEkO7WFvw#Sl_Z?7Vk_K}KDLlUwsmS0 z^0qKS5&R`Oqsm38v+xk6r_c8{Y%i6uJhd$u=fOuZ2fex+nWG1Ya&sJ9>N>cM9K9zQ zEn0dj&lzhi!U@9QJM##HNX+;gjZY#Ox#V1u)7%OrD{GaNG*gUsCrXrHYD4u!Ub2pcXm|yhhkIVj+F6M=AShmNXNzxTCxet0c=H`I zBrHG5D3`@)5t+C(f>hfb>L!9s)y-p49Q~cQ)ip5=mq?h;Ztuas^ZLt_H62z!qF?&6 z--}hLw0G(Ul#@C}-k5tEuZ@&_(%Wp=398(&?oAYI&D}S3alFun1N;O() zTm}ZzEfC5T)dQ4G);P=kFVp&H){O(Yz>xK+ww`mN3yMOXl3F2>)@zp{qr?iSq^5>o zt~;CTTP?*Zw8L znQi2mzHO4@*_A%*TEGe#>-jo;OO>_v54=7y3wPBNBhyt08^dYYm{=wy?2>Z7jH8QW zAtfYmxC`Br8$5$Yi4~v(a-@TJ66qvCN3l&!76~6zf2m!xs}~NfZrV(zZ7AHDKP}c` zJug#~ATM+&STViR^lOkl5GE+Ug|qjS~2HyT>#?@w24=izo2(z^}o93*cDQ z*M$;_DevWTb>`vHqoI88U&>741LZX*lc= zT?lJrHc3c*)=ou4iKSziP*8?w7?3y5W3#SB|B&FfMoa7Loq|i!PnMQ^=>e5E`q%GaTk%(@5uB?%RvH>hH78GNEI|f*_e8KX4oZ3Ooc|xij7`o9$}tmd)NQo?*s8FmX$oHKFZg?ru6kV ztjkc%L@V^+B-3dvg|K;PP zLj{&@gINX5`G80CEB8fj?PwCG#=bgG6X@JduE*UX8!D;^;}ZL%9<92yZpNT&IO5!D zeY4K17AgoyZF0f3Wl1a94QC;$oEvDVZhWXFB$e0Vd_dHOc$3uA60HiEUvBI@Gev%8 z=Gp6KKTE)oz56CD20*sKdO$UmX>Qpr%H;Rc`DODU`5Um6E!rVuLnJ%QEQ&YVkl-ma zy}Q*mihc z3~uq;JYdW@oYzYHd*=dm?bB*xGqO#w`uxXswmmwc`l1uZo$ z5|&idnn7Dz-|?K_=znqlU)DhWl_P)bUeSPGGFdbeI$ft-o{*KEB8&0+K24iOsvoK* z$VQtr>NLBtRE>5gmjfw2#RV14DO~u_BCSHtN{hb@Qh|d`{dB=_{ zzV-C09#nJV!N}h$JF)TuT)8<$_9zaVL2!mQSmOx#Lf#2;dM$2xjrIUWqwN$iGHAib z!{*ek%;t&xzqe+EBiI(kwHfcJ9Z1x4+;MdLZ7ltrkKy!K$5;q_8(raVqzx|WbM2`8 zdMuB?4jURUum$A%+Ar~;ee{aUVHja1mN4Hc`|#;u-6-+&cJr#{ zqNe+A93)dvRRf)Y1Y+NwJ}zf5T8S?6td$fU?XEx=YZHiQTjAQV$M9`N>oGwW><%dJ zjhM@Zi`q-4$?I1)t;$30podNA|M?Aui+6Pt*jv{pj@Ps}Z)+(e>06gX z%gP=r-t%$_V6_>ACD;`66I z(<-EPF7t}}>s9xjd&ln;wsUeHq`b6*O}=&C0y)w4ChLr2w99>6C{yFw;_AjKhy@IH zcZuoco9wq- zD=6{S0W^sVu7QR~sw0>%tTR1THYo7d7hLsDMhuoy1%PCSI__Glza&m^X!W{GxTZGK zf;yWR1nxcgDbch-j6~PL0!d7;9JXX{Gbh4=%+J2#DZh3Gl9iQ0yI!NkThx=}>kJ`Z z!lAm=^gd06FaZsjyYEat_D0$zk28iV0}kDp{MTIoJ_OpE*FHU#OO&P>`||2>aRmzU zbgvH0x9*A|S+nZna~<6~H34nMJ}pDu?-wepONbz+JDWg|+A-td;E9!;AQcaqcU2A4 z&=A=9!$r?4&PX%fC9@lm-{$a-y`4D@2t7-z(3>3qyp1-yWo-(zsq08m8G%2oWN{d+ z{IPg;nAe&{rmzrD+CeH9;m7&{zU~x`5dLoT2B%DMMZXc-?3-jw4fJw%Z zw4$iIYW9~}y6VH&X^_A}_$gcp@J+-Mcdrs1CV&v1S4bShCWFfzxZ4 zqxcg{wI>lU@x{+#BUhdZEVN@%B-m~srPP}lO<9%fBG&B>G9k++wmPK?Pcrn3h0Rjf z61x2(+7l(Qwlu-6+G@0_7{1i+m4EoAK+)QN@{SmpV%_MFo3p9`pEq}X0Oq`@VQk?c zy}b(I&&-{=>J>RVjVcs~;Z$3TFos!^k6c$<8aDZ635oB`+kuRKRCz|1f$ARa5f_w; zo!!Z{+9JiYoIa>Iqy2jZYh{ zdip@>2t6Ga-!XSEkpj^JYBTVmvO<<24i|#sRoCJ}9sbrbb@+JnF-GjM;%u%f+<_5A z%?fh_T+U3HdY(hor)p^m>mob~-=~dLotfH>roT)5rc>SvK0U^I0!LwjxPKqTpWo|0 zP&gKnCE-)n0GaQEcJWOXGMXvG5;HYsWHt&n!j^C-eS%L0;TT!l99oeZO!Fa_s@5M@ zzF2|!{y=6eNt?@#{8$^U6!MghYJ?hqVmAplDkNe5_39_`2Z-*Sh^IX&Q@6bLG7+IzJ3N)g9cneBHRsbh9qD@JrvD5q{#{BAC!aP@2Pzk<=5_S03fgsH zr-E8RWCSQ(qr(I0v{<*&sfWxJCalZG2U#y zz_!$W>41zX#^>YO{2j>PxNq+NFl*4>mZsmUaHa2DFO*OxthD!uXvAyQjRLP4J?QLz zZY;%n1ha{dY!FmseyLu-)QI^7QzOW&PyYs|{7)PF2P$KgE>~WN@X&c@;CQvkR9zcD zlWZiIA=g1}pEEr~<2^@*vPl{7sj1{}rC}opM-_0DI`DV(K)4giz0#x=|29@DO@!;^ znbz;;47)cUrfui~c(`;?Gkp;#*zk8VAZEH?**w|n2`YWAQs>8a%X zvFn&K(&Lm}3CMXBX#DsP~$0udFJnNh-l zO!l@!d+4UU4(Js96tue!(p9F}wG}B4)LEuxMMjD$3em3mo%!b_9*lF%l==t*zyecV z!=i*VebG5hl!3V0tQ8iZNPX@gtCMMHaqmScA7E1!@Bbp7{n_T-m|78nU)tl?*{Ve+ zfwuT^$(-S}4RYAey;L(WsI7w9y_cg3Uk#J3*@A63Gz7Hn7;|?85 zC!x480~?ezj`hk5N-WO9B@+9}eb|V_b+_C8O6&e<2%F*oRY}exoU0G;Cb zeOahhK83=bCIT6AV!Xd_6KQ9%Y3C&zlzht)1NZA<+9^a5k7ypL#nqO)Vm({DgQ4_` zmVQWm0XQ9kLag5nEKQ#PQe?~G(6P(_rVh(rU#f%n!|_INkv?tAe1S3RX>uQD$I6>5 z=KD4*S(N9))4N{eM!&QxRS!Hw5{i7gJR&|y1CaIRSF9T|+W3o-gn$;WD{l=!(7t&# zMX1YQzd_q+H0{hmZ+WQdpT~MM&vhj-Qaq8;V;BO>Syo;K)qs=KwXdh9bXm+#a*1cU zNqyv=PDL7z$ZjyTqL%3f5oPrO>OFJ1EA*P_;Vha60^OuRh~H5z+#YV>2rrAR3!poZ zB~j$Qt#NDTvB?w8ejS#}<5=rt!|u@D*5VU&y5@4(JQf50MB2;r69-k~XwCCCieT{5 zvWv?03oW8>k~ieF)IJ;*D8W#X1j}`!vsvJ(dd4#0GsNJ+O3Cp{dAW|3Tn_pDjaOb%c9ek;JHI<&Y)(B-Q|rDf z-HMY)&lwh214l6`m7$aGggHsXE!7(E!2Jl{J%YO1RK|#sGyA>;F|PQ z(pcZn&il6H+5t)#StR0Xj>WOxAp4WFKycy>P)$vJTs?V^W|NrH;ZD<;sdLq@Cn0B(PSmLeO{?2J2Fl}%(h*D^ETZ5Dr z9c$s+X0C7}lUhq~rXbdk1l^ed0;^#$+feuPplDamjoZ~dcbhki5co}18K5u@#W|z< zXp`Mh{Bvp@h@^K0(X~oShL+z3bXW}#oV`br0sFCEq}VQtqT4+ZijCuxupA}TQYX@}mL~bR!tzVsIqiL8M^Wf0KEH~v-0u5Zniit=>4a`@ zWW@-?dS`yU3qlLpc_e}bMI>^^`&qSWd1s%=gh=)388k|I&(Tp@&vxZ04XZhS80m*4 zjbvXDr$)Tmf=F=|ng&JVXg;f5cBOXld6luQjh^QY z5}Hhj%KhHf$SkOE!kjmfX>D?IM7}gcmb2#B5d5#(+MB~KT5TD)4D*P#V&){`V>4ND zXuY$uLfVnt%_k5wb6L#DE#4zZV=eVsR*cdRNC<^*r&T11h*JB#fk`Rlq*X`ZVPcJB z!AG#v))S7*qziWc5aPXsG+QpsZa<|l@2U~F!kJsygwXXAXkHhex>my3YG>1u)uSKN zZ~bm@4_hd;9w6~}-Y}Q?&{Mch{uOsWc0S*vcqtU=I-V)um-EuKIsmk78yqP(pmDTN z$WG9QlcTxgUsB3NR!+?qGPOnv?aY*2)^4?uxe|%zz~TWE90bCGlPh2}xiia*?(gS% zSJnOgg$~53za&^_2>;rR&Y7LTAfbVF0lqKj`TkDL`+UB&+myv}NDrR(Jm7$C-Ezk> zqNF06wcUuzeq33j)3+p_X{4zcnnCho35z^Nv$K3D3+I>71#5ak=5`zMqN5k|GeJ)T z^RJ!=F%)#O`z&$5>3BJeN5}-y!Qgm5)ReumBxSJ!MT@{{Ma^RcSEV)q1)&8RI?%+M zO$2MRTXKAXAGFu+$}{ZPhp|Vi&FSsZUM838P5q&I)PaFR*N#IcQ+JO@FXvZGE z=LMWii`Oo>PdX(P;rv2(Sug0%9NX4MS8~v|oc#yNe zNTFOqA&c&=P30|j;JP&?LnX5XV|+jOF}6RRAIRp7kdthW)=sBUfh;Jq{%YdVb2rEg zM5_6YzBFmFHB!bc74|Jlq`^Y>jYnvVDT|vr*3hT-9LMOz6pRtFhp%JSL~1hn9;Z&OogmTosYMxY$Cs|Q?JBU;lX z&0Q^!P(pBXnyuRjC#~IMG%ITUmukw-sKqm%-7tZINFf+eSDh}0Hm5^STT1(T0d$UjGNZX5Z1f^z{ZmOa==>DcD zHW0|4WRULSWn096(0$}&_O!ZP*e*8FoSgYGxads{R)ivhE`l*;-{Rk@zf2x$P6gLz z7KUl{@$emCYRI1dc&h*1qmFy|bX@Y~@!J`AVwvrt1WVuYF$`KL1C$C-T&j&b-9=4V zDKqp-gJP?s5JZJ@IE25fow>5At>pmej)vS%0foL@z=O&u3}zB+v;ye3YHCxqVeZfP z9Nj#(*{xn$&d0+?w`m|MpsRv+*!@Sl?QG#_NZ%mXq+$UzE?Jt;g|8)O_Zv&)y%Foj zRg4fVHkWM>9b;m9HvD|mf9X4?kSkKm&uim;8VdT~2}VjEmIR3Dqu$Ow9c801{Swo))V?z8NLrGtwj0StkiLgrb09A_rX_YlS~d799JXMx$~8!rP9cr|Z(VG+}$Y zMn%=Ahk@qD6oEk6sbSsqpfMBo|8y3BAP07vlPuwK#&z>L!oH^urcu&q(W)Y|h4znJ z3ur0w=(H>6oSIchrQiHE=W3+WmSzPaLPB=-;%K+rr6FYP&k)cx8#8K1Q|UVAHM8-u zw6KkK;FaL_0}tiMINAWtK+SN7nNn70Am;>0+*cXZEy6nUWdvmq9jmD!EAD-3z`b(` zxu2cdEgSmC+K_(*eG1r7+aPrX+_srW)+oO)ZpZxeo&dBtMJKI-L6N-uu88{IM{5<(( zPF+}eis(s-^}Gn=KzKk(E`#FB{A;^1Gup0KK)RYT*L|0vGV?0OMKMmxg}gQ&`dfDX zyDYzxG6d-YL`FWr`H}6%>P69g2A~PQ^O|cUBC5hvL?Lof8G!Gr(e*&=#i*{Q%6auN zEPxwcEYC4uyvzzt3;IFfC*)V5I)+26)^2T;2Q*_$c_RSJ=04syK#}*x39!=j1M@MO z&W$}2aYlqglD~;TOdi{6nqj4+&H=Psg@AW@G_6tQJ*F|8wvI1zCiD&TMJUg9<@0)1pbz z$V)B?*ZJtbO&SOtc8UFIZLPi}RI6`JWyAFw$!rdNEP}A7sI`4l@)Qy7ygko}FdQBD z-f)-2=>(#P$ol$s!bWOXJa91$rLh}$yxmmI&Onb}KBLYWW7 z(cX+tJ@38lYCwvNK5)E__!ZP&h07|V26Phg7f*Tw%a9zbz5_IHXu`qrGBScdCc8X! zA&7K+z_N7-SY90c=IKd0eOd>M{x=l6hcZqj%qL`<>|@s8b0P%rpj8VwxmVx1|C7er zA_1a-D5}M|s4$;!>{v&#=8d&DdcQ^8&y_Qnd$M!#sSB~RpoAc$$?odt_rZVEaqP6D z?Joot?Fd@}1~Gp3F~JhYLTaNmY4z}|zkcVjWJ8D+60R?mb~NSr_i#ErV||x2l*bZA zcFqxlL9C59aL+n0%vqEuL&rs%z{m6a=^JRZw-1=iueuVQSZUuZ!?H*~nQ}isjg!aG z#EIE#7#KwWe1{6QLWG#3J!X-;k!5p5#F8=H9pFYi>Vn4q}`D&=z zH5(#qZ{lk~cgH_gwyV|rVG>>ZZ72au24E5Eg=llfZ(BV1LDt3=1D=z=rN@j-gf}YU z5on3@l>Oa@w{t=kp&Fi0C#D#{OJQ-MT3wswx|73-G`MXLcK$ix1*JLtYU#p(r0I*4 zXw%Z3r_YX`y}R`*^KZx}owlMYq1i>L0VM6+fATfZVsIbjZc51hw%Hbt&Q#6WgM}S? zyriq7VtjIWxk7KqM|LKw>W8{as4lHRc4q4Ig|pnP!=NFr{YNcg@FT?(=%_M#XOt3O z(*knV?AhZWc2XqtK5qI|tD5OPBJjnpmAS$dc>jUq@4ATQN(xkCfON~1(+1j6Arfx% z(YVH_mz(F!^tNUq*451DfHRj8`Cm#D-iJB1od9&DqWT zf5xsoMGJX=NE}w~GKkt0&DriRl(sbz!$sw5k{A*JFbA-Y4(fxBzs67;l}rDOdG}>= zkZl8&INh!dQ62AY6EDnO?}P>c)s$`Y0=s9Px9HL z<-MYi45htY$LQICoN5a)l|E6OE$2Af<2AXH-Z5@YF`QM+9^i5A=nT8^m{{Y<>6*uV zbA=BpZ~i?60TqU649!4cL^!cTU_^oy!;-!Z?U33)<1DEbIGGm7(rx*q9Ln&c#RgTF$S)wM;?&U~;CK0V!Dw|yH4d>VG1Yq2d zKW3fkZ534MK^y1hP-(egYms;kpIOlWr}$vj9gTm2v~^K|w$e_6x|DfKR|7mXgl()4 zt!)^P5u))y(E#@D`BWOaOg21lbXh&*T0f#?cPnV1$84*vWe>%Q9iftCW6JAIs}q@h zGzviJuHujx?w#DL@y-SuiQQ;;P~F)IxPlPj`EG1>)iCcW$27V1Y4`0Pj!! z&qeKDjcl~wUE01K+6>k%8ZJ=MWLfTW+wU$L{q(vTt6baHijo!elx;7kx#ryG(y*RD zi9%Se1zJ8MwnC+1iCiN1ZIc;jv0)vbUZbx3~9C@QRHN(cdw)3;?WeK0%hS{sE0> zUNwE$Fwg_$D)`{;k(fm9@0nnOlKGpmKCzm9^9m$AVX)pIvO7E=&}`$Pb;sNETu zFnNL#>XZzBn8R->-b2CCc7or+@>I^K!sZT?OjKoC$b6mv@68DLe**1tX;4JMt6KQ(B|xirL@(iW6;*%~fEe_XCQVjJzyqR8-9AwMT~zw{k` z%3;BC{UP2#^s&vPXa#WV)+x6 zd!)_$WSfANq;Tks;H9;*e8q3`Ezp<^DzRk8bB_n+i%4YhkWpS)~I z611;xSxoVKcaE^7Bt^7TFjl~TJ1Yo}Zf;QSaJAWq2Yp}}Rj*u*fq_HlTmvmkois_C zsZ8T>oR0!6MOHe8lvvDZM$ve@8DI~%#LqW2&htEpV|c3*dAA_guSxcjVp9d{Uk|uX zZf)DAp1ThX>!5E@{6@%>twVFG_(eU9I;0cK?v%Jk3vvXBMv^^!;;A*H8@tzc%t@r( znPm;y1Ga<3?-(@8P`uG|02SBzmJG-(jSB~fx2%ZPWRbF*3x8O#;8kkqb~UEfns^ zE@mDQzY`1@hfr;vu18T|Im-jLv0Bp4TY;h_aUBl@0||b7KCspkgl}O9PAnwUsHrqZ zqXCP;*`)r#{^EuA&at*LLX-`kKRqWa9A1&3+)`0TT;`8^vWW80PE(U6l{(u-g;N=LQ>S+nxk)q=rv(0MgUV<4F<~34kJ& zx`sY7h7bU4^Y^97!0#QlzV~A#7{}nC!wh}<(zS*drm~e!BB0$c!}p0?jI2wY1_tx;F$60e+_k~2SB^EviRnP5d@Yrs zsr|zE^bK~I+W@)7lAp29QefYS!?1O zibeTbG6{}}<%t%*xymzl5)mmL#7ujB4#Peg?RKP#;VJdr-ZxPNE;p;C%7;Sn0{YAi z5S|G%vt>Ewe#qrjXE-YLIOd}u6~nSDs-*xecw!%9mcc(AE~3BEukfJ5OnhrS9IQtyjCC8Q%y_)Zndj9 zZ?hH?JtBbRDC4_h!LaR(p}$Rl=awQgZeBXOr5%6I(30BrR^&$kGaW^6*PXZ}2yo_M7IxJb37q;e61pfO+l%|IhWLlCl3L~E2SjL*xA z12d6+O`9KJ&;B(5PQO|U#uTBn?u>v;5J73+Gij{!eu$TTNUW^#?(5YrW-lI8E;rvk zbzs>(h~dk(V(`FOoxhY_{zQiNN*nNe2n#; z?0h`*$xlhOImdO@=si!KEO{A?X!vKYmSglq6aLN+5}UEbppT_lc8N&9NS{%pLvnq| zIp$Y}^FAxQf(Hu}^&}t(88WDy@Mm*Gg|n zSU06loq&FPF^slnNJej@;T>Nzscy50Udq0?!sM9EF;@p{E=o2c5&ei zKqLL|Q#T%>i@}C7Z?&tY??$xB>OK;bBr@hyglr@51R_Ku1B(ZRc8dlak|OI5(Fw^UBWD;*-xBpTvxY_;1M14md%Wmf-3Mczz^M#e z2!oi^Wv?z%&CS30n)dkPBuWp89PM@wqDklsqaOEmz5;5tZ}Ejt{pPg$;T$U&%6C-G z0~QCYRR!R~Rodxdp@ll3O7b}#u-xSkO${OfWws{sPjCAGj zZEOf)<^yD7XwL%(+2mHRD(Sqj14g&jrHasQ^ubK<*^P~-k$!;!5D>+0$FF0;_DOeH z`847H+0wSpl@P}_M2sHEDGr+yYcx^=UCy8_cJ=ZnNqd#+bYz)O;A(~vB5X$FBYp2JJ4HRZD9z{e_U9Ra`sAsJx$SdcD9 z?NQr%la2F|g-d9G`BmYTS_9Oa9TKEHs61fb?@a75xxb@OqyQ&6!h1f)504|K-+TH@ zIOi9gsRN?+({p#wf;GG-G!>K!Q!a1^IdT zBcv<&oMUhIBy@{q$G6e7s(or@Z&hBUvIX7-`i;vMChYB1NMMyuga6()miapYSV!0` zwf#xG<0;d?)sGNCOW2dy%Iz}`&H)Ed)QGD`!02(2RG*@qpNv9mqOCa5mElZb&~9m` zg-ww?ktxVZ_CWa@Xdi@lkN#g!ycfz|n5OKa%26RAG9n`nVqv!p0zu{E)qG{)^g69- zk<>ci0f72M4>w>FY#_}^+bG(30Gf9@7~d4yibGt92(pJW8Z?7+-wso#up#WbXp%j? zH5q7}366W#b-sivfDxRtLTt4G)XI~i->!v=w!F|-gGC>`_qi>IT8+73p5>;^V)H@lx# zuC$3R1l(b2-p6259A9}5<189aA~@uexP8t1xBDVmxhhOOI4PcJ0wY&HMPID_Qt6s7 zM`*j6-Xf3#N1_M`eGnWVF`tsB+`K4GEvz`xo8b>>0|27e~O_t!MSS1C67r;pnmDi?7KR+%+E=zDdUKen&lM1ma0jUSGo z<%r4q8P{A?OVsfk=Al$j+rbS8#T7^zJQCQIc$TDeaS8AyUgp)<|BBakA=YPpD=}2k zi`P`S?{o%gHTX=@C|O`w%6jU8``I(6p_T5qlim4(yYr2mDYIlKgFG`b=&G1-Ix)J< z);x3un~^v!abr3iR~J%Ru9C!$>Q+@~?Z`v%2cl9Vs!Ee_q48B2mQ7Cr0iCEMryv%+ zs->xVC0jC}EH2(u@GmX%-=2qG{Gw`2$J(>B&A;Era3dB&M2U#z3FSyYccRyvu;Y+e zgaTKr6;=TTG#|a%lLH(z$^$l$`DXEyf3k7xZ7Q8$i#BU#19v+f9G*YFH)Hhrw-QrYWBmrOH3{R(hGmci~aO9Lw_5 zstQmG#BW?P|1`0kRt^>q)A|;wrP9me5aJ)-UDQiyT~g~=y3(_d0b}n)9f~~=bzp7g zL}h1X&HULc;vyEJutm-k7S#r+d|>!~iQqhKXXhD3Pzad9n2~Sb1aSPvw)T`a(2g-G zGQ6!NIdNtK8Ae7I1g|!;oSWM1P&?^*@s*q_Z%KDGPzVHPqU6})>FNMb0PI*FY>3aC zCcHZAy*7JkQ8QPjsZf=xZs8G!s@PWDe9H2#9i87xrhzFnRj>V1X+XXA#_SfaU<#RF zi*^qt=gAEt=fV9W64|Ahc6--ky6YDY$}9ISP}>c*83TGe4RU>!-OI_ zpiE=cna-+0CJ!(hansVqY-{k>2xW@5$wYHRQG#=Q$k#V8Ylgk2<}~09F}sO$DS_2c z9Ng|!BQKe%I%Go;br*U_t4frMsOIUOcDT-E9_@nvil+4#f*OR02Etsm%7=(uSp*c| zGN1r!+yYK!Nh|cCR*9s{ReuR{?Q0&z6C66J$Tc%*97=ioLmimKw8+6t z*bbIYxmN$mF8KQgDX?*q5JXeLXNjAZr~0Ac6|l3H>=8f(q*@5w3s&|3DiM!N8EosR9@ zR$kSq93oF&>QSD}4RhttM)B65D*Hf~LE}C4SXIbpG}|}(Ku%uiu&yx2{7AP*GrVDA zsqv3_FrQX77)D`N;zxKUY4A$vgx8iUNO5=Y3=2D1d5=eN1BDsz7+_?+q!jWBG379o z>1DObh%OU8w||k$ygTzXyphp_u>}47Z-&I4@gO*s!qnSIJ$22fqf+ur->S2za@BpkinkCnpy+Z$LkcD}gO?>heb-O(S?rr=R)F>RW>oi@lI z!G(R2#Ytb@1IGL~dX@zbKR)FC!twVYWveNcGUeq_+cDX}y3;=<_BdFu9$Y*OfTn>( zn`9AWgu>57O0EyanAdk~KJ}Ybmtp$nNVg8hd-eBIS@teX3zSl=Qb^1A-_(I&}Gq(~3$&eKbf;5>9ugt1#7?VVD23(+RgWSa$oVoKtJJC5vn*w10t?*#wt8*+9hyGK zEPX72OAa_^EbVshqZbE#iB7)^P*L`=y;8HGWGaKKhck<$rIVXBES$0jD^GV7-u4VB=~Lb$hJ!yD-NbTye1G+vqAe3#B#TrM#|oD2RsPpg zrvR{<9T#p8H}!$sxle-CJNF{Zz2mC`nU$Hf_YiSPMBL5c=H@Sbc=vY?m)}4HN~NFU zzdNRN$GJxMS@u&ik7TEKA8Q|>wU73Wv#&DMFkeX$zdz=RhwNzXj$jSs1)aKj3C=I|V*u(|7DSt`8w#v8_a@n3fxDXe0-=8{c$v8SLq zQS4KLgVW>}ca_nDM!F`7z<&_O*1Xsi^Jm%$?7gDY?G6h$YT?o^oyGrgyTsd0rTXO? z)n@4=(|boBdtu>~AN%Xfl_dJFHqX@aM$CDUhXS4&?w^hg`|$@SrTD*5RT&HD zKq>UWf`Z2g+VtBud{}1?5o=ehZb-g?j+uUauCZ6is>TV5V7lkPY0;$rCt9mjh&+8JosjoQXE=U{I>B-Vrf_K@=HD? zD*3Va#a*8j_n?$&()hcx*{!Qaex%L59-klP!`#&?kJdfAN?G#PzhBw>ee1Vs(}AO=(8( z>eVZ~uf6i%rAKXd3)c8h$yTpAdxP=Plf}F7*tmMr3(tT*FU*RACjM~yvuB_C)yo@p p9KP}YzW9HO@c(NhTz+}wIqj?V(M+UmIsX3m!M^wTe>nV?{{^3V#kBwc literal 0 HcmV?d00001 diff --git a/vendor/github.com/rancher/norman/.drone.yml b/vendor/github.com/rancher/norman/.drone.yml index 8f5c37cd..a9b80360 100644 --- a/vendor/github.com/rancher/norman/.drone.yml +++ b/vendor/github.com/rancher/norman/.drone.yml @@ -1,9 +1,23 @@ --- -pipeline: - build: - privileged: true - image: rancher/dapper:1.11.2 - volumes: - - /var/run/docker.sock:/var/run/docker.sock - commands: - - dapper ci +kind: pipeline +name: default + +platform: + os: linux + arch: amd64 + +steps: +- name: build + pull: default + image: rancher/dapper:1.11.2 + commands: + - dapper ci + privileged: true + volumes: + - name: socket + path: /var/run/docker.sock + +volumes: +- name: socket + host: + path: /var/run/docker.sock diff --git a/vendor/github.com/rancher/norman/clientbase/common.go b/vendor/github.com/rancher/norman/clientbase/common.go index 2a1331fc..e1ab8f93 100644 --- a/vendor/github.com/rancher/norman/clientbase/common.go +++ b/vendor/github.com/rancher/norman/clientbase/common.go @@ -7,6 +7,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + "io" "io/ioutil" "net/http" "net/url" @@ -216,7 +217,9 @@ func NewAPIClient(opts *ClientOpts) (APIBaseClient, error) { if err != nil { return result, err } - defer resp.Body.Close() + defer func(closer io.Closer) { + closer.Close() + }(resp.Body) if resp.StatusCode != 200 { return result, NewAPIError(resp, opts.URL) @@ -242,7 +245,9 @@ func NewAPIClient(opts *ClientOpts) (APIBaseClient, error) { if err != nil { return result, err } - defer resp.Body.Close() + defer func(closer io.Closer) { + closer.Close() + }(resp.Body) if resp.StatusCode != 200 { return result, NewAPIError(resp, schemasURLs) diff --git a/vendor/github.com/rancher/norman/clientbase/ops.go b/vendor/github.com/rancher/norman/clientbase/ops.go index 92ea6e0a..52c2ba6d 100644 --- a/vendor/github.com/rancher/norman/clientbase/ops.go +++ b/vendor/github.com/rancher/norman/clientbase/ops.go @@ -120,6 +120,12 @@ func (a *APIOperations) DoNext(nextURL string, respObject interface{}) error { } func (a *APIOperations) DoModify(method string, url string, createObj interface{}, respObject interface{}) error { + if createObj == nil { + createObj = map[string]string{} + } + if respObject == nil { + respObject = &map[string]interface{}{} + } bodyContent, err := json.Marshal(createObj) if err != nil { return err diff --git a/vendor/github.com/rancher/norman/controller/generic_controller.go b/vendor/github.com/rancher/norman/controller/generic_controller.go index c5213175..02fed9c9 100644 --- a/vendor/github.com/rancher/norman/controller/generic_controller.go +++ b/vendor/github.com/rancher/norman/controller/generic_controller.go @@ -304,7 +304,7 @@ func filterConflictsError(err error) error { var newErrors []error for _, err := range errs.Errors { if !ignoreError(err, true) { - newErrors = append(newErrors) + newErrors = append(newErrors, err) } } return types.NewErrors(newErrors...) diff --git a/vendor/github.com/rancher/norman/generator/controller_template.go b/vendor/github.com/rancher/norman/generator/controller_template.go index 081d9557..4001678e 100644 --- a/vendor/github.com/rancher/norman/generator/controller_template.go +++ b/vendor/github.com/rancher/norman/generator/controller_template.go @@ -46,7 +46,7 @@ func New{{.schema.CodeName}}(namespace, name string, obj {{.prefix}}{{.schema.Co type {{.schema.CodeName}}List struct { metav1.TypeMeta %BACK%json:",inline"%BACK% metav1.ListMeta %BACK%json:"metadata,omitempty"%BACK% - Items []{{.prefix}}{{.schema.CodeName}} + Items []{{.prefix}}{{.schema.CodeName}} %BACK%json:"items"%BACK% } type {{.schema.CodeName}}HandlerFunc func(key string, obj *{{.prefix}}{{.schema.CodeName}}) (runtime.Object, error) diff --git a/vendor/github.com/rancher/norman/generator/generator.go b/vendor/github.com/rancher/norman/generator/generator.go index a4813235..84c4273b 100644 --- a/vendor/github.com/rancher/norman/generator/generator.go +++ b/vendor/github.com/rancher/norman/generator/generator.go @@ -1,6 +1,7 @@ package generator import ( + "bytes" "fmt" "io/ioutil" "net/http" @@ -11,6 +12,7 @@ import ( "strings" "text/template" + "github.com/matryer/moq/pkg/moq" "github.com/pkg/errors" "github.com/rancher/norman/types" "github.com/rancher/norman/types/convert" @@ -306,7 +308,9 @@ func GenerateControllerForTypes(version *types.APIVersion, k8sOutputPackage stri baseDir := args.DefaultSourceTree() k8sDir := path.Join(baseDir, k8sOutputPackage) - if err := prepareDirs(k8sDir); err != nil { + fakeDir := path.Join(k8sDir, "fakes") + + if err := prepareDirs(k8sDir, fakeDir); err != nil { return err } @@ -358,6 +362,10 @@ func GenerateControllerForTypes(version *types.APIVersion, k8sOutputPackage stri return err } + if err := generateFakes(k8sDir, controllers); err != nil { + return err + } + return gofmt(baseDir, k8sOutputPackage) } @@ -370,7 +378,9 @@ func Generate(schemas *types.Schemas, privateTypes map[string]bool, cattleOutput cattleDir = "" } - if err := prepareDirs(cattleDir, k8sDir); err != nil { + fakeDir := path.Join(k8sDir, "fakes") + + if err := prepareDirs(cattleDir, k8sDir, fakeDir); err != nil { return err } @@ -426,6 +436,9 @@ func Generate(schemas *types.Schemas, privateTypes map[string]bool, cattleOutput if err := generateScheme(false, k8sDir, &controllers[0].Version, controllers); err != nil { return err } + if err := generateFakes(k8sDir, controllers); err != nil { + return err + } } if err := gofmt(baseDir, k8sOutputPackage); err != nil { @@ -455,7 +468,7 @@ func prepareDirs(dirs ...string) error { } for _, file := range files { - if strings.HasPrefix(file.Name(), "zz_generated") { + if strings.HasPrefix(file.Name(), "zz_generated") || strings.HasSuffix(file.Name(), "_mock_test.go") { if err := os.Remove(path.Join(dir, file.Name())); err != nil { return errors.Wrapf(err, "failed to delete %s", path.Join(dir, file.Name())) } @@ -531,3 +544,33 @@ func isObjectOrList(t *gengotypes.Type) bool { return false } + +func generateFakes(k8sDir string, controllers []*types.Schema) error { + m, err := moq.New(k8sDir, "fakes") + if err != nil { + return err + } + + for _, controller := range controllers { + var out bytes.Buffer + + interfaceNames := []string{ + controller.CodeName + "Lister", + controller.CodeName + "Controller", + controller.CodeName + "Interface", + controller.CodeNamePlural + "Getter", + } + + err = m.Mock(&out, interfaceNames...) + if err != nil { + return err + } + // create the file + filePath := path.Join(k8sDir, "fakes", "zz_generated_"+addUnderscore(controller.ID)+"_mock_test.go") + err = ioutil.WriteFile(filePath, out.Bytes(), 0644) + if err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/rancher/norman/generator/scheme_template.go b/vendor/github.com/rancher/norman/generator/scheme_template.go index 0ef19048..031f55d6 100644 --- a/vendor/github.com/rancher/norman/generator/scheme_template.go +++ b/vendor/github.com/rancher/norman/generator/scheme_template.go @@ -3,6 +3,7 @@ package generator var schemeTemplate = `package {{.version.Version}} import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) @@ -37,6 +38,7 @@ func addKnownTypes(scheme *runtime.Scheme) error { {{range .names}} &{{.}}{},{{end}} ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil } ` diff --git a/vendor/github.com/rancher/norman/objectclient/object_client.go b/vendor/github.com/rancher/norman/objectclient/object_client.go index 01d1b930..9a09bf0e 100644 --- a/vendor/github.com/rancher/norman/objectclient/object_client.go +++ b/vendor/github.com/rancher/norman/objectclient/object_client.go @@ -102,6 +102,13 @@ func (p *ObjectClient) Create(o runtime.Object) (runtime.Object, error) { labels := obj.GetLabels() if labels == nil { labels = make(map[string]string) + } else { + ls := make(map[string]string) + for k, v := range labels { + ls[k] = v + } + labels = ls + } labels["cattle.io/creator"] = "norman" obj.SetLabels(labels) diff --git a/vendor/github.com/rancher/norman/restwatch/rest.go b/vendor/github.com/rancher/norman/restwatch/rest.go index 25092052..52d14591 100644 --- a/vendor/github.com/rancher/norman/restwatch/rest.go +++ b/vendor/github.com/rancher/norman/restwatch/rest.go @@ -21,7 +21,7 @@ func UnversionedRESTClientFor(config *rest.Config) (rest.Interface, error) { } newConfig := *config - newConfig.Timeout = time.Hour + newConfig.Timeout = 30 * time.Minute watchClient, err := rest.UnversionedRESTClientFor(&newConfig) if err != nil { return nil, err diff --git a/vendor/github.com/rancher/norman/store/proxy/proxy_store.go b/vendor/github.com/rancher/norman/store/proxy/proxy_store.go index 245e72a9..13927dca 100644 --- a/vendor/github.com/rancher/norman/store/proxy/proxy_store.go +++ b/vendor/github.com/rancher/norman/store/proxy/proxy_store.go @@ -17,6 +17,7 @@ import ( "github.com/rancher/norman/types/convert/merge" "github.com/rancher/norman/types/values" "github.com/sirupsen/logrus" + "golang.org/x/sync/errgroup" "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -192,11 +193,41 @@ func (s *Store) Context() types.StorageContext { } func (s *Store) List(apiContext *types.APIContext, schema *types.Schema, opt *types.QueryOptions) ([]map[string]interface{}, error) { - namespace := getNamespace(apiContext, opt) + var resultList unstructured.UnstructuredList - resultList, err := s.retryList(namespace, apiContext) - if err != nil { - return nil, err + // if there are no namespaces field in options, a single request is made + if opt == nil || opt.Namespaces == nil { + ns := getNamespace(apiContext, opt) + list, err := s.retryList(ns, apiContext) + if err != nil { + return nil, err + } + resultList = *list + } else { + var ( + errGroup errgroup.Group + mux sync.Mutex + ) + + allNS := opt.Namespaces + for _, ns := range allNS { + nsCopy := ns + errGroup.Go(func() error { + list, err := s.retryList(nsCopy, apiContext) + if err != nil { + return err + } + + mux.Lock() + resultList.Items = append(resultList.Items, list.Items...) + mux.Unlock() + + return nil + }) + } + if err := errGroup.Wait(); err != nil { + return nil, err + } } var result []map[string]interface{} @@ -256,7 +287,7 @@ func (s *Store) realWatch(apiContext *types.APIContext, schema *types.Schema, op k8sClient = watchClient.WatchClient() } - timeout := int64(60 * 60) + timeout := int64(60 * 30) req := s.common(namespace, k8sClient.Get()) req.VersionedParams(&metav1.ListOptions{ Watch: true, diff --git a/vendor/github.com/rancher/norman/types/mapper/embed.go b/vendor/github.com/rancher/norman/types/mapper/embed.go index 554e2435..b1d35d98 100644 --- a/vendor/github.com/rancher/norman/types/mapper/embed.go +++ b/vendor/github.com/rancher/norman/types/mapper/embed.go @@ -70,10 +70,11 @@ func (e *Embed) ModifySchema(schema *types.Schema, schemas *types.Schemas) error } deleteField := true +outer: for name, field := range embeddedSchema.ResourceFields { for _, ignore := range e.Ignore { if ignore == name { - continue + continue outer } } diff --git a/vendor/github.com/rancher/norman/types/schemas.go b/vendor/github.com/rancher/norman/types/schemas.go index 0e72a178..2afee0aa 100644 --- a/vendor/github.com/rancher/norman/types/schemas.go +++ b/vendor/github.com/rancher/norman/types/schemas.go @@ -108,10 +108,16 @@ func (s *Schemas) removeReferences(schema *Schema) { func (s *Schemas) AddSchema(schema Schema) *Schemas { s.Lock() defer s.Unlock() - return s.doAddSchema(schema) + return s.doAddSchema(schema, false) } -func (s *Schemas) doAddSchema(schema Schema) *Schemas { +func (s *Schemas) ForceAddSchema(schema Schema) *Schemas { + s.Lock() + defer s.Unlock() + return s.doAddSchema(schema, true) +} + +func (s *Schemas) doAddSchema(schema Schema, replace bool) *Schemas { s.setupDefaults(&schema) if s.AddHook != nil { @@ -125,9 +131,20 @@ func (s *Schemas) doAddSchema(schema Schema) *Schemas { s.versions = append(s.versions, schema.Version) } - if _, ok := schemas[schema.ID]; !ok { + if _, ok := schemas[schema.ID]; !ok || + (replace && schema.DynamicSchemaVersion != schemas[schema.ID].DynamicSchemaVersion) { schemas[schema.ID] = &schema - s.schemas = append(s.schemas, &schema) + + if replace { + for i, candidate := range s.schemas { + if candidate.ID == schema.ID { + s.schemas[i] = &schema + break + } + } + } else { + s.schemas = append(s.schemas, &schema) + } if !schema.Embed { s.addReferences(&schema) @@ -159,7 +176,7 @@ func (s *Schemas) removeEmbed(schema *Schema) { } s.doRemoveSchema(*target) - s.doAddSchema(newSchema) + s.doAddSchema(newSchema, false) } func (s *Schemas) embed(schema *Schema) { @@ -184,7 +201,7 @@ func (s *Schemas) embed(schema *Schema) { } s.doRemoveSchema(*target) - s.doAddSchema(newSchema) + s.doAddSchema(newSchema, false) } func (s *Schemas) addReferences(schema *Schema) { diff --git a/vendor/github.com/rancher/norman/types/server_types.go b/vendor/github.com/rancher/norman/types/server_types.go index 7fede86f..7e36aa22 100644 --- a/vendor/github.com/rancher/norman/types/server_types.go +++ b/vendor/github.com/rancher/norman/types/server_types.go @@ -184,6 +184,8 @@ type QueryOptions struct { Pagination *Pagination Conditions []*QueryCondition Options map[string]string + // Set namespaces to an empty array will result in an empty response + Namespaces []string } type ReferenceValidator interface { diff --git a/vendor/github.com/rancher/norman/types/types.go b/vendor/github.com/rancher/norman/types/types.go index 21106f5a..9edfd764 100644 --- a/vendor/github.com/rancher/norman/types/types.go +++ b/vendor/github.com/rancher/norman/types/types.go @@ -94,25 +94,26 @@ var NamespaceScope TypeScope = "namespace" type TypeScope string type Schema struct { - ID string `json:"id,omitempty"` - Embed bool `json:"embed,omitempty"` - EmbedType string `json:"embedType,omitempty"` - CodeName string `json:"-"` - CodeNamePlural string `json:"-"` - PkgName string `json:"-"` - Type string `json:"type,omitempty"` - BaseType string `json:"baseType,omitempty"` - Links map[string]string `json:"links"` - Version APIVersion `json:"version"` - PluralName string `json:"pluralName,omitempty"` - ResourceMethods []string `json:"resourceMethods,omitempty"` - ResourceFields map[string]Field `json:"resourceFields"` - ResourceActions map[string]Action `json:"resourceActions,omitempty"` - CollectionMethods []string `json:"collectionMethods,omitempty"` - CollectionFields map[string]Field `json:"collectionFields,omitempty"` - CollectionActions map[string]Action `json:"collectionActions,omitempty"` - CollectionFilters map[string]Filter `json:"collectionFilters,omitempty"` - Scope TypeScope `json:"-"` + ID string `json:"id,omitempty"` + Embed bool `json:"embed,omitempty"` + EmbedType string `json:"embedType,omitempty"` + CodeName string `json:"-"` + CodeNamePlural string `json:"-"` + PkgName string `json:"-"` + Type string `json:"type,omitempty"` + BaseType string `json:"baseType,omitempty"` + Links map[string]string `json:"links"` + Version APIVersion `json:"version"` + PluralName string `json:"pluralName,omitempty"` + ResourceMethods []string `json:"resourceMethods,omitempty"` + ResourceFields map[string]Field `json:"resourceFields"` + ResourceActions map[string]Action `json:"resourceActions,omitempty"` + CollectionMethods []string `json:"collectionMethods,omitempty"` + CollectionFields map[string]Field `json:"collectionFields,omitempty"` + CollectionActions map[string]Action `json:"collectionActions,omitempty"` + CollectionFilters map[string]Filter `json:"collectionFilters,omitempty"` + DynamicSchemaVersion string `json:"dynamicSchemaVersion,omitempty"` + Scope TypeScope `json:"-"` InternalSchema *Schema `json:"-"` Mapper Mapper `json:"-"` diff --git a/vendor/github.com/rancher/norman/vendor.conf b/vendor/github.com/rancher/norman/vendor.conf index afb270b4..fed23e84 100644 --- a/vendor/github.com/rancher/norman/vendor.conf +++ b/vendor/github.com/rancher/norman/vendor.conf @@ -5,4 +5,6 @@ k8s.io/kubernetes v1.12.2-lite1 https github.com/maruel/panicparse c0182c169410cfa80c7e8f046dad208eaef91338 bitbucket.org/ww/goautoneg a547fc61f48d567d5b4ec6f8aee5573d8efce11d https://github.com/rancher/goautoneg.git golang.org/x/sync fd80eb99c8f653c847d294a001bdf2a3a6f768f5 +golang.org/x/tools 202502a5a9245830b5ec7b877e26b67760da8e67 github.com/gorilla/mux v1.6.1 +github.com/matryer/moq ee5226d4300902ed04c84bde4837cb123d936feb https://github.com/rancher/moq \ No newline at end of file diff --git a/vendor/golang.org/x/tools/CONTRIBUTING.md b/vendor/golang.org/x/tools/CONTRIBUTING.md index 88dff59b..d0485e88 100644 --- a/vendor/golang.org/x/tools/CONTRIBUTING.md +++ b/vendor/golang.org/x/tools/CONTRIBUTING.md @@ -4,16 +4,15 @@ Go is an open source project. It is the work of hundreds of contributors. We appreciate your help! - ## Filing issues When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions: -1. What version of Go are you using (`go version`)? -2. What operating system and processor architecture are you using? -3. What did you do? -4. What did you expect to see? -5. What did you see instead? +1. What version of Go are you using (`go version`)? +2. What operating system and processor architecture are you using? +3. What did you do? +4. What did you expect to see? +5. What did you see instead? General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. The gophers there will answer or ask you to file an issue if you've tripped over a bug. @@ -23,9 +22,5 @@ The gophers there will answer or ask you to file an issue if you've tripped over Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) before sending patches. -**We do not accept GitHub pull requests** -(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review). - Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file. - diff --git a/vendor/golang.org/x/tools/README b/vendor/golang.org/x/tools/README deleted file mode 100644 index d5944c6d..00000000 --- a/vendor/golang.org/x/tools/README +++ /dev/null @@ -1,10 +0,0 @@ -This subrepository holds the source for various packages and tools that support -the Go programming language. - -Some of the tools, godoc and vet for example, are included in binary Go distributions. -Others, including the Go guru and the test coverage tool, can be fetched with "go get". - -Packages include a type-checker for Go and an implementation of the -Static Single Assignment form (SSA) representation for Go programs. - -To submit changes to this repository, see http://golang.org/doc/contribute.html. diff --git a/vendor/golang.org/x/tools/README.md b/vendor/golang.org/x/tools/README.md new file mode 100644 index 00000000..20be9e1a --- /dev/null +++ b/vendor/golang.org/x/tools/README.md @@ -0,0 +1,27 @@ +# Go Tools + +This subrepository holds the source for various packages and tools that support +the Go programming language. + +Some of the tools, `godoc` and `vet` for example, are included in binary Go +distributions. + +Others, including the Go `guru` and the test coverage tool, can be fetched with +`go get`. + +Packages include a type-checker for Go and an implementation of the +Static Single Assignment form (SSA) representation for Go programs. + +## Download/Install + +The easiest way to install is to run `go get -u golang.org/x/tools/...`. You can +also manually git clone the repository to `$GOPATH/src/golang.org/x/tools`. + +## Report Issues / Send Patches + +This repository uses Gerrit for code changes. To learn how to submit changes to +this repository, see https://golang.org/doc/contribute.html. + +The main issue tracker for the tools repository is located at +https://github.com/golang/go/issues. Prefix your issue with "x/tools/(your +subdir):" in the subject line, so it is easy to find. diff --git a/vendor/golang.org/x/tools/go.mod b/vendor/golang.org/x/tools/go.mod new file mode 100644 index 00000000..4f4b20e9 --- /dev/null +++ b/vendor/golang.org/x/tools/go.mod @@ -0,0 +1,3 @@ +module golang.org/x/tools + +require golang.org/x/net v0.0.0-20190311183353-d8887717615a diff --git a/vendor/golang.org/x/tools/go.sum b/vendor/golang.org/x/tools/go.sum new file mode 100644 index 00000000..ffedec01 --- /dev/null +++ b/vendor/golang.org/x/tools/go.sum @@ -0,0 +1,5 @@ +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go index 36c536b5..3e4b1953 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/imports.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/imports.go @@ -14,26 +14,26 @@ import ( ) // AddImport adds the import path to the file f, if absent. -func AddImport(fset *token.FileSet, f *ast.File, ipath string) (added bool) { - return AddNamedImport(fset, f, "", ipath) +func AddImport(fset *token.FileSet, f *ast.File, path string) (added bool) { + return AddNamedImport(fset, f, "", path) } -// AddNamedImport adds the import path to the file f, if absent. +// AddNamedImport adds the import with the given name and path to the file f, if absent. // If name is not empty, it is used to rename the import. // // For example, calling // AddNamedImport(fset, f, "pathpkg", "path") // adds // import pathpkg "path" -func AddNamedImport(fset *token.FileSet, f *ast.File, name, ipath string) (added bool) { - if imports(f, ipath) { +func AddNamedImport(fset *token.FileSet, f *ast.File, name, path string) (added bool) { + if imports(f, name, path) { return false } newImport := &ast.ImportSpec{ Path: &ast.BasicLit{ Kind: token.STRING, - Value: strconv.Quote(ipath), + Value: strconv.Quote(path), }, } if name != "" { @@ -43,12 +43,14 @@ func AddNamedImport(fset *token.FileSet, f *ast.File, name, ipath string) (added // Find an import decl to add to. // The goal is to find an existing import // whose import path has the longest shared - // prefix with ipath. + // prefix with path. var ( bestMatch = -1 // length of longest shared prefix lastImport = -1 // index in f.Decls of the file's final import decl impDecl *ast.GenDecl // import decl containing the best match impIndex = -1 // spec index in impDecl containing the best match + + isThirdPartyPath = isThirdParty(path) ) for i, decl := range f.Decls { gen, ok := decl.(*ast.GenDecl) @@ -65,15 +67,27 @@ func AddNamedImport(fset *token.FileSet, f *ast.File, name, ipath string) (added impDecl = gen } - // Compute longest shared prefix with imports in this group. + // Compute longest shared prefix with imports in this group and find best + // matched import spec. + // 1. Always prefer import spec with longest shared prefix. + // 2. While match length is 0, + // - for stdlib package: prefer first import spec. + // - for third party package: prefer first third party import spec. + // We cannot use last import spec as best match for third party package + // because grouped imports are usually placed last by goimports -local + // flag. + // See issue #19190. + seenAnyThirdParty := false for j, spec := range gen.Specs { impspec := spec.(*ast.ImportSpec) - n := matchLen(importPath(impspec), ipath) - if n > bestMatch { + p := importPath(impspec) + n := matchLen(p, path) + if n > bestMatch || (bestMatch == 0 && !seenAnyThirdParty && isThirdPartyPath) { bestMatch = n impDecl = gen impIndex = j } + seenAnyThirdParty = seenAnyThirdParty || isThirdParty(p) } } } @@ -87,8 +101,8 @@ func AddNamedImport(fset *token.FileSet, f *ast.File, name, ipath string) (added impDecl.TokPos = f.Decls[lastImport].End() } else { // There are no existing imports. - // Our new import goes after the package declaration and after - // the comment, if any, that starts on the same line as the + // Our new import, preceded by a blank line, goes after the package declaration + // and after the comment, if any, that starts on the same line as the // package declaration. impDecl.TokPos = f.Package @@ -98,7 +112,8 @@ func AddNamedImport(fset *token.FileSet, f *ast.File, name, ipath string) (added if file.Line(c.Pos()) > pkgLine { break } - impDecl.TokPos = c.End() + // +2 for a blank line + impDecl.TokPos = c.End() + 2 } } f.Decls = append(f.Decls, nil) @@ -175,12 +190,20 @@ func AddNamedImport(fset *token.FileSet, f *ast.File, name, ipath string) (added return true } +func isThirdParty(importPath string) bool { + // Third party package import path usually contains "." (".com", ".org", ...) + // This logic is taken from golang.org/x/tools/imports package. + return strings.Contains(importPath, ".") +} + // DeleteImport deletes the import path from the file f, if present. +// If there are duplicate import declarations, all matching ones are deleted. func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) { return DeleteNamedImport(fset, f, "", path) } // DeleteNamedImport deletes the import with the given name and path from the file f, if present. +// If there are duplicate import declarations, all matching ones are deleted. func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) { var delspecs []*ast.ImportSpec var delcomments []*ast.CommentGroup @@ -195,13 +218,7 @@ func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (del for j := 0; j < len(gen.Specs); j++ { spec := gen.Specs[j] impspec := spec.(*ast.ImportSpec) - if impspec.Name == nil && name != "" { - continue - } - if impspec.Name != nil && impspec.Name.Name != name { - continue - } - if importPath(impspec) != path { + if importName(impspec) != name || importPath(impspec) != path { continue } @@ -262,7 +279,7 @@ func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (del // There was a blank line immediately preceding the deleted import, // so there's no need to close the hole. // Do nothing. - } else { + } else if line != fset.File(gen.Rparen).LineCount() { // There was no blank line. Close the hole. fset.File(gen.Rparen).MergeLine(line) } @@ -362,9 +379,14 @@ func (fn visitFn) Visit(node ast.Node) ast.Visitor { return fn } -// imports returns true if f imports path. -func imports(f *ast.File, path string) bool { - return importSpec(f, path) != nil +// imports reports whether f has an import with the specified name and path. +func imports(f *ast.File, name, path string) bool { + for _, s := range f.Imports { + if importName(s) == name && importPath(s) == path { + return true + } + } + return false } // importSpec returns the import spec if f imports path, @@ -378,14 +400,23 @@ func importSpec(f *ast.File, path string) *ast.ImportSpec { return nil } +// importName returns the name of s, +// or "" if the import is not named. +func importName(s *ast.ImportSpec) string { + if s.Name == nil { + return "" + } + return s.Name.Name +} + // importPath returns the unquoted import path of s, // or "" if the path is not properly quoted. func importPath(s *ast.ImportSpec) string { t, err := strconv.Unquote(s.Path.Value) - if err == nil { - return t + if err != nil { + return "" } - return "" + return t } // declImports reports whether gen contains an import of path. diff --git a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go new file mode 100644 index 00000000..cf72ea99 --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go @@ -0,0 +1,477 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package astutil + +import ( + "fmt" + "go/ast" + "reflect" + "sort" +) + +// An ApplyFunc is invoked by Apply for each node n, even if n is nil, +// before and/or after the node's children, using a Cursor describing +// the current node and providing operations on it. +// +// The return value of ApplyFunc controls the syntax tree traversal. +// See Apply for details. +type ApplyFunc func(*Cursor) bool + +// Apply traverses a syntax tree recursively, starting with root, +// and calling pre and post for each node as described below. +// Apply returns the syntax tree, possibly modified. +// +// If pre is not nil, it is called for each node before the node's +// children are traversed (pre-order). If pre returns false, no +// children are traversed, and post is not called for that node. +// +// If post is not nil, and a prior call of pre didn't return false, +// post is called for each node after its children are traversed +// (post-order). If post returns false, traversal is terminated and +// Apply returns immediately. +// +// Only fields that refer to AST nodes are considered children; +// i.e., token.Pos, Scopes, Objects, and fields of basic types +// (strings, etc.) are ignored. +// +// Children are traversed in the order in which they appear in the +// respective node's struct definition. A package's files are +// traversed in the filenames' alphabetical order. +// +func Apply(root ast.Node, pre, post ApplyFunc) (result ast.Node) { + parent := &struct{ ast.Node }{root} + defer func() { + if r := recover(); r != nil && r != abort { + panic(r) + } + result = parent.Node + }() + a := &application{pre: pre, post: post} + a.apply(parent, "Node", nil, root) + return +} + +var abort = new(int) // singleton, to signal termination of Apply + +// A Cursor describes a node encountered during Apply. +// Information about the node and its parent is available +// from the Node, Parent, Name, and Index methods. +// +// If p is a variable of type and value of the current parent node +// c.Parent(), and f is the field identifier with name c.Name(), +// the following invariants hold: +// +// p.f == c.Node() if c.Index() < 0 +// p.f[c.Index()] == c.Node() if c.Index() >= 0 +// +// The methods Replace, Delete, InsertBefore, and InsertAfter +// can be used to change the AST without disrupting Apply. +type Cursor struct { + parent ast.Node + name string + iter *iterator // valid if non-nil + node ast.Node +} + +// Node returns the current Node. +func (c *Cursor) Node() ast.Node { return c.node } + +// Parent returns the parent of the current Node. +func (c *Cursor) Parent() ast.Node { return c.parent } + +// Name returns the name of the parent Node field that contains the current Node. +// If the parent is a *ast.Package and the current Node is a *ast.File, Name returns +// the filename for the current Node. +func (c *Cursor) Name() string { return c.name } + +// Index reports the index >= 0 of the current Node in the slice of Nodes that +// contains it, or a value < 0 if the current Node is not part of a slice. +// The index of the current node changes if InsertBefore is called while +// processing the current node. +func (c *Cursor) Index() int { + if c.iter != nil { + return c.iter.index + } + return -1 +} + +// field returns the current node's parent field value. +func (c *Cursor) field() reflect.Value { + return reflect.Indirect(reflect.ValueOf(c.parent)).FieldByName(c.name) +} + +// Replace replaces the current Node with n. +// The replacement node is not walked by Apply. +func (c *Cursor) Replace(n ast.Node) { + if _, ok := c.node.(*ast.File); ok { + file, ok := n.(*ast.File) + if !ok { + panic("attempt to replace *ast.File with non-*ast.File") + } + c.parent.(*ast.Package).Files[c.name] = file + return + } + + v := c.field() + if i := c.Index(); i >= 0 { + v = v.Index(i) + } + v.Set(reflect.ValueOf(n)) +} + +// Delete deletes the current Node from its containing slice. +// If the current Node is not part of a slice, Delete panics. +// As a special case, if the current node is a package file, +// Delete removes it from the package's Files map. +func (c *Cursor) Delete() { + if _, ok := c.node.(*ast.File); ok { + delete(c.parent.(*ast.Package).Files, c.name) + return + } + + i := c.Index() + if i < 0 { + panic("Delete node not contained in slice") + } + v := c.field() + l := v.Len() + reflect.Copy(v.Slice(i, l), v.Slice(i+1, l)) + v.Index(l - 1).Set(reflect.Zero(v.Type().Elem())) + v.SetLen(l - 1) + c.iter.step-- +} + +// InsertAfter inserts n after the current Node in its containing slice. +// If the current Node is not part of a slice, InsertAfter panics. +// Apply does not walk n. +func (c *Cursor) InsertAfter(n ast.Node) { + i := c.Index() + if i < 0 { + panic("InsertAfter node not contained in slice") + } + v := c.field() + v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem()))) + l := v.Len() + reflect.Copy(v.Slice(i+2, l), v.Slice(i+1, l)) + v.Index(i + 1).Set(reflect.ValueOf(n)) + c.iter.step++ +} + +// InsertBefore inserts n before the current Node in its containing slice. +// If the current Node is not part of a slice, InsertBefore panics. +// Apply will not walk n. +func (c *Cursor) InsertBefore(n ast.Node) { + i := c.Index() + if i < 0 { + panic("InsertBefore node not contained in slice") + } + v := c.field() + v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem()))) + l := v.Len() + reflect.Copy(v.Slice(i+1, l), v.Slice(i, l)) + v.Index(i).Set(reflect.ValueOf(n)) + c.iter.index++ +} + +// application carries all the shared data so we can pass it around cheaply. +type application struct { + pre, post ApplyFunc + cursor Cursor + iter iterator +} + +func (a *application) apply(parent ast.Node, name string, iter *iterator, n ast.Node) { + // convert typed nil into untyped nil + if v := reflect.ValueOf(n); v.Kind() == reflect.Ptr && v.IsNil() { + n = nil + } + + // avoid heap-allocating a new cursor for each apply call; reuse a.cursor instead + saved := a.cursor + a.cursor.parent = parent + a.cursor.name = name + a.cursor.iter = iter + a.cursor.node = n + + if a.pre != nil && !a.pre(&a.cursor) { + a.cursor = saved + return + } + + // walk children + // (the order of the cases matches the order of the corresponding node types in go/ast) + switch n := n.(type) { + case nil: + // nothing to do + + // Comments and fields + case *ast.Comment: + // nothing to do + + case *ast.CommentGroup: + if n != nil { + a.applyList(n, "List") + } + + case *ast.Field: + a.apply(n, "Doc", nil, n.Doc) + a.applyList(n, "Names") + a.apply(n, "Type", nil, n.Type) + a.apply(n, "Tag", nil, n.Tag) + a.apply(n, "Comment", nil, n.Comment) + + case *ast.FieldList: + a.applyList(n, "List") + + // Expressions + case *ast.BadExpr, *ast.Ident, *ast.BasicLit: + // nothing to do + + case *ast.Ellipsis: + a.apply(n, "Elt", nil, n.Elt) + + case *ast.FuncLit: + a.apply(n, "Type", nil, n.Type) + a.apply(n, "Body", nil, n.Body) + + case *ast.CompositeLit: + a.apply(n, "Type", nil, n.Type) + a.applyList(n, "Elts") + + case *ast.ParenExpr: + a.apply(n, "X", nil, n.X) + + case *ast.SelectorExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Sel", nil, n.Sel) + + case *ast.IndexExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Index", nil, n.Index) + + case *ast.SliceExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Low", nil, n.Low) + a.apply(n, "High", nil, n.High) + a.apply(n, "Max", nil, n.Max) + + case *ast.TypeAssertExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Type", nil, n.Type) + + case *ast.CallExpr: + a.apply(n, "Fun", nil, n.Fun) + a.applyList(n, "Args") + + case *ast.StarExpr: + a.apply(n, "X", nil, n.X) + + case *ast.UnaryExpr: + a.apply(n, "X", nil, n.X) + + case *ast.BinaryExpr: + a.apply(n, "X", nil, n.X) + a.apply(n, "Y", nil, n.Y) + + case *ast.KeyValueExpr: + a.apply(n, "Key", nil, n.Key) + a.apply(n, "Value", nil, n.Value) + + // Types + case *ast.ArrayType: + a.apply(n, "Len", nil, n.Len) + a.apply(n, "Elt", nil, n.Elt) + + case *ast.StructType: + a.apply(n, "Fields", nil, n.Fields) + + case *ast.FuncType: + a.apply(n, "Params", nil, n.Params) + a.apply(n, "Results", nil, n.Results) + + case *ast.InterfaceType: + a.apply(n, "Methods", nil, n.Methods) + + case *ast.MapType: + a.apply(n, "Key", nil, n.Key) + a.apply(n, "Value", nil, n.Value) + + case *ast.ChanType: + a.apply(n, "Value", nil, n.Value) + + // Statements + case *ast.BadStmt: + // nothing to do + + case *ast.DeclStmt: + a.apply(n, "Decl", nil, n.Decl) + + case *ast.EmptyStmt: + // nothing to do + + case *ast.LabeledStmt: + a.apply(n, "Label", nil, n.Label) + a.apply(n, "Stmt", nil, n.Stmt) + + case *ast.ExprStmt: + a.apply(n, "X", nil, n.X) + + case *ast.SendStmt: + a.apply(n, "Chan", nil, n.Chan) + a.apply(n, "Value", nil, n.Value) + + case *ast.IncDecStmt: + a.apply(n, "X", nil, n.X) + + case *ast.AssignStmt: + a.applyList(n, "Lhs") + a.applyList(n, "Rhs") + + case *ast.GoStmt: + a.apply(n, "Call", nil, n.Call) + + case *ast.DeferStmt: + a.apply(n, "Call", nil, n.Call) + + case *ast.ReturnStmt: + a.applyList(n, "Results") + + case *ast.BranchStmt: + a.apply(n, "Label", nil, n.Label) + + case *ast.BlockStmt: + a.applyList(n, "List") + + case *ast.IfStmt: + a.apply(n, "Init", nil, n.Init) + a.apply(n, "Cond", nil, n.Cond) + a.apply(n, "Body", nil, n.Body) + a.apply(n, "Else", nil, n.Else) + + case *ast.CaseClause: + a.applyList(n, "List") + a.applyList(n, "Body") + + case *ast.SwitchStmt: + a.apply(n, "Init", nil, n.Init) + a.apply(n, "Tag", nil, n.Tag) + a.apply(n, "Body", nil, n.Body) + + case *ast.TypeSwitchStmt: + a.apply(n, "Init", nil, n.Init) + a.apply(n, "Assign", nil, n.Assign) + a.apply(n, "Body", nil, n.Body) + + case *ast.CommClause: + a.apply(n, "Comm", nil, n.Comm) + a.applyList(n, "Body") + + case *ast.SelectStmt: + a.apply(n, "Body", nil, n.Body) + + case *ast.ForStmt: + a.apply(n, "Init", nil, n.Init) + a.apply(n, "Cond", nil, n.Cond) + a.apply(n, "Post", nil, n.Post) + a.apply(n, "Body", nil, n.Body) + + case *ast.RangeStmt: + a.apply(n, "Key", nil, n.Key) + a.apply(n, "Value", nil, n.Value) + a.apply(n, "X", nil, n.X) + a.apply(n, "Body", nil, n.Body) + + // Declarations + case *ast.ImportSpec: + a.apply(n, "Doc", nil, n.Doc) + a.apply(n, "Name", nil, n.Name) + a.apply(n, "Path", nil, n.Path) + a.apply(n, "Comment", nil, n.Comment) + + case *ast.ValueSpec: + a.apply(n, "Doc", nil, n.Doc) + a.applyList(n, "Names") + a.apply(n, "Type", nil, n.Type) + a.applyList(n, "Values") + a.apply(n, "Comment", nil, n.Comment) + + case *ast.TypeSpec: + a.apply(n, "Doc", nil, n.Doc) + a.apply(n, "Name", nil, n.Name) + a.apply(n, "Type", nil, n.Type) + a.apply(n, "Comment", nil, n.Comment) + + case *ast.BadDecl: + // nothing to do + + case *ast.GenDecl: + a.apply(n, "Doc", nil, n.Doc) + a.applyList(n, "Specs") + + case *ast.FuncDecl: + a.apply(n, "Doc", nil, n.Doc) + a.apply(n, "Recv", nil, n.Recv) + a.apply(n, "Name", nil, n.Name) + a.apply(n, "Type", nil, n.Type) + a.apply(n, "Body", nil, n.Body) + + // Files and packages + case *ast.File: + a.apply(n, "Doc", nil, n.Doc) + a.apply(n, "Name", nil, n.Name) + a.applyList(n, "Decls") + // Don't walk n.Comments; they have either been walked already if + // they are Doc comments, or they can be easily walked explicitly. + + case *ast.Package: + // collect and sort names for reproducible behavior + var names []string + for name := range n.Files { + names = append(names, name) + } + sort.Strings(names) + for _, name := range names { + a.apply(n, name, nil, n.Files[name]) + } + + default: + panic(fmt.Sprintf("Apply: unexpected node type %T", n)) + } + + if a.post != nil && !a.post(&a.cursor) { + panic(abort) + } + + a.cursor = saved +} + +// An iterator controls iteration over a slice of nodes. +type iterator struct { + index, step int +} + +func (a *application) applyList(parent ast.Node, name string) { + // avoid heap-allocating a new iterator for each applyList call; reuse a.iter instead + saved := a.iter + a.iter.index = 0 + for { + // must reload parent.name each time, since cursor modifications might change it + v := reflect.Indirect(reflect.ValueOf(parent)).FieldByName(name) + if a.iter.index >= v.Len() { + break + } + + // element x may be nil in a bad AST - be cautious + var x ast.Node + if e := v.Index(a.iter.index); e.IsValid() { + x = e.Interface().(ast.Node) + } + + a.iter.step = 1 + a.apply(parent, name, &a.iter, x) + a.iter.index += a.iter.step + } + a.iter = saved +} diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go new file mode 100644 index 00000000..98b3987b --- /dev/null +++ b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go @@ -0,0 +1,109 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package gcexportdata provides functions for locating, reading, and +// writing export data files containing type information produced by the +// gc compiler. This package supports go1.7 export data format and all +// later versions. +// +// Although it might seem convenient for this package to live alongside +// go/types in the standard library, this would cause version skew +// problems for developer tools that use it, since they must be able to +// consume the outputs of the gc compiler both before and after a Go +// update such as from Go 1.7 to Go 1.8. Because this package lives in +// golang.org/x/tools, sites can update their version of this repo some +// time before the Go 1.8 release and rebuild and redeploy their +// developer tools, which will then be able to consume both Go 1.7 and +// Go 1.8 export data files, so they will work before and after the +// Go update. (See discussion at https://golang.org/issue/15651.) +// +package gcexportdata // import "golang.org/x/tools/go/gcexportdata" + +import ( + "bufio" + "bytes" + "fmt" + "go/token" + "go/types" + "io" + "io/ioutil" + + "golang.org/x/tools/go/internal/gcimporter" +) + +// Find returns the name of an object (.o) or archive (.a) file +// containing type information for the specified import path, +// using the workspace layout conventions of go/build. +// If no file was found, an empty filename is returned. +// +// A relative srcDir is interpreted relative to the current working directory. +// +// Find also returns the package's resolved (canonical) import path, +// reflecting the effects of srcDir and vendoring on importPath. +func Find(importPath, srcDir string) (filename, path string) { + return gcimporter.FindPkg(importPath, srcDir) +} + +// NewReader returns a reader for the export data section of an object +// (.o) or archive (.a) file read from r. The new reader may provide +// additional trailing data beyond the end of the export data. +func NewReader(r io.Reader) (io.Reader, error) { + buf := bufio.NewReader(r) + _, err := gcimporter.FindExportData(buf) + // If we ever switch to a zip-like archive format with the ToC + // at the end, we can return the correct portion of export data, + // but for now we must return the entire rest of the file. + return buf, err +} + +// Read reads export data from in, decodes it, and returns type +// information for the package. +// The package name is specified by path. +// File position information is added to fset. +// +// Read may inspect and add to the imports map to ensure that references +// within the export data to other packages are consistent. The caller +// must ensure that imports[path] does not exist, or exists but is +// incomplete (see types.Package.Complete), and Read inserts the +// resulting package into this map entry. +// +// On return, the state of the reader is undefined. +func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, path string) (*types.Package, error) { + data, err := ioutil.ReadAll(in) + if err != nil { + return nil, fmt.Errorf("reading export data for %q: %v", path, err) + } + + if bytes.HasPrefix(data, []byte("!")) { + return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path) + } + + // The App Engine Go runtime v1.6 uses the old export data format. + // TODO(adonovan): delete once v1.7 has been around for a while. + if bytes.HasPrefix(data, []byte("package ")) { + return gcimporter.ImportData(imports, path, path, bytes.NewReader(data)) + } + + // The indexed export format starts with an 'i'; the older + // binary export format starts with a 'c', 'd', or 'v' + // (from "version"). Select appropriate importer. + if len(data) > 0 && data[0] == 'i' { + _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) + return pkg, err + } + + _, pkg, err := gcimporter.BImportData(fset, imports, data, path) + return pkg, err +} + +// Write writes encoded type information for the specified package to out. +// The FileSet provides file position information for named objects. +func Write(out io.Writer, fset *token.FileSet, pkg *types.Package) error { + b, err := gcimporter.BExportData(fset, pkg) + if err != nil { + return err + } + _, err = out.Write(b) + return err +} diff --git a/vendor/golang.org/x/tools/go/gcexportdata/importer.go b/vendor/golang.org/x/tools/go/gcexportdata/importer.go new file mode 100644 index 00000000..efe221e7 --- /dev/null +++ b/vendor/golang.org/x/tools/go/gcexportdata/importer.go @@ -0,0 +1,73 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package gcexportdata + +import ( + "fmt" + "go/token" + "go/types" + "os" +) + +// NewImporter returns a new instance of the types.Importer interface +// that reads type information from export data files written by gc. +// The Importer also satisfies types.ImporterFrom. +// +// Export data files are located using "go build" workspace conventions +// and the build.Default context. +// +// Use this importer instead of go/importer.For("gc", ...) to avoid the +// version-skew problems described in the documentation of this package, +// or to control the FileSet or access the imports map populated during +// package loading. +// +func NewImporter(fset *token.FileSet, imports map[string]*types.Package) types.ImporterFrom { + return importer{fset, imports} +} + +type importer struct { + fset *token.FileSet + imports map[string]*types.Package +} + +func (imp importer) Import(importPath string) (*types.Package, error) { + return imp.ImportFrom(importPath, "", 0) +} + +func (imp importer) ImportFrom(importPath, srcDir string, mode types.ImportMode) (_ *types.Package, err error) { + filename, path := Find(importPath, srcDir) + if filename == "" { + if importPath == "unsafe" { + // Even for unsafe, call Find first in case + // the package was vendored. + return types.Unsafe, nil + } + return nil, fmt.Errorf("can't find import: %s", importPath) + } + + if pkg, ok := imp.imports[path]; ok && pkg.Complete() { + return pkg, nil // cache hit + } + + // open file + f, err := os.Open(filename) + if err != nil { + return nil, err + } + defer func() { + f.Close() + if err != nil { + // add file name to error + err = fmt.Errorf("reading export data: %s: %v", filename, err) + } + }() + + r, err := NewReader(f) + if err != nil { + return nil, err + } + + return Read(r, imp.fset, imp.imports, path) +} diff --git a/vendor/golang.org/x/tools/go/gcexportdata/main.go b/vendor/golang.org/x/tools/go/gcexportdata/main.go new file mode 100644 index 00000000..2713dce6 --- /dev/null +++ b/vendor/golang.org/x/tools/go/gcexportdata/main.go @@ -0,0 +1,99 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +// The gcexportdata command is a diagnostic tool that displays the +// contents of gc export data files. +package main + +import ( + "flag" + "fmt" + "go/token" + "go/types" + "log" + "os" + + "golang.org/x/tools/go/gcexportdata" + "golang.org/x/tools/go/types/typeutil" +) + +var packageFlag = flag.String("package", "", "alternative package to print") + +func main() { + log.SetPrefix("gcexportdata: ") + log.SetFlags(0) + flag.Usage = func() { + fmt.Fprintln(os.Stderr, "usage: gcexportdata [-package path] file.a") + } + flag.Parse() + if flag.NArg() != 1 { + flag.Usage() + os.Exit(2) + } + filename := flag.Args()[0] + + f, err := os.Open(filename) + if err != nil { + log.Fatal(err) + } + + r, err := gcexportdata.NewReader(f) + if err != nil { + log.Fatalf("%s: %s", filename, err) + } + + // Decode the package. + const primary = "" + imports := make(map[string]*types.Package) + fset := token.NewFileSet() + pkg, err := gcexportdata.Read(r, fset, imports, primary) + if err != nil { + log.Fatalf("%s: %s", filename, err) + } + + // Optionally select an indirectly mentioned package. + if *packageFlag != "" { + pkg = imports[*packageFlag] + if pkg == nil { + fmt.Fprintf(os.Stderr, "export data file %s does not mention %s; has:\n", + filename, *packageFlag) + for p := range imports { + if p != primary { + fmt.Fprintf(os.Stderr, "\t%s\n", p) + } + } + os.Exit(1) + } + } + + // Print all package-level declarations, including non-exported ones. + fmt.Printf("package %s\n", pkg.Name()) + for _, imp := range pkg.Imports() { + fmt.Printf("import %q\n", imp.Path()) + } + qual := func(p *types.Package) string { + if pkg == p { + return "" + } + return p.Name() + } + scope := pkg.Scope() + for _, name := range scope.Names() { + obj := scope.Lookup(name) + fmt.Printf("%s: %s\n", + fset.Position(obj.Pos()), + types.ObjectString(obj, qual)) + + // For types, print each method. + if _, ok := obj.(*types.TypeName); ok { + for _, method := range typeutil.IntuitiveMethodSet(obj.Type(), nil) { + fmt.Printf("%s: %s\n", + fset.Position(method.Obj().Pos()), + types.SelectionString(method, qual)) + } + } + } +} diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go new file mode 100644 index 00000000..a807d0aa --- /dev/null +++ b/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go @@ -0,0 +1,852 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Binary package export. +// This file was derived from $GOROOT/src/cmd/compile/internal/gc/bexport.go; +// see that file for specification of the format. + +package gcimporter + +import ( + "bytes" + "encoding/binary" + "fmt" + "go/ast" + "go/constant" + "go/token" + "go/types" + "math" + "math/big" + "sort" + "strings" +) + +// If debugFormat is set, each integer and string value is preceded by a marker +// and position information in the encoding. This mechanism permits an importer +// to recognize immediately when it is out of sync. The importer recognizes this +// mode automatically (i.e., it can import export data produced with debugging +// support even if debugFormat is not set at the time of import). This mode will +// lead to massively larger export data (by a factor of 2 to 3) and should only +// be enabled during development and debugging. +// +// NOTE: This flag is the first flag to enable if importing dies because of +// (suspected) format errors, and whenever a change is made to the format. +const debugFormat = false // default: false + +// If trace is set, debugging output is printed to std out. +const trace = false // default: false + +// Current export format version. Increase with each format change. +// Note: The latest binary (non-indexed) export format is at version 6. +// This exporter is still at level 4, but it doesn't matter since +// the binary importer can handle older versions just fine. +// 6: package height (CL 105038) -- NOT IMPLEMENTED HERE +// 5: improved position encoding efficiency (issue 20080, CL 41619) -- NOT IMPLEMEMTED HERE +// 4: type name objects support type aliases, uses aliasTag +// 3: Go1.8 encoding (same as version 2, aliasTag defined but never used) +// 2: removed unused bool in ODCL export (compiler only) +// 1: header format change (more regular), export package for _ struct fields +// 0: Go1.7 encoding +const exportVersion = 4 + +// trackAllTypes enables cycle tracking for all types, not just named +// types. The existing compiler invariants assume that unnamed types +// that are not completely set up are not used, or else there are spurious +// errors. +// If disabled, only named types are tracked, possibly leading to slightly +// less efficient encoding in rare cases. It also prevents the export of +// some corner-case type declarations (but those are not handled correctly +// with with the textual export format either). +// TODO(gri) enable and remove once issues caused by it are fixed +const trackAllTypes = false + +type exporter struct { + fset *token.FileSet + out bytes.Buffer + + // object -> index maps, indexed in order of serialization + strIndex map[string]int + pkgIndex map[*types.Package]int + typIndex map[types.Type]int + + // position encoding + posInfoFormat bool + prevFile string + prevLine int + + // debugging support + written int // bytes written + indent int // for trace +} + +// internalError represents an error generated inside this package. +type internalError string + +func (e internalError) Error() string { return "gcimporter: " + string(e) } + +func internalErrorf(format string, args ...interface{}) error { + return internalError(fmt.Sprintf(format, args...)) +} + +// BExportData returns binary export data for pkg. +// If no file set is provided, position info will be missing. +func BExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) { + defer func() { + if e := recover(); e != nil { + if ierr, ok := e.(internalError); ok { + err = ierr + return + } + // Not an internal error; panic again. + panic(e) + } + }() + + p := exporter{ + fset: fset, + strIndex: map[string]int{"": 0}, // empty string is mapped to 0 + pkgIndex: make(map[*types.Package]int), + typIndex: make(map[types.Type]int), + posInfoFormat: true, // TODO(gri) might become a flag, eventually + } + + // write version info + // The version string must start with "version %d" where %d is the version + // number. Additional debugging information may follow after a blank; that + // text is ignored by the importer. + p.rawStringln(fmt.Sprintf("version %d", exportVersion)) + var debug string + if debugFormat { + debug = "debug" + } + p.rawStringln(debug) // cannot use p.bool since it's affected by debugFormat; also want to see this clearly + p.bool(trackAllTypes) + p.bool(p.posInfoFormat) + + // --- generic export data --- + + // populate type map with predeclared "known" types + for index, typ := range predeclared() { + p.typIndex[typ] = index + } + if len(p.typIndex) != len(predeclared()) { + return nil, internalError("duplicate entries in type map?") + } + + // write package data + p.pkg(pkg, true) + if trace { + p.tracef("\n") + } + + // write objects + objcount := 0 + scope := pkg.Scope() + for _, name := range scope.Names() { + if !ast.IsExported(name) { + continue + } + if trace { + p.tracef("\n") + } + p.obj(scope.Lookup(name)) + objcount++ + } + + // indicate end of list + if trace { + p.tracef("\n") + } + p.tag(endTag) + + // for self-verification only (redundant) + p.int(objcount) + + if trace { + p.tracef("\n") + } + + // --- end of export data --- + + return p.out.Bytes(), nil +} + +func (p *exporter) pkg(pkg *types.Package, emptypath bool) { + if pkg == nil { + panic(internalError("unexpected nil pkg")) + } + + // if we saw the package before, write its index (>= 0) + if i, ok := p.pkgIndex[pkg]; ok { + p.index('P', i) + return + } + + // otherwise, remember the package, write the package tag (< 0) and package data + if trace { + p.tracef("P%d = { ", len(p.pkgIndex)) + defer p.tracef("} ") + } + p.pkgIndex[pkg] = len(p.pkgIndex) + + p.tag(packageTag) + p.string(pkg.Name()) + if emptypath { + p.string("") + } else { + p.string(pkg.Path()) + } +} + +func (p *exporter) obj(obj types.Object) { + switch obj := obj.(type) { + case *types.Const: + p.tag(constTag) + p.pos(obj) + p.qualifiedName(obj) + p.typ(obj.Type()) + p.value(obj.Val()) + + case *types.TypeName: + if obj.IsAlias() { + p.tag(aliasTag) + p.pos(obj) + p.qualifiedName(obj) + } else { + p.tag(typeTag) + } + p.typ(obj.Type()) + + case *types.Var: + p.tag(varTag) + p.pos(obj) + p.qualifiedName(obj) + p.typ(obj.Type()) + + case *types.Func: + p.tag(funcTag) + p.pos(obj) + p.qualifiedName(obj) + sig := obj.Type().(*types.Signature) + p.paramList(sig.Params(), sig.Variadic()) + p.paramList(sig.Results(), false) + + default: + panic(internalErrorf("unexpected object %v (%T)", obj, obj)) + } +} + +func (p *exporter) pos(obj types.Object) { + if !p.posInfoFormat { + return + } + + file, line := p.fileLine(obj) + if file == p.prevFile { + // common case: write line delta + // delta == 0 means different file or no line change + delta := line - p.prevLine + p.int(delta) + if delta == 0 { + p.int(-1) // -1 means no file change + } + } else { + // different file + p.int(0) + // Encode filename as length of common prefix with previous + // filename, followed by (possibly empty) suffix. Filenames + // frequently share path prefixes, so this can save a lot + // of space and make export data size less dependent on file + // path length. The suffix is unlikely to be empty because + // file names tend to end in ".go". + n := commonPrefixLen(p.prevFile, file) + p.int(n) // n >= 0 + p.string(file[n:]) // write suffix only + p.prevFile = file + p.int(line) + } + p.prevLine = line +} + +func (p *exporter) fileLine(obj types.Object) (file string, line int) { + if p.fset != nil { + pos := p.fset.Position(obj.Pos()) + file = pos.Filename + line = pos.Line + } + return +} + +func commonPrefixLen(a, b string) int { + if len(a) > len(b) { + a, b = b, a + } + // len(a) <= len(b) + i := 0 + for i < len(a) && a[i] == b[i] { + i++ + } + return i +} + +func (p *exporter) qualifiedName(obj types.Object) { + p.string(obj.Name()) + p.pkg(obj.Pkg(), false) +} + +func (p *exporter) typ(t types.Type) { + if t == nil { + panic(internalError("nil type")) + } + + // Possible optimization: Anonymous pointer types *T where + // T is a named type are common. We could canonicalize all + // such types *T to a single type PT = *T. This would lead + // to at most one *T entry in typIndex, and all future *T's + // would be encoded as the respective index directly. Would + // save 1 byte (pointerTag) per *T and reduce the typIndex + // size (at the cost of a canonicalization map). We can do + // this later, without encoding format change. + + // if we saw the type before, write its index (>= 0) + if i, ok := p.typIndex[t]; ok { + p.index('T', i) + return + } + + // otherwise, remember the type, write the type tag (< 0) and type data + if trackAllTypes { + if trace { + p.tracef("T%d = {>\n", len(p.typIndex)) + defer p.tracef("<\n} ") + } + p.typIndex[t] = len(p.typIndex) + } + + switch t := t.(type) { + case *types.Named: + if !trackAllTypes { + // if we don't track all types, track named types now + p.typIndex[t] = len(p.typIndex) + } + + p.tag(namedTag) + p.pos(t.Obj()) + p.qualifiedName(t.Obj()) + p.typ(t.Underlying()) + if !types.IsInterface(t) { + p.assocMethods(t) + } + + case *types.Array: + p.tag(arrayTag) + p.int64(t.Len()) + p.typ(t.Elem()) + + case *types.Slice: + p.tag(sliceTag) + p.typ(t.Elem()) + + case *dddSlice: + p.tag(dddTag) + p.typ(t.elem) + + case *types.Struct: + p.tag(structTag) + p.fieldList(t) + + case *types.Pointer: + p.tag(pointerTag) + p.typ(t.Elem()) + + case *types.Signature: + p.tag(signatureTag) + p.paramList(t.Params(), t.Variadic()) + p.paramList(t.Results(), false) + + case *types.Interface: + p.tag(interfaceTag) + p.iface(t) + + case *types.Map: + p.tag(mapTag) + p.typ(t.Key()) + p.typ(t.Elem()) + + case *types.Chan: + p.tag(chanTag) + p.int(int(3 - t.Dir())) // hack + p.typ(t.Elem()) + + default: + panic(internalErrorf("unexpected type %T: %s", t, t)) + } +} + +func (p *exporter) assocMethods(named *types.Named) { + // Sort methods (for determinism). + var methods []*types.Func + for i := 0; i < named.NumMethods(); i++ { + methods = append(methods, named.Method(i)) + } + sort.Sort(methodsByName(methods)) + + p.int(len(methods)) + + if trace && methods != nil { + p.tracef("associated methods {>\n") + } + + for i, m := range methods { + if trace && i > 0 { + p.tracef("\n") + } + + p.pos(m) + name := m.Name() + p.string(name) + if !exported(name) { + p.pkg(m.Pkg(), false) + } + + sig := m.Type().(*types.Signature) + p.paramList(types.NewTuple(sig.Recv()), false) + p.paramList(sig.Params(), sig.Variadic()) + p.paramList(sig.Results(), false) + p.int(0) // dummy value for go:nointerface pragma - ignored by importer + } + + if trace && methods != nil { + p.tracef("<\n} ") + } +} + +type methodsByName []*types.Func + +func (x methodsByName) Len() int { return len(x) } +func (x methodsByName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } +func (x methodsByName) Less(i, j int) bool { return x[i].Name() < x[j].Name() } + +func (p *exporter) fieldList(t *types.Struct) { + if trace && t.NumFields() > 0 { + p.tracef("fields {>\n") + defer p.tracef("<\n} ") + } + + p.int(t.NumFields()) + for i := 0; i < t.NumFields(); i++ { + if trace && i > 0 { + p.tracef("\n") + } + p.field(t.Field(i)) + p.string(t.Tag(i)) + } +} + +func (p *exporter) field(f *types.Var) { + if !f.IsField() { + panic(internalError("field expected")) + } + + p.pos(f) + p.fieldName(f) + p.typ(f.Type()) +} + +func (p *exporter) iface(t *types.Interface) { + // TODO(gri): enable importer to load embedded interfaces, + // then emit Embeddeds and ExplicitMethods separately here. + p.int(0) + + n := t.NumMethods() + if trace && n > 0 { + p.tracef("methods {>\n") + defer p.tracef("<\n} ") + } + p.int(n) + for i := 0; i < n; i++ { + if trace && i > 0 { + p.tracef("\n") + } + p.method(t.Method(i)) + } +} + +func (p *exporter) method(m *types.Func) { + sig := m.Type().(*types.Signature) + if sig.Recv() == nil { + panic(internalError("method expected")) + } + + p.pos(m) + p.string(m.Name()) + if m.Name() != "_" && !ast.IsExported(m.Name()) { + p.pkg(m.Pkg(), false) + } + + // interface method; no need to encode receiver. + p.paramList(sig.Params(), sig.Variadic()) + p.paramList(sig.Results(), false) +} + +func (p *exporter) fieldName(f *types.Var) { + name := f.Name() + + if f.Anonymous() { + // anonymous field - we distinguish between 3 cases: + // 1) field name matches base type name and is exported + // 2) field name matches base type name and is not exported + // 3) field name doesn't match base type name (alias name) + bname := basetypeName(f.Type()) + if name == bname { + if ast.IsExported(name) { + name = "" // 1) we don't need to know the field name or package + } else { + name = "?" // 2) use unexported name "?" to force package export + } + } else { + // 3) indicate alias and export name as is + // (this requires an extra "@" but this is a rare case) + p.string("@") + } + } + + p.string(name) + if name != "" && !ast.IsExported(name) { + p.pkg(f.Pkg(), false) + } +} + +func basetypeName(typ types.Type) string { + switch typ := deref(typ).(type) { + case *types.Basic: + return typ.Name() + case *types.Named: + return typ.Obj().Name() + default: + return "" // unnamed type + } +} + +func (p *exporter) paramList(params *types.Tuple, variadic bool) { + // use negative length to indicate unnamed parameters + // (look at the first parameter only since either all + // names are present or all are absent) + n := params.Len() + if n > 0 && params.At(0).Name() == "" { + n = -n + } + p.int(n) + for i := 0; i < params.Len(); i++ { + q := params.At(i) + t := q.Type() + if variadic && i == params.Len()-1 { + t = &dddSlice{t.(*types.Slice).Elem()} + } + p.typ(t) + if n > 0 { + name := q.Name() + p.string(name) + if name != "_" { + p.pkg(q.Pkg(), false) + } + } + p.string("") // no compiler-specific info + } +} + +func (p *exporter) value(x constant.Value) { + if trace { + p.tracef("= ") + } + + switch x.Kind() { + case constant.Bool: + tag := falseTag + if constant.BoolVal(x) { + tag = trueTag + } + p.tag(tag) + + case constant.Int: + if v, exact := constant.Int64Val(x); exact { + // common case: x fits into an int64 - use compact encoding + p.tag(int64Tag) + p.int64(v) + return + } + // uncommon case: large x - use float encoding + // (powers of 2 will be encoded efficiently with exponent) + p.tag(floatTag) + p.float(constant.ToFloat(x)) + + case constant.Float: + p.tag(floatTag) + p.float(x) + + case constant.Complex: + p.tag(complexTag) + p.float(constant.Real(x)) + p.float(constant.Imag(x)) + + case constant.String: + p.tag(stringTag) + p.string(constant.StringVal(x)) + + case constant.Unknown: + // package contains type errors + p.tag(unknownTag) + + default: + panic(internalErrorf("unexpected value %v (%T)", x, x)) + } +} + +func (p *exporter) float(x constant.Value) { + if x.Kind() != constant.Float { + panic(internalErrorf("unexpected constant %v, want float", x)) + } + // extract sign (there is no -0) + sign := constant.Sign(x) + if sign == 0 { + // x == 0 + p.int(0) + return + } + // x != 0 + + var f big.Float + if v, exact := constant.Float64Val(x); exact { + // float64 + f.SetFloat64(v) + } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { + // TODO(gri): add big.Rat accessor to constant.Value. + r := valueToRat(num) + f.SetRat(r.Quo(r, valueToRat(denom))) + } else { + // Value too large to represent as a fraction => inaccessible. + // TODO(gri): add big.Float accessor to constant.Value. + f.SetFloat64(math.MaxFloat64) // FIXME + } + + // extract exponent such that 0.5 <= m < 1.0 + var m big.Float + exp := f.MantExp(&m) + + // extract mantissa as *big.Int + // - set exponent large enough so mant satisfies mant.IsInt() + // - get *big.Int from mant + m.SetMantExp(&m, int(m.MinPrec())) + mant, acc := m.Int(nil) + if acc != big.Exact { + panic(internalError("internal error")) + } + + p.int(sign) + p.int(exp) + p.string(string(mant.Bytes())) +} + +func valueToRat(x constant.Value) *big.Rat { + // Convert little-endian to big-endian. + // I can't believe this is necessary. + bytes := constant.Bytes(x) + for i := 0; i < len(bytes)/2; i++ { + bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] + } + return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) +} + +func (p *exporter) bool(b bool) bool { + if trace { + p.tracef("[") + defer p.tracef("= %v] ", b) + } + + x := 0 + if b { + x = 1 + } + p.int(x) + return b +} + +// ---------------------------------------------------------------------------- +// Low-level encoders + +func (p *exporter) index(marker byte, index int) { + if index < 0 { + panic(internalError("invalid index < 0")) + } + if debugFormat { + p.marker('t') + } + if trace { + p.tracef("%c%d ", marker, index) + } + p.rawInt64(int64(index)) +} + +func (p *exporter) tag(tag int) { + if tag >= 0 { + panic(internalError("invalid tag >= 0")) + } + if debugFormat { + p.marker('t') + } + if trace { + p.tracef("%s ", tagString[-tag]) + } + p.rawInt64(int64(tag)) +} + +func (p *exporter) int(x int) { + p.int64(int64(x)) +} + +func (p *exporter) int64(x int64) { + if debugFormat { + p.marker('i') + } + if trace { + p.tracef("%d ", x) + } + p.rawInt64(x) +} + +func (p *exporter) string(s string) { + if debugFormat { + p.marker('s') + } + if trace { + p.tracef("%q ", s) + } + // if we saw the string before, write its index (>= 0) + // (the empty string is mapped to 0) + if i, ok := p.strIndex[s]; ok { + p.rawInt64(int64(i)) + return + } + // otherwise, remember string and write its negative length and bytes + p.strIndex[s] = len(p.strIndex) + p.rawInt64(-int64(len(s))) + for i := 0; i < len(s); i++ { + p.rawByte(s[i]) + } +} + +// marker emits a marker byte and position information which makes +// it easy for a reader to detect if it is "out of sync". Used for +// debugFormat format only. +func (p *exporter) marker(m byte) { + p.rawByte(m) + // Enable this for help tracking down the location + // of an incorrect marker when running in debugFormat. + if false && trace { + p.tracef("#%d ", p.written) + } + p.rawInt64(int64(p.written)) +} + +// rawInt64 should only be used by low-level encoders. +func (p *exporter) rawInt64(x int64) { + var tmp [binary.MaxVarintLen64]byte + n := binary.PutVarint(tmp[:], x) + for i := 0; i < n; i++ { + p.rawByte(tmp[i]) + } +} + +// rawStringln should only be used to emit the initial version string. +func (p *exporter) rawStringln(s string) { + for i := 0; i < len(s); i++ { + p.rawByte(s[i]) + } + p.rawByte('\n') +} + +// rawByte is the bottleneck interface to write to p.out. +// rawByte escapes b as follows (any encoding does that +// hides '$'): +// +// '$' => '|' 'S' +// '|' => '|' '|' +// +// Necessary so other tools can find the end of the +// export data by searching for "$$". +// rawByte should only be used by low-level encoders. +func (p *exporter) rawByte(b byte) { + switch b { + case '$': + // write '$' as '|' 'S' + b = 'S' + fallthrough + case '|': + // write '|' as '|' '|' + p.out.WriteByte('|') + p.written++ + } + p.out.WriteByte(b) + p.written++ +} + +// tracef is like fmt.Printf but it rewrites the format string +// to take care of indentation. +func (p *exporter) tracef(format string, args ...interface{}) { + if strings.ContainsAny(format, "<>\n") { + var buf bytes.Buffer + for i := 0; i < len(format); i++ { + // no need to deal with runes + ch := format[i] + switch ch { + case '>': + p.indent++ + continue + case '<': + p.indent-- + continue + } + buf.WriteByte(ch) + if ch == '\n' { + for j := p.indent; j > 0; j-- { + buf.WriteString(". ") + } + } + } + format = buf.String() + } + fmt.Printf(format, args...) +} + +// Debugging support. +// (tagString is only used when tracing is enabled) +var tagString = [...]string{ + // Packages + -packageTag: "package", + + // Types + -namedTag: "named type", + -arrayTag: "array", + -sliceTag: "slice", + -dddTag: "ddd", + -structTag: "struct", + -pointerTag: "pointer", + -signatureTag: "signature", + -interfaceTag: "interface", + -mapTag: "map", + -chanTag: "chan", + + // Values + -falseTag: "false", + -trueTag: "true", + -int64Tag: "int64", + -floatTag: "float", + -fractionTag: "fraction", + -complexTag: "complex", + -stringTag: "string", + -unknownTag: "unknown", + + // Type aliases + -aliasTag: "alias", +} diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go new file mode 100644 index 00000000..e3c31078 --- /dev/null +++ b/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go @@ -0,0 +1,1036 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file is a copy of $GOROOT/src/go/internal/gcimporter/bimport.go. + +package gcimporter + +import ( + "encoding/binary" + "fmt" + "go/constant" + "go/token" + "go/types" + "sort" + "strconv" + "strings" + "sync" + "unicode" + "unicode/utf8" +) + +type importer struct { + imports map[string]*types.Package + data []byte + importpath string + buf []byte // for reading strings + version int // export format version + + // object lists + strList []string // in order of appearance + pathList []string // in order of appearance + pkgList []*types.Package // in order of appearance + typList []types.Type // in order of appearance + interfaceList []*types.Interface // for delayed completion only + trackAllTypes bool + + // position encoding + posInfoFormat bool + prevFile string + prevLine int + fake fakeFileSet + + // debugging support + debugFormat bool + read int // bytes read +} + +// BImportData imports a package from the serialized package data +// and returns the number of bytes consumed and a reference to the package. +// If the export data version is not recognized or the format is otherwise +// compromised, an error is returned. +func BImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { + // catch panics and return them as errors + const currentVersion = 6 + version := -1 // unknown version + defer func() { + if e := recover(); e != nil { + // Return a (possibly nil or incomplete) package unchanged (see #16088). + if version > currentVersion { + err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) + } else { + err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) + } + } + }() + + p := importer{ + imports: imports, + data: data, + importpath: path, + version: version, + strList: []string{""}, // empty string is mapped to 0 + pathList: []string{""}, // empty string is mapped to 0 + fake: fakeFileSet{ + fset: fset, + files: make(map[string]*token.File), + }, + } + + // read version info + var versionstr string + if b := p.rawByte(); b == 'c' || b == 'd' { + // Go1.7 encoding; first byte encodes low-level + // encoding format (compact vs debug). + // For backward-compatibility only (avoid problems with + // old installed packages). Newly compiled packages use + // the extensible format string. + // TODO(gri) Remove this support eventually; after Go1.8. + if b == 'd' { + p.debugFormat = true + } + p.trackAllTypes = p.rawByte() == 'a' + p.posInfoFormat = p.int() != 0 + versionstr = p.string() + if versionstr == "v1" { + version = 0 + } + } else { + // Go1.8 extensible encoding + // read version string and extract version number (ignore anything after the version number) + versionstr = p.rawStringln(b) + if s := strings.SplitN(versionstr, " ", 3); len(s) >= 2 && s[0] == "version" { + if v, err := strconv.Atoi(s[1]); err == nil && v > 0 { + version = v + } + } + } + p.version = version + + // read version specific flags - extend as necessary + switch p.version { + // case currentVersion: + // ... + // fallthrough + case currentVersion, 5, 4, 3, 2, 1: + p.debugFormat = p.rawStringln(p.rawByte()) == "debug" + p.trackAllTypes = p.int() != 0 + p.posInfoFormat = p.int() != 0 + case 0: + // Go1.7 encoding format - nothing to do here + default: + errorf("unknown bexport format version %d (%q)", p.version, versionstr) + } + + // --- generic export data --- + + // populate typList with predeclared "known" types + p.typList = append(p.typList, predeclared()...) + + // read package data + pkg = p.pkg() + + // read objects of phase 1 only (see cmd/compile/internal/gc/bexport.go) + objcount := 0 + for { + tag := p.tagOrIndex() + if tag == endTag { + break + } + p.obj(tag) + objcount++ + } + + // self-verification + if count := p.int(); count != objcount { + errorf("got %d objects; want %d", objcount, count) + } + + // ignore compiler-specific import data + + // complete interfaces + // TODO(gri) re-investigate if we still need to do this in a delayed fashion + for _, typ := range p.interfaceList { + typ.Complete() + } + + // record all referenced packages as imports + list := append(([]*types.Package)(nil), p.pkgList[1:]...) + sort.Sort(byPath(list)) + pkg.SetImports(list) + + // package was imported completely and without errors + pkg.MarkComplete() + + return p.read, pkg, nil +} + +func errorf(format string, args ...interface{}) { + panic(fmt.Sprintf(format, args...)) +} + +func (p *importer) pkg() *types.Package { + // if the package was seen before, i is its index (>= 0) + i := p.tagOrIndex() + if i >= 0 { + return p.pkgList[i] + } + + // otherwise, i is the package tag (< 0) + if i != packageTag { + errorf("unexpected package tag %d version %d", i, p.version) + } + + // read package data + name := p.string() + var path string + if p.version >= 5 { + path = p.path() + } else { + path = p.string() + } + if p.version >= 6 { + p.int() // package height; unused by go/types + } + + // we should never see an empty package name + if name == "" { + errorf("empty package name in import") + } + + // an empty path denotes the package we are currently importing; + // it must be the first package we see + if (path == "") != (len(p.pkgList) == 0) { + errorf("package path %q for pkg index %d", path, len(p.pkgList)) + } + + // if the package was imported before, use that one; otherwise create a new one + if path == "" { + path = p.importpath + } + pkg := p.imports[path] + if pkg == nil { + pkg = types.NewPackage(path, name) + p.imports[path] = pkg + } else if pkg.Name() != name { + errorf("conflicting names %s and %s for package %q", pkg.Name(), name, path) + } + p.pkgList = append(p.pkgList, pkg) + + return pkg +} + +// objTag returns the tag value for each object kind. +func objTag(obj types.Object) int { + switch obj.(type) { + case *types.Const: + return constTag + case *types.TypeName: + return typeTag + case *types.Var: + return varTag + case *types.Func: + return funcTag + default: + errorf("unexpected object: %v (%T)", obj, obj) // panics + panic("unreachable") + } +} + +func sameObj(a, b types.Object) bool { + // Because unnamed types are not canonicalized, we cannot simply compare types for + // (pointer) identity. + // Ideally we'd check equality of constant values as well, but this is good enough. + return objTag(a) == objTag(b) && types.Identical(a.Type(), b.Type()) +} + +func (p *importer) declare(obj types.Object) { + pkg := obj.Pkg() + if alt := pkg.Scope().Insert(obj); alt != nil { + // This can only trigger if we import a (non-type) object a second time. + // Excluding type aliases, this cannot happen because 1) we only import a package + // once; and b) we ignore compiler-specific export data which may contain + // functions whose inlined function bodies refer to other functions that + // were already imported. + // However, type aliases require reexporting the original type, so we need + // to allow it (see also the comment in cmd/compile/internal/gc/bimport.go, + // method importer.obj, switch case importing functions). + // TODO(gri) review/update this comment once the gc compiler handles type aliases. + if !sameObj(obj, alt) { + errorf("inconsistent import:\n\t%v\npreviously imported as:\n\t%v\n", obj, alt) + } + } +} + +func (p *importer) obj(tag int) { + switch tag { + case constTag: + pos := p.pos() + pkg, name := p.qualifiedName() + typ := p.typ(nil, nil) + val := p.value() + p.declare(types.NewConst(pos, pkg, name, typ, val)) + + case aliasTag: + // TODO(gri) verify type alias hookup is correct + pos := p.pos() + pkg, name := p.qualifiedName() + typ := p.typ(nil, nil) + p.declare(types.NewTypeName(pos, pkg, name, typ)) + + case typeTag: + p.typ(nil, nil) + + case varTag: + pos := p.pos() + pkg, name := p.qualifiedName() + typ := p.typ(nil, nil) + p.declare(types.NewVar(pos, pkg, name, typ)) + + case funcTag: + pos := p.pos() + pkg, name := p.qualifiedName() + params, isddd := p.paramList() + result, _ := p.paramList() + sig := types.NewSignature(nil, params, result, isddd) + p.declare(types.NewFunc(pos, pkg, name, sig)) + + default: + errorf("unexpected object tag %d", tag) + } +} + +const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go + +func (p *importer) pos() token.Pos { + if !p.posInfoFormat { + return token.NoPos + } + + file := p.prevFile + line := p.prevLine + delta := p.int() + line += delta + if p.version >= 5 { + if delta == deltaNewFile { + if n := p.int(); n >= 0 { + // file changed + file = p.path() + line = n + } + } + } else { + if delta == 0 { + if n := p.int(); n >= 0 { + // file changed + file = p.prevFile[:n] + p.string() + line = p.int() + } + } + } + p.prevFile = file + p.prevLine = line + + return p.fake.pos(file, line) +} + +// Synthesize a token.Pos +type fakeFileSet struct { + fset *token.FileSet + files map[string]*token.File +} + +func (s *fakeFileSet) pos(file string, line int) token.Pos { + // Since we don't know the set of needed file positions, we + // reserve maxlines positions per file. + const maxlines = 64 * 1024 + f := s.files[file] + if f == nil { + f = s.fset.AddFile(file, -1, maxlines) + s.files[file] = f + // Allocate the fake linebreak indices on first use. + // TODO(adonovan): opt: save ~512KB using a more complex scheme? + fakeLinesOnce.Do(func() { + fakeLines = make([]int, maxlines) + for i := range fakeLines { + fakeLines[i] = i + } + }) + f.SetLines(fakeLines) + } + + if line > maxlines { + line = 1 + } + + // Treat the file as if it contained only newlines + // and column=1: use the line number as the offset. + return f.Pos(line - 1) +} + +var ( + fakeLines []int + fakeLinesOnce sync.Once +) + +func (p *importer) qualifiedName() (pkg *types.Package, name string) { + name = p.string() + pkg = p.pkg() + return +} + +func (p *importer) record(t types.Type) { + p.typList = append(p.typList, t) +} + +// A dddSlice is a types.Type representing ...T parameters. +// It only appears for parameter types and does not escape +// the importer. +type dddSlice struct { + elem types.Type +} + +func (t *dddSlice) Underlying() types.Type { return t } +func (t *dddSlice) String() string { return "..." + t.elem.String() } + +// parent is the package which declared the type; parent == nil means +// the package currently imported. The parent package is needed for +// exported struct fields and interface methods which don't contain +// explicit package information in the export data. +// +// A non-nil tname is used as the "owner" of the result type; i.e., +// the result type is the underlying type of tname. tname is used +// to give interface methods a named receiver type where possible. +func (p *importer) typ(parent *types.Package, tname *types.Named) types.Type { + // if the type was seen before, i is its index (>= 0) + i := p.tagOrIndex() + if i >= 0 { + return p.typList[i] + } + + // otherwise, i is the type tag (< 0) + switch i { + case namedTag: + // read type object + pos := p.pos() + parent, name := p.qualifiedName() + scope := parent.Scope() + obj := scope.Lookup(name) + + // if the object doesn't exist yet, create and insert it + if obj == nil { + obj = types.NewTypeName(pos, parent, name, nil) + scope.Insert(obj) + } + + if _, ok := obj.(*types.TypeName); !ok { + errorf("pkg = %s, name = %s => %s", parent, name, obj) + } + + // associate new named type with obj if it doesn't exist yet + t0 := types.NewNamed(obj.(*types.TypeName), nil, nil) + + // but record the existing type, if any + tname := obj.Type().(*types.Named) // tname is either t0 or the existing type + p.record(tname) + + // read underlying type + t0.SetUnderlying(p.typ(parent, t0)) + + // interfaces don't have associated methods + if types.IsInterface(t0) { + return tname + } + + // read associated methods + for i := p.int(); i > 0; i-- { + // TODO(gri) replace this with something closer to fieldName + pos := p.pos() + name := p.string() + if !exported(name) { + p.pkg() + } + + recv, _ := p.paramList() // TODO(gri) do we need a full param list for the receiver? + params, isddd := p.paramList() + result, _ := p.paramList() + p.int() // go:nointerface pragma - discarded + + sig := types.NewSignature(recv.At(0), params, result, isddd) + t0.AddMethod(types.NewFunc(pos, parent, name, sig)) + } + + return tname + + case arrayTag: + t := new(types.Array) + if p.trackAllTypes { + p.record(t) + } + + n := p.int64() + *t = *types.NewArray(p.typ(parent, nil), n) + return t + + case sliceTag: + t := new(types.Slice) + if p.trackAllTypes { + p.record(t) + } + + *t = *types.NewSlice(p.typ(parent, nil)) + return t + + case dddTag: + t := new(dddSlice) + if p.trackAllTypes { + p.record(t) + } + + t.elem = p.typ(parent, nil) + return t + + case structTag: + t := new(types.Struct) + if p.trackAllTypes { + p.record(t) + } + + *t = *types.NewStruct(p.fieldList(parent)) + return t + + case pointerTag: + t := new(types.Pointer) + if p.trackAllTypes { + p.record(t) + } + + *t = *types.NewPointer(p.typ(parent, nil)) + return t + + case signatureTag: + t := new(types.Signature) + if p.trackAllTypes { + p.record(t) + } + + params, isddd := p.paramList() + result, _ := p.paramList() + *t = *types.NewSignature(nil, params, result, isddd) + return t + + case interfaceTag: + // Create a dummy entry in the type list. This is safe because we + // cannot expect the interface type to appear in a cycle, as any + // such cycle must contain a named type which would have been + // first defined earlier. + // TODO(gri) Is this still true now that we have type aliases? + // See issue #23225. + n := len(p.typList) + if p.trackAllTypes { + p.record(nil) + } + + var embeddeds []types.Type + for n := p.int(); n > 0; n-- { + p.pos() + embeddeds = append(embeddeds, p.typ(parent, nil)) + } + + t := newInterface(p.methodList(parent, tname), embeddeds) + p.interfaceList = append(p.interfaceList, t) + if p.trackAllTypes { + p.typList[n] = t + } + return t + + case mapTag: + t := new(types.Map) + if p.trackAllTypes { + p.record(t) + } + + key := p.typ(parent, nil) + val := p.typ(parent, nil) + *t = *types.NewMap(key, val) + return t + + case chanTag: + t := new(types.Chan) + if p.trackAllTypes { + p.record(t) + } + + dir := chanDir(p.int()) + val := p.typ(parent, nil) + *t = *types.NewChan(dir, val) + return t + + default: + errorf("unexpected type tag %d", i) // panics + panic("unreachable") + } +} + +func chanDir(d int) types.ChanDir { + // tag values must match the constants in cmd/compile/internal/gc/go.go + switch d { + case 1 /* Crecv */ : + return types.RecvOnly + case 2 /* Csend */ : + return types.SendOnly + case 3 /* Cboth */ : + return types.SendRecv + default: + errorf("unexpected channel dir %d", d) + return 0 + } +} + +func (p *importer) fieldList(parent *types.Package) (fields []*types.Var, tags []string) { + if n := p.int(); n > 0 { + fields = make([]*types.Var, n) + tags = make([]string, n) + for i := range fields { + fields[i], tags[i] = p.field(parent) + } + } + return +} + +func (p *importer) field(parent *types.Package) (*types.Var, string) { + pos := p.pos() + pkg, name, alias := p.fieldName(parent) + typ := p.typ(parent, nil) + tag := p.string() + + anonymous := false + if name == "" { + // anonymous field - typ must be T or *T and T must be a type name + switch typ := deref(typ).(type) { + case *types.Basic: // basic types are named types + pkg = nil // // objects defined in Universe scope have no package + name = typ.Name() + case *types.Named: + name = typ.Obj().Name() + default: + errorf("named base type expected") + } + anonymous = true + } else if alias { + // anonymous field: we have an explicit name because it's an alias + anonymous = true + } + + return types.NewField(pos, pkg, name, typ, anonymous), tag +} + +func (p *importer) methodList(parent *types.Package, baseType *types.Named) (methods []*types.Func) { + if n := p.int(); n > 0 { + methods = make([]*types.Func, n) + for i := range methods { + methods[i] = p.method(parent, baseType) + } + } + return +} + +func (p *importer) method(parent *types.Package, baseType *types.Named) *types.Func { + pos := p.pos() + pkg, name, _ := p.fieldName(parent) + // If we don't have a baseType, use a nil receiver. + // A receiver using the actual interface type (which + // we don't know yet) will be filled in when we call + // types.Interface.Complete. + var recv *types.Var + if baseType != nil { + recv = types.NewVar(token.NoPos, parent, "", baseType) + } + params, isddd := p.paramList() + result, _ := p.paramList() + sig := types.NewSignature(recv, params, result, isddd) + return types.NewFunc(pos, pkg, name, sig) +} + +func (p *importer) fieldName(parent *types.Package) (pkg *types.Package, name string, alias bool) { + name = p.string() + pkg = parent + if pkg == nil { + // use the imported package instead + pkg = p.pkgList[0] + } + if p.version == 0 && name == "_" { + // version 0 didn't export a package for _ fields + return + } + switch name { + case "": + // 1) field name matches base type name and is exported: nothing to do + case "?": + // 2) field name matches base type name and is not exported: need package + name = "" + pkg = p.pkg() + case "@": + // 3) field name doesn't match type name (alias) + name = p.string() + alias = true + fallthrough + default: + if !exported(name) { + pkg = p.pkg() + } + } + return +} + +func (p *importer) paramList() (*types.Tuple, bool) { + n := p.int() + if n == 0 { + return nil, false + } + // negative length indicates unnamed parameters + named := true + if n < 0 { + n = -n + named = false + } + // n > 0 + params := make([]*types.Var, n) + isddd := false + for i := range params { + params[i], isddd = p.param(named) + } + return types.NewTuple(params...), isddd +} + +func (p *importer) param(named bool) (*types.Var, bool) { + t := p.typ(nil, nil) + td, isddd := t.(*dddSlice) + if isddd { + t = types.NewSlice(td.elem) + } + + var pkg *types.Package + var name string + if named { + name = p.string() + if name == "" { + errorf("expected named parameter") + } + if name != "_" { + pkg = p.pkg() + } + if i := strings.Index(name, "·"); i > 0 { + name = name[:i] // cut off gc-specific parameter numbering + } + } + + // read and discard compiler-specific info + p.string() + + return types.NewVar(token.NoPos, pkg, name, t), isddd +} + +func exported(name string) bool { + ch, _ := utf8.DecodeRuneInString(name) + return unicode.IsUpper(ch) +} + +func (p *importer) value() constant.Value { + switch tag := p.tagOrIndex(); tag { + case falseTag: + return constant.MakeBool(false) + case trueTag: + return constant.MakeBool(true) + case int64Tag: + return constant.MakeInt64(p.int64()) + case floatTag: + return p.float() + case complexTag: + re := p.float() + im := p.float() + return constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) + case stringTag: + return constant.MakeString(p.string()) + case unknownTag: + return constant.MakeUnknown() + default: + errorf("unexpected value tag %d", tag) // panics + panic("unreachable") + } +} + +func (p *importer) float() constant.Value { + sign := p.int() + if sign == 0 { + return constant.MakeInt64(0) + } + + exp := p.int() + mant := []byte(p.string()) // big endian + + // remove leading 0's if any + for len(mant) > 0 && mant[0] == 0 { + mant = mant[1:] + } + + // convert to little endian + // TODO(gri) go/constant should have a more direct conversion function + // (e.g., once it supports a big.Float based implementation) + for i, j := 0, len(mant)-1; i < j; i, j = i+1, j-1 { + mant[i], mant[j] = mant[j], mant[i] + } + + // adjust exponent (constant.MakeFromBytes creates an integer value, + // but mant represents the mantissa bits such that 0.5 <= mant < 1.0) + exp -= len(mant) << 3 + if len(mant) > 0 { + for msd := mant[len(mant)-1]; msd&0x80 == 0; msd <<= 1 { + exp++ + } + } + + x := constant.MakeFromBytes(mant) + switch { + case exp < 0: + d := constant.Shift(constant.MakeInt64(1), token.SHL, uint(-exp)) + x = constant.BinaryOp(x, token.QUO, d) + case exp > 0: + x = constant.Shift(x, token.SHL, uint(exp)) + } + + if sign < 0 { + x = constant.UnaryOp(token.SUB, x, 0) + } + return x +} + +// ---------------------------------------------------------------------------- +// Low-level decoders + +func (p *importer) tagOrIndex() int { + if p.debugFormat { + p.marker('t') + } + + return int(p.rawInt64()) +} + +func (p *importer) int() int { + x := p.int64() + if int64(int(x)) != x { + errorf("exported integer too large") + } + return int(x) +} + +func (p *importer) int64() int64 { + if p.debugFormat { + p.marker('i') + } + + return p.rawInt64() +} + +func (p *importer) path() string { + if p.debugFormat { + p.marker('p') + } + // if the path was seen before, i is its index (>= 0) + // (the empty string is at index 0) + i := p.rawInt64() + if i >= 0 { + return p.pathList[i] + } + // otherwise, i is the negative path length (< 0) + a := make([]string, -i) + for n := range a { + a[n] = p.string() + } + s := strings.Join(a, "/") + p.pathList = append(p.pathList, s) + return s +} + +func (p *importer) string() string { + if p.debugFormat { + p.marker('s') + } + // if the string was seen before, i is its index (>= 0) + // (the empty string is at index 0) + i := p.rawInt64() + if i >= 0 { + return p.strList[i] + } + // otherwise, i is the negative string length (< 0) + if n := int(-i); n <= cap(p.buf) { + p.buf = p.buf[:n] + } else { + p.buf = make([]byte, n) + } + for i := range p.buf { + p.buf[i] = p.rawByte() + } + s := string(p.buf) + p.strList = append(p.strList, s) + return s +} + +func (p *importer) marker(want byte) { + if got := p.rawByte(); got != want { + errorf("incorrect marker: got %c; want %c (pos = %d)", got, want, p.read) + } + + pos := p.read + if n := int(p.rawInt64()); n != pos { + errorf("incorrect position: got %d; want %d", n, pos) + } +} + +// rawInt64 should only be used by low-level decoders. +func (p *importer) rawInt64() int64 { + i, err := binary.ReadVarint(p) + if err != nil { + errorf("read error: %v", err) + } + return i +} + +// rawStringln should only be used to read the initial version string. +func (p *importer) rawStringln(b byte) string { + p.buf = p.buf[:0] + for b != '\n' { + p.buf = append(p.buf, b) + b = p.rawByte() + } + return string(p.buf) +} + +// needed for binary.ReadVarint in rawInt64 +func (p *importer) ReadByte() (byte, error) { + return p.rawByte(), nil +} + +// byte is the bottleneck interface for reading p.data. +// It unescapes '|' 'S' to '$' and '|' '|' to '|'. +// rawByte should only be used by low-level decoders. +func (p *importer) rawByte() byte { + b := p.data[0] + r := 1 + if b == '|' { + b = p.data[1] + r = 2 + switch b { + case 'S': + b = '$' + case '|': + // nothing to do + default: + errorf("unexpected escape sequence in export data") + } + } + p.data = p.data[r:] + p.read += r + return b + +} + +// ---------------------------------------------------------------------------- +// Export format + +// Tags. Must be < 0. +const ( + // Objects + packageTag = -(iota + 1) + constTag + typeTag + varTag + funcTag + endTag + + // Types + namedTag + arrayTag + sliceTag + dddTag + structTag + pointerTag + signatureTag + interfaceTag + mapTag + chanTag + + // Values + falseTag + trueTag + int64Tag + floatTag + fractionTag // not used by gc + complexTag + stringTag + nilTag // only used by gc (appears in exported inlined function bodies) + unknownTag // not used by gc (only appears in packages with errors) + + // Type aliases + aliasTag +) + +var predecl []types.Type // initialized lazily + +func predeclared() []types.Type { + if predecl == nil { + // initialize lazily to be sure that all + // elements have been initialized before + predecl = []types.Type{ // basic types + types.Typ[types.Bool], + types.Typ[types.Int], + types.Typ[types.Int8], + types.Typ[types.Int16], + types.Typ[types.Int32], + types.Typ[types.Int64], + types.Typ[types.Uint], + types.Typ[types.Uint8], + types.Typ[types.Uint16], + types.Typ[types.Uint32], + types.Typ[types.Uint64], + types.Typ[types.Uintptr], + types.Typ[types.Float32], + types.Typ[types.Float64], + types.Typ[types.Complex64], + types.Typ[types.Complex128], + types.Typ[types.String], + + // basic type aliases + types.Universe.Lookup("byte").Type(), + types.Universe.Lookup("rune").Type(), + + // error + types.Universe.Lookup("error").Type(), + + // untyped types + types.Typ[types.UntypedBool], + types.Typ[types.UntypedInt], + types.Typ[types.UntypedRune], + types.Typ[types.UntypedFloat], + types.Typ[types.UntypedComplex], + types.Typ[types.UntypedString], + types.Typ[types.UntypedNil], + + // package unsafe + types.Typ[types.UnsafePointer], + + // invalid type + types.Typ[types.Invalid], // only appears in packages with errors + + // used internally by gc; never used by this package or in .a files + anyType{}, + } + } + return predecl +} + +type anyType struct{} + +func (t anyType) Underlying() types.Type { return t } +func (t anyType) String() string { return "any" } diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go b/vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go new file mode 100644 index 00000000..f33dc561 --- /dev/null +++ b/vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go @@ -0,0 +1,93 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file is a copy of $GOROOT/src/go/internal/gcimporter/exportdata.go. + +// This file implements FindExportData. + +package gcimporter + +import ( + "bufio" + "fmt" + "io" + "strconv" + "strings" +) + +func readGopackHeader(r *bufio.Reader) (name string, size int, err error) { + // See $GOROOT/include/ar.h. + hdr := make([]byte, 16+12+6+6+8+10+2) + _, err = io.ReadFull(r, hdr) + if err != nil { + return + } + // leave for debugging + if false { + fmt.Printf("header: %s", hdr) + } + s := strings.TrimSpace(string(hdr[16+12+6+6+8:][:10])) + size, err = strconv.Atoi(s) + if err != nil || hdr[len(hdr)-2] != '`' || hdr[len(hdr)-1] != '\n' { + err = fmt.Errorf("invalid archive header") + return + } + name = strings.TrimSpace(string(hdr[:16])) + return +} + +// FindExportData positions the reader r at the beginning of the +// export data section of an underlying GC-created object/archive +// file by reading from it. The reader must be positioned at the +// start of the file before calling this function. The hdr result +// is the string before the export data, either "$$" or "$$B". +// +func FindExportData(r *bufio.Reader) (hdr string, err error) { + // Read first line to make sure this is an object file. + line, err := r.ReadSlice('\n') + if err != nil { + err = fmt.Errorf("can't find export data (%v)", err) + return + } + + if string(line) == "!\n" { + // Archive file. Scan to __.PKGDEF. + var name string + if name, _, err = readGopackHeader(r); err != nil { + return + } + + // First entry should be __.PKGDEF. + if name != "__.PKGDEF" { + err = fmt.Errorf("go archive is missing __.PKGDEF") + return + } + + // Read first line of __.PKGDEF data, so that line + // is once again the first line of the input. + if line, err = r.ReadSlice('\n'); err != nil { + err = fmt.Errorf("can't find export data (%v)", err) + return + } + } + + // Now at __.PKGDEF in archive or still at beginning of file. + // Either way, line should begin with "go object ". + if !strings.HasPrefix(string(line), "go object ") { + err = fmt.Errorf("not a Go object file") + return + } + + // Skip over object header to export data. + // Begins after first line starting with $$. + for line[0] != '$' { + if line, err = r.ReadSlice('\n'); err != nil { + err = fmt.Errorf("can't find export data (%v)", err) + return + } + } + hdr = string(line) + + return +} diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go new file mode 100644 index 00000000..9cf18660 --- /dev/null +++ b/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go @@ -0,0 +1,1078 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file is a modified copy of $GOROOT/src/go/internal/gcimporter/gcimporter.go, +// but it also contains the original source-based importer code for Go1.6. +// Once we stop supporting 1.6, we can remove that code. + +// Package gcimporter provides various functions for reading +// gc-generated object files that can be used to implement the +// Importer interface defined by the Go 1.5 standard library package. +package gcimporter // import "golang.org/x/tools/go/internal/gcimporter" + +import ( + "bufio" + "errors" + "fmt" + "go/build" + "go/constant" + "go/token" + "go/types" + "io" + "io/ioutil" + "os" + "path/filepath" + "sort" + "strconv" + "strings" + "text/scanner" +) + +// debugging/development support +const debug = false + +var pkgExts = [...]string{".a", ".o"} + +// FindPkg returns the filename and unique package id for an import +// path based on package information provided by build.Import (using +// the build.Default build.Context). A relative srcDir is interpreted +// relative to the current working directory. +// If no file was found, an empty filename is returned. +// +func FindPkg(path, srcDir string) (filename, id string) { + if path == "" { + return + } + + var noext string + switch { + default: + // "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x" + // Don't require the source files to be present. + if abs, err := filepath.Abs(srcDir); err == nil { // see issue 14282 + srcDir = abs + } + bp, _ := build.Import(path, srcDir, build.FindOnly|build.AllowBinary) + if bp.PkgObj == "" { + id = path // make sure we have an id to print in error message + return + } + noext = strings.TrimSuffix(bp.PkgObj, ".a") + id = bp.ImportPath + + case build.IsLocalImport(path): + // "./x" -> "/this/directory/x.ext", "/this/directory/x" + noext = filepath.Join(srcDir, path) + id = noext + + case filepath.IsAbs(path): + // for completeness only - go/build.Import + // does not support absolute imports + // "/x" -> "/x.ext", "/x" + noext = path + id = path + } + + if false { // for debugging + if path != id { + fmt.Printf("%s -> %s\n", path, id) + } + } + + // try extensions + for _, ext := range pkgExts { + filename = noext + ext + if f, err := os.Stat(filename); err == nil && !f.IsDir() { + return + } + } + + filename = "" // not found + return +} + +// ImportData imports a package by reading the gc-generated export data, +// adds the corresponding package object to the packages map indexed by id, +// and returns the object. +// +// The packages map must contains all packages already imported. The data +// reader position must be the beginning of the export data section. The +// filename is only used in error messages. +// +// If packages[id] contains the completely imported package, that package +// can be used directly, and there is no need to call this function (but +// there is also no harm but for extra time used). +// +func ImportData(packages map[string]*types.Package, filename, id string, data io.Reader) (pkg *types.Package, err error) { + // support for parser error handling + defer func() { + switch r := recover().(type) { + case nil: + // nothing to do + case importError: + err = r + default: + panic(r) // internal error + } + }() + + var p parser + p.init(filename, id, data, packages) + pkg = p.parseExport() + + return +} + +// Import imports a gc-generated package given its import path and srcDir, adds +// the corresponding package object to the packages map, and returns the object. +// The packages map must contain all packages already imported. +// +func Import(packages map[string]*types.Package, path, srcDir string, lookup func(path string) (io.ReadCloser, error)) (pkg *types.Package, err error) { + var rc io.ReadCloser + var filename, id string + if lookup != nil { + // With custom lookup specified, assume that caller has + // converted path to a canonical import path for use in the map. + if path == "unsafe" { + return types.Unsafe, nil + } + id = path + + // No need to re-import if the package was imported completely before. + if pkg = packages[id]; pkg != nil && pkg.Complete() { + return + } + f, err := lookup(path) + if err != nil { + return nil, err + } + rc = f + } else { + filename, id = FindPkg(path, srcDir) + if filename == "" { + if path == "unsafe" { + return types.Unsafe, nil + } + return nil, fmt.Errorf("can't find import: %q", id) + } + + // no need to re-import if the package was imported completely before + if pkg = packages[id]; pkg != nil && pkg.Complete() { + return + } + + // open file + f, err := os.Open(filename) + if err != nil { + return nil, err + } + defer func() { + if err != nil { + // add file name to error + err = fmt.Errorf("%s: %v", filename, err) + } + }() + rc = f + } + defer rc.Close() + + var hdr string + buf := bufio.NewReader(rc) + if hdr, err = FindExportData(buf); err != nil { + return + } + + switch hdr { + case "$$\n": + // Work-around if we don't have a filename; happens only if lookup != nil. + // Either way, the filename is only needed for importer error messages, so + // this is fine. + if filename == "" { + filename = path + } + return ImportData(packages, filename, id, buf) + + case "$$B\n": + var data []byte + data, err = ioutil.ReadAll(buf) + if err != nil { + break + } + + // TODO(gri): allow clients of go/importer to provide a FileSet. + // Or, define a new standard go/types/gcexportdata package. + fset := token.NewFileSet() + + // The indexed export format starts with an 'i'; the older + // binary export format starts with a 'c', 'd', or 'v' + // (from "version"). Select appropriate importer. + if len(data) > 0 && data[0] == 'i' { + _, pkg, err = IImportData(fset, packages, data[1:], id) + } else { + _, pkg, err = BImportData(fset, packages, data, id) + } + + default: + err = fmt.Errorf("unknown export data header: %q", hdr) + } + + return +} + +// ---------------------------------------------------------------------------- +// Parser + +// TODO(gri) Imported objects don't have position information. +// Ideally use the debug table line info; alternatively +// create some fake position (or the position of the +// import). That way error messages referring to imported +// objects can print meaningful information. + +// parser parses the exports inside a gc compiler-produced +// object/archive file and populates its scope with the results. +type parser struct { + scanner scanner.Scanner + tok rune // current token + lit string // literal string; only valid for Ident, Int, String tokens + id string // package id of imported package + sharedPkgs map[string]*types.Package // package id -> package object (across importer) + localPkgs map[string]*types.Package // package id -> package object (just this package) +} + +func (p *parser) init(filename, id string, src io.Reader, packages map[string]*types.Package) { + p.scanner.Init(src) + p.scanner.Error = func(_ *scanner.Scanner, msg string) { p.error(msg) } + p.scanner.Mode = scanner.ScanIdents | scanner.ScanInts | scanner.ScanChars | scanner.ScanStrings | scanner.ScanComments | scanner.SkipComments + p.scanner.Whitespace = 1<<'\t' | 1<<' ' + p.scanner.Filename = filename // for good error messages + p.next() + p.id = id + p.sharedPkgs = packages + if debug { + // check consistency of packages map + for _, pkg := range packages { + if pkg.Name() == "" { + fmt.Printf("no package name for %s\n", pkg.Path()) + } + } + } +} + +func (p *parser) next() { + p.tok = p.scanner.Scan() + switch p.tok { + case scanner.Ident, scanner.Int, scanner.Char, scanner.String, '·': + p.lit = p.scanner.TokenText() + default: + p.lit = "" + } + if debug { + fmt.Printf("%s: %q -> %q\n", scanner.TokenString(p.tok), p.scanner.TokenText(), p.lit) + } +} + +func declTypeName(pkg *types.Package, name string) *types.TypeName { + scope := pkg.Scope() + if obj := scope.Lookup(name); obj != nil { + return obj.(*types.TypeName) + } + obj := types.NewTypeName(token.NoPos, pkg, name, nil) + // a named type may be referred to before the underlying type + // is known - set it up + types.NewNamed(obj, nil, nil) + scope.Insert(obj) + return obj +} + +// ---------------------------------------------------------------------------- +// Error handling + +// Internal errors are boxed as importErrors. +type importError struct { + pos scanner.Position + err error +} + +func (e importError) Error() string { + return fmt.Sprintf("import error %s (byte offset = %d): %s", e.pos, e.pos.Offset, e.err) +} + +func (p *parser) error(err interface{}) { + if s, ok := err.(string); ok { + err = errors.New(s) + } + // panic with a runtime.Error if err is not an error + panic(importError{p.scanner.Pos(), err.(error)}) +} + +func (p *parser) errorf(format string, args ...interface{}) { + p.error(fmt.Sprintf(format, args...)) +} + +func (p *parser) expect(tok rune) string { + lit := p.lit + if p.tok != tok { + p.errorf("expected %s, got %s (%s)", scanner.TokenString(tok), scanner.TokenString(p.tok), lit) + } + p.next() + return lit +} + +func (p *parser) expectSpecial(tok string) { + sep := 'x' // not white space + i := 0 + for i < len(tok) && p.tok == rune(tok[i]) && sep > ' ' { + sep = p.scanner.Peek() // if sep <= ' ', there is white space before the next token + p.next() + i++ + } + if i < len(tok) { + p.errorf("expected %q, got %q", tok, tok[0:i]) + } +} + +func (p *parser) expectKeyword(keyword string) { + lit := p.expect(scanner.Ident) + if lit != keyword { + p.errorf("expected keyword %s, got %q", keyword, lit) + } +} + +// ---------------------------------------------------------------------------- +// Qualified and unqualified names + +// PackageId = string_lit . +// +func (p *parser) parsePackageId() string { + id, err := strconv.Unquote(p.expect(scanner.String)) + if err != nil { + p.error(err) + } + // id == "" stands for the imported package id + // (only known at time of package installation) + if id == "" { + id = p.id + } + return id +} + +// PackageName = ident . +// +func (p *parser) parsePackageName() string { + return p.expect(scanner.Ident) +} + +// dotIdentifier = ( ident | '·' ) { ident | int | '·' } . +func (p *parser) parseDotIdent() string { + ident := "" + if p.tok != scanner.Int { + sep := 'x' // not white space + for (p.tok == scanner.Ident || p.tok == scanner.Int || p.tok == '·') && sep > ' ' { + ident += p.lit + sep = p.scanner.Peek() // if sep <= ' ', there is white space before the next token + p.next() + } + } + if ident == "" { + p.expect(scanner.Ident) // use expect() for error handling + } + return ident +} + +// QualifiedName = "@" PackageId "." ( "?" | dotIdentifier ) . +// +func (p *parser) parseQualifiedName() (id, name string) { + p.expect('@') + id = p.parsePackageId() + p.expect('.') + // Per rev f280b8a485fd (10/2/2013), qualified names may be used for anonymous fields. + if p.tok == '?' { + p.next() + } else { + name = p.parseDotIdent() + } + return +} + +// getPkg returns the package for a given id. If the package is +// not found, create the package and add it to the p.localPkgs +// and p.sharedPkgs maps. name is the (expected) name of the +// package. If name == "", the package name is expected to be +// set later via an import clause in the export data. +// +// id identifies a package, usually by a canonical package path like +// "encoding/json" but possibly by a non-canonical import path like +// "./json". +// +func (p *parser) getPkg(id, name string) *types.Package { + // package unsafe is not in the packages maps - handle explicitly + if id == "unsafe" { + return types.Unsafe + } + + pkg := p.localPkgs[id] + if pkg == nil { + // first import of id from this package + pkg = p.sharedPkgs[id] + if pkg == nil { + // first import of id by this importer; + // add (possibly unnamed) pkg to shared packages + pkg = types.NewPackage(id, name) + p.sharedPkgs[id] = pkg + } + // add (possibly unnamed) pkg to local packages + if p.localPkgs == nil { + p.localPkgs = make(map[string]*types.Package) + } + p.localPkgs[id] = pkg + } else if name != "" { + // package exists already and we have an expected package name; + // make sure names match or set package name if necessary + if pname := pkg.Name(); pname == "" { + pkg.SetName(name) + } else if pname != name { + p.errorf("%s package name mismatch: %s (given) vs %s (expected)", id, pname, name) + } + } + return pkg +} + +// parseExportedName is like parseQualifiedName, but +// the package id is resolved to an imported *types.Package. +// +func (p *parser) parseExportedName() (pkg *types.Package, name string) { + id, name := p.parseQualifiedName() + pkg = p.getPkg(id, "") + return +} + +// ---------------------------------------------------------------------------- +// Types + +// BasicType = identifier . +// +func (p *parser) parseBasicType() types.Type { + id := p.expect(scanner.Ident) + obj := types.Universe.Lookup(id) + if obj, ok := obj.(*types.TypeName); ok { + return obj.Type() + } + p.errorf("not a basic type: %s", id) + return nil +} + +// ArrayType = "[" int_lit "]" Type . +// +func (p *parser) parseArrayType(parent *types.Package) types.Type { + // "[" already consumed and lookahead known not to be "]" + lit := p.expect(scanner.Int) + p.expect(']') + elem := p.parseType(parent) + n, err := strconv.ParseInt(lit, 10, 64) + if err != nil { + p.error(err) + } + return types.NewArray(elem, n) +} + +// MapType = "map" "[" Type "]" Type . +// +func (p *parser) parseMapType(parent *types.Package) types.Type { + p.expectKeyword("map") + p.expect('[') + key := p.parseType(parent) + p.expect(']') + elem := p.parseType(parent) + return types.NewMap(key, elem) +} + +// Name = identifier | "?" | QualifiedName . +// +// For unqualified and anonymous names, the returned package is the parent +// package unless parent == nil, in which case the returned package is the +// package being imported. (The parent package is not nil if the the name +// is an unqualified struct field or interface method name belonging to a +// type declared in another package.) +// +// For qualified names, the returned package is nil (and not created if +// it doesn't exist yet) unless materializePkg is set (which creates an +// unnamed package with valid package path). In the latter case, a +// subsequent import clause is expected to provide a name for the package. +// +func (p *parser) parseName(parent *types.Package, materializePkg bool) (pkg *types.Package, name string) { + pkg = parent + if pkg == nil { + pkg = p.sharedPkgs[p.id] + } + switch p.tok { + case scanner.Ident: + name = p.lit + p.next() + case '?': + // anonymous + p.next() + case '@': + // exported name prefixed with package path + pkg = nil + var id string + id, name = p.parseQualifiedName() + if materializePkg { + pkg = p.getPkg(id, "") + } + default: + p.error("name expected") + } + return +} + +func deref(typ types.Type) types.Type { + if p, _ := typ.(*types.Pointer); p != nil { + return p.Elem() + } + return typ +} + +// Field = Name Type [ string_lit ] . +// +func (p *parser) parseField(parent *types.Package) (*types.Var, string) { + pkg, name := p.parseName(parent, true) + + if name == "_" { + // Blank fields should be package-qualified because they + // are unexported identifiers, but gc does not qualify them. + // Assuming that the ident belongs to the current package + // causes types to change during re-exporting, leading + // to spurious "can't assign A to B" errors from go/types. + // As a workaround, pretend all blank fields belong + // to the same unique dummy package. + const blankpkg = "<_>" + pkg = p.getPkg(blankpkg, blankpkg) + } + + typ := p.parseType(parent) + anonymous := false + if name == "" { + // anonymous field - typ must be T or *T and T must be a type name + switch typ := deref(typ).(type) { + case *types.Basic: // basic types are named types + pkg = nil // objects defined in Universe scope have no package + name = typ.Name() + case *types.Named: + name = typ.Obj().Name() + default: + p.errorf("anonymous field expected") + } + anonymous = true + } + tag := "" + if p.tok == scanner.String { + s := p.expect(scanner.String) + var err error + tag, err = strconv.Unquote(s) + if err != nil { + p.errorf("invalid struct tag %s: %s", s, err) + } + } + return types.NewField(token.NoPos, pkg, name, typ, anonymous), tag +} + +// StructType = "struct" "{" [ FieldList ] "}" . +// FieldList = Field { ";" Field } . +// +func (p *parser) parseStructType(parent *types.Package) types.Type { + var fields []*types.Var + var tags []string + + p.expectKeyword("struct") + p.expect('{') + for i := 0; p.tok != '}' && p.tok != scanner.EOF; i++ { + if i > 0 { + p.expect(';') + } + fld, tag := p.parseField(parent) + if tag != "" && tags == nil { + tags = make([]string, i) + } + if tags != nil { + tags = append(tags, tag) + } + fields = append(fields, fld) + } + p.expect('}') + + return types.NewStruct(fields, tags) +} + +// Parameter = ( identifier | "?" ) [ "..." ] Type [ string_lit ] . +// +func (p *parser) parseParameter() (par *types.Var, isVariadic bool) { + _, name := p.parseName(nil, false) + // remove gc-specific parameter numbering + if i := strings.Index(name, "·"); i >= 0 { + name = name[:i] + } + if p.tok == '.' { + p.expectSpecial("...") + isVariadic = true + } + typ := p.parseType(nil) + if isVariadic { + typ = types.NewSlice(typ) + } + // ignore argument tag (e.g. "noescape") + if p.tok == scanner.String { + p.next() + } + // TODO(gri) should we provide a package? + par = types.NewVar(token.NoPos, nil, name, typ) + return +} + +// Parameters = "(" [ ParameterList ] ")" . +// ParameterList = { Parameter "," } Parameter . +// +func (p *parser) parseParameters() (list []*types.Var, isVariadic bool) { + p.expect('(') + for p.tok != ')' && p.tok != scanner.EOF { + if len(list) > 0 { + p.expect(',') + } + par, variadic := p.parseParameter() + list = append(list, par) + if variadic { + if isVariadic { + p.error("... not on final argument") + } + isVariadic = true + } + } + p.expect(')') + + return +} + +// Signature = Parameters [ Result ] . +// Result = Type | Parameters . +// +func (p *parser) parseSignature(recv *types.Var) *types.Signature { + params, isVariadic := p.parseParameters() + + // optional result type + var results []*types.Var + if p.tok == '(' { + var variadic bool + results, variadic = p.parseParameters() + if variadic { + p.error("... not permitted on result type") + } + } + + return types.NewSignature(recv, types.NewTuple(params...), types.NewTuple(results...), isVariadic) +} + +// InterfaceType = "interface" "{" [ MethodList ] "}" . +// MethodList = Method { ";" Method } . +// Method = Name Signature . +// +// The methods of embedded interfaces are always "inlined" +// by the compiler and thus embedded interfaces are never +// visible in the export data. +// +func (p *parser) parseInterfaceType(parent *types.Package) types.Type { + var methods []*types.Func + + p.expectKeyword("interface") + p.expect('{') + for i := 0; p.tok != '}' && p.tok != scanner.EOF; i++ { + if i > 0 { + p.expect(';') + } + pkg, name := p.parseName(parent, true) + sig := p.parseSignature(nil) + methods = append(methods, types.NewFunc(token.NoPos, pkg, name, sig)) + } + p.expect('}') + + // Complete requires the type's embedded interfaces to be fully defined, + // but we do not define any + return types.NewInterface(methods, nil).Complete() +} + +// ChanType = ( "chan" [ "<-" ] | "<-" "chan" ) Type . +// +func (p *parser) parseChanType(parent *types.Package) types.Type { + dir := types.SendRecv + if p.tok == scanner.Ident { + p.expectKeyword("chan") + if p.tok == '<' { + p.expectSpecial("<-") + dir = types.SendOnly + } + } else { + p.expectSpecial("<-") + p.expectKeyword("chan") + dir = types.RecvOnly + } + elem := p.parseType(parent) + return types.NewChan(dir, elem) +} + +// Type = +// BasicType | TypeName | ArrayType | SliceType | StructType | +// PointerType | FuncType | InterfaceType | MapType | ChanType | +// "(" Type ")" . +// +// BasicType = ident . +// TypeName = ExportedName . +// SliceType = "[" "]" Type . +// PointerType = "*" Type . +// FuncType = "func" Signature . +// +func (p *parser) parseType(parent *types.Package) types.Type { + switch p.tok { + case scanner.Ident: + switch p.lit { + default: + return p.parseBasicType() + case "struct": + return p.parseStructType(parent) + case "func": + // FuncType + p.next() + return p.parseSignature(nil) + case "interface": + return p.parseInterfaceType(parent) + case "map": + return p.parseMapType(parent) + case "chan": + return p.parseChanType(parent) + } + case '@': + // TypeName + pkg, name := p.parseExportedName() + return declTypeName(pkg, name).Type() + case '[': + p.next() // look ahead + if p.tok == ']' { + // SliceType + p.next() + return types.NewSlice(p.parseType(parent)) + } + return p.parseArrayType(parent) + case '*': + // PointerType + p.next() + return types.NewPointer(p.parseType(parent)) + case '<': + return p.parseChanType(parent) + case '(': + // "(" Type ")" + p.next() + typ := p.parseType(parent) + p.expect(')') + return typ + } + p.errorf("expected type, got %s (%q)", scanner.TokenString(p.tok), p.lit) + return nil +} + +// ---------------------------------------------------------------------------- +// Declarations + +// ImportDecl = "import" PackageName PackageId . +// +func (p *parser) parseImportDecl() { + p.expectKeyword("import") + name := p.parsePackageName() + p.getPkg(p.parsePackageId(), name) +} + +// int_lit = [ "+" | "-" ] { "0" ... "9" } . +// +func (p *parser) parseInt() string { + s := "" + switch p.tok { + case '-': + s = "-" + p.next() + case '+': + p.next() + } + return s + p.expect(scanner.Int) +} + +// number = int_lit [ "p" int_lit ] . +// +func (p *parser) parseNumber() (typ *types.Basic, val constant.Value) { + // mantissa + mant := constant.MakeFromLiteral(p.parseInt(), token.INT, 0) + if mant == nil { + panic("invalid mantissa") + } + + if p.lit == "p" { + // exponent (base 2) + p.next() + exp, err := strconv.ParseInt(p.parseInt(), 10, 0) + if err != nil { + p.error(err) + } + if exp < 0 { + denom := constant.MakeInt64(1) + denom = constant.Shift(denom, token.SHL, uint(-exp)) + typ = types.Typ[types.UntypedFloat] + val = constant.BinaryOp(mant, token.QUO, denom) + return + } + if exp > 0 { + mant = constant.Shift(mant, token.SHL, uint(exp)) + } + typ = types.Typ[types.UntypedFloat] + val = mant + return + } + + typ = types.Typ[types.UntypedInt] + val = mant + return +} + +// ConstDecl = "const" ExportedName [ Type ] "=" Literal . +// Literal = bool_lit | int_lit | float_lit | complex_lit | rune_lit | string_lit . +// bool_lit = "true" | "false" . +// complex_lit = "(" float_lit "+" float_lit "i" ")" . +// rune_lit = "(" int_lit "+" int_lit ")" . +// string_lit = `"` { unicode_char } `"` . +// +func (p *parser) parseConstDecl() { + p.expectKeyword("const") + pkg, name := p.parseExportedName() + + var typ0 types.Type + if p.tok != '=' { + // constant types are never structured - no need for parent type + typ0 = p.parseType(nil) + } + + p.expect('=') + var typ types.Type + var val constant.Value + switch p.tok { + case scanner.Ident: + // bool_lit + if p.lit != "true" && p.lit != "false" { + p.error("expected true or false") + } + typ = types.Typ[types.UntypedBool] + val = constant.MakeBool(p.lit == "true") + p.next() + + case '-', scanner.Int: + // int_lit + typ, val = p.parseNumber() + + case '(': + // complex_lit or rune_lit + p.next() + if p.tok == scanner.Char { + p.next() + p.expect('+') + typ = types.Typ[types.UntypedRune] + _, val = p.parseNumber() + p.expect(')') + break + } + _, re := p.parseNumber() + p.expect('+') + _, im := p.parseNumber() + p.expectKeyword("i") + p.expect(')') + typ = types.Typ[types.UntypedComplex] + val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) + + case scanner.Char: + // rune_lit + typ = types.Typ[types.UntypedRune] + val = constant.MakeFromLiteral(p.lit, token.CHAR, 0) + p.next() + + case scanner.String: + // string_lit + typ = types.Typ[types.UntypedString] + val = constant.MakeFromLiteral(p.lit, token.STRING, 0) + p.next() + + default: + p.errorf("expected literal got %s", scanner.TokenString(p.tok)) + } + + if typ0 == nil { + typ0 = typ + } + + pkg.Scope().Insert(types.NewConst(token.NoPos, pkg, name, typ0, val)) +} + +// TypeDecl = "type" ExportedName Type . +// +func (p *parser) parseTypeDecl() { + p.expectKeyword("type") + pkg, name := p.parseExportedName() + obj := declTypeName(pkg, name) + + // The type object may have been imported before and thus already + // have a type associated with it. We still need to parse the type + // structure, but throw it away if the object already has a type. + // This ensures that all imports refer to the same type object for + // a given type declaration. + typ := p.parseType(pkg) + + if name := obj.Type().(*types.Named); name.Underlying() == nil { + name.SetUnderlying(typ) + } +} + +// VarDecl = "var" ExportedName Type . +// +func (p *parser) parseVarDecl() { + p.expectKeyword("var") + pkg, name := p.parseExportedName() + typ := p.parseType(pkg) + pkg.Scope().Insert(types.NewVar(token.NoPos, pkg, name, typ)) +} + +// Func = Signature [ Body ] . +// Body = "{" ... "}" . +// +func (p *parser) parseFunc(recv *types.Var) *types.Signature { + sig := p.parseSignature(recv) + if p.tok == '{' { + p.next() + for i := 1; i > 0; p.next() { + switch p.tok { + case '{': + i++ + case '}': + i-- + } + } + } + return sig +} + +// MethodDecl = "func" Receiver Name Func . +// Receiver = "(" ( identifier | "?" ) [ "*" ] ExportedName ")" . +// +func (p *parser) parseMethodDecl() { + // "func" already consumed + p.expect('(') + recv, _ := p.parseParameter() // receiver + p.expect(')') + + // determine receiver base type object + base := deref(recv.Type()).(*types.Named) + + // parse method name, signature, and possibly inlined body + _, name := p.parseName(nil, false) + sig := p.parseFunc(recv) + + // methods always belong to the same package as the base type object + pkg := base.Obj().Pkg() + + // add method to type unless type was imported before + // and method exists already + // TODO(gri) This leads to a quadratic algorithm - ok for now because method counts are small. + base.AddMethod(types.NewFunc(token.NoPos, pkg, name, sig)) +} + +// FuncDecl = "func" ExportedName Func . +// +func (p *parser) parseFuncDecl() { + // "func" already consumed + pkg, name := p.parseExportedName() + typ := p.parseFunc(nil) + pkg.Scope().Insert(types.NewFunc(token.NoPos, pkg, name, typ)) +} + +// Decl = [ ImportDecl | ConstDecl | TypeDecl | VarDecl | FuncDecl | MethodDecl ] "\n" . +// +func (p *parser) parseDecl() { + if p.tok == scanner.Ident { + switch p.lit { + case "import": + p.parseImportDecl() + case "const": + p.parseConstDecl() + case "type": + p.parseTypeDecl() + case "var": + p.parseVarDecl() + case "func": + p.next() // look ahead + if p.tok == '(' { + p.parseMethodDecl() + } else { + p.parseFuncDecl() + } + } + } + p.expect('\n') +} + +// ---------------------------------------------------------------------------- +// Export + +// Export = "PackageClause { Decl } "$$" . +// PackageClause = "package" PackageName [ "safe" ] "\n" . +// +func (p *parser) parseExport() *types.Package { + p.expectKeyword("package") + name := p.parsePackageName() + if p.tok == scanner.Ident && p.lit == "safe" { + // package was compiled with -u option - ignore + p.next() + } + p.expect('\n') + + pkg := p.getPkg(p.id, name) + + for p.tok != '$' && p.tok != scanner.EOF { + p.parseDecl() + } + + if ch := p.scanner.Peek(); p.tok != '$' || ch != '$' { + // don't call next()/expect() since reading past the + // export data may cause scanner errors (e.g. NUL chars) + p.errorf("expected '$$', got %s %c", scanner.TokenString(p.tok), ch) + } + + if n := p.scanner.ErrorCount; n != 0 { + p.errorf("expected no scanner errors, got %d", n) + } + + // Record all locally referenced packages as imports. + var imports []*types.Package + for id, pkg2 := range p.localPkgs { + if pkg2.Name() == "" { + p.errorf("%s package has no name", id) + } + if id == p.id { + continue // avoid self-edge + } + imports = append(imports, pkg2) + } + sort.Sort(byPath(imports)) + pkg.SetImports(imports) + + // package was imported completely and without errors + pkg.MarkComplete() + + return pkg +} + +type byPath []*types.Package + +func (a byPath) Len() int { return len(a) } +func (a byPath) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a byPath) Less(i, j int) bool { return a[i].Path() < a[j].Path() } diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go new file mode 100644 index 00000000..be671c79 --- /dev/null +++ b/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go @@ -0,0 +1,723 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Indexed binary package export. +// This file was derived from $GOROOT/src/cmd/compile/internal/gc/iexport.go; +// see that file for specification of the format. + +// +build go1.11 + +package gcimporter + +import ( + "bytes" + "encoding/binary" + "go/ast" + "go/constant" + "go/token" + "go/types" + "io" + "math/big" + "reflect" + "sort" +) + +// Current indexed export format version. Increase with each format change. +// 0: Go1.11 encoding +const iexportVersion = 0 + +// IExportData returns the binary export data for pkg. +// If no file set is provided, position info will be missing. +func IExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) { + defer func() { + if e := recover(); e != nil { + if ierr, ok := e.(internalError); ok { + err = ierr + return + } + // Not an internal error; panic again. + panic(e) + } + }() + + p := iexporter{ + out: bytes.NewBuffer(nil), + fset: fset, + allPkgs: map[*types.Package]bool{}, + stringIndex: map[string]uint64{}, + declIndex: map[types.Object]uint64{}, + typIndex: map[types.Type]uint64{}, + } + + for i, pt := range predeclared() { + p.typIndex[pt] = uint64(i) + } + if len(p.typIndex) > predeclReserved { + panic(internalErrorf("too many predeclared types: %d > %d", len(p.typIndex), predeclReserved)) + } + + // Initialize work queue with exported declarations. + scope := pkg.Scope() + for _, name := range scope.Names() { + if ast.IsExported(name) { + p.pushDecl(scope.Lookup(name)) + } + } + + // Loop until no more work. + for !p.declTodo.empty() { + p.doDecl(p.declTodo.popHead()) + } + + // Append indices to data0 section. + dataLen := uint64(p.data0.Len()) + w := p.newWriter() + w.writeIndex(p.declIndex, pkg) + w.flush() + + // Assemble header. + var hdr intWriter + hdr.WriteByte('i') + hdr.uint64(iexportVersion) + hdr.uint64(uint64(p.strings.Len())) + hdr.uint64(dataLen) + + // Flush output. + io.Copy(p.out, &hdr) + io.Copy(p.out, &p.strings) + io.Copy(p.out, &p.data0) + + return p.out.Bytes(), nil +} + +// writeIndex writes out an object index. mainIndex indicates whether +// we're writing out the main index, which is also read by +// non-compiler tools and includes a complete package description +// (i.e., name and height). +func (w *exportWriter) writeIndex(index map[types.Object]uint64, localpkg *types.Package) { + // Build a map from packages to objects from that package. + pkgObjs := map[*types.Package][]types.Object{} + + // For the main index, make sure to include every package that + // we reference, even if we're not exporting (or reexporting) + // any symbols from it. + pkgObjs[localpkg] = nil + for pkg := range w.p.allPkgs { + pkgObjs[pkg] = nil + } + + for obj := range index { + pkgObjs[obj.Pkg()] = append(pkgObjs[obj.Pkg()], obj) + } + + var pkgs []*types.Package + for pkg, objs := range pkgObjs { + pkgs = append(pkgs, pkg) + + sort.Slice(objs, func(i, j int) bool { + return objs[i].Name() < objs[j].Name() + }) + } + + sort.Slice(pkgs, func(i, j int) bool { + return pkgs[i].Path() < pkgs[j].Path() + }) + + w.uint64(uint64(len(pkgs))) + for _, pkg := range pkgs { + w.string(pkg.Path()) + w.string(pkg.Name()) + w.uint64(uint64(0)) // package height is not needed for go/types + + objs := pkgObjs[pkg] + w.uint64(uint64(len(objs))) + for _, obj := range objs { + w.string(obj.Name()) + w.uint64(index[obj]) + } + } +} + +type iexporter struct { + fset *token.FileSet + out *bytes.Buffer + + // allPkgs tracks all packages that have been referenced by + // the export data, so we can ensure to include them in the + // main index. + allPkgs map[*types.Package]bool + + declTodo objQueue + + strings intWriter + stringIndex map[string]uint64 + + data0 intWriter + declIndex map[types.Object]uint64 + typIndex map[types.Type]uint64 +} + +// stringOff returns the offset of s within the string section. +// If not already present, it's added to the end. +func (p *iexporter) stringOff(s string) uint64 { + off, ok := p.stringIndex[s] + if !ok { + off = uint64(p.strings.Len()) + p.stringIndex[s] = off + + p.strings.uint64(uint64(len(s))) + p.strings.WriteString(s) + } + return off +} + +// pushDecl adds n to the declaration work queue, if not already present. +func (p *iexporter) pushDecl(obj types.Object) { + // Package unsafe is known to the compiler and predeclared. + assert(obj.Pkg() != types.Unsafe) + + if _, ok := p.declIndex[obj]; ok { + return + } + + p.declIndex[obj] = ^uint64(0) // mark n present in work queue + p.declTodo.pushTail(obj) +} + +// exportWriter handles writing out individual data section chunks. +type exportWriter struct { + p *iexporter + + data intWriter + currPkg *types.Package + prevFile string + prevLine int64 +} + +func (p *iexporter) doDecl(obj types.Object) { + w := p.newWriter() + w.setPkg(obj.Pkg(), false) + + switch obj := obj.(type) { + case *types.Var: + w.tag('V') + w.pos(obj.Pos()) + w.typ(obj.Type(), obj.Pkg()) + + case *types.Func: + sig, _ := obj.Type().(*types.Signature) + if sig.Recv() != nil { + panic(internalErrorf("unexpected method: %v", sig)) + } + w.tag('F') + w.pos(obj.Pos()) + w.signature(sig) + + case *types.Const: + w.tag('C') + w.pos(obj.Pos()) + w.value(obj.Type(), obj.Val()) + + case *types.TypeName: + if obj.IsAlias() { + w.tag('A') + w.pos(obj.Pos()) + w.typ(obj.Type(), obj.Pkg()) + break + } + + // Defined type. + w.tag('T') + w.pos(obj.Pos()) + + underlying := obj.Type().Underlying() + w.typ(underlying, obj.Pkg()) + + t := obj.Type() + if types.IsInterface(t) { + break + } + + named, ok := t.(*types.Named) + if !ok { + panic(internalErrorf("%s is not a defined type", t)) + } + + n := named.NumMethods() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + m := named.Method(i) + w.pos(m.Pos()) + w.string(m.Name()) + sig, _ := m.Type().(*types.Signature) + w.param(sig.Recv()) + w.signature(sig) + } + + default: + panic(internalErrorf("unexpected object: %v", obj)) + } + + p.declIndex[obj] = w.flush() +} + +func (w *exportWriter) tag(tag byte) { + w.data.WriteByte(tag) +} + +func (w *exportWriter) pos(pos token.Pos) { + p := w.p.fset.Position(pos) + file := p.Filename + line := int64(p.Line) + + // When file is the same as the last position (common case), + // we can save a few bytes by delta encoding just the line + // number. + // + // Note: Because data objects may be read out of order (or not + // at all), we can only apply delta encoding within a single + // object. This is handled implicitly by tracking prevFile and + // prevLine as fields of exportWriter. + + if file == w.prevFile { + delta := line - w.prevLine + w.int64(delta) + if delta == deltaNewFile { + w.int64(-1) + } + } else { + w.int64(deltaNewFile) + w.int64(line) // line >= 0 + w.string(file) + w.prevFile = file + } + w.prevLine = line +} + +func (w *exportWriter) pkg(pkg *types.Package) { + // Ensure any referenced packages are declared in the main index. + w.p.allPkgs[pkg] = true + + w.string(pkg.Path()) +} + +func (w *exportWriter) qualifiedIdent(obj types.Object) { + // Ensure any referenced declarations are written out too. + w.p.pushDecl(obj) + + w.string(obj.Name()) + w.pkg(obj.Pkg()) +} + +func (w *exportWriter) typ(t types.Type, pkg *types.Package) { + w.data.uint64(w.p.typOff(t, pkg)) +} + +func (p *iexporter) newWriter() *exportWriter { + return &exportWriter{p: p} +} + +func (w *exportWriter) flush() uint64 { + off := uint64(w.p.data0.Len()) + io.Copy(&w.p.data0, &w.data) + return off +} + +func (p *iexporter) typOff(t types.Type, pkg *types.Package) uint64 { + off, ok := p.typIndex[t] + if !ok { + w := p.newWriter() + w.doTyp(t, pkg) + off = predeclReserved + w.flush() + p.typIndex[t] = off + } + return off +} + +func (w *exportWriter) startType(k itag) { + w.data.uint64(uint64(k)) +} + +func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { + switch t := t.(type) { + case *types.Named: + w.startType(definedType) + w.qualifiedIdent(t.Obj()) + + case *types.Pointer: + w.startType(pointerType) + w.typ(t.Elem(), pkg) + + case *types.Slice: + w.startType(sliceType) + w.typ(t.Elem(), pkg) + + case *types.Array: + w.startType(arrayType) + w.uint64(uint64(t.Len())) + w.typ(t.Elem(), pkg) + + case *types.Chan: + w.startType(chanType) + // 1 RecvOnly; 2 SendOnly; 3 SendRecv + var dir uint64 + switch t.Dir() { + case types.RecvOnly: + dir = 1 + case types.SendOnly: + dir = 2 + case types.SendRecv: + dir = 3 + } + w.uint64(dir) + w.typ(t.Elem(), pkg) + + case *types.Map: + w.startType(mapType) + w.typ(t.Key(), pkg) + w.typ(t.Elem(), pkg) + + case *types.Signature: + w.startType(signatureType) + w.setPkg(pkg, true) + w.signature(t) + + case *types.Struct: + w.startType(structType) + w.setPkg(pkg, true) + + n := t.NumFields() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + f := t.Field(i) + w.pos(f.Pos()) + w.string(f.Name()) + w.typ(f.Type(), pkg) + w.bool(f.Embedded()) + w.string(t.Tag(i)) // note (or tag) + } + + case *types.Interface: + w.startType(interfaceType) + w.setPkg(pkg, true) + + n := t.NumEmbeddeds() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + f := t.Embedded(i) + w.pos(f.Obj().Pos()) + w.typ(f.Obj().Type(), f.Obj().Pkg()) + } + + n = t.NumExplicitMethods() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + m := t.ExplicitMethod(i) + w.pos(m.Pos()) + w.string(m.Name()) + sig, _ := m.Type().(*types.Signature) + w.signature(sig) + } + + default: + panic(internalErrorf("unexpected type: %v, %v", t, reflect.TypeOf(t))) + } +} + +func (w *exportWriter) setPkg(pkg *types.Package, write bool) { + if write { + w.pkg(pkg) + } + + w.currPkg = pkg +} + +func (w *exportWriter) signature(sig *types.Signature) { + w.paramList(sig.Params()) + w.paramList(sig.Results()) + if sig.Params().Len() > 0 { + w.bool(sig.Variadic()) + } +} + +func (w *exportWriter) paramList(tup *types.Tuple) { + n := tup.Len() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + w.param(tup.At(i)) + } +} + +func (w *exportWriter) param(obj types.Object) { + w.pos(obj.Pos()) + w.localIdent(obj) + w.typ(obj.Type(), obj.Pkg()) +} + +func (w *exportWriter) value(typ types.Type, v constant.Value) { + w.typ(typ, nil) + + switch v.Kind() { + case constant.Bool: + w.bool(constant.BoolVal(v)) + case constant.Int: + var i big.Int + if i64, exact := constant.Int64Val(v); exact { + i.SetInt64(i64) + } else if ui64, exact := constant.Uint64Val(v); exact { + i.SetUint64(ui64) + } else { + i.SetString(v.ExactString(), 10) + } + w.mpint(&i, typ) + case constant.Float: + f := constantToFloat(v) + w.mpfloat(f, typ) + case constant.Complex: + w.mpfloat(constantToFloat(constant.Real(v)), typ) + w.mpfloat(constantToFloat(constant.Imag(v)), typ) + case constant.String: + w.string(constant.StringVal(v)) + case constant.Unknown: + // package contains type errors + default: + panic(internalErrorf("unexpected value %v (%T)", v, v)) + } +} + +// constantToFloat converts a constant.Value with kind constant.Float to a +// big.Float. +func constantToFloat(x constant.Value) *big.Float { + assert(x.Kind() == constant.Float) + // Use the same floating-point precision (512) as cmd/compile + // (see Mpprec in cmd/compile/internal/gc/mpfloat.go). + const mpprec = 512 + var f big.Float + f.SetPrec(mpprec) + if v, exact := constant.Float64Val(x); exact { + // float64 + f.SetFloat64(v) + } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { + // TODO(gri): add big.Rat accessor to constant.Value. + n := valueToRat(num) + d := valueToRat(denom) + f.SetRat(n.Quo(n, d)) + } else { + // Value too large to represent as a fraction => inaccessible. + // TODO(gri): add big.Float accessor to constant.Value. + _, ok := f.SetString(x.ExactString()) + assert(ok) + } + return &f +} + +// mpint exports a multi-precision integer. +// +// For unsigned types, small values are written out as a single +// byte. Larger values are written out as a length-prefixed big-endian +// byte string, where the length prefix is encoded as its complement. +// For example, bytes 0, 1, and 2 directly represent the integer +// values 0, 1, and 2; while bytes 255, 254, and 253 indicate a 1-, +// 2-, and 3-byte big-endian string follow. +// +// Encoding for signed types use the same general approach as for +// unsigned types, except small values use zig-zag encoding and the +// bottom bit of length prefix byte for large values is reserved as a +// sign bit. +// +// The exact boundary between small and large encodings varies +// according to the maximum number of bytes needed to encode a value +// of type typ. As a special case, 8-bit types are always encoded as a +// single byte. +// +// TODO(mdempsky): Is this level of complexity really worthwhile? +func (w *exportWriter) mpint(x *big.Int, typ types.Type) { + basic, ok := typ.Underlying().(*types.Basic) + if !ok { + panic(internalErrorf("unexpected type %v (%T)", typ.Underlying(), typ.Underlying())) + } + + signed, maxBytes := intSize(basic) + + negative := x.Sign() < 0 + if !signed && negative { + panic(internalErrorf("negative unsigned integer; type %v, value %v", typ, x)) + } + + b := x.Bytes() + if len(b) > 0 && b[0] == 0 { + panic(internalErrorf("leading zeros")) + } + if uint(len(b)) > maxBytes { + panic(internalErrorf("bad mpint length: %d > %d (type %v, value %v)", len(b), maxBytes, typ, x)) + } + + maxSmall := 256 - maxBytes + if signed { + maxSmall = 256 - 2*maxBytes + } + if maxBytes == 1 { + maxSmall = 256 + } + + // Check if x can use small value encoding. + if len(b) <= 1 { + var ux uint + if len(b) == 1 { + ux = uint(b[0]) + } + if signed { + ux <<= 1 + if negative { + ux-- + } + } + if ux < maxSmall { + w.data.WriteByte(byte(ux)) + return + } + } + + n := 256 - uint(len(b)) + if signed { + n = 256 - 2*uint(len(b)) + if negative { + n |= 1 + } + } + if n < maxSmall || n >= 256 { + panic(internalErrorf("encoding mistake: %d, %v, %v => %d", len(b), signed, negative, n)) + } + + w.data.WriteByte(byte(n)) + w.data.Write(b) +} + +// mpfloat exports a multi-precision floating point number. +// +// The number's value is decomposed into mantissa × 2**exponent, where +// mantissa is an integer. The value is written out as mantissa (as a +// multi-precision integer) and then the exponent, except exponent is +// omitted if mantissa is zero. +func (w *exportWriter) mpfloat(f *big.Float, typ types.Type) { + if f.IsInf() { + panic("infinite constant") + } + + // Break into f = mant × 2**exp, with 0.5 <= mant < 1. + var mant big.Float + exp := int64(f.MantExp(&mant)) + + // Scale so that mant is an integer. + prec := mant.MinPrec() + mant.SetMantExp(&mant, int(prec)) + exp -= int64(prec) + + manti, acc := mant.Int(nil) + if acc != big.Exact { + panic(internalErrorf("mantissa scaling failed for %f (%s)", f, acc)) + } + w.mpint(manti, typ) + if manti.Sign() != 0 { + w.int64(exp) + } +} + +func (w *exportWriter) bool(b bool) bool { + var x uint64 + if b { + x = 1 + } + w.uint64(x) + return b +} + +func (w *exportWriter) int64(x int64) { w.data.int64(x) } +func (w *exportWriter) uint64(x uint64) { w.data.uint64(x) } +func (w *exportWriter) string(s string) { w.uint64(w.p.stringOff(s)) } + +func (w *exportWriter) localIdent(obj types.Object) { + // Anonymous parameters. + if obj == nil { + w.string("") + return + } + + name := obj.Name() + if name == "_" { + w.string("_") + return + } + + w.string(name) +} + +type intWriter struct { + bytes.Buffer +} + +func (w *intWriter) int64(x int64) { + var buf [binary.MaxVarintLen64]byte + n := binary.PutVarint(buf[:], x) + w.Write(buf[:n]) +} + +func (w *intWriter) uint64(x uint64) { + var buf [binary.MaxVarintLen64]byte + n := binary.PutUvarint(buf[:], x) + w.Write(buf[:n]) +} + +func assert(cond bool) { + if !cond { + panic("internal error: assertion failed") + } +} + +// The below is copied from go/src/cmd/compile/internal/gc/syntax.go. + +// objQueue is a FIFO queue of types.Object. The zero value of objQueue is +// a ready-to-use empty queue. +type objQueue struct { + ring []types.Object + head, tail int +} + +// empty returns true if q contains no Nodes. +func (q *objQueue) empty() bool { + return q.head == q.tail +} + +// pushTail appends n to the tail of the queue. +func (q *objQueue) pushTail(obj types.Object) { + if len(q.ring) == 0 { + q.ring = make([]types.Object, 16) + } else if q.head+len(q.ring) == q.tail { + // Grow the ring. + nring := make([]types.Object, len(q.ring)*2) + // Copy the old elements. + part := q.ring[q.head%len(q.ring):] + if q.tail-q.head <= len(part) { + part = part[:q.tail-q.head] + copy(nring, part) + } else { + pos := copy(nring, part) + copy(nring[pos:], q.ring[:q.tail%len(q.ring)]) + } + q.ring, q.head, q.tail = nring, 0, q.tail-q.head + } + + q.ring[q.tail%len(q.ring)] = obj + q.tail++ +} + +// popHead pops a node from the head of the queue. It panics if q is empty. +func (q *objQueue) popHead() types.Object { + if q.empty() { + panic("dequeue empty") + } + obj := q.ring[q.head%len(q.ring)] + q.head++ + return obj +} diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go new file mode 100644 index 00000000..3cb7ae5b --- /dev/null +++ b/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go @@ -0,0 +1,606 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Indexed package import. +// See cmd/compile/internal/gc/iexport.go for the export data format. + +// This file is a copy of $GOROOT/src/go/internal/gcimporter/iimport.go. + +package gcimporter + +import ( + "bytes" + "encoding/binary" + "fmt" + "go/constant" + "go/token" + "go/types" + "io" + "sort" +) + +type intReader struct { + *bytes.Reader + path string +} + +func (r *intReader) int64() int64 { + i, err := binary.ReadVarint(r.Reader) + if err != nil { + errorf("import %q: read varint error: %v", r.path, err) + } + return i +} + +func (r *intReader) uint64() uint64 { + i, err := binary.ReadUvarint(r.Reader) + if err != nil { + errorf("import %q: read varint error: %v", r.path, err) + } + return i +} + +const predeclReserved = 32 + +type itag uint64 + +const ( + // Types + definedType itag = iota + pointerType + sliceType + arrayType + chanType + mapType + signatureType + structType + interfaceType +) + +// IImportData imports a package from the serialized package data +// and returns the number of bytes consumed and a reference to the package. +// If the export data version is not recognized or the format is otherwise +// compromised, an error is returned. +func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { + const currentVersion = 0 + version := -1 + defer func() { + if e := recover(); e != nil { + if version > currentVersion { + err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) + } else { + err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) + } + } + }() + + r := &intReader{bytes.NewReader(data), path} + + version = int(r.uint64()) + switch version { + case currentVersion: + default: + errorf("unknown iexport format version %d", version) + } + + sLen := int64(r.uint64()) + dLen := int64(r.uint64()) + + whence, _ := r.Seek(0, io.SeekCurrent) + stringData := data[whence : whence+sLen] + declData := data[whence+sLen : whence+sLen+dLen] + r.Seek(sLen+dLen, io.SeekCurrent) + + p := iimporter{ + ipath: path, + + stringData: stringData, + stringCache: make(map[uint64]string), + pkgCache: make(map[uint64]*types.Package), + + declData: declData, + pkgIndex: make(map[*types.Package]map[string]uint64), + typCache: make(map[uint64]types.Type), + + fake: fakeFileSet{ + fset: fset, + files: make(map[string]*token.File), + }, + } + + for i, pt := range predeclared() { + p.typCache[uint64(i)] = pt + } + + pkgList := make([]*types.Package, r.uint64()) + for i := range pkgList { + pkgPathOff := r.uint64() + pkgPath := p.stringAt(pkgPathOff) + pkgName := p.stringAt(r.uint64()) + _ = r.uint64() // package height; unused by go/types + + if pkgPath == "" { + pkgPath = path + } + pkg := imports[pkgPath] + if pkg == nil { + pkg = types.NewPackage(pkgPath, pkgName) + imports[pkgPath] = pkg + } else if pkg.Name() != pkgName { + errorf("conflicting names %s and %s for package %q", pkg.Name(), pkgName, path) + } + + p.pkgCache[pkgPathOff] = pkg + + nameIndex := make(map[string]uint64) + for nSyms := r.uint64(); nSyms > 0; nSyms-- { + name := p.stringAt(r.uint64()) + nameIndex[name] = r.uint64() + } + + p.pkgIndex[pkg] = nameIndex + pkgList[i] = pkg + } + var localpkg *types.Package + for _, pkg := range pkgList { + if pkg.Path() == path { + localpkg = pkg + } + } + + names := make([]string, 0, len(p.pkgIndex[localpkg])) + for name := range p.pkgIndex[localpkg] { + names = append(names, name) + } + sort.Strings(names) + for _, name := range names { + p.doDecl(localpkg, name) + } + + for _, typ := range p.interfaceList { + typ.Complete() + } + + // record all referenced packages as imports + list := append(([]*types.Package)(nil), pkgList[1:]...) + sort.Sort(byPath(list)) + localpkg.SetImports(list) + + // package was imported completely and without errors + localpkg.MarkComplete() + + consumed, _ := r.Seek(0, io.SeekCurrent) + return int(consumed), localpkg, nil +} + +type iimporter struct { + ipath string + + stringData []byte + stringCache map[uint64]string + pkgCache map[uint64]*types.Package + + declData []byte + pkgIndex map[*types.Package]map[string]uint64 + typCache map[uint64]types.Type + + fake fakeFileSet + interfaceList []*types.Interface +} + +func (p *iimporter) doDecl(pkg *types.Package, name string) { + // See if we've already imported this declaration. + if obj := pkg.Scope().Lookup(name); obj != nil { + return + } + + off, ok := p.pkgIndex[pkg][name] + if !ok { + errorf("%v.%v not in index", pkg, name) + } + + r := &importReader{p: p, currPkg: pkg} + r.declReader.Reset(p.declData[off:]) + + r.obj(name) +} + +func (p *iimporter) stringAt(off uint64) string { + if s, ok := p.stringCache[off]; ok { + return s + } + + slen, n := binary.Uvarint(p.stringData[off:]) + if n <= 0 { + errorf("varint failed") + } + spos := off + uint64(n) + s := string(p.stringData[spos : spos+slen]) + p.stringCache[off] = s + return s +} + +func (p *iimporter) pkgAt(off uint64) *types.Package { + if pkg, ok := p.pkgCache[off]; ok { + return pkg + } + path := p.stringAt(off) + errorf("missing package %q in %q", path, p.ipath) + return nil +} + +func (p *iimporter) typAt(off uint64, base *types.Named) types.Type { + if t, ok := p.typCache[off]; ok && (base == nil || !isInterface(t)) { + return t + } + + if off < predeclReserved { + errorf("predeclared type missing from cache: %v", off) + } + + r := &importReader{p: p} + r.declReader.Reset(p.declData[off-predeclReserved:]) + t := r.doType(base) + + if base == nil || !isInterface(t) { + p.typCache[off] = t + } + return t +} + +type importReader struct { + p *iimporter + declReader bytes.Reader + currPkg *types.Package + prevFile string + prevLine int64 +} + +func (r *importReader) obj(name string) { + tag := r.byte() + pos := r.pos() + + switch tag { + case 'A': + typ := r.typ() + + r.declare(types.NewTypeName(pos, r.currPkg, name, typ)) + + case 'C': + typ, val := r.value() + + r.declare(types.NewConst(pos, r.currPkg, name, typ, val)) + + case 'F': + sig := r.signature(nil) + + r.declare(types.NewFunc(pos, r.currPkg, name, sig)) + + case 'T': + // Types can be recursive. We need to setup a stub + // declaration before recursing. + obj := types.NewTypeName(pos, r.currPkg, name, nil) + named := types.NewNamed(obj, nil, nil) + r.declare(obj) + + underlying := r.p.typAt(r.uint64(), named).Underlying() + named.SetUnderlying(underlying) + + if !isInterface(underlying) { + for n := r.uint64(); n > 0; n-- { + mpos := r.pos() + mname := r.ident() + recv := r.param() + msig := r.signature(recv) + + named.AddMethod(types.NewFunc(mpos, r.currPkg, mname, msig)) + } + } + + case 'V': + typ := r.typ() + + r.declare(types.NewVar(pos, r.currPkg, name, typ)) + + default: + errorf("unexpected tag: %v", tag) + } +} + +func (r *importReader) declare(obj types.Object) { + obj.Pkg().Scope().Insert(obj) +} + +func (r *importReader) value() (typ types.Type, val constant.Value) { + typ = r.typ() + + switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { + case types.IsBoolean: + val = constant.MakeBool(r.bool()) + + case types.IsString: + val = constant.MakeString(r.string()) + + case types.IsInteger: + val = r.mpint(b) + + case types.IsFloat: + val = r.mpfloat(b) + + case types.IsComplex: + re := r.mpfloat(b) + im := r.mpfloat(b) + val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) + + default: + if b.Kind() == types.Invalid { + val = constant.MakeUnknown() + return + } + errorf("unexpected type %v", typ) // panics + panic("unreachable") + } + + return +} + +func intSize(b *types.Basic) (signed bool, maxBytes uint) { + if (b.Info() & types.IsUntyped) != 0 { + return true, 64 + } + + switch b.Kind() { + case types.Float32, types.Complex64: + return true, 3 + case types.Float64, types.Complex128: + return true, 7 + } + + signed = (b.Info() & types.IsUnsigned) == 0 + switch b.Kind() { + case types.Int8, types.Uint8: + maxBytes = 1 + case types.Int16, types.Uint16: + maxBytes = 2 + case types.Int32, types.Uint32: + maxBytes = 4 + default: + maxBytes = 8 + } + + return +} + +func (r *importReader) mpint(b *types.Basic) constant.Value { + signed, maxBytes := intSize(b) + + maxSmall := 256 - maxBytes + if signed { + maxSmall = 256 - 2*maxBytes + } + if maxBytes == 1 { + maxSmall = 256 + } + + n, _ := r.declReader.ReadByte() + if uint(n) < maxSmall { + v := int64(n) + if signed { + v >>= 1 + if n&1 != 0 { + v = ^v + } + } + return constant.MakeInt64(v) + } + + v := -n + if signed { + v = -(n &^ 1) >> 1 + } + if v < 1 || uint(v) > maxBytes { + errorf("weird decoding: %v, %v => %v", n, signed, v) + } + + buf := make([]byte, v) + io.ReadFull(&r.declReader, buf) + + // convert to little endian + // TODO(gri) go/constant should have a more direct conversion function + // (e.g., once it supports a big.Float based implementation) + for i, j := 0, len(buf)-1; i < j; i, j = i+1, j-1 { + buf[i], buf[j] = buf[j], buf[i] + } + + x := constant.MakeFromBytes(buf) + if signed && n&1 != 0 { + x = constant.UnaryOp(token.SUB, x, 0) + } + return x +} + +func (r *importReader) mpfloat(b *types.Basic) constant.Value { + x := r.mpint(b) + if constant.Sign(x) == 0 { + return x + } + + exp := r.int64() + switch { + case exp > 0: + x = constant.Shift(x, token.SHL, uint(exp)) + case exp < 0: + d := constant.Shift(constant.MakeInt64(1), token.SHL, uint(-exp)) + x = constant.BinaryOp(x, token.QUO, d) + } + return x +} + +func (r *importReader) ident() string { + return r.string() +} + +func (r *importReader) qualifiedIdent() (*types.Package, string) { + name := r.string() + pkg := r.pkg() + return pkg, name +} + +func (r *importReader) pos() token.Pos { + delta := r.int64() + if delta != deltaNewFile { + r.prevLine += delta + } else if l := r.int64(); l == -1 { + r.prevLine += deltaNewFile + } else { + r.prevFile = r.string() + r.prevLine = l + } + + if r.prevFile == "" && r.prevLine == 0 { + return token.NoPos + } + + return r.p.fake.pos(r.prevFile, int(r.prevLine)) +} + +func (r *importReader) typ() types.Type { + return r.p.typAt(r.uint64(), nil) +} + +func isInterface(t types.Type) bool { + _, ok := t.(*types.Interface) + return ok +} + +func (r *importReader) pkg() *types.Package { return r.p.pkgAt(r.uint64()) } +func (r *importReader) string() string { return r.p.stringAt(r.uint64()) } + +func (r *importReader) doType(base *types.Named) types.Type { + switch k := r.kind(); k { + default: + errorf("unexpected kind tag in %q: %v", r.p.ipath, k) + return nil + + case definedType: + pkg, name := r.qualifiedIdent() + r.p.doDecl(pkg, name) + return pkg.Scope().Lookup(name).(*types.TypeName).Type() + case pointerType: + return types.NewPointer(r.typ()) + case sliceType: + return types.NewSlice(r.typ()) + case arrayType: + n := r.uint64() + return types.NewArray(r.typ(), int64(n)) + case chanType: + dir := chanDir(int(r.uint64())) + return types.NewChan(dir, r.typ()) + case mapType: + return types.NewMap(r.typ(), r.typ()) + case signatureType: + r.currPkg = r.pkg() + return r.signature(nil) + + case structType: + r.currPkg = r.pkg() + + fields := make([]*types.Var, r.uint64()) + tags := make([]string, len(fields)) + for i := range fields { + fpos := r.pos() + fname := r.ident() + ftyp := r.typ() + emb := r.bool() + tag := r.string() + + fields[i] = types.NewField(fpos, r.currPkg, fname, ftyp, emb) + tags[i] = tag + } + return types.NewStruct(fields, tags) + + case interfaceType: + r.currPkg = r.pkg() + + embeddeds := make([]types.Type, r.uint64()) + for i := range embeddeds { + _ = r.pos() + embeddeds[i] = r.typ() + } + + methods := make([]*types.Func, r.uint64()) + for i := range methods { + mpos := r.pos() + mname := r.ident() + + // TODO(mdempsky): Matches bimport.go, but I + // don't agree with this. + var recv *types.Var + if base != nil { + recv = types.NewVar(token.NoPos, r.currPkg, "", base) + } + + msig := r.signature(recv) + methods[i] = types.NewFunc(mpos, r.currPkg, mname, msig) + } + + typ := newInterface(methods, embeddeds) + r.p.interfaceList = append(r.p.interfaceList, typ) + return typ + } +} + +func (r *importReader) kind() itag { + return itag(r.uint64()) +} + +func (r *importReader) signature(recv *types.Var) *types.Signature { + params := r.paramList() + results := r.paramList() + variadic := params.Len() > 0 && r.bool() + return types.NewSignature(recv, params, results, variadic) +} + +func (r *importReader) paramList() *types.Tuple { + xs := make([]*types.Var, r.uint64()) + for i := range xs { + xs[i] = r.param() + } + return types.NewTuple(xs...) +} + +func (r *importReader) param() *types.Var { + pos := r.pos() + name := r.ident() + typ := r.typ() + return types.NewParam(pos, r.currPkg, name, typ) +} + +func (r *importReader) bool() bool { + return r.uint64() != 0 +} + +func (r *importReader) int64() int64 { + n, err := binary.ReadVarint(&r.declReader) + if err != nil { + errorf("readVarint: %v", err) + } + return n +} + +func (r *importReader) uint64() uint64 { + n, err := binary.ReadUvarint(&r.declReader) + if err != nil { + errorf("readUvarint: %v", err) + } + return n +} + +func (r *importReader) byte() byte { + x, err := r.declReader.ReadByte() + if err != nil { + errorf("declReader.ReadByte: %v", err) + } + return x +} diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go new file mode 100644 index 00000000..463f2522 --- /dev/null +++ b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go @@ -0,0 +1,21 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !go1.11 + +package gcimporter + +import "go/types" + +func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface { + named := make([]*types.Named, len(embeddeds)) + for i, e := range embeddeds { + var ok bool + named[i], ok = e.(*types.Named) + if !ok { + panic("embedding of non-defined interfaces in interfaces is not supported before Go 1.11") + } + } + return types.NewInterface(methods, named) +} diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go new file mode 100644 index 00000000..ab28b95c --- /dev/null +++ b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go @@ -0,0 +1,13 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build go1.11 + +package gcimporter + +import "go/types" + +func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface { + return types.NewInterfaceType(methods, embeddeds) +} diff --git a/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go new file mode 100644 index 00000000..fdc7da05 --- /dev/null +++ b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go @@ -0,0 +1,160 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package packagesdriver fetches type sizes for go/packages and go/analysis. +package packagesdriver + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "go/types" + "log" + "os" + "os/exec" + "strings" + "time" +) + +var debug = false + +// GetSizes returns the sizes used by the underlying driver with the given parameters. +func GetSizes(ctx context.Context, buildFlags, env []string, dir string, usesExportData bool) (types.Sizes, error) { + // TODO(matloob): Clean this up. This code is mostly a copy of packages.findExternalDriver. + const toolPrefix = "GOPACKAGESDRIVER=" + tool := "" + for _, env := range env { + if val := strings.TrimPrefix(env, toolPrefix); val != env { + tool = val + } + } + + if tool == "" { + var err error + tool, err = exec.LookPath("gopackagesdriver") + if err != nil { + // We did not find the driver, so use "go list". + tool = "off" + } + } + + if tool == "off" { + return GetSizesGolist(ctx, buildFlags, env, dir, usesExportData) + } + + req, err := json.Marshal(struct { + Command string `json:"command"` + Env []string `json:"env"` + BuildFlags []string `json:"build_flags"` + }{ + Command: "sizes", + Env: env, + BuildFlags: buildFlags, + }) + if err != nil { + return nil, fmt.Errorf("failed to encode message to driver tool: %v", err) + } + + buf := new(bytes.Buffer) + cmd := exec.CommandContext(ctx, tool) + cmd.Dir = dir + cmd.Env = env + cmd.Stdin = bytes.NewReader(req) + cmd.Stdout = buf + cmd.Stderr = new(bytes.Buffer) + if err := cmd.Run(); err != nil { + return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr) + } + var response struct { + // Sizes, if not nil, is the types.Sizes to use when type checking. + Sizes *types.StdSizes + } + if err := json.Unmarshal(buf.Bytes(), &response); err != nil { + return nil, err + } + return response.Sizes, nil +} + +func GetSizesGolist(ctx context.Context, buildFlags, env []string, dir string, usesExportData bool) (types.Sizes, error) { + args := []string{"list", "-f", "{{context.GOARCH}} {{context.Compiler}}"} + args = append(args, buildFlags...) + args = append(args, "--", "unsafe") + stdout, err := InvokeGo(ctx, env, dir, usesExportData, args...) + if err != nil { + return nil, err + } + fields := strings.Fields(stdout.String()) + if len(fields) < 2 { + return nil, fmt.Errorf("could not determine GOARCH and Go compiler") + } + goarch := fields[0] + compiler := fields[1] + return types.SizesFor(compiler, goarch), nil +} + +// InvokeGo returns the stdout of a go command invocation. +func InvokeGo(ctx context.Context, env []string, dir string, usesExportData bool, args ...string) (*bytes.Buffer, error) { + if debug { + defer func(start time.Time) { log.Printf("%s for %v", time.Since(start), cmdDebugStr(env, args...)) }(time.Now()) + } + stdout := new(bytes.Buffer) + stderr := new(bytes.Buffer) + cmd := exec.CommandContext(ctx, "go", args...) + // On darwin the cwd gets resolved to the real path, which breaks anything that + // expects the working directory to keep the original path, including the + // go command when dealing with modules. + // The Go stdlib has a special feature where if the cwd and the PWD are the + // same node then it trusts the PWD, so by setting it in the env for the child + // process we fix up all the paths returned by the go command. + cmd.Env = append(append([]string{}, env...), "PWD="+dir) + cmd.Dir = dir + cmd.Stdout = stdout + cmd.Stderr = stderr + if err := cmd.Run(); err != nil { + exitErr, ok := err.(*exec.ExitError) + if !ok { + // Catastrophic error: + // - executable not found + // - context cancellation + return nil, fmt.Errorf("couldn't exec 'go %v': %s %T", args, err, err) + } + + // Export mode entails a build. + // If that build fails, errors appear on stderr + // (despite the -e flag) and the Export field is blank. + // Do not fail in that case. + if !usesExportData { + return nil, fmt.Errorf("go %v: %s: %s", args, exitErr, stderr) + } + } + + // As of writing, go list -export prints some non-fatal compilation + // errors to stderr, even with -e set. We would prefer that it put + // them in the Package.Error JSON (see https://golang.org/issue/26319). + // In the meantime, there's nowhere good to put them, but they can + // be useful for debugging. Print them if $GOPACKAGESPRINTGOLISTERRORS + // is set. + if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTGOLISTERRORS") != "" { + fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(env, args...), stderr) + } + + // debugging + if false { + fmt.Fprintf(os.Stderr, "%s stdout: <<%s>>\n", cmdDebugStr(env, args...), stdout) + } + + return stdout, nil +} + +func cmdDebugStr(envlist []string, args ...string) string { + env := make(map[string]string) + for _, kv := range envlist { + split := strings.Split(kv, "=") + k, v := split[0], split[1] + env[k] = v + } + + return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v PWD=%v go %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["PWD"], args) +} diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go new file mode 100644 index 00000000..3799f8ed --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/doc.go @@ -0,0 +1,222 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package packages loads Go packages for inspection and analysis. + +The Load function takes as input a list of patterns and return a list of Package +structs describing individual packages matched by those patterns. +The LoadMode controls the amount of detail in the loaded packages. + +Load passes most patterns directly to the underlying build tool, +but all patterns with the prefix "query=", where query is a +non-empty string of letters from [a-z], are reserved and may be +interpreted as query operators. + +Two query operators are currently supported: "file" and "pattern". + +The query "file=path/to/file.go" matches the package or packages enclosing +the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go" +might return the packages "fmt" and "fmt [fmt.test]". + +The query "pattern=string" causes "string" to be passed directly to +the underlying build tool. In most cases this is unnecessary, +but an application can use Load("pattern=" + x) as an escaping mechanism +to ensure that x is not interpreted as a query operator if it contains '='. + +All other query operators are reserved for future use and currently +cause Load to report an error. + +The Package struct provides basic information about the package, including + + - ID, a unique identifier for the package in the returned set; + - GoFiles, the names of the package's Go source files; + - Imports, a map from source import strings to the Packages they name; + - Types, the type information for the package's exported symbols; + - Syntax, the parsed syntax trees for the package's source code; and + - TypeInfo, the result of a complete type-check of the package syntax trees. + +(See the documentation for type Package for the complete list of fields +and more detailed descriptions.) + +For example, + + Load(nil, "bytes", "unicode...") + +returns four Package structs describing the standard library packages +bytes, unicode, unicode/utf16, and unicode/utf8. Note that one pattern +can match multiple packages and that a package might be matched by +multiple patterns: in general it is not possible to determine which +packages correspond to which patterns. + +Note that the list returned by Load contains only the packages matched +by the patterns. Their dependencies can be found by walking the import +graph using the Imports fields. + +The Load function can be configured by passing a pointer to a Config as +the first argument. A nil Config is equivalent to the zero Config, which +causes Load to run in LoadFiles mode, collecting minimal information. +See the documentation for type Config for details. + +As noted earlier, the Config.Mode controls the amount of detail +reported about the loaded packages, with each mode returning all the data of the +previous mode with some extra added. See the documentation for type LoadMode +for details. + +Most tools should pass their command-line arguments (after any flags) +uninterpreted to the loader, so that the loader can interpret them +according to the conventions of the underlying build system. +See the Example function for typical usage. + +*/ +package packages // import "golang.org/x/tools/go/packages" + +/* + +Motivation and design considerations + +The new package's design solves problems addressed by two existing +packages: go/build, which locates and describes packages, and +golang.org/x/tools/go/loader, which loads, parses and type-checks them. +The go/build.Package structure encodes too much of the 'go build' way +of organizing projects, leaving us in need of a data type that describes a +package of Go source code independent of the underlying build system. +We wanted something that works equally well with go build and vgo, and +also other build systems such as Bazel and Blaze, making it possible to +construct analysis tools that work in all these environments. +Tools such as errcheck and staticcheck were essentially unavailable to +the Go community at Google, and some of Google's internal tools for Go +are unavailable externally. +This new package provides a uniform way to obtain package metadata by +querying each of these build systems, optionally supporting their +preferred command-line notations for packages, so that tools integrate +neatly with users' build environments. The Metadata query function +executes an external query tool appropriate to the current workspace. + +Loading packages always returns the complete import graph "all the way down", +even if all you want is information about a single package, because the query +mechanisms of all the build systems we currently support ({go,vgo} list, and +blaze/bazel aspect-based query) cannot provide detailed information +about one package without visiting all its dependencies too, so there is +no additional asymptotic cost to providing transitive information. +(This property might not be true of a hypothetical 5th build system.) + +In calls to TypeCheck, all initial packages, and any package that +transitively depends on one of them, must be loaded from source. +Consider A->B->C->D->E: if A,C are initial, A,B,C must be loaded from +source; D may be loaded from export data, and E may not be loaded at all +(though it's possible that D's export data mentions it, so a +types.Package may be created for it and exposed.) + +The old loader had a feature to suppress type-checking of function +bodies on a per-package basis, primarily intended to reduce the work of +obtaining type information for imported packages. Now that imports are +satisfied by export data, the optimization no longer seems necessary. + +Despite some early attempts, the old loader did not exploit export data, +instead always using the equivalent of WholeProgram mode. This was due +to the complexity of mixing source and export data packages (now +resolved by the upward traversal mentioned above), and because export data +files were nearly always missing or stale. Now that 'go build' supports +caching, all the underlying build systems can guarantee to produce +export data in a reasonable (amortized) time. + +Test "main" packages synthesized by the build system are now reported as +first-class packages, avoiding the need for clients (such as go/ssa) to +reinvent this generation logic. + +One way in which go/packages is simpler than the old loader is in its +treatment of in-package tests. In-package tests are packages that +consist of all the files of the library under test, plus the test files. +The old loader constructed in-package tests by a two-phase process of +mutation called "augmentation": first it would construct and type check +all the ordinary library packages and type-check the packages that +depend on them; then it would add more (test) files to the package and +type-check again. This two-phase approach had four major problems: +1) in processing the tests, the loader modified the library package, + leaving no way for a client application to see both the test + package and the library package; one would mutate into the other. +2) because test files can declare additional methods on types defined in + the library portion of the package, the dispatch of method calls in + the library portion was affected by the presence of the test files. + This should have been a clue that the packages were logically + different. +3) this model of "augmentation" assumed at most one in-package test + per library package, which is true of projects using 'go build', + but not other build systems. +4) because of the two-phase nature of test processing, all packages that + import the library package had to be processed before augmentation, + forcing a "one-shot" API and preventing the client from calling Load + in several times in sequence as is now possible in WholeProgram mode. + (TypeCheck mode has a similar one-shot restriction for a different reason.) + +Early drafts of this package supported "multi-shot" operation. +Although it allowed clients to make a sequence of calls (or concurrent +calls) to Load, building up the graph of Packages incrementally, +it was of marginal value: it complicated the API +(since it allowed some options to vary across calls but not others), +it complicated the implementation, +it cannot be made to work in Types mode, as explained above, +and it was less efficient than making one combined call (when this is possible). +Among the clients we have inspected, none made multiple calls to load +but could not be easily and satisfactorily modified to make only a single call. +However, applications changes may be required. +For example, the ssadump command loads the user-specified packages +and in addition the runtime package. It is tempting to simply append +"runtime" to the user-provided list, but that does not work if the user +specified an ad-hoc package such as [a.go b.go]. +Instead, ssadump no longer requests the runtime package, +but seeks it among the dependencies of the user-specified packages, +and emits an error if it is not found. + +Overlays: The Overlay field in the Config allows providing alternate contents +for Go source files, by providing a mapping from file path to contents. +go/packages will pull in new imports added in overlay files when go/packages +is run in LoadImports mode or greater. +Overlay support for the go list driver isn't complete yet: if the file doesn't +exist on disk, it will only be recognized in an overlay if it is a non-test file +and the package would be reported even without the overlay. + +Questions & Tasks + +- Add GOARCH/GOOS? + They are not portable concepts, but could be made portable. + Our goal has been to allow users to express themselves using the conventions + of the underlying build system: if the build system honors GOARCH + during a build and during a metadata query, then so should + applications built atop that query mechanism. + Conversely, if the target architecture of the build is determined by + command-line flags, the application can pass the relevant + flags through to the build system using a command such as: + myapp -query_flag="--cpu=amd64" -query_flag="--os=darwin" + However, this approach is low-level, unwieldy, and non-portable. + GOOS and GOARCH seem important enough to warrant a dedicated option. + +- How should we handle partial failures such as a mixture of good and + malformed patterns, existing and non-existent packages, successful and + failed builds, import failures, import cycles, and so on, in a call to + Load? + +- Support bazel, blaze, and go1.10 list, not just go1.11 list. + +- Handle (and test) various partial success cases, e.g. + a mixture of good packages and: + invalid patterns + nonexistent packages + empty packages + packages with malformed package or import declarations + unreadable files + import cycles + other parse errors + type errors + Make sure we record errors at the correct place in the graph. + +- Missing packages among initial arguments are not reported. + Return bogus packages for them, like golist does. + +- "undeclared name" errors (for example) are reported out of source file + order. I suspect this is due to the breadth-first resolution now used + by go/types. Is that a bug? Discuss with gri. + +*/ diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go new file mode 100644 index 00000000..22ff769e --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/external.go @@ -0,0 +1,79 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file enables an external tool to intercept package requests. +// If the tool is present then its results are used in preference to +// the go list command. + +package packages + +import ( + "bytes" + "encoding/json" + "fmt" + "os/exec" + "strings" +) + +// Driver +type driverRequest struct { + Command string `json:"command"` + Mode LoadMode `json:"mode"` + Env []string `json:"env"` + BuildFlags []string `json:"build_flags"` + Tests bool `json:"tests"` + Overlay map[string][]byte `json:"overlay"` +} + +// findExternalDriver returns the file path of a tool that supplies +// the build system package structure, or "" if not found." +// If GOPACKAGESDRIVER is set in the environment findExternalTool returns its +// value, otherwise it searches for a binary named gopackagesdriver on the PATH. +func findExternalDriver(cfg *Config) driver { + const toolPrefix = "GOPACKAGESDRIVER=" + tool := "" + for _, env := range cfg.Env { + if val := strings.TrimPrefix(env, toolPrefix); val != env { + tool = val + } + } + if tool != "" && tool == "off" { + return nil + } + if tool == "" { + var err error + tool, err = exec.LookPath("gopackagesdriver") + if err != nil { + return nil + } + } + return func(cfg *Config, words ...string) (*driverResponse, error) { + req, err := json.Marshal(driverRequest{ + Mode: cfg.Mode, + Env: cfg.Env, + BuildFlags: cfg.BuildFlags, + Tests: cfg.Tests, + Overlay: cfg.Overlay, + }) + if err != nil { + return nil, fmt.Errorf("failed to encode message to driver tool: %v", err) + } + + buf := new(bytes.Buffer) + cmd := exec.CommandContext(cfg.Context, tool, words...) + cmd.Dir = cfg.Dir + cmd.Env = cfg.Env + cmd.Stdin = bytes.NewReader(req) + cmd.Stdout = buf + cmd.Stderr = new(bytes.Buffer) + if err := cmd.Run(); err != nil { + return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr) + } + var response driverResponse + if err := json.Unmarshal(buf.Bytes(), &response); err != nil { + return nil, err + } + return &response, nil + } +} diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go new file mode 100644 index 00000000..be58c5ba --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/golist.go @@ -0,0 +1,821 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +import ( + "bytes" + "encoding/json" + "fmt" + "go/types" + "io/ioutil" + "log" + "os" + "os/exec" + "path/filepath" + "reflect" + "regexp" + "strconv" + "strings" + "sync" + "time" + + "golang.org/x/tools/go/internal/packagesdriver" + "golang.org/x/tools/internal/gopathwalk" + "golang.org/x/tools/internal/semver" +) + +// debug controls verbose logging. +var debug, _ = strconv.ParseBool(os.Getenv("GOPACKAGESDEBUG")) + +// A goTooOldError reports that the go command +// found by exec.LookPath is too old to use the new go list behavior. +type goTooOldError struct { + error +} + +// responseDeduper wraps a driverResponse, deduplicating its contents. +type responseDeduper struct { + seenRoots map[string]bool + seenPackages map[string]*Package + dr *driverResponse +} + +// init fills in r with a driverResponse. +func (r *responseDeduper) init(dr *driverResponse) { + r.dr = dr + r.seenRoots = map[string]bool{} + r.seenPackages = map[string]*Package{} + for _, pkg := range dr.Packages { + r.seenPackages[pkg.ID] = pkg + } + for _, root := range dr.Roots { + r.seenRoots[root] = true + } +} + +func (r *responseDeduper) addPackage(p *Package) { + if r.seenPackages[p.ID] != nil { + return + } + r.seenPackages[p.ID] = p + r.dr.Packages = append(r.dr.Packages, p) +} + +func (r *responseDeduper) addRoot(id string) { + if r.seenRoots[id] { + return + } + r.seenRoots[id] = true + r.dr.Roots = append(r.dr.Roots, id) +} + +// goListDriver uses the go list command to interpret the patterns and produce +// the build system package structure. +// See driver for more details. +func goListDriver(cfg *Config, patterns ...string) (*driverResponse, error) { + var sizes types.Sizes + var sizeserr error + var sizeswg sync.WaitGroup + if cfg.Mode&NeedTypesSizes != 0 { + sizeswg.Add(1) + go func() { + sizes, sizeserr = getSizes(cfg) + sizeswg.Done() + }() + } + + // Determine files requested in contains patterns + var containFiles []string + var packagesNamed []string + restPatterns := make([]string, 0, len(patterns)) + // Extract file= and other [querytype]= patterns. Report an error if querytype + // doesn't exist. +extractQueries: + for _, pattern := range patterns { + eqidx := strings.Index(pattern, "=") + if eqidx < 0 { + restPatterns = append(restPatterns, pattern) + } else { + query, value := pattern[:eqidx], pattern[eqidx+len("="):] + switch query { + case "file": + containFiles = append(containFiles, value) + case "pattern": + restPatterns = append(restPatterns, value) + case "iamashamedtousethedisabledqueryname": + packagesNamed = append(packagesNamed, value) + case "": // not a reserved query + restPatterns = append(restPatterns, pattern) + default: + for _, rune := range query { + if rune < 'a' || rune > 'z' { // not a reserved query + restPatterns = append(restPatterns, pattern) + continue extractQueries + } + } + // Reject all other patterns containing "=" + return nil, fmt.Errorf("invalid query type %q in query pattern %q", query, pattern) + } + } + } + + response := &responseDeduper{} + var err error + + // See if we have any patterns to pass through to go list. Zero initial + // patterns also requires a go list call, since it's the equivalent of + // ".". + if len(restPatterns) > 0 || len(patterns) == 0 { + dr, err := golistDriver(cfg, restPatterns...) + if err != nil { + return nil, err + } + response.init(dr) + } else { + response.init(&driverResponse{}) + } + + sizeswg.Wait() + if sizeserr != nil { + return nil, sizeserr + } + // types.SizesFor always returns nil or a *types.StdSizes + response.dr.Sizes, _ = sizes.(*types.StdSizes) + + var containsCandidates []string + + if len(containFiles) != 0 { + if err := runContainsQueries(cfg, golistDriver, response, containFiles); err != nil { + return nil, err + } + } + + if len(packagesNamed) != 0 { + if err := runNamedQueries(cfg, golistDriver, response, packagesNamed); err != nil { + return nil, err + } + } + + modifiedPkgs, needPkgs, err := processGolistOverlay(cfg, response.dr) + if err != nil { + return nil, err + } + if len(containFiles) > 0 { + containsCandidates = append(containsCandidates, modifiedPkgs...) + containsCandidates = append(containsCandidates, needPkgs...) + } + + if len(needPkgs) > 0 { + addNeededOverlayPackages(cfg, golistDriver, response, needPkgs) + if err != nil { + return nil, err + } + } + // Check candidate packages for containFiles. + if len(containFiles) > 0 { + for _, id := range containsCandidates { + pkg := response.seenPackages[id] + for _, f := range containFiles { + for _, g := range pkg.GoFiles { + if sameFile(f, g) { + response.addRoot(id) + } + } + } + } + } + + return response.dr, nil +} + +func addNeededOverlayPackages(cfg *Config, driver driver, response *responseDeduper, pkgs []string) error { + dr, err := driver(cfg, pkgs...) + if err != nil { + return err + } + for _, pkg := range dr.Packages { + response.addPackage(pkg) + } + return nil +} + +func runContainsQueries(cfg *Config, driver driver, response *responseDeduper, queries []string) error { + for _, query := range queries { + // TODO(matloob): Do only one query per directory. + fdir := filepath.Dir(query) + // Pass absolute path of directory to go list so that it knows to treat it as a directory, + // not a package path. + pattern, err := filepath.Abs(fdir) + if err != nil { + return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err) + } + dirResponse, err := driver(cfg, pattern) + if err != nil { + return err + } + isRoot := make(map[string]bool, len(dirResponse.Roots)) + for _, root := range dirResponse.Roots { + isRoot[root] = true + } + for _, pkg := range dirResponse.Packages { + // Add any new packages to the main set + // We don't bother to filter packages that will be dropped by the changes of roots, + // that will happen anyway during graph construction outside this function. + // Over-reporting packages is not a problem. + response.addPackage(pkg) + // if the package was not a root one, it cannot have the file + if !isRoot[pkg.ID] { + continue + } + for _, pkgFile := range pkg.GoFiles { + if filepath.Base(query) == filepath.Base(pkgFile) { + response.addRoot(pkg.ID) + break + } + } + } + } + return nil +} + +// modCacheRegexp splits a path in a module cache into module, module version, and package. +var modCacheRegexp = regexp.MustCompile(`(.*)@([^/\\]*)(.*)`) + +func runNamedQueries(cfg *Config, driver driver, response *responseDeduper, queries []string) error { + // calling `go env` isn't free; bail out if there's nothing to do. + if len(queries) == 0 { + return nil + } + // Determine which directories are relevant to scan. + roots, modRoot, err := roots(cfg) + if err != nil { + return err + } + + // Scan the selected directories. Simple matches, from GOPATH/GOROOT + // or the local module, can simply be "go list"ed. Matches from the + // module cache need special treatment. + var matchesMu sync.Mutex + var simpleMatches, modCacheMatches []string + add := func(root gopathwalk.Root, dir string) { + // Walk calls this concurrently; protect the result slices. + matchesMu.Lock() + defer matchesMu.Unlock() + + path := dir + if dir != root.Path { + path = dir[len(root.Path)+1:] + } + if pathMatchesQueries(path, queries) { + switch root.Type { + case gopathwalk.RootModuleCache: + modCacheMatches = append(modCacheMatches, path) + case gopathwalk.RootCurrentModule: + // We'd need to read go.mod to find the full + // import path. Relative's easier. + rel, err := filepath.Rel(cfg.Dir, dir) + if err != nil { + // This ought to be impossible, since + // we found dir in the current module. + panic(err) + } + simpleMatches = append(simpleMatches, "./"+rel) + case gopathwalk.RootGOPATH, gopathwalk.RootGOROOT: + simpleMatches = append(simpleMatches, path) + } + } + } + + startWalk := time.Now() + gopathwalk.Walk(roots, add, gopathwalk.Options{ModulesEnabled: modRoot != "", Debug: debug}) + if debug { + log.Printf("%v for walk", time.Since(startWalk)) + } + + // Weird special case: the top-level package in a module will be in + // whatever directory the user checked the repository out into. It's + // more reasonable for that to not match the package name. So, if there + // are any Go files in the mod root, query it just to be safe. + if modRoot != "" { + rel, err := filepath.Rel(cfg.Dir, modRoot) + if err != nil { + panic(err) // See above. + } + + files, err := ioutil.ReadDir(modRoot) + for _, f := range files { + if strings.HasSuffix(f.Name(), ".go") { + simpleMatches = append(simpleMatches, rel) + break + } + } + } + + addResponse := func(r *driverResponse) { + for _, pkg := range r.Packages { + response.addPackage(pkg) + for _, name := range queries { + if pkg.Name == name { + response.addRoot(pkg.ID) + break + } + } + } + } + + if len(simpleMatches) != 0 { + resp, err := driver(cfg, simpleMatches...) + if err != nil { + return err + } + addResponse(resp) + } + + // Module cache matches are tricky. We want to avoid downloading new + // versions of things, so we need to use the ones present in the cache. + // go list doesn't accept version specifiers, so we have to write out a + // temporary module, and do the list in that module. + if len(modCacheMatches) != 0 { + // Collect all the matches, deduplicating by major version + // and preferring the newest. + type modInfo struct { + mod string + major string + } + mods := make(map[modInfo]string) + var imports []string + for _, modPath := range modCacheMatches { + matches := modCacheRegexp.FindStringSubmatch(modPath) + mod, ver := filepath.ToSlash(matches[1]), matches[2] + importPath := filepath.ToSlash(filepath.Join(matches[1], matches[3])) + + major := semver.Major(ver) + if prevVer, ok := mods[modInfo{mod, major}]; !ok || semver.Compare(ver, prevVer) > 0 { + mods[modInfo{mod, major}] = ver + } + + imports = append(imports, importPath) + } + + // Build the temporary module. + var gomod bytes.Buffer + gomod.WriteString("module modquery\nrequire (\n") + for mod, version := range mods { + gomod.WriteString("\t" + mod.mod + " " + version + "\n") + } + gomod.WriteString(")\n") + + tmpCfg := *cfg + + // We're only trying to look at stuff in the module cache, so + // disable the network. This should speed things up, and has + // prevented errors in at least one case, #28518. + tmpCfg.Env = append(append([]string{"GOPROXY=off"}, cfg.Env...)) + + var err error + tmpCfg.Dir, err = ioutil.TempDir("", "gopackages-modquery") + if err != nil { + return err + } + defer os.RemoveAll(tmpCfg.Dir) + + if err := ioutil.WriteFile(filepath.Join(tmpCfg.Dir, "go.mod"), gomod.Bytes(), 0777); err != nil { + return fmt.Errorf("writing go.mod for module cache query: %v", err) + } + + // Run the query, using the import paths calculated from the matches above. + resp, err := driver(&tmpCfg, imports...) + if err != nil { + return fmt.Errorf("querying module cache matches: %v", err) + } + addResponse(resp) + } + + return nil +} + +func getSizes(cfg *Config) (types.Sizes, error) { + return packagesdriver.GetSizesGolist(cfg.Context, cfg.BuildFlags, cfg.Env, cfg.Dir, usesExportData(cfg)) +} + +// roots selects the appropriate paths to walk based on the passed-in configuration, +// particularly the environment and the presence of a go.mod in cfg.Dir's parents. +func roots(cfg *Config) ([]gopathwalk.Root, string, error) { + stdout, err := invokeGo(cfg, "env", "GOROOT", "GOPATH", "GOMOD") + if err != nil { + return nil, "", err + } + + fields := strings.Split(stdout.String(), "\n") + if len(fields) != 4 || len(fields[3]) != 0 { + return nil, "", fmt.Errorf("go env returned unexpected output: %q", stdout.String()) + } + goroot, gopath, gomod := fields[0], filepath.SplitList(fields[1]), fields[2] + var modDir string + if gomod != "" { + modDir = filepath.Dir(gomod) + } + + var roots []gopathwalk.Root + // Always add GOROOT. + roots = append(roots, gopathwalk.Root{filepath.Join(goroot, "/src"), gopathwalk.RootGOROOT}) + // If modules are enabled, scan the module dir. + if modDir != "" { + roots = append(roots, gopathwalk.Root{modDir, gopathwalk.RootCurrentModule}) + } + // Add either GOPATH/src or GOPATH/pkg/mod, depending on module mode. + for _, p := range gopath { + if modDir != "" { + roots = append(roots, gopathwalk.Root{filepath.Join(p, "/pkg/mod"), gopathwalk.RootModuleCache}) + } else { + roots = append(roots, gopathwalk.Root{filepath.Join(p, "/src"), gopathwalk.RootGOPATH}) + } + } + + return roots, modDir, nil +} + +// These functions were copied from goimports. See further documentation there. + +// pathMatchesQueries is adapted from pkgIsCandidate. +// TODO: is it reasonable to do Contains here, rather than an exact match on a path component? +func pathMatchesQueries(path string, queries []string) bool { + lastTwo := lastTwoComponents(path) + for _, query := range queries { + if strings.Contains(lastTwo, query) { + return true + } + if hasHyphenOrUpperASCII(lastTwo) && !hasHyphenOrUpperASCII(query) { + lastTwo = lowerASCIIAndRemoveHyphen(lastTwo) + if strings.Contains(lastTwo, query) { + return true + } + } + } + return false +} + +// lastTwoComponents returns at most the last two path components +// of v, using either / or \ as the path separator. +func lastTwoComponents(v string) string { + nslash := 0 + for i := len(v) - 1; i >= 0; i-- { + if v[i] == '/' || v[i] == '\\' { + nslash++ + if nslash == 2 { + return v[i:] + } + } + } + return v +} + +func hasHyphenOrUpperASCII(s string) bool { + for i := 0; i < len(s); i++ { + b := s[i] + if b == '-' || ('A' <= b && b <= 'Z') { + return true + } + } + return false +} + +func lowerASCIIAndRemoveHyphen(s string) (ret string) { + buf := make([]byte, 0, len(s)) + for i := 0; i < len(s); i++ { + b := s[i] + switch { + case b == '-': + continue + case 'A' <= b && b <= 'Z': + buf = append(buf, b+('a'-'A')) + default: + buf = append(buf, b) + } + } + return string(buf) +} + +// Fields must match go list; +// see $GOROOT/src/cmd/go/internal/load/pkg.go. +type jsonPackage struct { + ImportPath string + Dir string + Name string + Export string + GoFiles []string + CompiledGoFiles []string + CFiles []string + CgoFiles []string + CXXFiles []string + MFiles []string + HFiles []string + FFiles []string + SFiles []string + SwigFiles []string + SwigCXXFiles []string + SysoFiles []string + Imports []string + ImportMap map[string]string + Deps []string + TestGoFiles []string + TestImports []string + XTestGoFiles []string + XTestImports []string + ForTest string // q in a "p [q.test]" package, else "" + DepOnly bool + + Error *jsonPackageError +} + +type jsonPackageError struct { + ImportStack []string + Pos string + Err string +} + +func otherFiles(p *jsonPackage) [][]string { + return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles} +} + +// golistDriver uses the "go list" command to expand the pattern +// words and return metadata for the specified packages. dir may be +// "" and env may be nil, as per os/exec.Command. +func golistDriver(cfg *Config, words ...string) (*driverResponse, error) { + // go list uses the following identifiers in ImportPath and Imports: + // + // "p" -- importable package or main (command) + // "q.test" -- q's test executable + // "p [q.test]" -- variant of p as built for q's test executable + // "q_test [q.test]" -- q's external test package + // + // The packages p that are built differently for a test q.test + // are q itself, plus any helpers used by the external test q_test, + // typically including "testing" and all its dependencies. + + // Run "go list" for complete + // information on the specified packages. + buf, err := invokeGo(cfg, golistargs(cfg, words)...) + if err != nil { + return nil, err + } + seen := make(map[string]*jsonPackage) + // Decode the JSON and convert it to Package form. + var response driverResponse + for dec := json.NewDecoder(buf); dec.More(); { + p := new(jsonPackage) + if err := dec.Decode(p); err != nil { + return nil, fmt.Errorf("JSON decoding failed: %v", err) + } + + if p.ImportPath == "" { + // The documentation for go list says that “[e]rroneous packages will have + // a non-empty ImportPath”. If for some reason it comes back empty, we + // prefer to error out rather than silently discarding data or handing + // back a package without any way to refer to it. + if p.Error != nil { + return nil, Error{ + Pos: p.Error.Pos, + Msg: p.Error.Err, + } + } + return nil, fmt.Errorf("package missing import path: %+v", p) + } + + if old, found := seen[p.ImportPath]; found { + if !reflect.DeepEqual(p, old) { + return nil, fmt.Errorf("internal error: go list gives conflicting information for package %v", p.ImportPath) + } + // skip the duplicate + continue + } + seen[p.ImportPath] = p + + pkg := &Package{ + Name: p.Name, + ID: p.ImportPath, + GoFiles: absJoin(p.Dir, p.GoFiles, p.CgoFiles), + CompiledGoFiles: absJoin(p.Dir, p.CompiledGoFiles), + OtherFiles: absJoin(p.Dir, otherFiles(p)...), + } + + // Work around https://golang.org/issue/28749: + // cmd/go puts assembly, C, and C++ files in CompiledGoFiles. + // Filter out any elements of CompiledGoFiles that are also in OtherFiles. + // We have to keep this workaround in place until go1.12 is a distant memory. + if len(pkg.OtherFiles) > 0 { + other := make(map[string]bool, len(pkg.OtherFiles)) + for _, f := range pkg.OtherFiles { + other[f] = true + } + + out := pkg.CompiledGoFiles[:0] + for _, f := range pkg.CompiledGoFiles { + if other[f] { + continue + } + out = append(out, f) + } + pkg.CompiledGoFiles = out + } + + // Extract the PkgPath from the package's ID. + if i := strings.IndexByte(pkg.ID, ' '); i >= 0 { + pkg.PkgPath = pkg.ID[:i] + } else { + pkg.PkgPath = pkg.ID + } + + if pkg.PkgPath == "unsafe" { + pkg.GoFiles = nil // ignore fake unsafe.go file + } + + // Assume go list emits only absolute paths for Dir. + if p.Dir != "" && !filepath.IsAbs(p.Dir) { + log.Fatalf("internal error: go list returned non-absolute Package.Dir: %s", p.Dir) + } + + if p.Export != "" && !filepath.IsAbs(p.Export) { + pkg.ExportFile = filepath.Join(p.Dir, p.Export) + } else { + pkg.ExportFile = p.Export + } + + // imports + // + // Imports contains the IDs of all imported packages. + // ImportsMap records (path, ID) only where they differ. + ids := make(map[string]bool) + for _, id := range p.Imports { + ids[id] = true + } + pkg.Imports = make(map[string]*Package) + for path, id := range p.ImportMap { + pkg.Imports[path] = &Package{ID: id} // non-identity import + delete(ids, id) + } + for id := range ids { + if id == "C" { + continue + } + + pkg.Imports[id] = &Package{ID: id} // identity import + } + if !p.DepOnly { + response.Roots = append(response.Roots, pkg.ID) + } + + // Work around for pre-go.1.11 versions of go list. + // TODO(matloob): they should be handled by the fallback. + // Can we delete this? + if len(pkg.CompiledGoFiles) == 0 { + pkg.CompiledGoFiles = pkg.GoFiles + } + + if p.Error != nil { + pkg.Errors = append(pkg.Errors, Error{ + Pos: p.Error.Pos, + Msg: p.Error.Err, + }) + } + + response.Packages = append(response.Packages, pkg) + } + + return &response, nil +} + +// absJoin absolutizes and flattens the lists of files. +func absJoin(dir string, fileses ...[]string) (res []string) { + for _, files := range fileses { + for _, file := range files { + if !filepath.IsAbs(file) { + file = filepath.Join(dir, file) + } + res = append(res, file) + } + } + return res +} + +func golistargs(cfg *Config, words []string) []string { + const findFlags = NeedImports | NeedTypes | NeedSyntax | NeedTypesInfo + fullargs := []string{ + "list", "-e", "-json", + fmt.Sprintf("-compiled=%t", cfg.Mode&(NeedCompiledGoFiles|NeedSyntax|NeedTypesInfo|NeedTypesSizes) != 0), + fmt.Sprintf("-test=%t", cfg.Tests), + fmt.Sprintf("-export=%t", usesExportData(cfg)), + fmt.Sprintf("-deps=%t", cfg.Mode&NeedDeps != 0), + // go list doesn't let you pass -test and -find together, + // probably because you'd just get the TestMain. + fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0), + } + fullargs = append(fullargs, cfg.BuildFlags...) + fullargs = append(fullargs, "--") + fullargs = append(fullargs, words...) + return fullargs +} + +// invokeGo returns the stdout of a go command invocation. +func invokeGo(cfg *Config, args ...string) (*bytes.Buffer, error) { + stdout := new(bytes.Buffer) + stderr := new(bytes.Buffer) + cmd := exec.CommandContext(cfg.Context, "go", args...) + // On darwin the cwd gets resolved to the real path, which breaks anything that + // expects the working directory to keep the original path, including the + // go command when dealing with modules. + // The Go stdlib has a special feature where if the cwd and the PWD are the + // same node then it trusts the PWD, so by setting it in the env for the child + // process we fix up all the paths returned by the go command. + cmd.Env = append(append([]string{}, cfg.Env...), "PWD="+cfg.Dir) + cmd.Dir = cfg.Dir + cmd.Stdout = stdout + cmd.Stderr = stderr + if debug { + defer func(start time.Time) { + log.Printf("%s for %v, stderr: <<%s>>\n", time.Since(start), cmdDebugStr(cmd, args...), stderr) + }(time.Now()) + } + + if err := cmd.Run(); err != nil { + // Check for 'go' executable not being found. + if ee, ok := err.(*exec.Error); ok && ee.Err == exec.ErrNotFound { + return nil, fmt.Errorf("'go list' driver requires 'go', but %s", exec.ErrNotFound) + } + + exitErr, ok := err.(*exec.ExitError) + if !ok { + // Catastrophic error: + // - context cancellation + return nil, fmt.Errorf("couldn't exec 'go %v': %s %T", args, err, err) + } + + // Old go version? + if strings.Contains(stderr.String(), "flag provided but not defined") { + return nil, goTooOldError{fmt.Errorf("unsupported version of go: %s: %s", exitErr, stderr)} + } + + // This error only appears in stderr. See golang.org/cl/166398 for a fix in go list to show + // the error in the Err section of stdout in case -e option is provided. + // This fix is provided for backwards compatibility. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must be .go files") { + output := fmt.Sprintf(`{"ImportPath": "","Incomplete": true,"Error": {"Pos": "","Err": %s}}`, + strconv.Quote(strings.Trim(stderr.String(), "\n"))) + return bytes.NewBufferString(output), nil + } + + // Export mode entails a build. + // If that build fails, errors appear on stderr + // (despite the -e flag) and the Export field is blank. + // Do not fail in that case. + // The same is true if an ad-hoc package given to go list doesn't exist. + // TODO(matloob): Remove these once we can depend on go list to exit with a zero status with -e even when + // packages don't exist or a build fails. + if !usesExportData(cfg) && !containsGoFile(args) { + return nil, fmt.Errorf("go %v: %s: %s", args, exitErr, stderr) + } + } + + // As of writing, go list -export prints some non-fatal compilation + // errors to stderr, even with -e set. We would prefer that it put + // them in the Package.Error JSON (see https://golang.org/issue/26319). + // In the meantime, there's nowhere good to put them, but they can + // be useful for debugging. Print them if $GOPACKAGESPRINTGOLISTERRORS + // is set. + if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTGOLISTERRORS") != "" { + fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd, args...), stderr) + } + + // debugging + if false { + fmt.Fprintf(os.Stderr, "%s stdout: <<%s>>\n", cmdDebugStr(cmd, args...), stdout) + } + + return stdout, nil +} + +func containsGoFile(s []string) bool { + for _, f := range s { + if strings.HasSuffix(f, ".go") { + return true + } + } + return false +} + +func cmdDebugStr(cmd *exec.Cmd, args ...string) string { + env := make(map[string]string) + for _, kv := range cmd.Env { + split := strings.Split(kv, "=") + k, v := split[0], split[1] + env[k] = v + } + var quotedArgs []string + for _, arg := range args { + quotedArgs = append(quotedArgs, strconv.Quote(arg)) + } + + return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v PWD=%v go %s", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["PWD"], strings.Join(quotedArgs, " ")) +} diff --git a/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/vendor/golang.org/x/tools/go/packages/golist_overlay.go new file mode 100644 index 00000000..71ffcd9d --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/golist_overlay.go @@ -0,0 +1,104 @@ +package packages + +import ( + "go/parser" + "go/token" + "path/filepath" + "strconv" + "strings" +) + +// processGolistOverlay provides rudimentary support for adding +// files that don't exist on disk to an overlay. The results can be +// sometimes incorrect. +// TODO(matloob): Handle unsupported cases, including the following: +// - test files +// - adding test and non-test files to test variants of packages +// - determining the correct package to add given a new import path +// - creating packages that don't exist +func processGolistOverlay(cfg *Config, response *driverResponse) (modifiedPkgs, needPkgs []string, err error) { + havePkgs := make(map[string]string) // importPath -> non-test package ID + needPkgsSet := make(map[string]bool) + modifiedPkgsSet := make(map[string]bool) + + for _, pkg := range response.Packages { + // This is an approximation of import path to id. This can be + // wrong for tests, vendored packages, and a number of other cases. + havePkgs[pkg.PkgPath] = pkg.ID + } + +outer: + for path, contents := range cfg.Overlay { + base := filepath.Base(path) + if strings.HasSuffix(path, "_test.go") { + // Overlays don't support adding new test files yet. + // TODO(matloob): support adding new test files. + continue + } + dir := filepath.Dir(path) + for _, pkg := range response.Packages { + var dirContains, fileExists bool + for _, f := range pkg.GoFiles { + if sameFile(filepath.Dir(f), dir) { + dirContains = true + } + if filepath.Base(f) == base { + fileExists = true + } + } + if dirContains { + if !fileExists { + pkg.GoFiles = append(pkg.GoFiles, path) // TODO(matloob): should the file just be added to GoFiles? + pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, path) + modifiedPkgsSet[pkg.ID] = true + } + imports, err := extractImports(path, contents) + if err != nil { + // Let the parser or type checker report errors later. + continue outer + } + for _, imp := range imports { + _, found := pkg.Imports[imp] + if !found { + needPkgsSet[imp] = true + // TODO(matloob): Handle cases when the following block isn't correct. + // These include imports of test variants, imports of vendored packages, etc. + id, ok := havePkgs[imp] + if !ok { + id = imp + } + pkg.Imports[imp] = &Package{ID: id} + } + } + continue outer + } + } + } + + needPkgs = make([]string, 0, len(needPkgsSet)) + for pkg := range needPkgsSet { + needPkgs = append(needPkgs, pkg) + } + modifiedPkgs = make([]string, 0, len(modifiedPkgsSet)) + for pkg := range modifiedPkgsSet { + modifiedPkgs = append(modifiedPkgs, pkg) + } + return modifiedPkgs, needPkgs, err +} + +func extractImports(filename string, contents []byte) ([]string, error) { + f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.ImportsOnly) // TODO(matloob): reuse fileset? + if err != nil { + return nil, err + } + var res []string + for _, imp := range f.Imports { + quotedPath := imp.Path.Value + path, err := strconv.Unquote(quotedPath) + if err != nil { + return nil, err + } + res = append(res, path) + } + return res, nil +} diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go new file mode 100644 index 00000000..b0e827fb --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/packages.go @@ -0,0 +1,1051 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +// See doc.go for package documentation and implementation notes. + +import ( + "context" + "encoding/json" + "fmt" + "go/ast" + "go/parser" + "go/scanner" + "go/token" + "go/types" + "io/ioutil" + "log" + "os" + "path/filepath" + "strings" + "sync" + + "golang.org/x/tools/go/gcexportdata" +) + +// A LoadMode specifies the amount of detail to return when loading. +// Higher-numbered modes cause Load to return more information, +// but may be slower. Load may return more information than requested. +type LoadMode int + +const ( + // The following constants are used to specify which fields of the Package + // should be filled when loading is done. As a special case to provide + // backwards compatibility, a LoadMode of 0 is equivalent to LoadFiles. + // For all other LoadModes, the bits below specify which fields will be filled + // in the result packages. + // WARNING: This part of the go/packages API is EXPERIMENTAL. It might + // be changed or removed up until April 15 2019. After that date it will + // be frozen. + // TODO(matloob): Remove this comment on April 15. + + // ID and Errors (if present) will always be filled. + + // NeedName adds Name and PkgPath. + NeedName LoadMode = 1 << iota + + // NeedFiles adds GoFiles and OtherFiles. + NeedFiles + + // NeedCompiledGoFiles adds CompiledGoFiles. + NeedCompiledGoFiles + + // NeedImports adds Imports. If NeedDeps is not set, the Imports field will contain + // "placeholder" Packages with only the ID set. + NeedImports + + // NeedDeps adds the fields requested by the LoadMode in the packages in Imports. If NeedImports + // is not set NeedDeps has no effect. + NeedDeps + + // NeedExportsFile adds ExportsFile. + NeedExportsFile + + // NeedTypes adds Types, Fset, and IllTyped. + NeedTypes + + // NeedSyntax adds Syntax. + NeedSyntax + + // NeedTypesInfo adds TypesInfo. + NeedTypesInfo + + // NeedTypesSizes adds TypesSizes. + NeedTypesSizes +) + +const ( + // LoadFiles finds the packages and computes their source file lists. + // Package fields: ID, Name, Errors, GoFiles, CompiledGoFiles, and OtherFiles. + LoadFiles = NeedName | NeedFiles | NeedCompiledGoFiles + + // LoadImports adds import information for each package + // and its dependencies. + // Package fields added: Imports. + LoadImports = LoadFiles | NeedImports | NeedDeps + + // LoadTypes adds type information for package-level + // declarations in the packages matching the patterns. + // Package fields added: Types, TypesSizes, Fset, and IllTyped. + // This mode uses type information provided by the build system when + // possible, and may fill in the ExportFile field. + LoadTypes = LoadImports | NeedTypes | NeedTypesSizes + + // LoadSyntax adds typed syntax trees for the packages matching the patterns. + // Package fields added: Syntax, and TypesInfo, for direct pattern matches only. + LoadSyntax = LoadTypes | NeedSyntax | NeedTypesInfo + + // LoadAllSyntax adds typed syntax trees for the packages matching the patterns + // and all dependencies. + // Package fields added: Types, Fset, IllTyped, Syntax, and TypesInfo, + // for all packages in the import graph. + LoadAllSyntax = LoadSyntax +) + +// A Config specifies details about how packages should be loaded. +// The zero value is a valid configuration. +// Calls to Load do not modify this struct. +type Config struct { + // Mode controls the level of information returned for each package. + Mode LoadMode + + // Context specifies the context for the load operation. + // If the context is cancelled, the loader may stop early + // and return an ErrCancelled error. + // If Context is nil, the load cannot be cancelled. + Context context.Context + + // Dir is the directory in which to run the build system's query tool + // that provides information about the packages. + // If Dir is empty, the tool is run in the current directory. + Dir string + + // Env is the environment to use when invoking the build system's query tool. + // If Env is nil, the current environment is used. + // As in os/exec's Cmd, only the last value in the slice for + // each environment key is used. To specify the setting of only + // a few variables, append to the current environment, as in: + // + // opt.Env = append(os.Environ(), "GOOS=plan9", "GOARCH=386") + // + Env []string + + // BuildFlags is a list of command-line flags to be passed through to + // the build system's query tool. + BuildFlags []string + + // Fset provides source position information for syntax trees and types. + // If Fset is nil, Load will use a new fileset, but preserve Fset's value. + Fset *token.FileSet + + // ParseFile is called to read and parse each file + // when preparing a package's type-checked syntax tree. + // It must be safe to call ParseFile simultaneously from multiple goroutines. + // If ParseFile is nil, the loader will uses parser.ParseFile. + // + // ParseFile should parse the source from src and use filename only for + // recording position information. + // + // An application may supply a custom implementation of ParseFile + // to change the effective file contents or the behavior of the parser, + // or to modify the syntax tree. For example, selectively eliminating + // unwanted function bodies can significantly accelerate type checking. + ParseFile func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) + + // If Tests is set, the loader includes not just the packages + // matching a particular pattern but also any related test packages, + // including test-only variants of the package and the test executable. + // + // For example, when using the go command, loading "fmt" with Tests=true + // returns four packages, with IDs "fmt" (the standard package), + // "fmt [fmt.test]" (the package as compiled for the test), + // "fmt_test" (the test functions from source files in package fmt_test), + // and "fmt.test" (the test binary). + // + // In build systems with explicit names for tests, + // setting Tests may have no effect. + Tests bool + + // Overlay provides a mapping of absolute file paths to file contents. + // If the file with the given path already exists, the parser will use the + // alternative file contents provided by the map. + // + // Overlays provide incomplete support for when a given file doesn't + // already exist on disk. See the package doc above for more details. + Overlay map[string][]byte +} + +// driver is the type for functions that query the build system for the +// packages named by the patterns. +type driver func(cfg *Config, patterns ...string) (*driverResponse, error) + +// driverResponse contains the results for a driver query. +type driverResponse struct { + // Sizes, if not nil, is the types.Sizes to use when type checking. + Sizes *types.StdSizes + + // Roots is the set of package IDs that make up the root packages. + // We have to encode this separately because when we encode a single package + // we cannot know if it is one of the roots as that requires knowledge of the + // graph it is part of. + Roots []string `json:",omitempty"` + + // Packages is the full set of packages in the graph. + // The packages are not connected into a graph. + // The Imports if populated will be stubs that only have their ID set. + // Imports will be connected and then type and syntax information added in a + // later pass (see refine). + Packages []*Package +} + +// Load loads and returns the Go packages named by the given patterns. +// +// Config specifies loading options; +// nil behaves the same as an empty Config. +// +// Load returns an error if any of the patterns was invalid +// as defined by the underlying build system. +// It may return an empty list of packages without an error, +// for instance for an empty expansion of a valid wildcard. +// Errors associated with a particular package are recorded in the +// corresponding Package's Errors list, and do not cause Load to +// return an error. Clients may need to handle such errors before +// proceeding with further analysis. The PrintErrors function is +// provided for convenient display of all errors. +func Load(cfg *Config, patterns ...string) ([]*Package, error) { + l := newLoader(cfg) + response, err := defaultDriver(&l.Config, patterns...) + if err != nil { + return nil, err + } + l.sizes = response.Sizes + return l.refine(response.Roots, response.Packages...) +} + +// defaultDriver is a driver that looks for an external driver binary, and if +// it does not find it falls back to the built in go list driver. +func defaultDriver(cfg *Config, patterns ...string) (*driverResponse, error) { + driver := findExternalDriver(cfg) + if driver == nil { + driver = goListDriver + } + return driver(cfg, patterns...) +} + +// A Package describes a loaded Go package. +type Package struct { + // ID is a unique identifier for a package, + // in a syntax provided by the underlying build system. + // + // Because the syntax varies based on the build system, + // clients should treat IDs as opaque and not attempt to + // interpret them. + ID string + + // Name is the package name as it appears in the package source code. + Name string + + // PkgPath is the package path as used by the go/types package. + PkgPath string + + // Errors contains any errors encountered querying the metadata + // of the package, or while parsing or type-checking its files. + Errors []Error + + // GoFiles lists the absolute file paths of the package's Go source files. + GoFiles []string + + // CompiledGoFiles lists the absolute file paths of the package's source + // files that were presented to the compiler. + // This may differ from GoFiles if files are processed before compilation. + CompiledGoFiles []string + + // OtherFiles lists the absolute file paths of the package's non-Go source files, + // including assembly, C, C++, Fortran, Objective-C, SWIG, and so on. + OtherFiles []string + + // ExportFile is the absolute path to a file containing type + // information for the package as provided by the build system. + ExportFile string + + // Imports maps import paths appearing in the package's Go source files + // to corresponding loaded Packages. + Imports map[string]*Package + + // Types provides type information for the package. + // Modes LoadTypes and above set this field for packages matching the + // patterns; type information for dependencies may be missing or incomplete. + // Mode LoadAllSyntax sets this field for all packages, including dependencies. + Types *types.Package + + // Fset provides position information for Types, TypesInfo, and Syntax. + // It is set only when Types is set. + Fset *token.FileSet + + // IllTyped indicates whether the package or any dependency contains errors. + // It is set only when Types is set. + IllTyped bool + + // Syntax is the package's syntax trees, for the files listed in CompiledGoFiles. + // + // Mode LoadSyntax sets this field for packages matching the patterns. + // Mode LoadAllSyntax sets this field for all packages, including dependencies. + Syntax []*ast.File + + // TypesInfo provides type information about the package's syntax trees. + // It is set only when Syntax is set. + TypesInfo *types.Info + + // TypesSizes provides the effective size function for types in TypesInfo. + TypesSizes types.Sizes +} + +// An Error describes a problem with a package's metadata, syntax, or types. +type Error struct { + Pos string // "file:line:col" or "file:line" or "" or "-" + Msg string + Kind ErrorKind +} + +// ErrorKind describes the source of the error, allowing the user to +// differentiate between errors generated by the driver, the parser, or the +// type-checker. +type ErrorKind int + +const ( + UnknownError ErrorKind = iota + ListError + ParseError + TypeError +) + +func (err Error) Error() string { + pos := err.Pos + if pos == "" { + pos = "-" // like token.Position{}.String() + } + return pos + ": " + err.Msg +} + +// flatPackage is the JSON form of Package +// It drops all the type and syntax fields, and transforms the Imports +// +// TODO(adonovan): identify this struct with Package, effectively +// publishing the JSON protocol. +type flatPackage struct { + ID string + Name string `json:",omitempty"` + PkgPath string `json:",omitempty"` + Errors []Error `json:",omitempty"` + GoFiles []string `json:",omitempty"` + CompiledGoFiles []string `json:",omitempty"` + OtherFiles []string `json:",omitempty"` + ExportFile string `json:",omitempty"` + Imports map[string]string `json:",omitempty"` +} + +// MarshalJSON returns the Package in its JSON form. +// For the most part, the structure fields are written out unmodified, and +// the type and syntax fields are skipped. +// The imports are written out as just a map of path to package id. +// The errors are written using a custom type that tries to preserve the +// structure of error types we know about. +// +// This method exists to enable support for additional build systems. It is +// not intended for use by clients of the API and we may change the format. +func (p *Package) MarshalJSON() ([]byte, error) { + flat := &flatPackage{ + ID: p.ID, + Name: p.Name, + PkgPath: p.PkgPath, + Errors: p.Errors, + GoFiles: p.GoFiles, + CompiledGoFiles: p.CompiledGoFiles, + OtherFiles: p.OtherFiles, + ExportFile: p.ExportFile, + } + if len(p.Imports) > 0 { + flat.Imports = make(map[string]string, len(p.Imports)) + for path, ipkg := range p.Imports { + flat.Imports[path] = ipkg.ID + } + } + return json.Marshal(flat) +} + +// UnmarshalJSON reads in a Package from its JSON format. +// See MarshalJSON for details about the format accepted. +func (p *Package) UnmarshalJSON(b []byte) error { + flat := &flatPackage{} + if err := json.Unmarshal(b, &flat); err != nil { + return err + } + *p = Package{ + ID: flat.ID, + Name: flat.Name, + PkgPath: flat.PkgPath, + Errors: flat.Errors, + GoFiles: flat.GoFiles, + CompiledGoFiles: flat.CompiledGoFiles, + OtherFiles: flat.OtherFiles, + ExportFile: flat.ExportFile, + } + if len(flat.Imports) > 0 { + p.Imports = make(map[string]*Package, len(flat.Imports)) + for path, id := range flat.Imports { + p.Imports[path] = &Package{ID: id} + } + } + return nil +} + +func (p *Package) String() string { return p.ID } + +// loaderPackage augments Package with state used during the loading phase +type loaderPackage struct { + *Package + importErrors map[string]error // maps each bad import to its error + loadOnce sync.Once + color uint8 // for cycle detection + needsrc bool // load from source (Mode >= LoadTypes) + needtypes bool // type information is either requested or depended on + initial bool // package was matched by a pattern +} + +// loader holds the working state of a single call to load. +type loader struct { + pkgs map[string]*loaderPackage + Config + sizes types.Sizes + exportMu sync.Mutex // enforces mutual exclusion of exportdata operations +} + +func newLoader(cfg *Config) *loader { + ld := &loader{} + if cfg != nil { + ld.Config = *cfg + } + if ld.Config.Mode == 0 { + ld.Config.Mode = LoadFiles // Preserve zero behavior of Mode for backwards compatibility. + } + if ld.Config.Env == nil { + ld.Config.Env = os.Environ() + } + if ld.Context == nil { + ld.Context = context.Background() + } + if ld.Dir == "" { + if dir, err := os.Getwd(); err == nil { + ld.Dir = dir + } + } + + if ld.Mode&NeedTypes != 0 { + if ld.Fset == nil { + ld.Fset = token.NewFileSet() + } + + // ParseFile is required even in LoadTypes mode + // because we load source if export data is missing. + if ld.ParseFile == nil { + ld.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) { + var isrc interface{} + if src != nil { + isrc = src + } + const mode = parser.AllErrors | parser.ParseComments + return parser.ParseFile(fset, filename, isrc, mode) + } + } + } + return ld +} + +// refine connects the supplied packages into a graph and then adds type and +// and syntax information as requested by the LoadMode. +func (ld *loader) refine(roots []string, list ...*Package) ([]*Package, error) { + rootMap := make(map[string]int, len(roots)) + for i, root := range roots { + rootMap[root] = i + } + ld.pkgs = make(map[string]*loaderPackage) + // first pass, fixup and build the map and roots + var initial = make([]*loaderPackage, len(roots)) + for _, pkg := range list { + rootIndex := -1 + if i, found := rootMap[pkg.ID]; found { + rootIndex = i + } + lpkg := &loaderPackage{ + Package: pkg, + needtypes: (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && rootIndex < 0) || rootIndex >= 0, + needsrc: (ld.Mode&(NeedSyntax|NeedTypesInfo) != 0 && rootIndex < 0) || rootIndex >= 0 || + len(ld.Overlay) > 0 || // Overlays can invalidate export data. TODO(matloob): make this check fine-grained based on dependencies on overlaid files + pkg.ExportFile == "" && pkg.PkgPath != "unsafe", + } + ld.pkgs[lpkg.ID] = lpkg + if rootIndex >= 0 { + initial[rootIndex] = lpkg + lpkg.initial = true + } + } + for i, root := range roots { + if initial[i] == nil { + return nil, fmt.Errorf("root package %v is missing", root) + } + } + + // Materialize the import graph. + + const ( + white = 0 // new + grey = 1 // in progress + black = 2 // complete + ) + + // visit traverses the import graph, depth-first, + // and materializes the graph as Packages.Imports. + // + // Valid imports are saved in the Packages.Import map. + // Invalid imports (cycles and missing nodes) are saved in the importErrors map. + // Thus, even in the presence of both kinds of errors, the Import graph remains a DAG. + // + // visit returns whether the package needs src or has a transitive + // dependency on a package that does. These are the only packages + // for which we load source code. + var stack []*loaderPackage + var visit func(lpkg *loaderPackage) bool + var srcPkgs []*loaderPackage + visit = func(lpkg *loaderPackage) bool { + switch lpkg.color { + case black: + return lpkg.needsrc + case grey: + panic("internal error: grey node") + } + lpkg.color = grey + stack = append(stack, lpkg) // push + stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports + lpkg.Imports = make(map[string]*Package, len(stubs)) + for importPath, ipkg := range stubs { + var importErr error + imp := ld.pkgs[ipkg.ID] + if imp == nil { + // (includes package "C" when DisableCgo) + importErr = fmt.Errorf("missing package: %q", ipkg.ID) + } else if imp.color == grey { + importErr = fmt.Errorf("import cycle: %s", stack) + } + if importErr != nil { + if lpkg.importErrors == nil { + lpkg.importErrors = make(map[string]error) + } + lpkg.importErrors[importPath] = importErr + continue + } + + if visit(imp) { + lpkg.needsrc = true + } + lpkg.Imports[importPath] = imp.Package + } + if lpkg.needsrc { + srcPkgs = append(srcPkgs, lpkg) + } + if ld.Mode&NeedTypesSizes != 0 { + lpkg.TypesSizes = ld.sizes + } + stack = stack[:len(stack)-1] // pop + lpkg.color = black + + return lpkg.needsrc + } + + if ld.Mode&NeedImports == 0 { + // We do this to drop the stub import packages that we are not even going to try to resolve. + for _, lpkg := range initial { + lpkg.Imports = nil + } + } else { + // For each initial package, create its import DAG. + for _, lpkg := range initial { + visit(lpkg) + } + } + if ld.Mode&NeedDeps != 0 { + for _, lpkg := range srcPkgs { + // Complete type information is required for the + // immediate dependencies of each source package. + for _, ipkg := range lpkg.Imports { + imp := ld.pkgs[ipkg.ID] + imp.needtypes = true + } + } + } + // Load type data if needed, starting at + // the initial packages (roots of the import DAG). + if ld.Mode&NeedTypes != 0 { + var wg sync.WaitGroup + for _, lpkg := range initial { + wg.Add(1) + go func(lpkg *loaderPackage) { + ld.loadRecursive(lpkg) + wg.Done() + }(lpkg) + } + wg.Wait() + } + + result := make([]*Package, len(initial)) + importPlaceholders := make(map[string]*Package) + for i, lpkg := range initial { + result[i] = lpkg.Package + // Clear all unrequested fields, for extra de-Hyrum-ization. + if ld.Mode&NeedName == 0 { + result[i].Name = "" + result[i].PkgPath = "" + } + if ld.Mode&NeedFiles == 0 { + result[i].GoFiles = nil + result[i].OtherFiles = nil + } + if ld.Mode&NeedCompiledGoFiles == 0 { + result[i].CompiledGoFiles = nil + } + if ld.Mode&NeedImports == 0 { + result[i].Imports = nil + } + if ld.Mode&NeedExportsFile == 0 { + result[i].ExportFile = "" + } + if ld.Mode&NeedTypes == 0 { + result[i].Types = nil + result[i].Fset = nil + result[i].IllTyped = false + } + if ld.Mode&NeedSyntax == 0 { + result[i].Syntax = nil + } + if ld.Mode&NeedTypesInfo == 0 { + result[i].TypesInfo = nil + } + if ld.Mode&NeedTypesSizes == 0 { + result[i].TypesSizes = nil + } + if ld.Mode&NeedDeps == 0 { + for j, pkg := range result[i].Imports { + ph, ok := importPlaceholders[pkg.ID] + if !ok { + ph = &Package{ID: pkg.ID} + importPlaceholders[pkg.ID] = ph + } + result[i].Imports[j] = ph + } + } + } + return result, nil +} + +// loadRecursive loads the specified package and its dependencies, +// recursively, in parallel, in topological order. +// It is atomic and idempotent. +// Precondition: ld.Mode&NeedTypes. +func (ld *loader) loadRecursive(lpkg *loaderPackage) { + lpkg.loadOnce.Do(func() { + // Load the direct dependencies, in parallel. + var wg sync.WaitGroup + for _, ipkg := range lpkg.Imports { + imp := ld.pkgs[ipkg.ID] + wg.Add(1) + go func(imp *loaderPackage) { + ld.loadRecursive(imp) + wg.Done() + }(imp) + } + wg.Wait() + + ld.loadPackage(lpkg) + }) +} + +// loadPackage loads the specified package. +// It must be called only once per Package, +// after immediate dependencies are loaded. +// Precondition: ld.Mode >= LoadTypes. +func (ld *loader) loadPackage(lpkg *loaderPackage) { + if lpkg.PkgPath == "unsafe" { + // Fill in the blanks to avoid surprises. + lpkg.Types = types.Unsafe + lpkg.Fset = ld.Fset + lpkg.Syntax = []*ast.File{} + lpkg.TypesInfo = new(types.Info) + lpkg.TypesSizes = ld.sizes + return + } + + // Call NewPackage directly with explicit name. + // This avoids skew between golist and go/types when the files' + // package declarations are inconsistent. + lpkg.Types = types.NewPackage(lpkg.PkgPath, lpkg.Name) + lpkg.Fset = ld.Fset + + // Subtle: we populate all Types fields with an empty Package + // before loading export data so that export data processing + // never has to create a types.Package for an indirect dependency, + // which would then require that such created packages be explicitly + // inserted back into the Import graph as a final step after export data loading. + // The Diamond test exercises this case. + if !lpkg.needtypes { + return + } + if !lpkg.needsrc { + ld.loadFromExportData(lpkg) + return // not a source package, don't get syntax trees + } + + appendError := func(err error) { + // Convert various error types into the one true Error. + var errs []Error + switch err := err.(type) { + case Error: + // from driver + errs = append(errs, err) + + case *os.PathError: + // from parser + errs = append(errs, Error{ + Pos: err.Path + ":1", + Msg: err.Err.Error(), + Kind: ParseError, + }) + + case scanner.ErrorList: + // from parser + for _, err := range err { + errs = append(errs, Error{ + Pos: err.Pos.String(), + Msg: err.Msg, + Kind: ParseError, + }) + } + + case types.Error: + // from type checker + errs = append(errs, Error{ + Pos: err.Fset.Position(err.Pos).String(), + Msg: err.Msg, + Kind: TypeError, + }) + + default: + // unexpected impoverished error from parser? + errs = append(errs, Error{ + Pos: "-", + Msg: err.Error(), + Kind: UnknownError, + }) + + // If you see this error message, please file a bug. + log.Printf("internal error: error %q (%T) without position", err, err) + } + + lpkg.Errors = append(lpkg.Errors, errs...) + } + + files, errs := ld.parseFiles(lpkg.CompiledGoFiles) + for _, err := range errs { + appendError(err) + } + + lpkg.Syntax = files + + lpkg.TypesInfo = &types.Info{ + Types: make(map[ast.Expr]types.TypeAndValue), + Defs: make(map[*ast.Ident]types.Object), + Uses: make(map[*ast.Ident]types.Object), + Implicits: make(map[ast.Node]types.Object), + Scopes: make(map[ast.Node]*types.Scope), + Selections: make(map[*ast.SelectorExpr]*types.Selection), + } + lpkg.TypesSizes = ld.sizes + + importer := importerFunc(func(path string) (*types.Package, error) { + if path == "unsafe" { + return types.Unsafe, nil + } + + // The imports map is keyed by import path. + ipkg := lpkg.Imports[path] + if ipkg == nil { + if err := lpkg.importErrors[path]; err != nil { + return nil, err + } + // There was skew between the metadata and the + // import declarations, likely due to an edit + // race, or because the ParseFile feature was + // used to supply alternative file contents. + return nil, fmt.Errorf("no metadata for %s", path) + } + + if ipkg.Types != nil && ipkg.Types.Complete() { + return ipkg.Types, nil + } + log.Fatalf("internal error: nil Pkg importing %q from %q", path, lpkg) + panic("unreachable") + }) + + // type-check + tc := &types.Config{ + Importer: importer, + + // Type-check bodies of functions only in non-initial packages. + // Example: for import graph A->B->C and initial packages {A,C}, + // we can ignore function bodies in B. + IgnoreFuncBodies: (ld.Mode&(NeedDeps|NeedTypesInfo) == 0) && !lpkg.initial, + + Error: appendError, + Sizes: ld.sizes, + } + types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax) + + lpkg.importErrors = nil // no longer needed + + // If !Cgo, the type-checker uses FakeImportC mode, so + // it doesn't invoke the importer for import "C", + // nor report an error for the import, + // or for any undefined C.f reference. + // We must detect this explicitly and correctly + // mark the package as IllTyped (by reporting an error). + // TODO(adonovan): if these errors are annoying, + // we could just set IllTyped quietly. + if tc.FakeImportC { + outer: + for _, f := range lpkg.Syntax { + for _, imp := range f.Imports { + if imp.Path.Value == `"C"` { + err := types.Error{Fset: ld.Fset, Pos: imp.Pos(), Msg: `import "C" ignored`} + appendError(err) + break outer + } + } + } + } + + // Record accumulated errors. + illTyped := len(lpkg.Errors) > 0 + if !illTyped { + for _, imp := range lpkg.Imports { + if imp.IllTyped { + illTyped = true + break + } + } + } + lpkg.IllTyped = illTyped +} + +// An importFunc is an implementation of the single-method +// types.Importer interface based on a function value. +type importerFunc func(path string) (*types.Package, error) + +func (f importerFunc) Import(path string) (*types.Package, error) { return f(path) } + +// We use a counting semaphore to limit +// the number of parallel I/O calls per process. +var ioLimit = make(chan bool, 20) + +// parseFiles reads and parses the Go source files and returns the ASTs +// of the ones that could be at least partially parsed, along with a +// list of I/O and parse errors encountered. +// +// Because files are scanned in parallel, the token.Pos +// positions of the resulting ast.Files are not ordered. +// +func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) { + var wg sync.WaitGroup + n := len(filenames) + parsed := make([]*ast.File, n) + errors := make([]error, n) + for i, file := range filenames { + if ld.Config.Context.Err() != nil { + parsed[i] = nil + errors[i] = ld.Config.Context.Err() + continue + } + wg.Add(1) + go func(i int, filename string) { + ioLimit <- true // wait + // ParseFile may return both an AST and an error. + var src []byte + for f, contents := range ld.Config.Overlay { + if sameFile(f, filename) { + src = contents + } + } + var err error + if src == nil { + src, err = ioutil.ReadFile(filename) + } + if err != nil { + parsed[i], errors[i] = nil, err + } else { + parsed[i], errors[i] = ld.ParseFile(ld.Fset, filename, src) + } + <-ioLimit // signal + wg.Done() + }(i, file) + } + wg.Wait() + + // Eliminate nils, preserving order. + var o int + for _, f := range parsed { + if f != nil { + parsed[o] = f + o++ + } + } + parsed = parsed[:o] + + o = 0 + for _, err := range errors { + if err != nil { + errors[o] = err + o++ + } + } + errors = errors[:o] + + return parsed, errors +} + +// sameFile returns true if x and y have the same basename and denote +// the same file. +// +func sameFile(x, y string) bool { + if x == y { + // It could be the case that y doesn't exist. + // For instance, it may be an overlay file that + // hasn't been written to disk. To handle that case + // let x == y through. (We added the exact absolute path + // string to the CompiledGoFiles list, so the unwritten + // overlay case implies x==y.) + return true + } + if strings.EqualFold(filepath.Base(x), filepath.Base(y)) { // (optimisation) + if xi, err := os.Stat(x); err == nil { + if yi, err := os.Stat(y); err == nil { + return os.SameFile(xi, yi) + } + } + } + return false +} + +// loadFromExportData returns type information for the specified +// package, loading it from an export data file on the first request. +func (ld *loader) loadFromExportData(lpkg *loaderPackage) (*types.Package, error) { + if lpkg.PkgPath == "" { + log.Fatalf("internal error: Package %s has no PkgPath", lpkg) + } + + // Because gcexportdata.Read has the potential to create or + // modify the types.Package for each node in the transitive + // closure of dependencies of lpkg, all exportdata operations + // must be sequential. (Finer-grained locking would require + // changes to the gcexportdata API.) + // + // The exportMu lock guards the Package.Pkg field and the + // types.Package it points to, for each Package in the graph. + // + // Not all accesses to Package.Pkg need to be protected by exportMu: + // graph ordering ensures that direct dependencies of source + // packages are fully loaded before the importer reads their Pkg field. + ld.exportMu.Lock() + defer ld.exportMu.Unlock() + + if tpkg := lpkg.Types; tpkg != nil && tpkg.Complete() { + return tpkg, nil // cache hit + } + + lpkg.IllTyped = true // fail safe + + if lpkg.ExportFile == "" { + // Errors while building export data will have been printed to stderr. + return nil, fmt.Errorf("no export data file") + } + f, err := os.Open(lpkg.ExportFile) + if err != nil { + return nil, err + } + defer f.Close() + + // Read gc export data. + // + // We don't currently support gccgo export data because all + // underlying workspaces use the gc toolchain. (Even build + // systems that support gccgo don't use it for workspace + // queries.) + r, err := gcexportdata.NewReader(f) + if err != nil { + return nil, fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) + } + + // Build the view. + // + // The gcexportdata machinery has no concept of package ID. + // It identifies packages by their PkgPath, which although not + // globally unique is unique within the scope of one invocation + // of the linker, type-checker, or gcexportdata. + // + // So, we must build a PkgPath-keyed view of the global + // (conceptually ID-keyed) cache of packages and pass it to + // gcexportdata. The view must contain every existing + // package that might possibly be mentioned by the + // current package---its transitive closure. + // + // In loadPackage, we unconditionally create a types.Package for + // each dependency so that export data loading does not + // create new ones. + // + // TODO(adonovan): it would be simpler and more efficient + // if the export data machinery invoked a callback to + // get-or-create a package instead of a map. + // + view := make(map[string]*types.Package) // view seen by gcexportdata + seen := make(map[*loaderPackage]bool) // all visited packages + var visit func(pkgs map[string]*Package) + visit = func(pkgs map[string]*Package) { + for _, p := range pkgs { + lpkg := ld.pkgs[p.ID] + if !seen[lpkg] { + seen[lpkg] = true + view[lpkg.PkgPath] = lpkg.Types + visit(lpkg.Imports) + } + } + } + visit(lpkg.Imports) + + viewLen := len(view) + 1 // adding the self package + // Parse the export data. + // (May modify incomplete packages in view but not create new ones.) + tpkg, err := gcexportdata.Read(r, ld.Fset, view, lpkg.PkgPath) + if err != nil { + return nil, fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) + } + if viewLen != len(view) { + log.Fatalf("Unexpected package creation during export data loading") + } + + lpkg.Types = tpkg + lpkg.IllTyped = false + + return tpkg, nil +} + +func usesExportData(cfg *Config) bool { + return cfg.Mode&NeedExportsFile != 0 || cfg.Mode&NeedTypes != 0 && cfg.Mode&NeedTypesInfo == 0 +} diff --git a/vendor/golang.org/x/tools/go/packages/visit.go b/vendor/golang.org/x/tools/go/packages/visit.go new file mode 100644 index 00000000..b13cb081 --- /dev/null +++ b/vendor/golang.org/x/tools/go/packages/visit.go @@ -0,0 +1,55 @@ +package packages + +import ( + "fmt" + "os" + "sort" +) + +// Visit visits all the packages in the import graph whose roots are +// pkgs, calling the optional pre function the first time each package +// is encountered (preorder), and the optional post function after a +// package's dependencies have been visited (postorder). +// The boolean result of pre(pkg) determines whether +// the imports of package pkg are visited. +func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { + seen := make(map[*Package]bool) + var visit func(*Package) + visit = func(pkg *Package) { + if !seen[pkg] { + seen[pkg] = true + + if pre == nil || pre(pkg) { + paths := make([]string, 0, len(pkg.Imports)) + for path := range pkg.Imports { + paths = append(paths, path) + } + sort.Strings(paths) // Imports is a map, this makes visit stable + for _, path := range paths { + visit(pkg.Imports[path]) + } + } + + if post != nil { + post(pkg) + } + } + } + for _, pkg := range pkgs { + visit(pkg) + } +} + +// PrintErrors prints to os.Stderr the accumulated errors of all +// packages in the import graph rooted at pkgs, dependencies first. +// PrintErrors returns the number of errors printed. +func PrintErrors(pkgs []*Package) int { + var n int + Visit(pkgs, nil, func(pkg *Package) { + for _, err := range pkg.Errors { + fmt.Fprintln(os.Stderr, err) + n++ + } + }) + return n +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/callee.go b/vendor/golang.org/x/tools/go/types/typeutil/callee.go new file mode 100644 index 00000000..38f596da --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/callee.go @@ -0,0 +1,46 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typeutil + +import ( + "go/ast" + "go/types" + + "golang.org/x/tools/go/ast/astutil" +) + +// Callee returns the named target of a function call, if any: +// a function, method, builtin, or variable. +func Callee(info *types.Info, call *ast.CallExpr) types.Object { + var obj types.Object + switch fun := astutil.Unparen(call.Fun).(type) { + case *ast.Ident: + obj = info.Uses[fun] // type, var, builtin, or declared func + case *ast.SelectorExpr: + if sel, ok := info.Selections[fun]; ok { + obj = sel.Obj() // method or field + } else { + obj = info.Uses[fun.Sel] // qualified identifier? + } + } + if _, ok := obj.(*types.TypeName); ok { + return nil // T(x) is a conversion, not a call + } + return obj +} + +// StaticCallee returns the target (function or method) of a static +// function call, if any. It returns nil for calls to builtins. +func StaticCallee(info *types.Info, call *ast.CallExpr) *types.Func { + if f, ok := Callee(info, call).(*types.Func); ok && !interfaceMethod(f) { + return f + } + return nil +} + +func interfaceMethod(f *types.Func) bool { + recv := f.Type().(*types.Signature).Recv() + return recv != nil && types.IsInterface(recv.Type()) +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/imports.go b/vendor/golang.org/x/tools/go/types/typeutil/imports.go new file mode 100644 index 00000000..9c441dba --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/imports.go @@ -0,0 +1,31 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typeutil + +import "go/types" + +// Dependencies returns all dependencies of the specified packages. +// +// Dependent packages appear in topological order: if package P imports +// package Q, Q appears earlier than P in the result. +// The algorithm follows import statements in the order they +// appear in the source code, so the result is a total order. +// +func Dependencies(pkgs ...*types.Package) []*types.Package { + var result []*types.Package + seen := make(map[*types.Package]bool) + var visit func(pkgs []*types.Package) + visit = func(pkgs []*types.Package) { + for _, p := range pkgs { + if !seen[p] { + seen[p] = true + visit(p.Imports()) + result = append(result, p) + } + } + } + visit(pkgs) + return result +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/map.go b/vendor/golang.org/x/tools/go/types/typeutil/map.go new file mode 100644 index 00000000..c7f75450 --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/map.go @@ -0,0 +1,313 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package typeutil defines various utilities for types, such as Map, +// a mapping from types.Type to interface{} values. +package typeutil // import "golang.org/x/tools/go/types/typeutil" + +import ( + "bytes" + "fmt" + "go/types" + "reflect" +) + +// Map is a hash-table-based mapping from types (types.Type) to +// arbitrary interface{} values. The concrete types that implement +// the Type interface are pointers. Since they are not canonicalized, +// == cannot be used to check for equivalence, and thus we cannot +// simply use a Go map. +// +// Just as with map[K]V, a nil *Map is a valid empty map. +// +// Not thread-safe. +// +type Map struct { + hasher Hasher // shared by many Maps + table map[uint32][]entry // maps hash to bucket; entry.key==nil means unused + length int // number of map entries +} + +// entry is an entry (key/value association) in a hash bucket. +type entry struct { + key types.Type + value interface{} +} + +// SetHasher sets the hasher used by Map. +// +// All Hashers are functionally equivalent but contain internal state +// used to cache the results of hashing previously seen types. +// +// A single Hasher created by MakeHasher() may be shared among many +// Maps. This is recommended if the instances have many keys in +// common, as it will amortize the cost of hash computation. +// +// A Hasher may grow without bound as new types are seen. Even when a +// type is deleted from the map, the Hasher never shrinks, since other +// types in the map may reference the deleted type indirectly. +// +// Hashers are not thread-safe, and read-only operations such as +// Map.Lookup require updates to the hasher, so a full Mutex lock (not a +// read-lock) is require around all Map operations if a shared +// hasher is accessed from multiple threads. +// +// If SetHasher is not called, the Map will create a private hasher at +// the first call to Insert. +// +func (m *Map) SetHasher(hasher Hasher) { + m.hasher = hasher +} + +// Delete removes the entry with the given key, if any. +// It returns true if the entry was found. +// +func (m *Map) Delete(key types.Type) bool { + if m != nil && m.table != nil { + hash := m.hasher.Hash(key) + bucket := m.table[hash] + for i, e := range bucket { + if e.key != nil && types.Identical(key, e.key) { + // We can't compact the bucket as it + // would disturb iterators. + bucket[i] = entry{} + m.length-- + return true + } + } + } + return false +} + +// At returns the map entry for the given key. +// The result is nil if the entry is not present. +// +func (m *Map) At(key types.Type) interface{} { + if m != nil && m.table != nil { + for _, e := range m.table[m.hasher.Hash(key)] { + if e.key != nil && types.Identical(key, e.key) { + return e.value + } + } + } + return nil +} + +// Set sets the map entry for key to val, +// and returns the previous entry, if any. +func (m *Map) Set(key types.Type, value interface{}) (prev interface{}) { + if m.table != nil { + hash := m.hasher.Hash(key) + bucket := m.table[hash] + var hole *entry + for i, e := range bucket { + if e.key == nil { + hole = &bucket[i] + } else if types.Identical(key, e.key) { + prev = e.value + bucket[i].value = value + return + } + } + + if hole != nil { + *hole = entry{key, value} // overwrite deleted entry + } else { + m.table[hash] = append(bucket, entry{key, value}) + } + } else { + if m.hasher.memo == nil { + m.hasher = MakeHasher() + } + hash := m.hasher.Hash(key) + m.table = map[uint32][]entry{hash: {entry{key, value}}} + } + + m.length++ + return +} + +// Len returns the number of map entries. +func (m *Map) Len() int { + if m != nil { + return m.length + } + return 0 +} + +// Iterate calls function f on each entry in the map in unspecified order. +// +// If f should mutate the map, Iterate provides the same guarantees as +// Go maps: if f deletes a map entry that Iterate has not yet reached, +// f will not be invoked for it, but if f inserts a map entry that +// Iterate has not yet reached, whether or not f will be invoked for +// it is unspecified. +// +func (m *Map) Iterate(f func(key types.Type, value interface{})) { + if m != nil { + for _, bucket := range m.table { + for _, e := range bucket { + if e.key != nil { + f(e.key, e.value) + } + } + } + } +} + +// Keys returns a new slice containing the set of map keys. +// The order is unspecified. +func (m *Map) Keys() []types.Type { + keys := make([]types.Type, 0, m.Len()) + m.Iterate(func(key types.Type, _ interface{}) { + keys = append(keys, key) + }) + return keys +} + +func (m *Map) toString(values bool) string { + if m == nil { + return "{}" + } + var buf bytes.Buffer + fmt.Fprint(&buf, "{") + sep := "" + m.Iterate(func(key types.Type, value interface{}) { + fmt.Fprint(&buf, sep) + sep = ", " + fmt.Fprint(&buf, key) + if values { + fmt.Fprintf(&buf, ": %q", value) + } + }) + fmt.Fprint(&buf, "}") + return buf.String() +} + +// String returns a string representation of the map's entries. +// Values are printed using fmt.Sprintf("%v", v). +// Order is unspecified. +// +func (m *Map) String() string { + return m.toString(true) +} + +// KeysString returns a string representation of the map's key set. +// Order is unspecified. +// +func (m *Map) KeysString() string { + return m.toString(false) +} + +//////////////////////////////////////////////////////////////////////// +// Hasher + +// A Hasher maps each type to its hash value. +// For efficiency, a hasher uses memoization; thus its memory +// footprint grows monotonically over time. +// Hashers are not thread-safe. +// Hashers have reference semantics. +// Call MakeHasher to create a Hasher. +type Hasher struct { + memo map[types.Type]uint32 +} + +// MakeHasher returns a new Hasher instance. +func MakeHasher() Hasher { + return Hasher{make(map[types.Type]uint32)} +} + +// Hash computes a hash value for the given type t such that +// Identical(t, t') => Hash(t) == Hash(t'). +func (h Hasher) Hash(t types.Type) uint32 { + hash, ok := h.memo[t] + if !ok { + hash = h.hashFor(t) + h.memo[t] = hash + } + return hash +} + +// hashString computes the Fowler–Noll–Vo hash of s. +func hashString(s string) uint32 { + var h uint32 + for i := 0; i < len(s); i++ { + h ^= uint32(s[i]) + h *= 16777619 + } + return h +} + +// hashFor computes the hash of t. +func (h Hasher) hashFor(t types.Type) uint32 { + // See Identical for rationale. + switch t := t.(type) { + case *types.Basic: + return uint32(t.Kind()) + + case *types.Array: + return 9043 + 2*uint32(t.Len()) + 3*h.Hash(t.Elem()) + + case *types.Slice: + return 9049 + 2*h.Hash(t.Elem()) + + case *types.Struct: + var hash uint32 = 9059 + for i, n := 0, t.NumFields(); i < n; i++ { + f := t.Field(i) + if f.Anonymous() { + hash += 8861 + } + hash += hashString(t.Tag(i)) + hash += hashString(f.Name()) // (ignore f.Pkg) + hash += h.Hash(f.Type()) + } + return hash + + case *types.Pointer: + return 9067 + 2*h.Hash(t.Elem()) + + case *types.Signature: + var hash uint32 = 9091 + if t.Variadic() { + hash *= 8863 + } + return hash + 3*h.hashTuple(t.Params()) + 5*h.hashTuple(t.Results()) + + case *types.Interface: + var hash uint32 = 9103 + for i, n := 0, t.NumMethods(); i < n; i++ { + // See go/types.identicalMethods for rationale. + // Method order is not significant. + // Ignore m.Pkg(). + m := t.Method(i) + hash += 3*hashString(m.Name()) + 5*h.Hash(m.Type()) + } + return hash + + case *types.Map: + return 9109 + 2*h.Hash(t.Key()) + 3*h.Hash(t.Elem()) + + case *types.Chan: + return 9127 + 2*uint32(t.Dir()) + 3*h.Hash(t.Elem()) + + case *types.Named: + // Not safe with a copying GC; objects may move. + return uint32(reflect.ValueOf(t.Obj()).Pointer()) + + case *types.Tuple: + return h.hashTuple(t) + } + panic(t) +} + +func (h Hasher) hashTuple(tuple *types.Tuple) uint32 { + // See go/types.identicalTypes for rationale. + n := tuple.Len() + var hash uint32 = 9137 + 2*uint32(n) + for i := 0; i < n; i++ { + hash += 3 * h.Hash(tuple.At(i).Type()) + } + return hash +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go b/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go new file mode 100644 index 00000000..32084610 --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go @@ -0,0 +1,72 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file implements a cache of method sets. + +package typeutil + +import ( + "go/types" + "sync" +) + +// A MethodSetCache records the method set of each type T for which +// MethodSet(T) is called so that repeat queries are fast. +// The zero value is a ready-to-use cache instance. +type MethodSetCache struct { + mu sync.Mutex + named map[*types.Named]struct{ value, pointer *types.MethodSet } // method sets for named N and *N + others map[types.Type]*types.MethodSet // all other types +} + +// MethodSet returns the method set of type T. It is thread-safe. +// +// If cache is nil, this function is equivalent to types.NewMethodSet(T). +// Utility functions can thus expose an optional *MethodSetCache +// parameter to clients that care about performance. +// +func (cache *MethodSetCache) MethodSet(T types.Type) *types.MethodSet { + if cache == nil { + return types.NewMethodSet(T) + } + cache.mu.Lock() + defer cache.mu.Unlock() + + switch T := T.(type) { + case *types.Named: + return cache.lookupNamed(T).value + + case *types.Pointer: + if N, ok := T.Elem().(*types.Named); ok { + return cache.lookupNamed(N).pointer + } + } + + // all other types + // (The map uses pointer equivalence, not type identity.) + mset := cache.others[T] + if mset == nil { + mset = types.NewMethodSet(T) + if cache.others == nil { + cache.others = make(map[types.Type]*types.MethodSet) + } + cache.others[T] = mset + } + return mset +} + +func (cache *MethodSetCache) lookupNamed(named *types.Named) struct{ value, pointer *types.MethodSet } { + if cache.named == nil { + cache.named = make(map[*types.Named]struct{ value, pointer *types.MethodSet }) + } + // Avoid recomputing mset(*T) for each distinct Pointer + // instance whose underlying type is a named type. + msets, ok := cache.named[named] + if !ok { + msets.value = types.NewMethodSet(named) + msets.pointer = types.NewMethodSet(types.NewPointer(named)) + cache.named[named] = msets + } + return msets +} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/ui.go b/vendor/golang.org/x/tools/go/types/typeutil/ui.go new file mode 100644 index 00000000..9849c24c --- /dev/null +++ b/vendor/golang.org/x/tools/go/types/typeutil/ui.go @@ -0,0 +1,52 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typeutil + +// This file defines utilities for user interfaces that display types. + +import "go/types" + +// IntuitiveMethodSet returns the intuitive method set of a type T, +// which is the set of methods you can call on an addressable value of +// that type. +// +// The result always contains MethodSet(T), and is exactly MethodSet(T) +// for interface types and for pointer-to-concrete types. +// For all other concrete types T, the result additionally +// contains each method belonging to *T if there is no identically +// named method on T itself. +// +// This corresponds to user intuition about method sets; +// this function is intended only for user interfaces. +// +// The order of the result is as for types.MethodSet(T). +// +func IntuitiveMethodSet(T types.Type, msets *MethodSetCache) []*types.Selection { + isPointerToConcrete := func(T types.Type) bool { + ptr, ok := T.(*types.Pointer) + return ok && !types.IsInterface(ptr.Elem()) + } + + var result []*types.Selection + mset := msets.MethodSet(T) + if types.IsInterface(T) || isPointerToConcrete(T) { + for i, n := 0, mset.Len(); i < n; i++ { + result = append(result, mset.At(i)) + } + } else { + // T is some other concrete type. + // Report methods of T and *T, preferring those of T. + pmset := msets.MethodSet(types.NewPointer(T)) + for i, n := 0, pmset.Len(); i < n; i++ { + meth := pmset.At(i) + if m := mset.Lookup(meth.Obj().Pkg(), meth.Obj().Name()); m != nil { + meth = m + } + result = append(result, meth) + } + + } + return result +} diff --git a/vendor/golang.org/x/tools/imports/fix.go b/vendor/golang.org/x/tools/imports/fix.go index 61a5f062..4c033930 100644 --- a/vendor/golang.org/x/tools/imports/fix.go +++ b/vendor/golang.org/x/tools/imports/fix.go @@ -5,8 +5,8 @@ package imports import ( - "bufio" "bytes" + "context" "fmt" "go/ast" "go/build" @@ -15,33 +15,45 @@ import ( "io/ioutil" "log" "os" + "os/exec" "path" "path/filepath" "sort" + "strconv" "strings" "sync" + "time" + "unicode" + "unicode/utf8" "golang.org/x/tools/go/ast/astutil" + "golang.org/x/tools/go/packages" + "golang.org/x/tools/internal/gopathwalk" ) // Debug controls verbose logging. var Debug = false -var ( - inTests = false // set true by fix_test.go; if false, no need to use testMu - testMu sync.RWMutex // guards globals reset by tests; used only if inTests -) - -// If set, LocalPrefix instructs Process to sort import paths with the given -// prefix into another group after 3rd-party packages. +// LocalPrefix is a comma-separated string of import path prefixes, which, if +// set, instructs Process to sort the import paths with the given prefixes +// into another group after 3rd-party packages. var LocalPrefix string +func localPrefixes() []string { + if LocalPrefix != "" { + return strings.Split(LocalPrefix, ",") + } + return nil +} + // importToGroup is a list of functions which map from an import path to // a group number. var importToGroup = []func(importPath string) (num int, ok bool){ func(importPath string) (num int, ok bool) { - if LocalPrefix != "" && strings.HasPrefix(importPath, LocalPrefix) { - return 3, true + for _, p := range localPrefixes() { + if strings.HasPrefix(importPath, p) || strings.TrimSuffix(p, "/") == importPath { + return 3, true + } } return }, @@ -68,33 +80,32 @@ func importGroup(importPath string) int { return 0 } -// packageInfo is a summary of features found in a package. -type packageInfo struct { - Globals map[string]bool // symbol => true +// An importInfo represents a single import statement. +type importInfo struct { + importPath string // import path, e.g. "crypto/rand". + name string // import name, e.g. "crand", or "" if none. } -// dirPackageInfo exposes the dirPackageInfoFile function so that it can be overridden. -var dirPackageInfo = dirPackageInfoFile +// A packageInfo represents what's known about a package. +type packageInfo struct { + name string // real package name, if known. + exports map[string]bool // known exports. +} -// dirPackageInfoFile gets information from other files in the package. -func dirPackageInfoFile(pkgName, srcDir, filename string) (*packageInfo, error) { +// parseOtherFiles parses all the Go files in srcDir except filename, including +// test files if filename looks like a test. +func parseOtherFiles(fset *token.FileSet, srcDir, filename string) []*ast.File { + // This could use go/packages but it doesn't buy much, and it fails + // with https://golang.org/issue/26296 in LoadFiles mode in some cases. considerTests := strings.HasSuffix(filename, "_test.go") - // Handle file from stdin - if _, err := os.Stat(filename); err != nil { - if os.IsNotExist(err) { - return &packageInfo{}, nil - } - return nil, err - } - fileBase := filepath.Base(filename) packageFileInfos, err := ioutil.ReadDir(srcDir) if err != nil { - return nil, err + return nil } - info := &packageInfo{Globals: make(map[string]bool)} + var files []*ast.File for _, fi := range packageFileInfos { if fi.Name() == fileBase || !strings.HasSuffix(fi.Name(), ".go") { continue @@ -103,193 +114,706 @@ func dirPackageInfoFile(pkgName, srcDir, filename string) (*packageInfo, error) continue } - fileSet := token.NewFileSet() - root, err := parser.ParseFile(fileSet, filepath.Join(srcDir, fi.Name()), nil, 0) + f, err := parser.ParseFile(fset, filepath.Join(srcDir, fi.Name()), nil, 0) if err != nil { continue } - for _, decl := range root.Decls { - genDecl, ok := decl.(*ast.GenDecl) + files = append(files, f) + } + + return files +} + +// addGlobals puts the names of package vars into the provided map. +func addGlobals(f *ast.File, globals map[string]bool) { + for _, decl := range f.Decls { + genDecl, ok := decl.(*ast.GenDecl) + if !ok { + continue + } + + for _, spec := range genDecl.Specs { + valueSpec, ok := spec.(*ast.ValueSpec) if !ok { continue } - - for _, spec := range genDecl.Specs { - valueSpec, ok := spec.(*ast.ValueSpec) - if !ok { - continue - } - info.Globals[valueSpec.Names[0].Name] = true - } + globals[valueSpec.Names[0].Name] = true } } - return info, nil } -func fixImports(fset *token.FileSet, f *ast.File, filename string) (added []string, err error) { - // refs are a set of possible package references currently unsatisfied by imports. - // first key: either base package (e.g. "fmt") or renamed package - // second key: referenced package symbol (e.g. "Println") - refs := make(map[string]map[string]bool) +// collectReferences builds a map of selector expressions, from +// left hand side (X) to a set of right hand sides (Sel). +func collectReferences(f *ast.File) references { + refs := references{} - // decls are the current package imports. key is base package or renamed package. - decls := make(map[string]*ast.ImportSpec) - - abs, err := filepath.Abs(filename) - if err != nil { - return nil, err - } - srcDir := filepath.Dir(abs) - if Debug { - log.Printf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir) - } - - var packageInfo *packageInfo - var loadedPackageInfo bool - - // collect potential uses of packages. var visitor visitFn - visitor = visitFn(func(node ast.Node) ast.Visitor { + visitor = func(node ast.Node) ast.Visitor { if node == nil { return visitor } switch v := node.(type) { - case *ast.ImportSpec: - if v.Name != nil { - decls[v.Name.Name] = v - break - } - ipath := strings.Trim(v.Path.Value, `"`) - if ipath == "C" { - break - } - local := importPathToName(ipath, srcDir) - decls[local] = v case *ast.SelectorExpr: xident, ok := v.X.(*ast.Ident) if !ok { break } if xident.Obj != nil { - // if the parser can resolve it, it's not a package ref + // If the parser can resolve it, it's not a package ref. + break + } + if !ast.IsExported(v.Sel.Name) { + // Whatever this is, it's not exported from a package. break } pkgName := xident.Name - if refs[pkgName] == nil { - refs[pkgName] = make(map[string]bool) - } - if !loadedPackageInfo { - loadedPackageInfo = true - packageInfo, _ = dirPackageInfo(f.Name.Name, srcDir, filename) - } - if decls[pkgName] == nil && (packageInfo == nil || !packageInfo.Globals[pkgName]) { - refs[pkgName][v.Sel.Name] = true + r := refs[pkgName] + if r == nil { + r = make(map[string]bool) + refs[pkgName] = r } + r[v.Sel.Name] = true } return visitor - }) - ast.Walk(visitor, f) - - // Nil out any unused ImportSpecs, to be removed in following passes - unusedImport := map[string]string{} - for pkg, is := range decls { - if refs[pkg] == nil && pkg != "_" && pkg != "." { - name := "" - if is.Name != nil { - name = is.Name.Name - } - unusedImport[strings.Trim(is.Path.Value, `"`)] = name - } } - for ipath, name := range unusedImport { - if ipath == "C" { - // Don't remove cgo stuff. + ast.Walk(visitor, f) + return refs +} + +// collectImports returns all the imports in f, keyed by their package name as +// determined by pathToName. Unnamed imports (., _) and "C" are ignored. +func collectImports(f *ast.File) []*importInfo { + var imports []*importInfo + for _, imp := range f.Imports { + var name string + if imp.Name != nil { + name = imp.Name.Name + } + if imp.Path.Value == `"C"` || name == "_" || name == "." { continue } - astutil.DeleteNamedImport(fset, f, name, ipath) + path := strings.Trim(imp.Path.Value, `"`) + imports = append(imports, &importInfo{ + name: name, + importPath: path, + }) + } + return imports +} + +// findMissingImport searches pass's candidates for an import that provides +// pkg, containing all of syms. +func (p *pass) findMissingImport(pkg string, syms map[string]bool) *importInfo { + for _, candidate := range p.candidates { + pkgInfo, ok := p.knownPackages[candidate.importPath] + if !ok { + continue + } + if p.importIdentifier(candidate) != pkg { + continue + } + + allFound := true + for right := range syms { + if !pkgInfo.exports[right] { + allFound = false + break + } + } + + if allFound { + return candidate + } + } + return nil +} + +// references is set of references found in a Go file. The first map key is the +// left hand side of a selector expression, the second key is the right hand +// side, and the value should always be true. +type references map[string]map[string]bool + +// A pass contains all the inputs and state necessary to fix a file's imports. +// It can be modified in some ways during use; see comments below. +type pass struct { + // Inputs. These must be set before a call to load, and not modified after. + fset *token.FileSet // fset used to parse f and its siblings. + f *ast.File // the file being fixed. + srcDir string // the directory containing f. + fixEnv *fixEnv // the environment to use for go commands, etc. + loadRealPackageNames bool // if true, load package names from disk rather than guessing them. + otherFiles []*ast.File // sibling files. + + // Intermediate state, generated by load. + existingImports map[string]*importInfo + allRefs references + missingRefs references + + // Inputs to fix. These can be augmented between successive fix calls. + lastTry bool // indicates that this is the last call and fix should clean up as best it can. + candidates []*importInfo // candidate imports in priority order. + knownPackages map[string]*packageInfo // information about all known packages. +} + +// loadPackageNames saves the package names for everything referenced by imports. +func (p *pass) loadPackageNames(imports []*importInfo) error { + var unknown []string + for _, imp := range imports { + if _, ok := p.knownPackages[imp.importPath]; ok { + continue + } + unknown = append(unknown, imp.importPath) } - for pkgName, symbols := range refs { - if len(symbols) == 0 { - // skip over packages already imported - delete(refs, pkgName) + names, err := p.fixEnv.getResolver().loadPackageNames(unknown, p.srcDir) + if err != nil { + return err + } + + for path, name := range names { + p.knownPackages[path] = &packageInfo{ + name: name, + exports: map[string]bool{}, } } + return nil +} + +// importIdentifier returns the identifier that imp will introduce. It will +// guess if the package name has not been loaded, e.g. because the source +// is not available. +func (p *pass) importIdentifier(imp *importInfo) string { + if imp.name != "" { + return imp.name + } + known := p.knownPackages[imp.importPath] + if known != nil && known.name != "" { + return known.name + } + return importPathToAssumedName(imp.importPath) +} + +// load reads in everything necessary to run a pass, and reports whether the +// file already has all the imports it needs. It fills in p.missingRefs with the +// file's missing symbols, if any, or removes unused imports if not. +func (p *pass) load() bool { + p.knownPackages = map[string]*packageInfo{} + p.missingRefs = references{} + p.existingImports = map[string]*importInfo{} + + // Load basic information about the file in question. + p.allRefs = collectReferences(p.f) + + // Load stuff from other files in the same package: + // global variables so we know they don't need resolving, and imports + // that we might want to mimic. + globals := map[string]bool{} + for _, otherFile := range p.otherFiles { + // Don't load globals from files that are in the same directory + // but a different package. Using them to suggest imports is OK. + if p.f.Name.Name == otherFile.Name.Name { + addGlobals(otherFile, globals) + } + p.candidates = append(p.candidates, collectImports(otherFile)...) + } + + // Resolve all the import paths we've seen to package names, and store + // f's imports by the identifier they introduce. + imports := collectImports(p.f) + if p.loadRealPackageNames { + err := p.loadPackageNames(append(imports, p.candidates...)) + if err != nil { + if Debug { + log.Printf("loading package names: %v", err) + } + return false + } + } + for _, imp := range imports { + p.existingImports[p.importIdentifier(imp)] = imp + } + + // Find missing references. + for left, rights := range p.allRefs { + if globals[left] { + continue + } + _, ok := p.existingImports[left] + if !ok { + p.missingRefs[left] = rights + continue + } + } + if len(p.missingRefs) != 0 { + return false + } + + return p.fix() +} + +// fix attempts to satisfy missing imports using p.candidates. If it finds +// everything, or if p.lastTry is true, it adds the imports it found, +// removes anything unused, and returns true. +func (p *pass) fix() bool { + // Find missing imports. + var selected []*importInfo + for left, rights := range p.missingRefs { + if imp := p.findMissingImport(left, rights); imp != nil { + selected = append(selected, imp) + } + } + + if !p.lastTry && len(selected) != len(p.missingRefs) { + return false + } + + // Found everything, or giving up. Add the new imports and remove any unused. + for _, imp := range p.existingImports { + // We deliberately ignore globals here, because we can't be sure + // they're in the same package. People do things like put multiple + // main packages in the same directory, and we don't want to + // remove imports if they happen to have the same name as a var in + // a different package. + if _, ok := p.allRefs[p.importIdentifier(imp)]; !ok { + astutil.DeleteNamedImport(p.fset, p.f, imp.name, imp.importPath) + } + } + + for _, imp := range selected { + astutil.AddNamedImport(p.fset, p.f, imp.name, imp.importPath) + } + + if p.loadRealPackageNames { + for _, imp := range p.f.Imports { + if imp.Name != nil { + continue + } + path := strings.Trim(imp.Path.Value, `""`) + ident := p.importIdentifier(&importInfo{importPath: path}) + if ident != importPathToAssumedName(path) { + imp.Name = &ast.Ident{Name: ident, NamePos: imp.Pos()} + } + } + } + + return true +} + +// assumeSiblingImportsValid assumes that siblings' use of packages is valid, +// adding the exports they use. +func (p *pass) assumeSiblingImportsValid() { + for _, f := range p.otherFiles { + refs := collectReferences(f) + imports := collectImports(f) + importsByName := map[string]*importInfo{} + for _, imp := range imports { + importsByName[p.importIdentifier(imp)] = imp + } + for left, rights := range refs { + if imp, ok := importsByName[left]; ok { + if _, ok := stdlib[imp.importPath]; ok { + // We have the stdlib in memory; no need to guess. + rights = stdlib[imp.importPath] + } + p.addCandidate(imp, &packageInfo{ + // no name; we already know it. + exports: rights, + }) + } + } + } +} + +// addCandidate adds a candidate import to p, and merges in the information +// in pkg. +func (p *pass) addCandidate(imp *importInfo, pkg *packageInfo) { + p.candidates = append(p.candidates, imp) + if existing, ok := p.knownPackages[imp.importPath]; ok { + if existing.name == "" { + existing.name = pkg.name + } + for export := range pkg.exports { + existing.exports[export] = true + } + } else { + p.knownPackages[imp.importPath] = pkg + } +} + +// fixImports adds and removes imports from f so that all its references are +// satisfied and there are no unused imports. +// +// This is declared as a variable rather than a function so goimports can +// easily be extended by adding a file with an init function. +var fixImports = fixImportsDefault + +func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *fixEnv) error { + abs, err := filepath.Abs(filename) + if err != nil { + return err + } + srcDir := filepath.Dir(abs) + if Debug { + log.Printf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir) + } + + // First pass: looking only at f, and using the naive algorithm to + // derive package names from import paths, see if the file is already + // complete. We can't add any imports yet, because we don't know + // if missing references are actually package vars. + p := &pass{fset: fset, f: f, srcDir: srcDir} + if p.load() { + return nil + } + + otherFiles := parseOtherFiles(fset, srcDir, filename) + + // Second pass: add information from other files in the same package, + // like their package vars and imports. + p.otherFiles = otherFiles + if p.load() { + return nil + } + + // Now we can try adding imports from the stdlib. + p.assumeSiblingImportsValid() + addStdlibCandidates(p, p.missingRefs) + if p.fix() { + return nil + } + + // Third pass: get real package names where we had previously used + // the naive algorithm. This is the first step that will use the + // environment, so we provide it here for the first time. + p = &pass{fset: fset, f: f, srcDir: srcDir, fixEnv: env} + p.loadRealPackageNames = true + p.otherFiles = otherFiles + if p.load() { + return nil + } + + addStdlibCandidates(p, p.missingRefs) + p.assumeSiblingImportsValid() + if p.fix() { + return nil + } + + // Go look for candidates in $GOPATH, etc. We don't necessarily load + // the real exports of sibling imports, so keep assuming their contents. + if err := addExternalCandidates(p, p.missingRefs, filename); err != nil { + return err + } + + p.lastTry = true + p.fix() + return nil +} + +// fixEnv contains environment variables and settings that affect the use of +// the go command, the go/build package, etc. +type fixEnv struct { + // If non-empty, these will be used instead of the + // process-wide values. + GOPATH, GOROOT, GO111MODULE, GOPROXY, GOFLAGS string + WorkingDir string + + // If true, use go/packages regardless of the environment. + ForceGoPackages bool + + resolver resolver +} + +func (e *fixEnv) env() []string { + env := os.Environ() + add := func(k, v string) { + if v != "" { + env = append(env, k+"="+v) + } + } + add("GOPATH", e.GOPATH) + add("GOROOT", e.GOROOT) + add("GO111MODULE", e.GO111MODULE) + add("GOPROXY", e.GOPROXY) + add("GOFLAGS", e.GOFLAGS) + if e.WorkingDir != "" { + add("PWD", e.WorkingDir) + } + return env +} + +func (e *fixEnv) getResolver() resolver { + if e.resolver != nil { + return e.resolver + } + if e.ForceGoPackages { + return &goPackagesResolver{env: e} + } + + out, err := e.invokeGo("env", "GOMOD") + if err != nil || len(bytes.TrimSpace(out.Bytes())) == 0 { + return &gopathResolver{env: e} + } + return &moduleResolver{env: e} +} + +func (e *fixEnv) newPackagesConfig(mode packages.LoadMode) *packages.Config { + return &packages.Config{ + Mode: mode, + Dir: e.WorkingDir, + Env: e.env(), + } +} + +func (e *fixEnv) buildContext() *build.Context { + ctx := build.Default + ctx.GOROOT = e.GOROOT + ctx.GOPATH = e.GOPATH + return &ctx +} + +func (e *fixEnv) invokeGo(args ...string) (*bytes.Buffer, error) { + cmd := exec.Command("go", args...) + stdout := &bytes.Buffer{} + stderr := &bytes.Buffer{} + cmd.Stdout = stdout + cmd.Stderr = stderr + cmd.Env = e.env() + cmd.Dir = e.WorkingDir + + if Debug { + defer func(start time.Time) { log.Printf("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now()) + } + if err := cmd.Run(); err != nil { + return nil, fmt.Errorf("running go: %v (stderr:\n%s)", err, stderr) + } + return stdout, nil +} + +func cmdDebugStr(cmd *exec.Cmd) string { + env := make(map[string]string) + for _, kv := range cmd.Env { + split := strings.Split(kv, "=") + k, v := split[0], split[1] + env[k] = v + } + + return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v go %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], cmd.Args) +} + +func addStdlibCandidates(pass *pass, refs references) { + add := func(pkg string) { + pass.addCandidate( + &importInfo{importPath: pkg}, + &packageInfo{name: path.Base(pkg), exports: stdlib[pkg]}) + } + for left := range refs { + if left == "rand" { + // Make sure we try crypto/rand before math/rand. + add("crypto/rand") + add("math/rand") + continue + } + for importPath := range stdlib { + if path.Base(importPath) == left { + add(importPath) + } + } + } +} + +// A resolver does the build-system-specific parts of goimports. +type resolver interface { + // loadPackageNames loads the package names in importPaths. + loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) + // scan finds (at least) the packages satisfying refs. The returned slice is unordered. + scan(refs references) ([]*pkg, error) +} + +// gopathResolver implements resolver for GOPATH and module workspaces using go/packages. +type goPackagesResolver struct { + env *fixEnv +} + +func (r *goPackagesResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { + cfg := r.env.newPackagesConfig(packages.LoadFiles) + pkgs, err := packages.Load(cfg, importPaths...) + if err != nil { + return nil, err + } + names := map[string]string{} + for _, pkg := range pkgs { + names[VendorlessPath(pkg.PkgPath)] = pkg.Name + } + // We may not have found all the packages. Guess the rest. + for _, path := range importPaths { + if _, ok := names[path]; ok { + continue + } + names[path] = importPathToAssumedName(path) + } + return names, nil + +} + +func (r *goPackagesResolver) scan(refs references) ([]*pkg, error) { + var loadQueries []string + for pkgName := range refs { + loadQueries = append(loadQueries, "iamashamedtousethedisabledqueryname="+pkgName) + } + sort.Strings(loadQueries) + cfg := r.env.newPackagesConfig(packages.LoadFiles) + goPackages, err := packages.Load(cfg, loadQueries...) + if err != nil { + return nil, err + } + + var scan []*pkg + for _, goPackage := range goPackages { + scan = append(scan, &pkg{ + dir: filepath.Dir(goPackage.CompiledGoFiles[0]), + importPathShort: VendorlessPath(goPackage.PkgPath), + goPackage: goPackage, + }) + } + return scan, nil +} + +func addExternalCandidates(pass *pass, refs references, filename string) error { + dirScan, err := pass.fixEnv.getResolver().scan(refs) + if err != nil { + return err + } // Search for imports matching potential package references. - searches := 0 type result struct { - ipath string // import path (if err == nil) - name string // optional name to rename import as - err error - } - results := make(chan result) - for pkgName, symbols := range refs { - go func(pkgName string, symbols map[string]bool) { - ipath, rename, err := findImport(pkgName, symbols, filename) - r := result{ipath: ipath, err: err} - if rename { - r.name = pkgName - } - results <- r - }(pkgName, symbols) - searches++ - } - for i := 0; i < searches; i++ { - result := <-results - if result.err != nil { - return nil, result.err - } - if result.ipath != "" { - if result.name != "" { - astutil.AddNamedImport(fset, f, result.name, result.ipath) - } else { - astutil.AddImport(fset, f, result.ipath) - } - added = append(added, result.ipath) - } + imp *importInfo + pkg *packageInfo } + results := make(chan result, len(refs)) - return added, nil + ctx, cancel := context.WithCancel(context.TODO()) + var wg sync.WaitGroup + defer func() { + cancel() + wg.Wait() + }() + var ( + firstErr error + firstErrOnce sync.Once + ) + for pkgName, symbols := range refs { + wg.Add(1) + go func(pkgName string, symbols map[string]bool) { + defer wg.Done() + + found, err := findImport(ctx, pass.fixEnv, dirScan, pkgName, symbols, filename) + + if err != nil { + firstErrOnce.Do(func() { + firstErr = err + cancel() + }) + return + } + + if found == nil { + return // No matching package. + } + + imp := &importInfo{ + importPath: found.importPathShort, + } + + pkg := &packageInfo{ + name: pkgName, + exports: symbols, + } + results <- result{imp, pkg} + }(pkgName, symbols) + } + go func() { + wg.Wait() + close(results) + }() + + for result := range results { + pass.addCandidate(result.imp, result.pkg) + } + return firstErr } -// importPathToName returns the package name for the given import path. -var importPathToName func(importPath, srcDir string) (packageName string) = importPathToNameGoPath +// notIdentifier reports whether ch is an invalid identifier character. +func notIdentifier(ch rune) bool { + return !('a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || + '0' <= ch && ch <= '9' || + ch == '_' || + ch >= utf8.RuneSelf && (unicode.IsLetter(ch) || unicode.IsDigit(ch))) +} -// importPathToNameBasic assumes the package name is the base of import path. -func importPathToNameBasic(importPath, srcDir string) (packageName string) { - return path.Base(importPath) +// importPathToAssumedName returns the assumed package name of an import path. +// It does this using only string parsing of the import path. +// It picks the last element of the path that does not look like a major +// version, and then picks the valid identifier off the start of that element. +// It is used to determine if a local rename should be added to an import for +// clarity. +// This function could be moved to a standard package and exported if we want +// for use in other tools. +func importPathToAssumedName(importPath string) string { + base := path.Base(importPath) + if strings.HasPrefix(base, "v") { + if _, err := strconv.Atoi(base[1:]); err == nil { + dir := path.Dir(importPath) + if dir != "." { + base = path.Base(dir) + } + } + } + base = strings.TrimPrefix(base, "go-") + if i := strings.IndexFunc(base, notIdentifier); i >= 0 { + base = base[:i] + } + return base +} + +// gopathResolver implements resolver for GOPATH workspaces. +type gopathResolver struct { + env *fixEnv +} + +func (r *gopathResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { + names := map[string]string{} + for _, path := range importPaths { + names[path] = importPathToName(r.env, path, srcDir) + } + return names, nil } // importPathToNameGoPath finds out the actual package name, as declared in its .go files. -// If there's a problem, it falls back to using importPathToNameBasic. -func importPathToNameGoPath(importPath, srcDir string) (packageName string) { +// If there's a problem, it returns "". +func importPathToName(env *fixEnv, importPath, srcDir string) (packageName string) { // Fast path for standard library without going to disk. - if pkg, ok := stdImportPackage[importPath]; ok { - return pkg + if _, ok := stdlib[importPath]; ok { + return path.Base(importPath) // stdlib packages always match their paths. } - pkgName, err := importPathToNameGoPathParse(importPath, srcDir) - if Debug { - log.Printf("importPathToNameGoPathParse(%q, srcDir=%q) = %q, %v", importPath, srcDir, pkgName, err) + buildPkg, err := env.buildContext().Import(importPath, srcDir, build.FindOnly) + if err != nil { + return "" } - if err == nil { - return pkgName + pkgName, err := packageDirToName(buildPkg.Dir) + if err != nil { + return "" } - return importPathToNameBasic(importPath, srcDir) + return pkgName } -// importPathToNameGoPathParse is a faster version of build.Import if +// packageDirToName is a faster version of build.Import if // the only thing desired is the package name. It uses build.FindOnly // to find the directory and then only parses one file in the package, // trusting that the files in the directory are consistent. -func importPathToNameGoPathParse(importPath, srcDir string) (packageName string, err error) { - buildPkg, err := build.Import(importPath, srcDir, build.FindOnly) - if err != nil { - return "", err - } - d, err := os.Open(buildPkg.Dir) +func packageDirToName(dir string) (packageName string, err error) { + d, err := os.Open(dir) if err != nil { return "", err } @@ -309,7 +833,7 @@ func importPathToNameGoPathParse(importPath, srcDir string) (packageName string, continue } nfile++ - fullFile := filepath.Join(buildPkg.Dir, name) + fullFile := filepath.Join(dir, name) fset := token.NewFileSet() f, err := parser.ParseFile(fset, fullFile, nil, parser.PackageClauseOnly) @@ -336,247 +860,80 @@ func importPathToNameGoPathParse(importPath, srcDir string) (packageName string, return "", fmt.Errorf("no importable package found in %d Go files", nfile) } -var stdImportPackage = map[string]string{} // "net/http" => "http" - -func init() { - // Nothing in the standard library has a package name not - // matching its import base name. - for _, pkg := range stdlib { - if _, ok := stdImportPackage[pkg]; !ok { - stdImportPackage[pkg] = path.Base(pkg) - } - } -} - -// Directory-scanning state. -var ( - // scanGoRootOnce guards calling scanGoRoot (for $GOROOT) - scanGoRootOnce sync.Once - // scanGoPathOnce guards calling scanGoPath (for $GOPATH) - scanGoPathOnce sync.Once - - // populateIgnoreOnce guards calling populateIgnore - populateIgnoreOnce sync.Once - ignoredDirs []os.FileInfo - - dirScanMu sync.RWMutex - dirScan map[string]*pkg // abs dir path => *pkg -) - type pkg struct { + goPackage *packages.Package dir string // absolute file path to pkg directory ("/usr/lib/go/src/net/http") - importPath string // full pkg import path ("net/http", "foo/bar/vendor/a/b") importPathShort string // vendorless import path ("net/http", "a/b") } -// byImportPathShortLength sorts by the short import path length, breaking ties on the -// import string itself. -type byImportPathShortLength []*pkg - -func (s byImportPathShortLength) Len() int { return len(s) } -func (s byImportPathShortLength) Less(i, j int) bool { - vi, vj := s[i].importPathShort, s[j].importPathShort - return len(vi) < len(vj) || (len(vi) == len(vj) && vi < vj) - -} -func (s byImportPathShortLength) Swap(i, j int) { s[i], s[j] = s[j], s[i] } - -// guarded by populateIgnoreOnce; populates ignoredDirs. -func populateIgnore() { - for _, srcDir := range build.Default.SrcDirs() { - if srcDir == filepath.Join(build.Default.GOROOT, "src") { - continue - } - populateIgnoredDirs(srcDir) - } +type pkgDistance struct { + pkg *pkg + distance int // relative distance to target } -// populateIgnoredDirs reads an optional config file at /.goimportsignore -// of relative directories to ignore when scanning for go files. -// The provided path is one of the $GOPATH entries with "src" appended. -func populateIgnoredDirs(path string) { - file := filepath.Join(path, ".goimportsignore") - slurp, err := ioutil.ReadFile(file) - if Debug { - if err != nil { - log.Print(err) - } else { - log.Printf("Read %s", file) - } +// byDistanceOrImportPathShortLength sorts by relative distance breaking ties +// on the short import path length and then the import string itself. +type byDistanceOrImportPathShortLength []pkgDistance + +func (s byDistanceOrImportPathShortLength) Len() int { return len(s) } +func (s byDistanceOrImportPathShortLength) Less(i, j int) bool { + di, dj := s[i].distance, s[j].distance + if di == -1 { + return false } + if dj == -1 { + return true + } + if di != dj { + return di < dj + } + + vi, vj := s[i].pkg.importPathShort, s[j].pkg.importPathShort + if len(vi) != len(vj) { + return len(vi) < len(vj) + } + return vi < vj +} +func (s byDistanceOrImportPathShortLength) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +func distance(basepath, targetpath string) int { + p, err := filepath.Rel(basepath, targetpath) if err != nil { - return + return -1 } - bs := bufio.NewScanner(bytes.NewReader(slurp)) - for bs.Scan() { - line := strings.TrimSpace(bs.Text()) - if line == "" || strings.HasPrefix(line, "#") { - continue - } - full := filepath.Join(path, line) - if fi, err := os.Stat(full); err == nil { - ignoredDirs = append(ignoredDirs, fi) - if Debug { - log.Printf("Directory added to ignore list: %s", full) - } - } else if Debug { - log.Printf("Error statting entry in .goimportsignore: %v", err) - } + if p == "." { + return 0 } + return strings.Count(p, string(filepath.Separator)) + 1 } -func skipDir(fi os.FileInfo) bool { - for _, ignoredDir := range ignoredDirs { - if os.SameFile(fi, ignoredDir) { - return true +func (r *gopathResolver) scan(_ references) ([]*pkg, error) { + dupCheck := make(map[string]bool) + var result []*pkg + + var mu sync.Mutex + + add := func(root gopathwalk.Root, dir string) { + mu.Lock() + defer mu.Unlock() + + if _, dup := dupCheck[dir]; dup { + return } + dupCheck[dir] = true + importpath := filepath.ToSlash(dir[len(root.Path)+len("/"):]) + result = append(result, &pkg{ + importPathShort: VendorlessPath(importpath), + dir: dir, + }) } - return false + gopathwalk.Walk(gopathwalk.SrcDirsRoots(r.env.buildContext()), add, gopathwalk.Options{Debug: Debug, ModulesEnabled: false}) + return result, nil } -// shouldTraverse reports whether the symlink fi should, found in dir, -// should be followed. It makes sure symlinks were never visited -// before to avoid symlink loops. -func shouldTraverse(dir string, fi os.FileInfo) bool { - path := filepath.Join(dir, fi.Name()) - target, err := filepath.EvalSymlinks(path) - if err != nil { - if !os.IsNotExist(err) { - fmt.Fprintln(os.Stderr, err) - } - return false - } - ts, err := os.Stat(target) - if err != nil { - fmt.Fprintln(os.Stderr, err) - return false - } - if !ts.IsDir() { - return false - } - if skipDir(ts) { - return false - } - // Check for symlink loops by statting each directory component - // and seeing if any are the same file as ts. - for { - parent := filepath.Dir(path) - if parent == path { - // Made it to the root without seeing a cycle. - // Use this symlink. - return true - } - parentInfo, err := os.Stat(parent) - if err != nil { - return false - } - if os.SameFile(ts, parentInfo) { - // Cycle. Don't traverse. - return false - } - path = parent - } - -} - -var testHookScanDir = func(dir string) {} - -var scanGoRootDone = make(chan struct{}) // closed when scanGoRoot is done - -func scanGoRoot() { - go func() { - scanGoDirs(true) - close(scanGoRootDone) - }() -} - -func scanGoPath() { scanGoDirs(false) } - -func scanGoDirs(goRoot bool) { - if Debug { - which := "$GOROOT" - if !goRoot { - which = "$GOPATH" - } - log.Printf("scanning " + which) - defer log.Printf("scanned " + which) - } - dirScanMu.Lock() - if dirScan == nil { - dirScan = make(map[string]*pkg) - } - dirScanMu.Unlock() - - for _, srcDir := range build.Default.SrcDirs() { - isGoroot := srcDir == filepath.Join(build.Default.GOROOT, "src") - if isGoroot != goRoot { - continue - } - testHookScanDir(srcDir) - walkFn := func(path string, typ os.FileMode) error { - dir := filepath.Dir(path) - if typ.IsRegular() { - if dir == srcDir { - // Doesn't make sense to have regular files - // directly in your $GOPATH/src or $GOROOT/src. - return nil - } - if !strings.HasSuffix(path, ".go") { - return nil - } - dirScanMu.Lock() - if _, dup := dirScan[dir]; !dup { - importpath := filepath.ToSlash(dir[len(srcDir)+len("/"):]) - dirScan[dir] = &pkg{ - importPath: importpath, - importPathShort: vendorlessImportPath(importpath), - dir: dir, - } - } - dirScanMu.Unlock() - return nil - } - if typ == os.ModeDir { - base := filepath.Base(path) - if base == "" || base[0] == '.' || base[0] == '_' || - base == "testdata" || base == "node_modules" { - return filepath.SkipDir - } - fi, err := os.Lstat(path) - if err == nil && skipDir(fi) { - if Debug { - log.Printf("skipping directory %q under %s", fi.Name(), dir) - } - return filepath.SkipDir - } - return nil - } - if typ == os.ModeSymlink { - base := filepath.Base(path) - if strings.HasPrefix(base, ".#") { - // Emacs noise. - return nil - } - fi, err := os.Lstat(path) - if err != nil { - // Just ignore it. - return nil - } - if shouldTraverse(dir, fi) { - return traverseLink - } - } - return nil - } - if err := fastWalk(srcDir, walkFn); err != nil { - log.Printf("goimports: scanning directory %v: %v", srcDir, err) - } - } -} - -// vendorlessImportPath returns the devendorized version of the provided import path. -// e.g. "foo/bar/vendor/a/b" => "a/b" -func vendorlessImportPath(ipath string) string { +// VendorlessPath returns the devendorized version of the import path ipath. +// For example, VendorlessPath("foo/bar/vendor/a/b") returns "a/b". +func VendorlessPath(ipath string) string { // Devendorize for use in import statement. if i := strings.LastIndex(ipath, "/vendor/"); i >= 0 { return ipath[i+len("/vendor/"):] @@ -589,66 +946,72 @@ func vendorlessImportPath(ipath string) string { // loadExports returns the set of exported symbols in the package at dir. // It returns nil on error or if the package name in dir does not match expectPackage. -var loadExports func(expectPackage, dir string) map[string]bool = loadExportsGoPath - -func loadExportsGoPath(expectPackage, dir string) map[string]bool { +func loadExports(ctx context.Context, env *fixEnv, expectPackage string, pkg *pkg) (map[string]bool, error) { if Debug { - log.Printf("loading exports in dir %s (seeking package %s)", dir, expectPackage) + log.Printf("loading exports in dir %s (seeking package %s)", pkg.dir, expectPackage) } - exports := make(map[string]bool) - - ctx := build.Default - - // ReadDir is like ioutil.ReadDir, but only returns *.go files - // and filters out _test.go files since they're not relevant - // and only slow things down. - ctx.ReadDir = func(dir string) (notTests []os.FileInfo, err error) { - all, err := ioutil.ReadDir(dir) - if err != nil { - return nil, err - } - notTests = all[:0] - for _, fi := range all { - name := fi.Name() - if strings.HasSuffix(name, ".go") && !strings.HasSuffix(name, "_test.go") { - notTests = append(notTests, fi) + if pkg.goPackage != nil { + exports := map[string]bool{} + fset := token.NewFileSet() + for _, fname := range pkg.goPackage.CompiledGoFiles { + f, err := parser.ParseFile(fset, fname, nil, 0) + if err != nil { + return nil, fmt.Errorf("parsing %s: %v", fname, err) + } + for name := range f.Scope.Objects { + if ast.IsExported(name) { + exports[name] = true + } } } - return notTests, nil + return exports, nil } - files, err := ctx.ReadDir(dir) + exports := make(map[string]bool) + + // Look for non-test, buildable .go files which could provide exports. + all, err := ioutil.ReadDir(pkg.dir) if err != nil { - log.Print(err) - return nil + return nil, err } - - fset := token.NewFileSet() - - for _, fi := range files { - match, err := ctx.MatchFile(dir, fi.Name()) + var files []os.FileInfo + for _, fi := range all { + name := fi.Name() + if !strings.HasSuffix(name, ".go") || strings.HasSuffix(name, "_test.go") { + continue + } + match, err := env.buildContext().MatchFile(pkg.dir, fi.Name()) if err != nil || !match { continue } - fullFile := filepath.Join(dir, fi.Name()) + files = append(files, fi) + } + + if len(files) == 0 { + return nil, fmt.Errorf("dir %v contains no buildable, non-test .go files", pkg.dir) + } + + fset := token.NewFileSet() + for _, fi := range files { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + + fullFile := filepath.Join(pkg.dir, fi.Name()) f, err := parser.ParseFile(fset, fullFile, nil, 0) if err != nil { - if Debug { - log.Printf("Parsing %s: %v", fullFile, err) - } - return nil + return nil, fmt.Errorf("parsing %s: %v", fullFile, err) } pkgName := f.Name.Name if pkgName == "documentation" { // Special case from go/build.ImportDir, not - // handled by ctx.MatchFile. + // handled by MatchFile above. continue } if pkgName != expectPackage { - if Debug { - log.Printf("scan of dir %v is not expected package %v (actually %v)", dir, expectPackage, pkgName) - } - return nil + return nil, fmt.Errorf("scan of dir %v is not expected package %v (actually %v)", pkg.dir, expectPackage, pkgName) } for name := range f.Scope.Objects { if ast.IsExported(name) { @@ -663,75 +1026,28 @@ func loadExportsGoPath(expectPackage, dir string) map[string]bool { exportList = append(exportList, k) } sort.Strings(exportList) - log.Printf("loaded exports in dir %v (package %v): %v", dir, expectPackage, strings.Join(exportList, ", ")) + log.Printf("loaded exports in dir %v (package %v): %v", pkg.dir, expectPackage, strings.Join(exportList, ", ")) } - return exports + return exports, nil } // findImport searches for a package with the given symbols. // If no package is found, findImport returns ("", false, nil) -// -// This is declared as a variable rather than a function so goimports -// can be easily extended by adding a file with an init function. -// -// The rename value tells goimports whether to use the package name as -// a local qualifier in an import. For example, if findImports("pkg", -// "X") returns ("foo/bar", rename=true), then goimports adds the -// import line: -// import pkg "foo/bar" -// to satisfy uses of pkg.X in the file. -var findImport func(pkgName string, symbols map[string]bool, filename string) (foundPkg string, rename bool, err error) = findImportGoPath - -// findImportGoPath is the normal implementation of findImport. -// (Some companies have their own internally.) -func findImportGoPath(pkgName string, symbols map[string]bool, filename string) (foundPkg string, rename bool, err error) { - if inTests { - testMu.RLock() - defer testMu.RUnlock() +func findImport(ctx context.Context, env *fixEnv, dirScan []*pkg, pkgName string, symbols map[string]bool, filename string) (*pkg, error) { + pkgDir, err := filepath.Abs(filename) + if err != nil { + return nil, err } - - // Fast path for the standard library. - // In the common case we hopefully never have to scan the GOPATH, which can - // be slow with moving disks. - if pkg, rename, ok := findImportStdlib(pkgName, symbols); ok { - return pkg, rename, nil - } - if pkgName == "rand" && symbols["Read"] { - // Special-case rand.Read. - // - // If findImportStdlib didn't find it above, don't go - // searching for it, lest it find and pick math/rand - // in GOROOT (new as of Go 1.6) - // - // crypto/rand is the safer choice. - return "", false, nil - } - - // TODO(sameer): look at the import lines for other Go files in the - // local directory, since the user is likely to import the same packages - // in the current Go file. Return rename=true when the other Go files - // use a renamed package that's also used in the current file. - - // Read all the $GOPATH/src/.goimportsignore files before scanning directories. - populateIgnoreOnce.Do(populateIgnore) - - // Start scanning the $GOROOT asynchronously, then run the - // GOPATH scan synchronously if needed, and then wait for the - // $GOROOT to finish. - // - // TODO(bradfitz): run each $GOPATH entry async. But nobody - // really has more than one anyway, so low priority. - scanGoRootOnce.Do(scanGoRoot) // async - if !fileInDir(filename, build.Default.GOROOT) { - scanGoPathOnce.Do(scanGoPath) // blocking - } - <-scanGoRootDone + pkgDir = filepath.Dir(pkgDir) // Find candidate packages, looking only at their directory names first. - var candidates []*pkg + var candidates []pkgDistance for _, pkg := range dirScan { if pkgIsCandidate(filename, pkgName, pkg) { - candidates = append(candidates, pkg) + candidates = append(candidates, pkgDistance{ + pkg: pkg, + distance: distance(pkgDir, pkg.dir), + }) } } @@ -739,73 +1055,76 @@ func findImportGoPath(pkgName string, symbols map[string]bool, filename string) // assuming that shorter package names are better than long // ones. Note that this sorts by the de-vendored name, so // there's no "penalty" for vendoring. - sort.Sort(byImportPathShortLength(candidates)) + sort.Sort(byDistanceOrImportPathShortLength(candidates)) if Debug { - for i, pkg := range candidates { - log.Printf("%s candidate %d/%d: %v", pkgName, i+1, len(candidates), pkg.importPathShort) + for i, c := range candidates { + log.Printf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir) } } // Collect exports for packages with matching names. - done := make(chan struct{}) // closed when we find the answer - defer close(done) - rescv := make([]chan *pkg, len(candidates)) for i := range candidates { - rescv[i] = make(chan *pkg) + rescv[i] = make(chan *pkg, 1) } const maxConcurrentPackageImport = 4 loadExportsSem := make(chan struct{}, maxConcurrentPackageImport) + ctx, cancel := context.WithCancel(ctx) + var wg sync.WaitGroup + defer func() { + cancel() + wg.Wait() + }() + + wg.Add(1) go func() { - for i, pkg := range candidates { + defer wg.Done() + for i, c := range candidates { select { case loadExportsSem <- struct{}{}: - select { - case <-done: - return - default: - } - case <-done: + case <-ctx.Done(): return } - pkg := pkg - resc := rescv[i] - go func() { - if inTests { - testMu.RLock() - defer testMu.RUnlock() + + wg.Add(1) + go func(c pkgDistance, resc chan<- *pkg) { + defer func() { + <-loadExportsSem + wg.Done() + }() + + exports, err := loadExports(ctx, env, pkgName, c.pkg) + if err != nil { + if Debug { + log.Printf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err) + } + resc <- nil + return } - defer func() { <-loadExportsSem }() - exports := loadExports(pkgName, pkg.dir) // If it doesn't have the right // symbols, send nil to mean no match. for symbol := range symbols { if !exports[symbol] { - pkg = nil - break + resc <- nil + return } } - select { - case resc <- pkg: - case <-done: - } - }() + resc <- c.pkg + }(c, rescv[i]) } }() + for _, resc := range rescv { pkg := <-resc if pkg == nil { continue } - // If the package name in the source doesn't match the import path's base, - // return true so the rewriter adds a name (import foo "github.com/bar/go-foo") - needsRename := path.Base(pkg.importPath) != pkgName - return pkg.importPathShort, needsRename, nil + return pkg, nil } - return "", false, nil + return nil, nil } // pkgIsCandidate reports whether pkg is a candidate for satisfying the @@ -837,7 +1156,7 @@ func pkgIsCandidate(filename, pkgIdent string, pkg *pkg) bool { // permit a directory "foo" to be package // "bar", which is strongly discouraged // anyway. There's no reason goimports needs - // to be slow just to accomodate that. + // to be slow just to accommodate that. lastTwo := lastTwoComponents(pkg.importPathShort) if strings.Contains(lastTwo, pkgIdent) { return true @@ -938,37 +1257,3 @@ type visitFn func(node ast.Node) ast.Visitor func (fn visitFn) Visit(node ast.Node) ast.Visitor { return fn(node) } - -func findImportStdlib(shortPkg string, symbols map[string]bool) (importPath string, rename, ok bool) { - for symbol := range symbols { - key := shortPkg + "." + symbol - path := stdlib[key] - if path == "" { - if key == "rand.Read" { - continue - } - return "", false, false - } - if importPath != "" && importPath != path { - // Ambiguous. Symbols pointed to different things. - return "", false, false - } - importPath = path - } - if importPath == "" && shortPkg == "rand" && symbols["Read"] { - return "crypto/rand", false, true - } - return importPath, false, importPath != "" -} - -// fileInDir reports whether the provided file path looks like -// it's in dir. (without hitting the filesystem) -func fileInDir(file, dir string) bool { - rest := strings.TrimPrefix(file, dir) - if len(rest) == len(file) { - // dir is not a prefix of file. - return false - } - // Check for boundary: either nothing (file == dir), or a slash. - return len(rest) == 0 || rest[0] == '/' || rest[0] == '\\' -} diff --git a/vendor/golang.org/x/tools/imports/imports.go b/vendor/golang.org/x/tools/imports/imports.go index 67573f49..07101cb8 100644 --- a/vendor/golang.org/x/tools/imports/imports.go +++ b/vendor/golang.org/x/tools/imports/imports.go @@ -13,11 +13,13 @@ import ( "bytes" "fmt" "go/ast" + "go/build" "go/format" "go/parser" "go/printer" "go/token" "io" + "io/ioutil" "regexp" "strconv" "strings" @@ -44,9 +46,21 @@ type Options struct { // so it is important that filename be accurate. // To process data ``as if'' it were in filename, pass the data as a non-nil src. func Process(filename string, src []byte, opt *Options) ([]byte, error) { + env := &fixEnv{GOPATH: build.Default.GOPATH, GOROOT: build.Default.GOROOT} + return process(filename, src, opt, env) +} + +func process(filename string, src []byte, opt *Options, env *fixEnv) ([]byte, error) { if opt == nil { opt = &Options{Comments: true, TabIndent: true, TabWidth: 8} } + if src == nil { + b, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + src = b + } fileSet := token.NewFileSet() file, adjust, err := parse(fileSet, filename, src, opt) @@ -55,15 +69,13 @@ func Process(filename string, src []byte, opt *Options) ([]byte, error) { } if !opt.FormatOnly { - _, err = fixImports(fileSet, file, filename) - if err != nil { + if err := fixImports(fileSet, file, filename, env); err != nil { return nil, err } } sortImports(fileSet, file) imps := astutil.Imports(fileSet, file) - var spacesBefore []string // import paths we need spaces before for _, impSection := range imps { // Within each block of contiguous imports, see if any @@ -98,7 +110,10 @@ func Process(filename string, src []byte, opt *Options) ([]byte, error) { out = adjust(src, out) } if len(spacesBefore) > 0 { - out = addImportSpaces(bytes.NewReader(out), spacesBefore) + out, err = addImportSpaces(bytes.NewReader(out), spacesBefore) + if err != nil { + return nil, err + } } out, err = format.Source(out) @@ -133,11 +148,18 @@ func parse(fset *token.FileSet, filename string, src []byte, opt *Options) (*ast // If this is a declaration list, make it a source file // by inserting a package clause. - // Insert using a ;, not a newline, so that the line numbers - // in psrc match the ones in src. - psrc := append([]byte("package main;"), src...) + // Insert using a ;, not a newline, so that parse errors are on + // the correct line. + const prefix = "package main;" + psrc := append([]byte(prefix), src...) file, err = parser.ParseFile(fset, filename, psrc, parserMode) if err == nil { + // Gofmt will turn the ; into a \n. + // Do that ourselves now and update the file contents, + // so that positions and line numbers are correct going forward. + psrc[len(prefix)-1] = '\n' + fset.File(file.Package).SetLinesForContent(psrc) + // If a main function exists, we will assume this is a main // package and leave the file. if containsMainFunc(file) { @@ -146,8 +168,7 @@ func parse(fset *token.FileSet, filename string, src []byte, opt *Options) (*ast adjust := func(orig, src []byte) []byte { // Remove the package clause. - // Gofmt has turned the ; into a \n. - src = src[len("package main\n"):] + src = src[len(prefix):] return matchSpace(orig, src) } return file, adjust, nil @@ -256,13 +277,18 @@ func matchSpace(orig []byte, src []byte) []byte { var impLine = regexp.MustCompile(`^\s+(?:[\w\.]+\s+)?"(.+)"`) -func addImportSpaces(r io.Reader, breaks []string) []byte { +func addImportSpaces(r io.Reader, breaks []string) ([]byte, error) { var out bytes.Buffer - sc := bufio.NewScanner(r) + in := bufio.NewReader(r) inImports := false done := false - for sc.Scan() { - s := sc.Text() + for { + s, err := in.ReadString('\n') + if err == io.EOF { + break + } else if err != nil { + return nil, err + } if !inImports && !done && strings.HasPrefix(s, "import") { inImports = true @@ -283,7 +309,7 @@ func addImportSpaces(r io.Reader, breaks []string) []byte { } } - fmt.Fprintln(&out, s) + fmt.Fprint(&out, s) } - return out.Bytes() + return out.Bytes(), nil } diff --git a/vendor/golang.org/x/tools/imports/mkstdlib.go b/vendor/golang.org/x/tools/imports/mkstdlib.go index 5602244a..c8865e55 100644 --- a/vendor/golang.org/x/tools/imports/mkstdlib.go +++ b/vendor/golang.org/x/tools/imports/mkstdlib.go @@ -14,9 +14,10 @@ import ( "io/ioutil" "log" "os" - "path" + "os/exec" "path/filepath" "regexp" + "runtime" "sort" "strings" ) @@ -30,11 +31,13 @@ func mustOpen(name string) io.Reader { } func api(base string) string { - return filepath.Join(os.Getenv("GOROOT"), "api", base) + return filepath.Join(runtime.GOROOT(), "api", base) } var sym = regexp.MustCompile(`^pkg (\S+).*?, (?:var|func|type|const) ([A-Z]\w*)`) +var unsafeSyms = map[string]bool{"Alignof": true, "ArbitraryType": true, "Offsetof": true, "Pointer": true, "Sizeof": true} + func main() { var buf bytes.Buffer outf := func(format string, args ...interface{}) { @@ -42,7 +45,7 @@ func main() { } outf("// Code generated by mkstdlib.go. DO NOT EDIT.\n\n") outf("package imports\n") - outf("var stdlib = map[string]string{\n") + outf("var stdlib = map[string]map[string]bool{\n") f := io.MultiReader( mustOpen(api("go1.txt")), mustOpen(api("go1.1.txt")), @@ -53,11 +56,22 @@ func main() { mustOpen(api("go1.6.txt")), mustOpen(api("go1.7.txt")), mustOpen(api("go1.8.txt")), + mustOpen(api("go1.9.txt")), + mustOpen(api("go1.10.txt")), + mustOpen(api("go1.11.txt")), + mustOpen(api("go1.12.txt")), + + // The API of the syscall/js package needs to be computed explicitly, + // because it's not included in the GOROOT/api/go1.*.txt files at this time. + syscallJSAPI(), ) sc := bufio.NewScanner(f) - fullImport := map[string]string{} // "zip.NewReader" => "archive/zip" - ambiguous := map[string]bool{} - var keys []string + + pkgs := map[string]map[string]bool{ + "unsafe": unsafeSyms, + } + paths := []string{"unsafe"} + for sc.Scan() { l := sc.Text() has := func(v string) bool { return strings.Contains(l, v) } @@ -65,32 +79,31 @@ func main() { continue } if m := sym.FindStringSubmatch(l); m != nil { - full := m[1] - key := path.Base(full) + "." + m[2] - if exist, ok := fullImport[key]; ok { - if exist != full { - ambiguous[key] = true - } - } else { - fullImport[key] = full - keys = append(keys, key) + path, sym := m[1], m[2] + + if _, ok := pkgs[path]; !ok { + pkgs[path] = map[string]bool{} + paths = append(paths, path) } + pkgs[path][sym] = true } } if err := sc.Err(); err != nil { log.Fatal(err) } - sort.Strings(keys) - for _, key := range keys { - if ambiguous[key] { - outf("\t// %q is ambiguous\n", key) - } else { - outf("\t%q: %q,\n", key, fullImport[key]) + sort.Strings(paths) + for _, path := range paths { + outf("\t%q: map[string]bool{\n", path) + pkg := pkgs[path] + var syms []string + for sym := range pkg { + syms = append(syms, sym) } - } - outf("\n") - for _, sym := range [...]string{"Alignof", "ArbitraryType", "Offsetof", "Pointer", "Sizeof"} { - outf("\t%q: %q,\n", "unsafe."+sym, "unsafe") + sort.Strings(syms) + for _, sym := range syms { + outf("\t\t%q: true,\n", sym) + } + outf("},\n") } outf("}\n") fmtbuf, err := format.Source(buf.Bytes()) @@ -102,3 +115,18 @@ func main() { log.Fatal(err) } } + +// syscallJSAPI returns the API of the syscall/js package. +// It's computed from the contents of $(go env GOROOT)/src/syscall/js. +func syscallJSAPI() io.Reader { + var exeSuffix string + if runtime.GOOS == "windows" { + exeSuffix = ".exe" + } + cmd := exec.Command("go"+exeSuffix, "run", "cmd/api", "-contexts", "js-wasm", "syscall/js") + out, err := cmd.Output() + if err != nil { + log.Fatalln(err) + } + return bytes.NewReader(out) +} diff --git a/vendor/golang.org/x/tools/imports/mod.go b/vendor/golang.org/x/tools/imports/mod.go new file mode 100644 index 00000000..018c43ce --- /dev/null +++ b/vendor/golang.org/x/tools/imports/mod.go @@ -0,0 +1,355 @@ +package imports + +import ( + "bytes" + "encoding/json" + "io/ioutil" + "log" + "os" + "path" + "path/filepath" + "regexp" + "sort" + "strconv" + "strings" + "sync" + "time" + + "golang.org/x/tools/internal/gopathwalk" + "golang.org/x/tools/internal/module" +) + +// moduleResolver implements resolver for modules using the go command as little +// as feasible. +type moduleResolver struct { + env *fixEnv + + initialized bool + main *moduleJSON + modsByModPath []*moduleJSON // All modules, ordered by # of path components in module Path... + modsByDir []*moduleJSON // ...or Dir. +} + +type moduleJSON struct { + Path string // module path + Version string // module version + Versions []string // available module versions (with -versions) + Replace *moduleJSON // replaced by this module + Time *time.Time // time version was created + Update *moduleJSON // available update, if any (with -u) + Main bool // is this the main module? + Indirect bool // is this module only an indirect dependency of main module? + Dir string // directory holding files for this module, if any + GoMod string // path to go.mod file for this module, if any + Error *moduleErrorJSON // error loading module +} + +type moduleErrorJSON struct { + Err string // the error itself +} + +func (r *moduleResolver) init() error { + if r.initialized { + return nil + } + stdout, err := r.env.invokeGo("list", "-m", "-json", "...") + if err != nil { + return err + } + for dec := json.NewDecoder(stdout); dec.More(); { + mod := &moduleJSON{} + if err := dec.Decode(mod); err != nil { + return err + } + if mod.Dir == "" { + if Debug { + log.Printf("module %v has not been downloaded and will be ignored", mod.Path) + } + // Can't do anything with a module that's not downloaded. + continue + } + r.modsByModPath = append(r.modsByModPath, mod) + r.modsByDir = append(r.modsByDir, mod) + if mod.Main { + r.main = mod + } + } + + sort.Slice(r.modsByModPath, func(i, j int) bool { + count := func(x int) int { + return strings.Count(r.modsByModPath[x].Path, "/") + } + return count(j) < count(i) // descending order + }) + sort.Slice(r.modsByDir, func(i, j int) bool { + count := func(x int) int { + return strings.Count(r.modsByDir[x].Dir, "/") + } + return count(j) < count(i) // descending order + }) + + r.initialized = true + return nil +} + +// findPackage returns the module and directory that contains the package at +// the given import path, or returns nil, "" if no module is in scope. +func (r *moduleResolver) findPackage(importPath string) (*moduleJSON, string) { + for _, m := range r.modsByModPath { + if !strings.HasPrefix(importPath, m.Path) { + continue + } + pathInModule := importPath[len(m.Path):] + pkgDir := filepath.Join(m.Dir, pathInModule) + if dirIsNestedModule(pkgDir, m) { + continue + } + + pkgFiles, err := ioutil.ReadDir(pkgDir) + if err != nil { + continue + } + + // A module only contains a package if it has buildable go + // files in that directory. If not, it could be provided by an + // outer module. See #29736. + for _, fi := range pkgFiles { + if ok, _ := r.env.buildContext().MatchFile(pkgDir, fi.Name()); ok { + return m, pkgDir + } + } + } + return nil, "" +} + +// findModuleByDir returns the module that contains dir, or nil if no such +// module is in scope. +func (r *moduleResolver) findModuleByDir(dir string) *moduleJSON { + // This is quite tricky and may not be correct. dir could be: + // - a package in the main module. + // - a replace target underneath the main module's directory. + // - a nested module in the above. + // - a replace target somewhere totally random. + // - a nested module in the above. + // - in the mod cache. + // - in /vendor/ in -mod=vendor mode. + // - nested module? Dunno. + // Rumor has it that replace targets cannot contain other replace targets. + for _, m := range r.modsByDir { + if !strings.HasPrefix(dir, m.Dir) { + continue + } + + if dirIsNestedModule(dir, m) { + continue + } + + return m + } + return nil +} + +// dirIsNestedModule reports if dir is contained in a nested module underneath +// mod, not actually in mod. +func dirIsNestedModule(dir string, mod *moduleJSON) bool { + if !strings.HasPrefix(dir, mod.Dir) { + return false + } + mf := findModFile(dir) + if mf == "" { + return false + } + return filepath.Dir(mf) != mod.Dir +} + +func findModFile(dir string) string { + for { + f := filepath.Join(dir, "go.mod") + info, err := os.Stat(f) + if err == nil && !info.IsDir() { + return f + } + d := filepath.Dir(dir) + if len(d) >= len(dir) { + return "" // reached top of file system, no go.mod + } + dir = d + } +} + +func (r *moduleResolver) loadPackageNames(importPaths []string, srcDir string) (map[string]string, error) { + if err := r.init(); err != nil { + return nil, err + } + names := map[string]string{} + for _, path := range importPaths { + _, packageDir := r.findPackage(path) + if packageDir == "" { + continue + } + name, err := packageDirToName(packageDir) + if err != nil { + continue + } + names[path] = name + } + return names, nil +} + +func (r *moduleResolver) scan(_ references) ([]*pkg, error) { + if err := r.init(); err != nil { + return nil, err + } + + // Walk GOROOT, GOPATH/pkg/mod, and the main module. + roots := []gopathwalk.Root{ + {filepath.Join(r.env.GOROOT, "/src"), gopathwalk.RootGOROOT}, + } + if r.main != nil { + roots = append(roots, gopathwalk.Root{r.main.Dir, gopathwalk.RootCurrentModule}) + } + for _, p := range filepath.SplitList(r.env.GOPATH) { + roots = append(roots, gopathwalk.Root{filepath.Join(p, "/pkg/mod"), gopathwalk.RootModuleCache}) + } + + // Walk replace targets, just in case they're not in any of the above. + for _, mod := range r.modsByModPath { + if mod.Replace != nil { + roots = append(roots, gopathwalk.Root{mod.Dir, gopathwalk.RootOther}) + } + } + + var result []*pkg + dupCheck := make(map[string]bool) + var mu sync.Mutex + + gopathwalk.Walk(roots, func(root gopathwalk.Root, dir string) { + mu.Lock() + defer mu.Unlock() + + if _, dup := dupCheck[dir]; dup { + return + } + + dupCheck[dir] = true + + subdir := "" + if dir != root.Path { + subdir = dir[len(root.Path)+len("/"):] + } + importPath := filepath.ToSlash(subdir) + if strings.HasPrefix(importPath, "vendor/") { + // Ignore vendor dirs. If -mod=vendor is on, then things + // should mostly just work, but when it's not vendor/ + // is a mess. There's no easy way to tell if it's on. + // We can still find things in the mod cache and + // map them into /vendor when -mod=vendor is on. + return + } + switch root.Type { + case gopathwalk.RootCurrentModule: + importPath = path.Join(r.main.Path, filepath.ToSlash(subdir)) + case gopathwalk.RootModuleCache: + matches := modCacheRegexp.FindStringSubmatch(subdir) + modPath, err := module.DecodePath(filepath.ToSlash(matches[1])) + if err != nil { + if Debug { + log.Printf("decoding module cache path %q: %v", subdir, err) + } + return + } + importPath = path.Join(modPath, filepath.ToSlash(matches[3])) + case gopathwalk.RootGOROOT: + importPath = subdir + } + + // Check if the directory is underneath a module that's in scope. + if mod := r.findModuleByDir(dir); mod != nil { + // It is. If dir is the target of a replace directive, + // our guessed import path is wrong. Use the real one. + if mod.Dir == dir { + importPath = mod.Path + } else { + dirInMod := dir[len(mod.Dir)+len("/"):] + importPath = path.Join(mod.Path, filepath.ToSlash(dirInMod)) + } + } else { + // The package is in an unknown module. Check that it's + // not obviously impossible to import. + var modFile string + switch root.Type { + case gopathwalk.RootModuleCache: + matches := modCacheRegexp.FindStringSubmatch(subdir) + modFile = filepath.Join(matches[1], "@", matches[2], "go.mod") + default: + modFile = findModFile(dir) + } + + modBytes, err := ioutil.ReadFile(modFile) + if err == nil && !strings.HasPrefix(importPath, modulePath(modBytes)) { + // The module's declared path does not match + // its expected path. It probably needs a + // replace directive we don't have. + return + } + } + // We may have discovered a package that has a different version + // in scope already. Canonicalize to that one if possible. + if _, canonicalDir := r.findPackage(importPath); canonicalDir != "" { + dir = canonicalDir + } + + result = append(result, &pkg{ + importPathShort: VendorlessPath(importPath), + dir: dir, + }) + }, gopathwalk.Options{Debug: Debug, ModulesEnabled: true}) + return result, nil +} + +// modCacheRegexp splits a path in a module cache into module, module version, and package. +var modCacheRegexp = regexp.MustCompile(`(.*)@([^/\\]*)(.*)`) + +var ( + slashSlash = []byte("//") + moduleStr = []byte("module") +) + +// modulePath returns the module path from the gomod file text. +// If it cannot find a module path, it returns an empty string. +// It is tolerant of unrelated problems in the go.mod file. +// +// Copied from cmd/go/internal/modfile. +func modulePath(mod []byte) string { + for len(mod) > 0 { + line := mod + mod = nil + if i := bytes.IndexByte(line, '\n'); i >= 0 { + line, mod = line[:i], line[i+1:] + } + if i := bytes.Index(line, slashSlash); i >= 0 { + line = line[:i] + } + line = bytes.TrimSpace(line) + if !bytes.HasPrefix(line, moduleStr) { + continue + } + line = line[len(moduleStr):] + n := len(line) + line = bytes.TrimSpace(line) + if len(line) == n || len(line) == 0 { + continue + } + + if line[0] == '"' || line[0] == '`' { + p, err := strconv.Unquote(string(line)) + if err != nil { + return "" // malformed quoted string or multiline module path + } + return p + } + + return string(line) + } + return "" // missing module path +} diff --git a/vendor/golang.org/x/tools/imports/sortimports.go b/vendor/golang.org/x/tools/imports/sortimports.go index 653afc51..f3dd56c7 100644 --- a/vendor/golang.org/x/tools/imports/sortimports.go +++ b/vendor/golang.org/x/tools/imports/sortimports.go @@ -167,15 +167,33 @@ func sortSpecs(fset *token.FileSet, f *ast.File, specs []ast.Spec) []ast.Spec { } s.Path.ValuePos = pos[i].Start s.EndPos = pos[i].End + nextSpecPos := pos[i].End + for _, g := range importComment[s] { for _, c := range g.List { c.Slash = pos[i].End + nextSpecPos = c.End() } } + if i < len(specs)-1 { + pos[i+1].Start = nextSpecPos + pos[i+1].End = nextSpecPos + } } sort.Sort(byCommentPos(comments)) + // Fixup comments can insert blank lines, because import specs are on different lines. + // We remove those blank lines here by merging import spec to the first import spec line. + firstSpecLine := fset.Position(specs[0].Pos()).Line + for _, s := range specs[1:] { + p := s.Pos() + line := fset.File(p).Line(p) + for previousLine := line - 1; previousLine >= firstSpecLine; { + fset.File(p).MergeLine(previousLine) + previousLine-- + } + } return specs } diff --git a/vendor/golang.org/x/tools/imports/zstdlib.go b/vendor/golang.org/x/tools/imports/zstdlib.go index 5b66a6cd..d81b8c53 100644 --- a/vendor/golang.org/x/tools/imports/zstdlib.go +++ b/vendor/golang.org/x/tools/imports/zstdlib.go @@ -2,9375 +2,10324 @@ package imports -var stdlib = map[string]string{ - "adler32.Checksum": "hash/adler32", - "adler32.New": "hash/adler32", - "adler32.Size": "hash/adler32", - "aes.BlockSize": "crypto/aes", - "aes.KeySizeError": "crypto/aes", - "aes.NewCipher": "crypto/aes", - "ascii85.CorruptInputError": "encoding/ascii85", - "ascii85.Decode": "encoding/ascii85", - "ascii85.Encode": "encoding/ascii85", - "ascii85.MaxEncodedLen": "encoding/ascii85", - "ascii85.NewDecoder": "encoding/ascii85", - "ascii85.NewEncoder": "encoding/ascii85", - "asn1.BitString": "encoding/asn1", - "asn1.ClassApplication": "encoding/asn1", - "asn1.ClassContextSpecific": "encoding/asn1", - "asn1.ClassPrivate": "encoding/asn1", - "asn1.ClassUniversal": "encoding/asn1", - "asn1.Enumerated": "encoding/asn1", - "asn1.Flag": "encoding/asn1", - "asn1.Marshal": "encoding/asn1", - "asn1.ObjectIdentifier": "encoding/asn1", - "asn1.RawContent": "encoding/asn1", - "asn1.RawValue": "encoding/asn1", - "asn1.StructuralError": "encoding/asn1", - "asn1.SyntaxError": "encoding/asn1", - "asn1.TagBitString": "encoding/asn1", - "asn1.TagBoolean": "encoding/asn1", - "asn1.TagEnum": "encoding/asn1", - "asn1.TagGeneralString": "encoding/asn1", - "asn1.TagGeneralizedTime": "encoding/asn1", - "asn1.TagIA5String": "encoding/asn1", - "asn1.TagInteger": "encoding/asn1", - "asn1.TagOID": "encoding/asn1", - "asn1.TagOctetString": "encoding/asn1", - "asn1.TagPrintableString": "encoding/asn1", - "asn1.TagSequence": "encoding/asn1", - "asn1.TagSet": "encoding/asn1", - "asn1.TagT61String": "encoding/asn1", - "asn1.TagUTCTime": "encoding/asn1", - "asn1.TagUTF8String": "encoding/asn1", - "asn1.Unmarshal": "encoding/asn1", - "asn1.UnmarshalWithParams": "encoding/asn1", - "ast.ArrayType": "go/ast", - "ast.AssignStmt": "go/ast", - "ast.Bad": "go/ast", - "ast.BadDecl": "go/ast", - "ast.BadExpr": "go/ast", - "ast.BadStmt": "go/ast", - "ast.BasicLit": "go/ast", - "ast.BinaryExpr": "go/ast", - "ast.BlockStmt": "go/ast", - "ast.BranchStmt": "go/ast", - "ast.CallExpr": "go/ast", - "ast.CaseClause": "go/ast", - "ast.ChanDir": "go/ast", - "ast.ChanType": "go/ast", - "ast.CommClause": "go/ast", - "ast.Comment": "go/ast", - "ast.CommentGroup": "go/ast", - "ast.CommentMap": "go/ast", - "ast.CompositeLit": "go/ast", - "ast.Con": "go/ast", - "ast.DeclStmt": "go/ast", - "ast.DeferStmt": "go/ast", - "ast.Ellipsis": "go/ast", - "ast.EmptyStmt": "go/ast", - "ast.ExprStmt": "go/ast", - "ast.Field": "go/ast", - "ast.FieldFilter": "go/ast", - "ast.FieldList": "go/ast", - "ast.File": "go/ast", - "ast.FileExports": "go/ast", - "ast.Filter": "go/ast", - "ast.FilterDecl": "go/ast", - "ast.FilterFile": "go/ast", - "ast.FilterFuncDuplicates": "go/ast", - "ast.FilterImportDuplicates": "go/ast", - "ast.FilterPackage": "go/ast", - "ast.FilterUnassociatedComments": "go/ast", - "ast.ForStmt": "go/ast", - "ast.Fprint": "go/ast", - "ast.Fun": "go/ast", - "ast.FuncDecl": "go/ast", - "ast.FuncLit": "go/ast", - "ast.FuncType": "go/ast", - "ast.GenDecl": "go/ast", - "ast.GoStmt": "go/ast", - "ast.Ident": "go/ast", - "ast.IfStmt": "go/ast", - "ast.ImportSpec": "go/ast", - "ast.Importer": "go/ast", - "ast.IncDecStmt": "go/ast", - "ast.IndexExpr": "go/ast", - "ast.Inspect": "go/ast", - "ast.InterfaceType": "go/ast", - "ast.IsExported": "go/ast", - "ast.KeyValueExpr": "go/ast", - "ast.LabeledStmt": "go/ast", - "ast.Lbl": "go/ast", - "ast.MapType": "go/ast", - "ast.MergeMode": "go/ast", - "ast.MergePackageFiles": "go/ast", - "ast.NewCommentMap": "go/ast", - "ast.NewIdent": "go/ast", - "ast.NewObj": "go/ast", - "ast.NewPackage": "go/ast", - "ast.NewScope": "go/ast", - "ast.Node": "go/ast", - "ast.NotNilFilter": "go/ast", - "ast.ObjKind": "go/ast", - "ast.Object": "go/ast", - "ast.Package": "go/ast", - "ast.PackageExports": "go/ast", - "ast.ParenExpr": "go/ast", - "ast.Pkg": "go/ast", - "ast.Print": "go/ast", - "ast.RECV": "go/ast", - "ast.RangeStmt": "go/ast", - "ast.ReturnStmt": "go/ast", - "ast.SEND": "go/ast", - "ast.Scope": "go/ast", - "ast.SelectStmt": "go/ast", - "ast.SelectorExpr": "go/ast", - "ast.SendStmt": "go/ast", - "ast.SliceExpr": "go/ast", - "ast.SortImports": "go/ast", - "ast.StarExpr": "go/ast", - "ast.StructType": "go/ast", - "ast.SwitchStmt": "go/ast", - "ast.Typ": "go/ast", - "ast.TypeAssertExpr": "go/ast", - "ast.TypeSpec": "go/ast", - "ast.TypeSwitchStmt": "go/ast", - "ast.UnaryExpr": "go/ast", - "ast.ValueSpec": "go/ast", - "ast.Var": "go/ast", - "ast.Visitor": "go/ast", - "ast.Walk": "go/ast", - "atomic.AddInt32": "sync/atomic", - "atomic.AddInt64": "sync/atomic", - "atomic.AddUint32": "sync/atomic", - "atomic.AddUint64": "sync/atomic", - "atomic.AddUintptr": "sync/atomic", - "atomic.CompareAndSwapInt32": "sync/atomic", - "atomic.CompareAndSwapInt64": "sync/atomic", - "atomic.CompareAndSwapPointer": "sync/atomic", - "atomic.CompareAndSwapUint32": "sync/atomic", - "atomic.CompareAndSwapUint64": "sync/atomic", - "atomic.CompareAndSwapUintptr": "sync/atomic", - "atomic.LoadInt32": "sync/atomic", - "atomic.LoadInt64": "sync/atomic", - "atomic.LoadPointer": "sync/atomic", - "atomic.LoadUint32": "sync/atomic", - "atomic.LoadUint64": "sync/atomic", - "atomic.LoadUintptr": "sync/atomic", - "atomic.StoreInt32": "sync/atomic", - "atomic.StoreInt64": "sync/atomic", - "atomic.StorePointer": "sync/atomic", - "atomic.StoreUint32": "sync/atomic", - "atomic.StoreUint64": "sync/atomic", - "atomic.StoreUintptr": "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.Value": "sync/atomic", - "base32.CorruptInputError": "encoding/base32", - "base32.Encoding": "encoding/base32", - "base32.HexEncoding": "encoding/base32", - "base32.NewDecoder": "encoding/base32", - "base32.NewEncoder": "encoding/base32", - "base32.NewEncoding": "encoding/base32", - "base32.StdEncoding": "encoding/base32", - "base64.CorruptInputError": "encoding/base64", - "base64.Encoding": "encoding/base64", - "base64.NewDecoder": "encoding/base64", - "base64.NewEncoder": "encoding/base64", - "base64.NewEncoding": "encoding/base64", - "base64.NoPadding": "encoding/base64", - "base64.RawStdEncoding": "encoding/base64", - "base64.RawURLEncoding": "encoding/base64", - "base64.StdEncoding": "encoding/base64", - "base64.StdPadding": "encoding/base64", - "base64.URLEncoding": "encoding/base64", - "big.Above": "math/big", - "big.Accuracy": "math/big", - "big.AwayFromZero": "math/big", - "big.Below": "math/big", - "big.ErrNaN": "math/big", - "big.Exact": "math/big", - "big.Float": "math/big", - "big.Int": "math/big", - "big.Jacobi": "math/big", - "big.MaxBase": "math/big", - "big.MaxExp": "math/big", - "big.MaxPrec": "math/big", - "big.MinExp": "math/big", - "big.NewFloat": "math/big", - "big.NewInt": "math/big", - "big.NewRat": "math/big", - "big.ParseFloat": "math/big", - "big.Rat": "math/big", - "big.RoundingMode": "math/big", - "big.ToNearestAway": "math/big", - "big.ToNearestEven": "math/big", - "big.ToNegativeInf": "math/big", - "big.ToPositiveInf": "math/big", - "big.ToZero": "math/big", - "big.Word": "math/big", - "binary.BigEndian": "encoding/binary", - "binary.ByteOrder": "encoding/binary", - "binary.LittleEndian": "encoding/binary", - "binary.MaxVarintLen16": "encoding/binary", - "binary.MaxVarintLen32": "encoding/binary", - "binary.MaxVarintLen64": "encoding/binary", - "binary.PutUvarint": "encoding/binary", - "binary.PutVarint": "encoding/binary", - "binary.Read": "encoding/binary", - "binary.ReadUvarint": "encoding/binary", - "binary.ReadVarint": "encoding/binary", - "binary.Size": "encoding/binary", - "binary.Uvarint": "encoding/binary", - "binary.Varint": "encoding/binary", - "binary.Write": "encoding/binary", - "bufio.ErrAdvanceTooFar": "bufio", - "bufio.ErrBufferFull": "bufio", - "bufio.ErrFinalToken": "bufio", - "bufio.ErrInvalidUnreadByte": "bufio", - "bufio.ErrInvalidUnreadRune": "bufio", - "bufio.ErrNegativeAdvance": "bufio", - "bufio.ErrNegativeCount": "bufio", - "bufio.ErrTooLong": "bufio", - "bufio.MaxScanTokenSize": "bufio", - "bufio.NewReadWriter": "bufio", - "bufio.NewReader": "bufio", - "bufio.NewReaderSize": "bufio", - "bufio.NewScanner": "bufio", - "bufio.NewWriter": "bufio", - "bufio.NewWriterSize": "bufio", - "bufio.ReadWriter": "bufio", - "bufio.Reader": "bufio", - "bufio.ScanBytes": "bufio", - "bufio.ScanLines": "bufio", - "bufio.ScanRunes": "bufio", - "bufio.ScanWords": "bufio", - "bufio.Scanner": "bufio", - "bufio.SplitFunc": "bufio", - "bufio.Writer": "bufio", - "build.AllowBinary": "go/build", - "build.ArchChar": "go/build", - "build.Context": "go/build", - "build.Default": "go/build", - "build.FindOnly": "go/build", - "build.IgnoreVendor": "go/build", - "build.Import": "go/build", - "build.ImportComment": "go/build", - "build.ImportDir": "go/build", - "build.ImportMode": "go/build", - "build.IsLocalImport": "go/build", - "build.MultiplePackageError": "go/build", - "build.NoGoError": "go/build", - "build.Package": "go/build", - "build.ToolDir": "go/build", - "bytes.Buffer": "bytes", - "bytes.Compare": "bytes", - "bytes.Contains": "bytes", - "bytes.ContainsAny": "bytes", - "bytes.ContainsRune": "bytes", - "bytes.Count": "bytes", - "bytes.Equal": "bytes", - "bytes.EqualFold": "bytes", - "bytes.ErrTooLarge": "bytes", - "bytes.Fields": "bytes", - "bytes.FieldsFunc": "bytes", - "bytes.HasPrefix": "bytes", - "bytes.HasSuffix": "bytes", - "bytes.Index": "bytes", - "bytes.IndexAny": "bytes", - "bytes.IndexByte": "bytes", - "bytes.IndexFunc": "bytes", - "bytes.IndexRune": "bytes", - "bytes.Join": "bytes", - "bytes.LastIndex": "bytes", - "bytes.LastIndexAny": "bytes", - "bytes.LastIndexByte": "bytes", - "bytes.LastIndexFunc": "bytes", - "bytes.Map": "bytes", - "bytes.MinRead": "bytes", - "bytes.NewBuffer": "bytes", - "bytes.NewBufferString": "bytes", - "bytes.NewReader": "bytes", - "bytes.Reader": "bytes", - "bytes.Repeat": "bytes", - "bytes.Replace": "bytes", - "bytes.Runes": "bytes", - "bytes.Split": "bytes", - "bytes.SplitAfter": "bytes", - "bytes.SplitAfterN": "bytes", - "bytes.SplitN": "bytes", - "bytes.Title": "bytes", - "bytes.ToLower": "bytes", - "bytes.ToLowerSpecial": "bytes", - "bytes.ToTitle": "bytes", - "bytes.ToTitleSpecial": "bytes", - "bytes.ToUpper": "bytes", - "bytes.ToUpperSpecial": "bytes", - "bytes.Trim": "bytes", - "bytes.TrimFunc": "bytes", - "bytes.TrimLeft": "bytes", - "bytes.TrimLeftFunc": "bytes", - "bytes.TrimPrefix": "bytes", - "bytes.TrimRight": "bytes", - "bytes.TrimRightFunc": "bytes", - "bytes.TrimSpace": "bytes", - "bytes.TrimSuffix": "bytes", - "bzip2.NewReader": "compress/bzip2", - "bzip2.StructuralError": "compress/bzip2", - "cgi.Handler": "net/http/cgi", - "cgi.Request": "net/http/cgi", - "cgi.RequestFromMap": "net/http/cgi", - "cgi.Serve": "net/http/cgi", - "cipher.AEAD": "crypto/cipher", - "cipher.Block": "crypto/cipher", - "cipher.BlockMode": "crypto/cipher", - "cipher.NewCBCDecrypter": "crypto/cipher", - "cipher.NewCBCEncrypter": "crypto/cipher", - "cipher.NewCFBDecrypter": "crypto/cipher", - "cipher.NewCFBEncrypter": "crypto/cipher", - "cipher.NewCTR": "crypto/cipher", - "cipher.NewGCM": "crypto/cipher", - "cipher.NewGCMWithNonceSize": "crypto/cipher", - "cipher.NewOFB": "crypto/cipher", - "cipher.Stream": "crypto/cipher", - "cipher.StreamReader": "crypto/cipher", - "cipher.StreamWriter": "crypto/cipher", - "cmplx.Abs": "math/cmplx", - "cmplx.Acos": "math/cmplx", - "cmplx.Acosh": "math/cmplx", - "cmplx.Asin": "math/cmplx", - "cmplx.Asinh": "math/cmplx", - "cmplx.Atan": "math/cmplx", - "cmplx.Atanh": "math/cmplx", - "cmplx.Conj": "math/cmplx", - "cmplx.Cos": "math/cmplx", - "cmplx.Cosh": "math/cmplx", - "cmplx.Cot": "math/cmplx", - "cmplx.Exp": "math/cmplx", - "cmplx.Inf": "math/cmplx", - "cmplx.IsInf": "math/cmplx", - "cmplx.IsNaN": "math/cmplx", - "cmplx.Log": "math/cmplx", - "cmplx.Log10": "math/cmplx", - "cmplx.NaN": "math/cmplx", - "cmplx.Phase": "math/cmplx", - "cmplx.Polar": "math/cmplx", - "cmplx.Pow": "math/cmplx", - "cmplx.Rect": "math/cmplx", - "cmplx.Sin": "math/cmplx", - "cmplx.Sinh": "math/cmplx", - "cmplx.Sqrt": "math/cmplx", - "cmplx.Tan": "math/cmplx", - "cmplx.Tanh": "math/cmplx", - "color.Alpha": "image/color", - "color.Alpha16": "image/color", - "color.Alpha16Model": "image/color", - "color.AlphaModel": "image/color", - "color.Black": "image/color", - "color.CMYK": "image/color", - "color.CMYKModel": "image/color", - "color.CMYKToRGB": "image/color", - "color.Color": "image/color", - "color.Gray": "image/color", - "color.Gray16": "image/color", - "color.Gray16Model": "image/color", - "color.GrayModel": "image/color", - "color.Model": "image/color", - "color.ModelFunc": "image/color", - "color.NRGBA": "image/color", - "color.NRGBA64": "image/color", - "color.NRGBA64Model": "image/color", - "color.NRGBAModel": "image/color", - "color.NYCbCrA": "image/color", - "color.NYCbCrAModel": "image/color", - "color.Opaque": "image/color", - "color.Palette": "image/color", - "color.RGBA": "image/color", - "color.RGBA64": "image/color", - "color.RGBA64Model": "image/color", - "color.RGBAModel": "image/color", - "color.RGBToCMYK": "image/color", - "color.RGBToYCbCr": "image/color", - "color.Transparent": "image/color", - "color.White": "image/color", - "color.YCbCr": "image/color", - "color.YCbCrModel": "image/color", - "color.YCbCrToRGB": "image/color", - "constant.BinaryOp": "go/constant", - "constant.BitLen": "go/constant", - "constant.Bool": "go/constant", - "constant.BoolVal": "go/constant", - "constant.Bytes": "go/constant", - "constant.Compare": "go/constant", - "constant.Complex": "go/constant", - "constant.Denom": "go/constant", - "constant.Float": "go/constant", - "constant.Float32Val": "go/constant", - "constant.Float64Val": "go/constant", - "constant.Imag": "go/constant", - "constant.Int": "go/constant", - "constant.Int64Val": "go/constant", - "constant.Kind": "go/constant", - "constant.MakeBool": "go/constant", - "constant.MakeFloat64": "go/constant", - "constant.MakeFromBytes": "go/constant", - "constant.MakeFromLiteral": "go/constant", - "constant.MakeImag": "go/constant", - "constant.MakeInt64": "go/constant", - "constant.MakeString": "go/constant", - "constant.MakeUint64": "go/constant", - "constant.MakeUnknown": "go/constant", - "constant.Num": "go/constant", - "constant.Real": "go/constant", - "constant.Shift": "go/constant", - "constant.Sign": "go/constant", - "constant.String": "go/constant", - "constant.StringVal": "go/constant", - "constant.ToComplex": "go/constant", - "constant.ToFloat": "go/constant", - "constant.ToInt": "go/constant", - "constant.Uint64Val": "go/constant", - "constant.UnaryOp": "go/constant", - "constant.Unknown": "go/constant", - "context.Background": "context", - "context.CancelFunc": "context", - "context.Canceled": "context", - "context.Context": "context", - "context.DeadlineExceeded": "context", - "context.TODO": "context", - "context.WithCancel": "context", - "context.WithDeadline": "context", - "context.WithTimeout": "context", - "context.WithValue": "context", - "cookiejar.Jar": "net/http/cookiejar", - "cookiejar.New": "net/http/cookiejar", - "cookiejar.Options": "net/http/cookiejar", - "cookiejar.PublicSuffixList": "net/http/cookiejar", - "crc32.Castagnoli": "hash/crc32", - "crc32.Checksum": "hash/crc32", - "crc32.ChecksumIEEE": "hash/crc32", - "crc32.IEEE": "hash/crc32", - "crc32.IEEETable": "hash/crc32", - "crc32.Koopman": "hash/crc32", - "crc32.MakeTable": "hash/crc32", - "crc32.New": "hash/crc32", - "crc32.NewIEEE": "hash/crc32", - "crc32.Size": "hash/crc32", - "crc32.Table": "hash/crc32", - "crc32.Update": "hash/crc32", - "crc64.Checksum": "hash/crc64", - "crc64.ECMA": "hash/crc64", - "crc64.ISO": "hash/crc64", - "crc64.MakeTable": "hash/crc64", - "crc64.New": "hash/crc64", - "crc64.Size": "hash/crc64", - "crc64.Table": "hash/crc64", - "crc64.Update": "hash/crc64", - "crypto.Decrypter": "crypto", - "crypto.DecrypterOpts": "crypto", - "crypto.Hash": "crypto", - "crypto.MD4": "crypto", - "crypto.MD5": "crypto", - "crypto.MD5SHA1": "crypto", - "crypto.PrivateKey": "crypto", - "crypto.PublicKey": "crypto", - "crypto.RIPEMD160": "crypto", - "crypto.RegisterHash": "crypto", - "crypto.SHA1": "crypto", - "crypto.SHA224": "crypto", - "crypto.SHA256": "crypto", - "crypto.SHA384": "crypto", - "crypto.SHA3_224": "crypto", - "crypto.SHA3_256": "crypto", - "crypto.SHA3_384": "crypto", - "crypto.SHA3_512": "crypto", - "crypto.SHA512": "crypto", - "crypto.SHA512_224": "crypto", - "crypto.SHA512_256": "crypto", - "crypto.Signer": "crypto", - "crypto.SignerOpts": "crypto", - "csv.ErrBareQuote": "encoding/csv", - "csv.ErrFieldCount": "encoding/csv", - "csv.ErrQuote": "encoding/csv", - "csv.ErrTrailingComma": "encoding/csv", - "csv.NewReader": "encoding/csv", - "csv.NewWriter": "encoding/csv", - "csv.ParseError": "encoding/csv", - "csv.Reader": "encoding/csv", - "csv.Writer": "encoding/csv", - "debug.FreeOSMemory": "runtime/debug", - "debug.GCStats": "runtime/debug", - "debug.PrintStack": "runtime/debug", - "debug.ReadGCStats": "runtime/debug", - "debug.SetGCPercent": "runtime/debug", - "debug.SetMaxStack": "runtime/debug", - "debug.SetMaxThreads": "runtime/debug", - "debug.SetPanicOnFault": "runtime/debug", - "debug.SetTraceback": "runtime/debug", - "debug.Stack": "runtime/debug", - "debug.WriteHeapDump": "runtime/debug", - "des.BlockSize": "crypto/des", - "des.KeySizeError": "crypto/des", - "des.NewCipher": "crypto/des", - "des.NewTripleDESCipher": "crypto/des", - "doc.AllDecls": "go/doc", - "doc.AllMethods": "go/doc", - "doc.Example": "go/doc", - "doc.Examples": "go/doc", - "doc.Filter": "go/doc", - "doc.Func": "go/doc", - "doc.IllegalPrefixes": "go/doc", - "doc.IsPredeclared": "go/doc", - "doc.Mode": "go/doc", - "doc.New": "go/doc", - "doc.Note": "go/doc", - "doc.Package": "go/doc", - "doc.Synopsis": "go/doc", - "doc.ToHTML": "go/doc", - "doc.ToText": "go/doc", - "doc.Type": "go/doc", - "doc.Value": "go/doc", - "draw.Draw": "image/draw", - "draw.DrawMask": "image/draw", - "draw.Drawer": "image/draw", - "draw.FloydSteinberg": "image/draw", - "draw.Image": "image/draw", - "draw.Op": "image/draw", - "draw.Over": "image/draw", - "draw.Quantizer": "image/draw", - "draw.Src": "image/draw", - "driver.Bool": "database/sql/driver", - "driver.ColumnConverter": "database/sql/driver", - "driver.Conn": "database/sql/driver", - "driver.ConnBeginTx": "database/sql/driver", - "driver.ConnPrepareContext": "database/sql/driver", - "driver.DefaultParameterConverter": "database/sql/driver", - "driver.Driver": "database/sql/driver", - "driver.ErrBadConn": "database/sql/driver", - "driver.ErrSkip": "database/sql/driver", - "driver.Execer": "database/sql/driver", - "driver.ExecerContext": "database/sql/driver", - "driver.Int32": "database/sql/driver", - "driver.IsScanValue": "database/sql/driver", - "driver.IsValue": "database/sql/driver", - "driver.IsolationLevel": "database/sql/driver", - "driver.NamedValue": "database/sql/driver", - "driver.NotNull": "database/sql/driver", - "driver.Null": "database/sql/driver", - "driver.Pinger": "database/sql/driver", - "driver.Queryer": "database/sql/driver", - "driver.QueryerContext": "database/sql/driver", - "driver.Result": "database/sql/driver", - "driver.ResultNoRows": "database/sql/driver", - "driver.Rows": "database/sql/driver", - "driver.RowsAffected": "database/sql/driver", - "driver.RowsColumnTypeDatabaseTypeName": "database/sql/driver", - "driver.RowsColumnTypeLength": "database/sql/driver", - "driver.RowsColumnTypeNullable": "database/sql/driver", - "driver.RowsColumnTypePrecisionScale": "database/sql/driver", - "driver.RowsColumnTypeScanType": "database/sql/driver", - "driver.RowsNextResultSet": "database/sql/driver", - "driver.Stmt": "database/sql/driver", - "driver.StmtExecContext": "database/sql/driver", - "driver.StmtQueryContext": "database/sql/driver", - "driver.String": "database/sql/driver", - "driver.Tx": "database/sql/driver", - "driver.TxOptions": "database/sql/driver", - "driver.Value": "database/sql/driver", - "driver.ValueConverter": "database/sql/driver", - "driver.Valuer": "database/sql/driver", - "dsa.ErrInvalidPublicKey": "crypto/dsa", - "dsa.GenerateKey": "crypto/dsa", - "dsa.GenerateParameters": "crypto/dsa", - "dsa.L1024N160": "crypto/dsa", - "dsa.L2048N224": "crypto/dsa", - "dsa.L2048N256": "crypto/dsa", - "dsa.L3072N256": "crypto/dsa", - "dsa.ParameterSizes": "crypto/dsa", - "dsa.Parameters": "crypto/dsa", - "dsa.PrivateKey": "crypto/dsa", - "dsa.PublicKey": "crypto/dsa", - "dsa.Sign": "crypto/dsa", - "dsa.Verify": "crypto/dsa", - "dwarf.AddrType": "debug/dwarf", - "dwarf.ArrayType": "debug/dwarf", - "dwarf.Attr": "debug/dwarf", - "dwarf.AttrAbstractOrigin": "debug/dwarf", - "dwarf.AttrAccessibility": "debug/dwarf", - "dwarf.AttrAddrClass": "debug/dwarf", - "dwarf.AttrAllocated": "debug/dwarf", - "dwarf.AttrArtificial": "debug/dwarf", - "dwarf.AttrAssociated": "debug/dwarf", - "dwarf.AttrBaseTypes": "debug/dwarf", - "dwarf.AttrBitOffset": "debug/dwarf", - "dwarf.AttrBitSize": "debug/dwarf", - "dwarf.AttrByteSize": "debug/dwarf", - "dwarf.AttrCallColumn": "debug/dwarf", - "dwarf.AttrCallFile": "debug/dwarf", - "dwarf.AttrCallLine": "debug/dwarf", - "dwarf.AttrCalling": "debug/dwarf", - "dwarf.AttrCommonRef": "debug/dwarf", - "dwarf.AttrCompDir": "debug/dwarf", - "dwarf.AttrConstValue": "debug/dwarf", - "dwarf.AttrContainingType": "debug/dwarf", - "dwarf.AttrCount": "debug/dwarf", - "dwarf.AttrDataLocation": "debug/dwarf", - "dwarf.AttrDataMemberLoc": "debug/dwarf", - "dwarf.AttrDeclColumn": "debug/dwarf", - "dwarf.AttrDeclFile": "debug/dwarf", - "dwarf.AttrDeclLine": "debug/dwarf", - "dwarf.AttrDeclaration": "debug/dwarf", - "dwarf.AttrDefaultValue": "debug/dwarf", - "dwarf.AttrDescription": "debug/dwarf", - "dwarf.AttrDiscr": "debug/dwarf", - "dwarf.AttrDiscrList": "debug/dwarf", - "dwarf.AttrDiscrValue": "debug/dwarf", - "dwarf.AttrEncoding": "debug/dwarf", - "dwarf.AttrEntrypc": "debug/dwarf", - "dwarf.AttrExtension": "debug/dwarf", - "dwarf.AttrExternal": "debug/dwarf", - "dwarf.AttrFrameBase": "debug/dwarf", - "dwarf.AttrFriend": "debug/dwarf", - "dwarf.AttrHighpc": "debug/dwarf", - "dwarf.AttrIdentifierCase": "debug/dwarf", - "dwarf.AttrImport": "debug/dwarf", - "dwarf.AttrInline": "debug/dwarf", - "dwarf.AttrIsOptional": "debug/dwarf", - "dwarf.AttrLanguage": "debug/dwarf", - "dwarf.AttrLocation": "debug/dwarf", - "dwarf.AttrLowerBound": "debug/dwarf", - "dwarf.AttrLowpc": "debug/dwarf", - "dwarf.AttrMacroInfo": "debug/dwarf", - "dwarf.AttrName": "debug/dwarf", - "dwarf.AttrNamelistItem": "debug/dwarf", - "dwarf.AttrOrdering": "debug/dwarf", - "dwarf.AttrPriority": "debug/dwarf", - "dwarf.AttrProducer": "debug/dwarf", - "dwarf.AttrPrototyped": "debug/dwarf", - "dwarf.AttrRanges": "debug/dwarf", - "dwarf.AttrReturnAddr": "debug/dwarf", - "dwarf.AttrSegment": "debug/dwarf", - "dwarf.AttrSibling": "debug/dwarf", - "dwarf.AttrSpecification": "debug/dwarf", - "dwarf.AttrStartScope": "debug/dwarf", - "dwarf.AttrStaticLink": "debug/dwarf", - "dwarf.AttrStmtList": "debug/dwarf", - "dwarf.AttrStride": "debug/dwarf", - "dwarf.AttrStrideSize": "debug/dwarf", - "dwarf.AttrStringLength": "debug/dwarf", - "dwarf.AttrTrampoline": "debug/dwarf", - "dwarf.AttrType": "debug/dwarf", - "dwarf.AttrUpperBound": "debug/dwarf", - "dwarf.AttrUseLocation": "debug/dwarf", - "dwarf.AttrUseUTF8": "debug/dwarf", - "dwarf.AttrVarParam": "debug/dwarf", - "dwarf.AttrVirtuality": "debug/dwarf", - "dwarf.AttrVisibility": "debug/dwarf", - "dwarf.AttrVtableElemLoc": "debug/dwarf", - "dwarf.BasicType": "debug/dwarf", - "dwarf.BoolType": "debug/dwarf", - "dwarf.CharType": "debug/dwarf", - "dwarf.Class": "debug/dwarf", - "dwarf.ClassAddress": "debug/dwarf", - "dwarf.ClassBlock": "debug/dwarf", - "dwarf.ClassConstant": "debug/dwarf", - "dwarf.ClassExprLoc": "debug/dwarf", - "dwarf.ClassFlag": "debug/dwarf", - "dwarf.ClassLinePtr": "debug/dwarf", - "dwarf.ClassLocListPtr": "debug/dwarf", - "dwarf.ClassMacPtr": "debug/dwarf", - "dwarf.ClassRangeListPtr": "debug/dwarf", - "dwarf.ClassReference": "debug/dwarf", - "dwarf.ClassReferenceAlt": "debug/dwarf", - "dwarf.ClassReferenceSig": "debug/dwarf", - "dwarf.ClassString": "debug/dwarf", - "dwarf.ClassStringAlt": "debug/dwarf", - "dwarf.ClassUnknown": "debug/dwarf", - "dwarf.CommonType": "debug/dwarf", - "dwarf.ComplexType": "debug/dwarf", - "dwarf.Data": "debug/dwarf", - "dwarf.DecodeError": "debug/dwarf", - "dwarf.DotDotDotType": "debug/dwarf", - "dwarf.Entry": "debug/dwarf", - "dwarf.EnumType": "debug/dwarf", - "dwarf.EnumValue": "debug/dwarf", - "dwarf.ErrUnknownPC": "debug/dwarf", - "dwarf.Field": "debug/dwarf", - "dwarf.FloatType": "debug/dwarf", - "dwarf.FuncType": "debug/dwarf", - "dwarf.IntType": "debug/dwarf", - "dwarf.LineEntry": "debug/dwarf", - "dwarf.LineFile": "debug/dwarf", - "dwarf.LineReader": "debug/dwarf", - "dwarf.LineReaderPos": "debug/dwarf", - "dwarf.New": "debug/dwarf", - "dwarf.Offset": "debug/dwarf", - "dwarf.PtrType": "debug/dwarf", - "dwarf.QualType": "debug/dwarf", - "dwarf.Reader": "debug/dwarf", - "dwarf.StructField": "debug/dwarf", - "dwarf.StructType": "debug/dwarf", - "dwarf.Tag": "debug/dwarf", - "dwarf.TagAccessDeclaration": "debug/dwarf", - "dwarf.TagArrayType": "debug/dwarf", - "dwarf.TagBaseType": "debug/dwarf", - "dwarf.TagCatchDwarfBlock": "debug/dwarf", - "dwarf.TagClassType": "debug/dwarf", - "dwarf.TagCommonDwarfBlock": "debug/dwarf", - "dwarf.TagCommonInclusion": "debug/dwarf", - "dwarf.TagCompileUnit": "debug/dwarf", - "dwarf.TagCondition": "debug/dwarf", - "dwarf.TagConstType": "debug/dwarf", - "dwarf.TagConstant": "debug/dwarf", - "dwarf.TagDwarfProcedure": "debug/dwarf", - "dwarf.TagEntryPoint": "debug/dwarf", - "dwarf.TagEnumerationType": "debug/dwarf", - "dwarf.TagEnumerator": "debug/dwarf", - "dwarf.TagFileType": "debug/dwarf", - "dwarf.TagFormalParameter": "debug/dwarf", - "dwarf.TagFriend": "debug/dwarf", - "dwarf.TagImportedDeclaration": "debug/dwarf", - "dwarf.TagImportedModule": "debug/dwarf", - "dwarf.TagImportedUnit": "debug/dwarf", - "dwarf.TagInheritance": "debug/dwarf", - "dwarf.TagInlinedSubroutine": "debug/dwarf", - "dwarf.TagInterfaceType": "debug/dwarf", - "dwarf.TagLabel": "debug/dwarf", - "dwarf.TagLexDwarfBlock": "debug/dwarf", - "dwarf.TagMember": "debug/dwarf", - "dwarf.TagModule": "debug/dwarf", - "dwarf.TagMutableType": "debug/dwarf", - "dwarf.TagNamelist": "debug/dwarf", - "dwarf.TagNamelistItem": "debug/dwarf", - "dwarf.TagNamespace": "debug/dwarf", - "dwarf.TagPackedType": "debug/dwarf", - "dwarf.TagPartialUnit": "debug/dwarf", - "dwarf.TagPointerType": "debug/dwarf", - "dwarf.TagPtrToMemberType": "debug/dwarf", - "dwarf.TagReferenceType": "debug/dwarf", - "dwarf.TagRestrictType": "debug/dwarf", - "dwarf.TagRvalueReferenceType": "debug/dwarf", - "dwarf.TagSetType": "debug/dwarf", - "dwarf.TagSharedType": "debug/dwarf", - "dwarf.TagStringType": "debug/dwarf", - "dwarf.TagStructType": "debug/dwarf", - "dwarf.TagSubprogram": "debug/dwarf", - "dwarf.TagSubrangeType": "debug/dwarf", - "dwarf.TagSubroutineType": "debug/dwarf", - "dwarf.TagTemplateAlias": "debug/dwarf", - "dwarf.TagTemplateTypeParameter": "debug/dwarf", - "dwarf.TagTemplateValueParameter": "debug/dwarf", - "dwarf.TagThrownType": "debug/dwarf", - "dwarf.TagTryDwarfBlock": "debug/dwarf", - "dwarf.TagTypeUnit": "debug/dwarf", - "dwarf.TagTypedef": "debug/dwarf", - "dwarf.TagUnionType": "debug/dwarf", - "dwarf.TagUnspecifiedParameters": "debug/dwarf", - "dwarf.TagUnspecifiedType": "debug/dwarf", - "dwarf.TagVariable": "debug/dwarf", - "dwarf.TagVariant": "debug/dwarf", - "dwarf.TagVariantPart": "debug/dwarf", - "dwarf.TagVolatileType": "debug/dwarf", - "dwarf.TagWithStmt": "debug/dwarf", - "dwarf.Type": "debug/dwarf", - "dwarf.TypedefType": "debug/dwarf", - "dwarf.UcharType": "debug/dwarf", - "dwarf.UintType": "debug/dwarf", - "dwarf.UnspecifiedType": "debug/dwarf", - "dwarf.VoidType": "debug/dwarf", - "ecdsa.GenerateKey": "crypto/ecdsa", - "ecdsa.PrivateKey": "crypto/ecdsa", - "ecdsa.PublicKey": "crypto/ecdsa", - "ecdsa.Sign": "crypto/ecdsa", - "ecdsa.Verify": "crypto/ecdsa", - "elf.ARM_MAGIC_TRAMP_NUMBER": "debug/elf", - "elf.COMPRESS_HIOS": "debug/elf", - "elf.COMPRESS_HIPROC": "debug/elf", - "elf.COMPRESS_LOOS": "debug/elf", - "elf.COMPRESS_LOPROC": "debug/elf", - "elf.COMPRESS_ZLIB": "debug/elf", - "elf.Chdr32": "debug/elf", - "elf.Chdr64": "debug/elf", - "elf.Class": "debug/elf", - "elf.CompressionType": "debug/elf", - "elf.DF_BIND_NOW": "debug/elf", - "elf.DF_ORIGIN": "debug/elf", - "elf.DF_STATIC_TLS": "debug/elf", - "elf.DF_SYMBOLIC": "debug/elf", - "elf.DF_TEXTREL": "debug/elf", - "elf.DT_BIND_NOW": "debug/elf", - "elf.DT_DEBUG": "debug/elf", - "elf.DT_ENCODING": "debug/elf", - "elf.DT_FINI": "debug/elf", - "elf.DT_FINI_ARRAY": "debug/elf", - "elf.DT_FINI_ARRAYSZ": "debug/elf", - "elf.DT_FLAGS": "debug/elf", - "elf.DT_HASH": "debug/elf", - "elf.DT_HIOS": "debug/elf", - "elf.DT_HIPROC": "debug/elf", - "elf.DT_INIT": "debug/elf", - "elf.DT_INIT_ARRAY": "debug/elf", - "elf.DT_INIT_ARRAYSZ": "debug/elf", - "elf.DT_JMPREL": "debug/elf", - "elf.DT_LOOS": "debug/elf", - "elf.DT_LOPROC": "debug/elf", - "elf.DT_NEEDED": "debug/elf", - "elf.DT_NULL": "debug/elf", - "elf.DT_PLTGOT": "debug/elf", - "elf.DT_PLTREL": "debug/elf", - "elf.DT_PLTRELSZ": "debug/elf", - "elf.DT_PREINIT_ARRAY": "debug/elf", - "elf.DT_PREINIT_ARRAYSZ": "debug/elf", - "elf.DT_REL": "debug/elf", - "elf.DT_RELA": "debug/elf", - "elf.DT_RELAENT": "debug/elf", - "elf.DT_RELASZ": "debug/elf", - "elf.DT_RELENT": "debug/elf", - "elf.DT_RELSZ": "debug/elf", - "elf.DT_RPATH": "debug/elf", - "elf.DT_RUNPATH": "debug/elf", - "elf.DT_SONAME": "debug/elf", - "elf.DT_STRSZ": "debug/elf", - "elf.DT_STRTAB": "debug/elf", - "elf.DT_SYMBOLIC": "debug/elf", - "elf.DT_SYMENT": "debug/elf", - "elf.DT_SYMTAB": "debug/elf", - "elf.DT_TEXTREL": "debug/elf", - "elf.DT_VERNEED": "debug/elf", - "elf.DT_VERNEEDNUM": "debug/elf", - "elf.DT_VERSYM": "debug/elf", - "elf.Data": "debug/elf", - "elf.Dyn32": "debug/elf", - "elf.Dyn64": "debug/elf", - "elf.DynFlag": "debug/elf", - "elf.DynTag": "debug/elf", - "elf.EI_ABIVERSION": "debug/elf", - "elf.EI_CLASS": "debug/elf", - "elf.EI_DATA": "debug/elf", - "elf.EI_NIDENT": "debug/elf", - "elf.EI_OSABI": "debug/elf", - "elf.EI_PAD": "debug/elf", - "elf.EI_VERSION": "debug/elf", - "elf.ELFCLASS32": "debug/elf", - "elf.ELFCLASS64": "debug/elf", - "elf.ELFCLASSNONE": "debug/elf", - "elf.ELFDATA2LSB": "debug/elf", - "elf.ELFDATA2MSB": "debug/elf", - "elf.ELFDATANONE": "debug/elf", - "elf.ELFMAG": "debug/elf", - "elf.ELFOSABI_86OPEN": "debug/elf", - "elf.ELFOSABI_AIX": "debug/elf", - "elf.ELFOSABI_ARM": "debug/elf", - "elf.ELFOSABI_FREEBSD": "debug/elf", - "elf.ELFOSABI_HPUX": "debug/elf", - "elf.ELFOSABI_HURD": "debug/elf", - "elf.ELFOSABI_IRIX": "debug/elf", - "elf.ELFOSABI_LINUX": "debug/elf", - "elf.ELFOSABI_MODESTO": "debug/elf", - "elf.ELFOSABI_NETBSD": "debug/elf", - "elf.ELFOSABI_NONE": "debug/elf", - "elf.ELFOSABI_NSK": "debug/elf", - "elf.ELFOSABI_OPENBSD": "debug/elf", - "elf.ELFOSABI_OPENVMS": "debug/elf", - "elf.ELFOSABI_SOLARIS": "debug/elf", - "elf.ELFOSABI_STANDALONE": "debug/elf", - "elf.ELFOSABI_TRU64": "debug/elf", - "elf.EM_386": "debug/elf", - "elf.EM_486": "debug/elf", - "elf.EM_68HC12": "debug/elf", - "elf.EM_68K": "debug/elf", - "elf.EM_860": "debug/elf", - "elf.EM_88K": "debug/elf", - "elf.EM_960": "debug/elf", - "elf.EM_AARCH64": "debug/elf", - "elf.EM_ALPHA": "debug/elf", - "elf.EM_ALPHA_STD": "debug/elf", - "elf.EM_ARC": "debug/elf", - "elf.EM_ARM": "debug/elf", - "elf.EM_COLDFIRE": "debug/elf", - "elf.EM_FR20": "debug/elf", - "elf.EM_H8S": "debug/elf", - "elf.EM_H8_300": "debug/elf", - "elf.EM_H8_300H": "debug/elf", - "elf.EM_H8_500": "debug/elf", - "elf.EM_IA_64": "debug/elf", - "elf.EM_M32": "debug/elf", - "elf.EM_ME16": "debug/elf", - "elf.EM_MIPS": "debug/elf", - "elf.EM_MIPS_RS3_LE": "debug/elf", - "elf.EM_MIPS_RS4_BE": "debug/elf", - "elf.EM_MIPS_X": "debug/elf", - "elf.EM_MMA": "debug/elf", - "elf.EM_NCPU": "debug/elf", - "elf.EM_NDR1": "debug/elf", - "elf.EM_NONE": "debug/elf", - "elf.EM_PARISC": "debug/elf", - "elf.EM_PCP": "debug/elf", - "elf.EM_PPC": "debug/elf", - "elf.EM_PPC64": "debug/elf", - "elf.EM_RCE": "debug/elf", - "elf.EM_RH32": "debug/elf", - "elf.EM_S370": "debug/elf", - "elf.EM_S390": "debug/elf", - "elf.EM_SH": "debug/elf", - "elf.EM_SPARC": "debug/elf", - "elf.EM_SPARC32PLUS": "debug/elf", - "elf.EM_SPARCV9": "debug/elf", - "elf.EM_ST100": "debug/elf", - "elf.EM_STARCORE": "debug/elf", - "elf.EM_TINYJ": "debug/elf", - "elf.EM_TRICORE": "debug/elf", - "elf.EM_V800": "debug/elf", - "elf.EM_VPP500": "debug/elf", - "elf.EM_X86_64": "debug/elf", - "elf.ET_CORE": "debug/elf", - "elf.ET_DYN": "debug/elf", - "elf.ET_EXEC": "debug/elf", - "elf.ET_HIOS": "debug/elf", - "elf.ET_HIPROC": "debug/elf", - "elf.ET_LOOS": "debug/elf", - "elf.ET_LOPROC": "debug/elf", - "elf.ET_NONE": "debug/elf", - "elf.ET_REL": "debug/elf", - "elf.EV_CURRENT": "debug/elf", - "elf.EV_NONE": "debug/elf", - "elf.ErrNoSymbols": "debug/elf", - "elf.File": "debug/elf", - "elf.FileHeader": "debug/elf", - "elf.FormatError": "debug/elf", - "elf.Header32": "debug/elf", - "elf.Header64": "debug/elf", - "elf.ImportedSymbol": "debug/elf", - "elf.Machine": "debug/elf", - "elf.NT_FPREGSET": "debug/elf", - "elf.NT_PRPSINFO": "debug/elf", - "elf.NT_PRSTATUS": "debug/elf", - "elf.NType": "debug/elf", - "elf.NewFile": "debug/elf", - "elf.OSABI": "debug/elf", - "elf.Open": "debug/elf", - "elf.PF_MASKOS": "debug/elf", - "elf.PF_MASKPROC": "debug/elf", - "elf.PF_R": "debug/elf", - "elf.PF_W": "debug/elf", - "elf.PF_X": "debug/elf", - "elf.PT_DYNAMIC": "debug/elf", - "elf.PT_HIOS": "debug/elf", - "elf.PT_HIPROC": "debug/elf", - "elf.PT_INTERP": "debug/elf", - "elf.PT_LOAD": "debug/elf", - "elf.PT_LOOS": "debug/elf", - "elf.PT_LOPROC": "debug/elf", - "elf.PT_NOTE": "debug/elf", - "elf.PT_NULL": "debug/elf", - "elf.PT_PHDR": "debug/elf", - "elf.PT_SHLIB": "debug/elf", - "elf.PT_TLS": "debug/elf", - "elf.Prog": "debug/elf", - "elf.Prog32": "debug/elf", - "elf.Prog64": "debug/elf", - "elf.ProgFlag": "debug/elf", - "elf.ProgHeader": "debug/elf", - "elf.ProgType": "debug/elf", - "elf.R_386": "debug/elf", - "elf.R_386_32": "debug/elf", - "elf.R_386_COPY": "debug/elf", - "elf.R_386_GLOB_DAT": "debug/elf", - "elf.R_386_GOT32": "debug/elf", - "elf.R_386_GOTOFF": "debug/elf", - "elf.R_386_GOTPC": "debug/elf", - "elf.R_386_JMP_SLOT": "debug/elf", - "elf.R_386_NONE": "debug/elf", - "elf.R_386_PC32": "debug/elf", - "elf.R_386_PLT32": "debug/elf", - "elf.R_386_RELATIVE": "debug/elf", - "elf.R_386_TLS_DTPMOD32": "debug/elf", - "elf.R_386_TLS_DTPOFF32": "debug/elf", - "elf.R_386_TLS_GD": "debug/elf", - "elf.R_386_TLS_GD_32": "debug/elf", - "elf.R_386_TLS_GD_CALL": "debug/elf", - "elf.R_386_TLS_GD_POP": "debug/elf", - "elf.R_386_TLS_GD_PUSH": "debug/elf", - "elf.R_386_TLS_GOTIE": "debug/elf", - "elf.R_386_TLS_IE": "debug/elf", - "elf.R_386_TLS_IE_32": "debug/elf", - "elf.R_386_TLS_LDM": "debug/elf", - "elf.R_386_TLS_LDM_32": "debug/elf", - "elf.R_386_TLS_LDM_CALL": "debug/elf", - "elf.R_386_TLS_LDM_POP": "debug/elf", - "elf.R_386_TLS_LDM_PUSH": "debug/elf", - "elf.R_386_TLS_LDO_32": "debug/elf", - "elf.R_386_TLS_LE": "debug/elf", - "elf.R_386_TLS_LE_32": "debug/elf", - "elf.R_386_TLS_TPOFF": "debug/elf", - "elf.R_386_TLS_TPOFF32": "debug/elf", - "elf.R_390": "debug/elf", - "elf.R_390_12": "debug/elf", - "elf.R_390_16": "debug/elf", - "elf.R_390_20": "debug/elf", - "elf.R_390_32": "debug/elf", - "elf.R_390_64": "debug/elf", - "elf.R_390_8": "debug/elf", - "elf.R_390_COPY": "debug/elf", - "elf.R_390_GLOB_DAT": "debug/elf", - "elf.R_390_GOT12": "debug/elf", - "elf.R_390_GOT16": "debug/elf", - "elf.R_390_GOT20": "debug/elf", - "elf.R_390_GOT32": "debug/elf", - "elf.R_390_GOT64": "debug/elf", - "elf.R_390_GOTENT": "debug/elf", - "elf.R_390_GOTOFF": "debug/elf", - "elf.R_390_GOTOFF16": "debug/elf", - "elf.R_390_GOTOFF64": "debug/elf", - "elf.R_390_GOTPC": "debug/elf", - "elf.R_390_GOTPCDBL": "debug/elf", - "elf.R_390_GOTPLT12": "debug/elf", - "elf.R_390_GOTPLT16": "debug/elf", - "elf.R_390_GOTPLT20": "debug/elf", - "elf.R_390_GOTPLT32": "debug/elf", - "elf.R_390_GOTPLT64": "debug/elf", - "elf.R_390_GOTPLTENT": "debug/elf", - "elf.R_390_GOTPLTOFF16": "debug/elf", - "elf.R_390_GOTPLTOFF32": "debug/elf", - "elf.R_390_GOTPLTOFF64": "debug/elf", - "elf.R_390_JMP_SLOT": "debug/elf", - "elf.R_390_NONE": "debug/elf", - "elf.R_390_PC16": "debug/elf", - "elf.R_390_PC16DBL": "debug/elf", - "elf.R_390_PC32": "debug/elf", - "elf.R_390_PC32DBL": "debug/elf", - "elf.R_390_PC64": "debug/elf", - "elf.R_390_PLT16DBL": "debug/elf", - "elf.R_390_PLT32": "debug/elf", - "elf.R_390_PLT32DBL": "debug/elf", - "elf.R_390_PLT64": "debug/elf", - "elf.R_390_RELATIVE": "debug/elf", - "elf.R_390_TLS_DTPMOD": "debug/elf", - "elf.R_390_TLS_DTPOFF": "debug/elf", - "elf.R_390_TLS_GD32": "debug/elf", - "elf.R_390_TLS_GD64": "debug/elf", - "elf.R_390_TLS_GDCALL": "debug/elf", - "elf.R_390_TLS_GOTIE12": "debug/elf", - "elf.R_390_TLS_GOTIE20": "debug/elf", - "elf.R_390_TLS_GOTIE32": "debug/elf", - "elf.R_390_TLS_GOTIE64": "debug/elf", - "elf.R_390_TLS_IE32": "debug/elf", - "elf.R_390_TLS_IE64": "debug/elf", - "elf.R_390_TLS_IEENT": "debug/elf", - "elf.R_390_TLS_LDCALL": "debug/elf", - "elf.R_390_TLS_LDM32": "debug/elf", - "elf.R_390_TLS_LDM64": "debug/elf", - "elf.R_390_TLS_LDO32": "debug/elf", - "elf.R_390_TLS_LDO64": "debug/elf", - "elf.R_390_TLS_LE32": "debug/elf", - "elf.R_390_TLS_LE64": "debug/elf", - "elf.R_390_TLS_LOAD": "debug/elf", - "elf.R_390_TLS_TPOFF": "debug/elf", - "elf.R_AARCH64": "debug/elf", - "elf.R_AARCH64_ABS16": "debug/elf", - "elf.R_AARCH64_ABS32": "debug/elf", - "elf.R_AARCH64_ABS64": "debug/elf", - "elf.R_AARCH64_ADD_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_ADR_GOT_PAGE": "debug/elf", - "elf.R_AARCH64_ADR_PREL_LO21": "debug/elf", - "elf.R_AARCH64_ADR_PREL_PG_HI21": "debug/elf", - "elf.R_AARCH64_ADR_PREL_PG_HI21_NC": "debug/elf", - "elf.R_AARCH64_CALL26": "debug/elf", - "elf.R_AARCH64_CONDBR19": "debug/elf", - "elf.R_AARCH64_COPY": "debug/elf", - "elf.R_AARCH64_GLOB_DAT": "debug/elf", - "elf.R_AARCH64_GOT_LD_PREL19": "debug/elf", - "elf.R_AARCH64_IRELATIVE": "debug/elf", - "elf.R_AARCH64_JUMP26": "debug/elf", - "elf.R_AARCH64_JUMP_SLOT": "debug/elf", - "elf.R_AARCH64_LD64_GOT_LO12_NC": "debug/elf", - "elf.R_AARCH64_LDST128_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_LDST16_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_LDST32_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_LDST64_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_LDST8_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_LD_PREL_LO19": "debug/elf", - "elf.R_AARCH64_MOVW_SABS_G0": "debug/elf", - "elf.R_AARCH64_MOVW_SABS_G1": "debug/elf", - "elf.R_AARCH64_MOVW_SABS_G2": "debug/elf", - "elf.R_AARCH64_MOVW_UABS_G0": "debug/elf", - "elf.R_AARCH64_MOVW_UABS_G0_NC": "debug/elf", - "elf.R_AARCH64_MOVW_UABS_G1": "debug/elf", - "elf.R_AARCH64_MOVW_UABS_G1_NC": "debug/elf", - "elf.R_AARCH64_MOVW_UABS_G2": "debug/elf", - "elf.R_AARCH64_MOVW_UABS_G2_NC": "debug/elf", - "elf.R_AARCH64_MOVW_UABS_G3": "debug/elf", - "elf.R_AARCH64_NONE": "debug/elf", - "elf.R_AARCH64_NULL": "debug/elf", - "elf.R_AARCH64_P32_ABS16": "debug/elf", - "elf.R_AARCH64_P32_ABS32": "debug/elf", - "elf.R_AARCH64_P32_ADD_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_ADR_GOT_PAGE": "debug/elf", - "elf.R_AARCH64_P32_ADR_PREL_LO21": "debug/elf", - "elf.R_AARCH64_P32_ADR_PREL_PG_HI21": "debug/elf", - "elf.R_AARCH64_P32_CALL26": "debug/elf", - "elf.R_AARCH64_P32_CONDBR19": "debug/elf", - "elf.R_AARCH64_P32_COPY": "debug/elf", - "elf.R_AARCH64_P32_GLOB_DAT": "debug/elf", - "elf.R_AARCH64_P32_GOT_LD_PREL19": "debug/elf", - "elf.R_AARCH64_P32_IRELATIVE": "debug/elf", - "elf.R_AARCH64_P32_JUMP26": "debug/elf", - "elf.R_AARCH64_P32_JUMP_SLOT": "debug/elf", - "elf.R_AARCH64_P32_LD32_GOT_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_LDST128_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_LDST16_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_LDST32_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_LDST64_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_LDST8_ABS_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_LD_PREL_LO19": "debug/elf", - "elf.R_AARCH64_P32_MOVW_SABS_G0": "debug/elf", - "elf.R_AARCH64_P32_MOVW_UABS_G0": "debug/elf", - "elf.R_AARCH64_P32_MOVW_UABS_G0_NC": "debug/elf", - "elf.R_AARCH64_P32_MOVW_UABS_G1": "debug/elf", - "elf.R_AARCH64_P32_PREL16": "debug/elf", - "elf.R_AARCH64_P32_PREL32": "debug/elf", - "elf.R_AARCH64_P32_RELATIVE": "debug/elf", - "elf.R_AARCH64_P32_TLSDESC": "debug/elf", - "elf.R_AARCH64_P32_TLSDESC_ADD_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_TLSDESC_ADR_PAGE21": "debug/elf", - "elf.R_AARCH64_P32_TLSDESC_ADR_PREL21": "debug/elf", - "elf.R_AARCH64_P32_TLSDESC_CALL": "debug/elf", - "elf.R_AARCH64_P32_TLSDESC_LD32_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_TLSDESC_LD_PREL19": "debug/elf", - "elf.R_AARCH64_P32_TLSGD_ADD_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_TLSGD_ADR_PAGE21": "debug/elf", - "elf.R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21": "debug/elf", - "elf.R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19": "debug/elf", - "elf.R_AARCH64_P32_TLSLE_ADD_TPREL_HI12": "debug/elf", - "elf.R_AARCH64_P32_TLSLE_ADD_TPREL_LO12": "debug/elf", - "elf.R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC": "debug/elf", - "elf.R_AARCH64_P32_TLSLE_MOVW_TPREL_G0": "debug/elf", - "elf.R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC": "debug/elf", - "elf.R_AARCH64_P32_TLSLE_MOVW_TPREL_G1": "debug/elf", - "elf.R_AARCH64_P32_TLS_DTPMOD": "debug/elf", - "elf.R_AARCH64_P32_TLS_DTPREL": "debug/elf", - "elf.R_AARCH64_P32_TLS_TPREL": "debug/elf", - "elf.R_AARCH64_P32_TSTBR14": "debug/elf", - "elf.R_AARCH64_PREL16": "debug/elf", - "elf.R_AARCH64_PREL32": "debug/elf", - "elf.R_AARCH64_PREL64": "debug/elf", - "elf.R_AARCH64_RELATIVE": "debug/elf", - "elf.R_AARCH64_TLSDESC": "debug/elf", - "elf.R_AARCH64_TLSDESC_ADD": "debug/elf", - "elf.R_AARCH64_TLSDESC_ADD_LO12_NC": "debug/elf", - "elf.R_AARCH64_TLSDESC_ADR_PAGE21": "debug/elf", - "elf.R_AARCH64_TLSDESC_ADR_PREL21": "debug/elf", - "elf.R_AARCH64_TLSDESC_CALL": "debug/elf", - "elf.R_AARCH64_TLSDESC_LD64_LO12_NC": "debug/elf", - "elf.R_AARCH64_TLSDESC_LDR": "debug/elf", - "elf.R_AARCH64_TLSDESC_LD_PREL19": "debug/elf", - "elf.R_AARCH64_TLSDESC_OFF_G0_NC": "debug/elf", - "elf.R_AARCH64_TLSDESC_OFF_G1": "debug/elf", - "elf.R_AARCH64_TLSGD_ADD_LO12_NC": "debug/elf", - "elf.R_AARCH64_TLSGD_ADR_PAGE21": "debug/elf", - "elf.R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21": "debug/elf", - "elf.R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC": "debug/elf", - "elf.R_AARCH64_TLSIE_LD_GOTTPREL_PREL19": "debug/elf", - "elf.R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC": "debug/elf", - "elf.R_AARCH64_TLSIE_MOVW_GOTTPREL_G1": "debug/elf", - "elf.R_AARCH64_TLSLE_ADD_TPREL_HI12": "debug/elf", - "elf.R_AARCH64_TLSLE_ADD_TPREL_LO12": "debug/elf", - "elf.R_AARCH64_TLSLE_ADD_TPREL_LO12_NC": "debug/elf", - "elf.R_AARCH64_TLSLE_MOVW_TPREL_G0": "debug/elf", - "elf.R_AARCH64_TLSLE_MOVW_TPREL_G0_NC": "debug/elf", - "elf.R_AARCH64_TLSLE_MOVW_TPREL_G1": "debug/elf", - "elf.R_AARCH64_TLSLE_MOVW_TPREL_G1_NC": "debug/elf", - "elf.R_AARCH64_TLSLE_MOVW_TPREL_G2": "debug/elf", - "elf.R_AARCH64_TLS_DTPMOD64": "debug/elf", - "elf.R_AARCH64_TLS_DTPREL64": "debug/elf", - "elf.R_AARCH64_TLS_TPREL64": "debug/elf", - "elf.R_AARCH64_TSTBR14": "debug/elf", - "elf.R_ALPHA": "debug/elf", - "elf.R_ALPHA_BRADDR": "debug/elf", - "elf.R_ALPHA_COPY": "debug/elf", - "elf.R_ALPHA_GLOB_DAT": "debug/elf", - "elf.R_ALPHA_GPDISP": "debug/elf", - "elf.R_ALPHA_GPREL32": "debug/elf", - "elf.R_ALPHA_GPRELHIGH": "debug/elf", - "elf.R_ALPHA_GPRELLOW": "debug/elf", - "elf.R_ALPHA_GPVALUE": "debug/elf", - "elf.R_ALPHA_HINT": "debug/elf", - "elf.R_ALPHA_IMMED_BR_HI32": "debug/elf", - "elf.R_ALPHA_IMMED_GP_16": "debug/elf", - "elf.R_ALPHA_IMMED_GP_HI32": "debug/elf", - "elf.R_ALPHA_IMMED_LO32": "debug/elf", - "elf.R_ALPHA_IMMED_SCN_HI32": "debug/elf", - "elf.R_ALPHA_JMP_SLOT": "debug/elf", - "elf.R_ALPHA_LITERAL": "debug/elf", - "elf.R_ALPHA_LITUSE": "debug/elf", - "elf.R_ALPHA_NONE": "debug/elf", - "elf.R_ALPHA_OP_PRSHIFT": "debug/elf", - "elf.R_ALPHA_OP_PSUB": "debug/elf", - "elf.R_ALPHA_OP_PUSH": "debug/elf", - "elf.R_ALPHA_OP_STORE": "debug/elf", - "elf.R_ALPHA_REFLONG": "debug/elf", - "elf.R_ALPHA_REFQUAD": "debug/elf", - "elf.R_ALPHA_RELATIVE": "debug/elf", - "elf.R_ALPHA_SREL16": "debug/elf", - "elf.R_ALPHA_SREL32": "debug/elf", - "elf.R_ALPHA_SREL64": "debug/elf", - "elf.R_ARM": "debug/elf", - "elf.R_ARM_ABS12": "debug/elf", - "elf.R_ARM_ABS16": "debug/elf", - "elf.R_ARM_ABS32": "debug/elf", - "elf.R_ARM_ABS8": "debug/elf", - "elf.R_ARM_AMP_VCALL9": "debug/elf", - "elf.R_ARM_COPY": "debug/elf", - "elf.R_ARM_GLOB_DAT": "debug/elf", - "elf.R_ARM_GNU_VTENTRY": "debug/elf", - "elf.R_ARM_GNU_VTINHERIT": "debug/elf", - "elf.R_ARM_GOT32": "debug/elf", - "elf.R_ARM_GOTOFF": "debug/elf", - "elf.R_ARM_GOTPC": "debug/elf", - "elf.R_ARM_JUMP_SLOT": "debug/elf", - "elf.R_ARM_NONE": "debug/elf", - "elf.R_ARM_PC13": "debug/elf", - "elf.R_ARM_PC24": "debug/elf", - "elf.R_ARM_PLT32": "debug/elf", - "elf.R_ARM_RABS32": "debug/elf", - "elf.R_ARM_RBASE": "debug/elf", - "elf.R_ARM_REL32": "debug/elf", - "elf.R_ARM_RELATIVE": "debug/elf", - "elf.R_ARM_RPC24": "debug/elf", - "elf.R_ARM_RREL32": "debug/elf", - "elf.R_ARM_RSBREL32": "debug/elf", - "elf.R_ARM_SBREL32": "debug/elf", - "elf.R_ARM_SWI24": "debug/elf", - "elf.R_ARM_THM_ABS5": "debug/elf", - "elf.R_ARM_THM_PC22": "debug/elf", - "elf.R_ARM_THM_PC8": "debug/elf", - "elf.R_ARM_THM_RPC22": "debug/elf", - "elf.R_ARM_THM_SWI8": "debug/elf", - "elf.R_ARM_THM_XPC22": "debug/elf", - "elf.R_ARM_XPC25": "debug/elf", - "elf.R_INFO": "debug/elf", - "elf.R_INFO32": "debug/elf", - "elf.R_MIPS": "debug/elf", - "elf.R_MIPS_16": "debug/elf", - "elf.R_MIPS_26": "debug/elf", - "elf.R_MIPS_32": "debug/elf", - "elf.R_MIPS_64": "debug/elf", - "elf.R_MIPS_ADD_IMMEDIATE": "debug/elf", - "elf.R_MIPS_CALL16": "debug/elf", - "elf.R_MIPS_CALL_HI16": "debug/elf", - "elf.R_MIPS_CALL_LO16": "debug/elf", - "elf.R_MIPS_DELETE": "debug/elf", - "elf.R_MIPS_GOT16": "debug/elf", - "elf.R_MIPS_GOT_DISP": "debug/elf", - "elf.R_MIPS_GOT_HI16": "debug/elf", - "elf.R_MIPS_GOT_LO16": "debug/elf", - "elf.R_MIPS_GOT_OFST": "debug/elf", - "elf.R_MIPS_GOT_PAGE": "debug/elf", - "elf.R_MIPS_GPREL16": "debug/elf", - "elf.R_MIPS_GPREL32": "debug/elf", - "elf.R_MIPS_HI16": "debug/elf", - "elf.R_MIPS_HIGHER": "debug/elf", - "elf.R_MIPS_HIGHEST": "debug/elf", - "elf.R_MIPS_INSERT_A": "debug/elf", - "elf.R_MIPS_INSERT_B": "debug/elf", - "elf.R_MIPS_JALR": "debug/elf", - "elf.R_MIPS_LITERAL": "debug/elf", - "elf.R_MIPS_LO16": "debug/elf", - "elf.R_MIPS_NONE": "debug/elf", - "elf.R_MIPS_PC16": "debug/elf", - "elf.R_MIPS_PJUMP": "debug/elf", - "elf.R_MIPS_REL16": "debug/elf", - "elf.R_MIPS_REL32": "debug/elf", - "elf.R_MIPS_RELGOT": "debug/elf", - "elf.R_MIPS_SCN_DISP": "debug/elf", - "elf.R_MIPS_SHIFT5": "debug/elf", - "elf.R_MIPS_SHIFT6": "debug/elf", - "elf.R_MIPS_SUB": "debug/elf", - "elf.R_MIPS_TLS_DTPMOD32": "debug/elf", - "elf.R_MIPS_TLS_DTPMOD64": "debug/elf", - "elf.R_MIPS_TLS_DTPREL32": "debug/elf", - "elf.R_MIPS_TLS_DTPREL64": "debug/elf", - "elf.R_MIPS_TLS_DTPREL_HI16": "debug/elf", - "elf.R_MIPS_TLS_DTPREL_LO16": "debug/elf", - "elf.R_MIPS_TLS_GD": "debug/elf", - "elf.R_MIPS_TLS_GOTTPREL": "debug/elf", - "elf.R_MIPS_TLS_LDM": "debug/elf", - "elf.R_MIPS_TLS_TPREL32": "debug/elf", - "elf.R_MIPS_TLS_TPREL64": "debug/elf", - "elf.R_MIPS_TLS_TPREL_HI16": "debug/elf", - "elf.R_MIPS_TLS_TPREL_LO16": "debug/elf", - "elf.R_PPC": "debug/elf", - "elf.R_PPC64": "debug/elf", - "elf.R_PPC64_ADDR14": "debug/elf", - "elf.R_PPC64_ADDR14_BRNTAKEN": "debug/elf", - "elf.R_PPC64_ADDR14_BRTAKEN": "debug/elf", - "elf.R_PPC64_ADDR16": "debug/elf", - "elf.R_PPC64_ADDR16_DS": "debug/elf", - "elf.R_PPC64_ADDR16_HA": "debug/elf", - "elf.R_PPC64_ADDR16_HI": "debug/elf", - "elf.R_PPC64_ADDR16_HIGHER": "debug/elf", - "elf.R_PPC64_ADDR16_HIGHERA": "debug/elf", - "elf.R_PPC64_ADDR16_HIGHEST": "debug/elf", - "elf.R_PPC64_ADDR16_HIGHESTA": "debug/elf", - "elf.R_PPC64_ADDR16_LO": "debug/elf", - "elf.R_PPC64_ADDR16_LO_DS": "debug/elf", - "elf.R_PPC64_ADDR24": "debug/elf", - "elf.R_PPC64_ADDR32": "debug/elf", - "elf.R_PPC64_ADDR64": "debug/elf", - "elf.R_PPC64_DTPMOD64": "debug/elf", - "elf.R_PPC64_DTPREL16": "debug/elf", - "elf.R_PPC64_DTPREL16_DS": "debug/elf", - "elf.R_PPC64_DTPREL16_HA": "debug/elf", - "elf.R_PPC64_DTPREL16_HI": "debug/elf", - "elf.R_PPC64_DTPREL16_HIGHER": "debug/elf", - "elf.R_PPC64_DTPREL16_HIGHERA": "debug/elf", - "elf.R_PPC64_DTPREL16_HIGHEST": "debug/elf", - "elf.R_PPC64_DTPREL16_HIGHESTA": "debug/elf", - "elf.R_PPC64_DTPREL16_LO": "debug/elf", - "elf.R_PPC64_DTPREL16_LO_DS": "debug/elf", - "elf.R_PPC64_DTPREL64": "debug/elf", - "elf.R_PPC64_GOT16": "debug/elf", - "elf.R_PPC64_GOT16_DS": "debug/elf", - "elf.R_PPC64_GOT16_HA": "debug/elf", - "elf.R_PPC64_GOT16_HI": "debug/elf", - "elf.R_PPC64_GOT16_LO": "debug/elf", - "elf.R_PPC64_GOT16_LO_DS": "debug/elf", - "elf.R_PPC64_GOT_DTPREL16_DS": "debug/elf", - "elf.R_PPC64_GOT_DTPREL16_HA": "debug/elf", - "elf.R_PPC64_GOT_DTPREL16_HI": "debug/elf", - "elf.R_PPC64_GOT_DTPREL16_LO_DS": "debug/elf", - "elf.R_PPC64_GOT_TLSGD16": "debug/elf", - "elf.R_PPC64_GOT_TLSGD16_HA": "debug/elf", - "elf.R_PPC64_GOT_TLSGD16_HI": "debug/elf", - "elf.R_PPC64_GOT_TLSGD16_LO": "debug/elf", - "elf.R_PPC64_GOT_TLSLD16": "debug/elf", - "elf.R_PPC64_GOT_TLSLD16_HA": "debug/elf", - "elf.R_PPC64_GOT_TLSLD16_HI": "debug/elf", - "elf.R_PPC64_GOT_TLSLD16_LO": "debug/elf", - "elf.R_PPC64_GOT_TPREL16_DS": "debug/elf", - "elf.R_PPC64_GOT_TPREL16_HA": "debug/elf", - "elf.R_PPC64_GOT_TPREL16_HI": "debug/elf", - "elf.R_PPC64_GOT_TPREL16_LO_DS": "debug/elf", - "elf.R_PPC64_JMP_SLOT": "debug/elf", - "elf.R_PPC64_NONE": "debug/elf", - "elf.R_PPC64_REL14": "debug/elf", - "elf.R_PPC64_REL14_BRNTAKEN": "debug/elf", - "elf.R_PPC64_REL14_BRTAKEN": "debug/elf", - "elf.R_PPC64_REL16": "debug/elf", - "elf.R_PPC64_REL16_HA": "debug/elf", - "elf.R_PPC64_REL16_HI": "debug/elf", - "elf.R_PPC64_REL16_LO": "debug/elf", - "elf.R_PPC64_REL24": "debug/elf", - "elf.R_PPC64_REL32": "debug/elf", - "elf.R_PPC64_REL64": "debug/elf", - "elf.R_PPC64_TLS": "debug/elf", - "elf.R_PPC64_TLSGD": "debug/elf", - "elf.R_PPC64_TLSLD": "debug/elf", - "elf.R_PPC64_TOC": "debug/elf", - "elf.R_PPC64_TOC16": "debug/elf", - "elf.R_PPC64_TOC16_DS": "debug/elf", - "elf.R_PPC64_TOC16_HA": "debug/elf", - "elf.R_PPC64_TOC16_HI": "debug/elf", - "elf.R_PPC64_TOC16_LO": "debug/elf", - "elf.R_PPC64_TOC16_LO_DS": "debug/elf", - "elf.R_PPC64_TPREL16": "debug/elf", - "elf.R_PPC64_TPREL16_DS": "debug/elf", - "elf.R_PPC64_TPREL16_HA": "debug/elf", - "elf.R_PPC64_TPREL16_HI": "debug/elf", - "elf.R_PPC64_TPREL16_HIGHER": "debug/elf", - "elf.R_PPC64_TPREL16_HIGHERA": "debug/elf", - "elf.R_PPC64_TPREL16_HIGHEST": "debug/elf", - "elf.R_PPC64_TPREL16_HIGHESTA": "debug/elf", - "elf.R_PPC64_TPREL16_LO": "debug/elf", - "elf.R_PPC64_TPREL16_LO_DS": "debug/elf", - "elf.R_PPC64_TPREL64": "debug/elf", - "elf.R_PPC_ADDR14": "debug/elf", - "elf.R_PPC_ADDR14_BRNTAKEN": "debug/elf", - "elf.R_PPC_ADDR14_BRTAKEN": "debug/elf", - "elf.R_PPC_ADDR16": "debug/elf", - "elf.R_PPC_ADDR16_HA": "debug/elf", - "elf.R_PPC_ADDR16_HI": "debug/elf", - "elf.R_PPC_ADDR16_LO": "debug/elf", - "elf.R_PPC_ADDR24": "debug/elf", - "elf.R_PPC_ADDR32": "debug/elf", - "elf.R_PPC_COPY": "debug/elf", - "elf.R_PPC_DTPMOD32": "debug/elf", - "elf.R_PPC_DTPREL16": "debug/elf", - "elf.R_PPC_DTPREL16_HA": "debug/elf", - "elf.R_PPC_DTPREL16_HI": "debug/elf", - "elf.R_PPC_DTPREL16_LO": "debug/elf", - "elf.R_PPC_DTPREL32": "debug/elf", - "elf.R_PPC_EMB_BIT_FLD": "debug/elf", - "elf.R_PPC_EMB_MRKREF": "debug/elf", - "elf.R_PPC_EMB_NADDR16": "debug/elf", - "elf.R_PPC_EMB_NADDR16_HA": "debug/elf", - "elf.R_PPC_EMB_NADDR16_HI": "debug/elf", - "elf.R_PPC_EMB_NADDR16_LO": "debug/elf", - "elf.R_PPC_EMB_NADDR32": "debug/elf", - "elf.R_PPC_EMB_RELSDA": "debug/elf", - "elf.R_PPC_EMB_RELSEC16": "debug/elf", - "elf.R_PPC_EMB_RELST_HA": "debug/elf", - "elf.R_PPC_EMB_RELST_HI": "debug/elf", - "elf.R_PPC_EMB_RELST_LO": "debug/elf", - "elf.R_PPC_EMB_SDA21": "debug/elf", - "elf.R_PPC_EMB_SDA2I16": "debug/elf", - "elf.R_PPC_EMB_SDA2REL": "debug/elf", - "elf.R_PPC_EMB_SDAI16": "debug/elf", - "elf.R_PPC_GLOB_DAT": "debug/elf", - "elf.R_PPC_GOT16": "debug/elf", - "elf.R_PPC_GOT16_HA": "debug/elf", - "elf.R_PPC_GOT16_HI": "debug/elf", - "elf.R_PPC_GOT16_LO": "debug/elf", - "elf.R_PPC_GOT_TLSGD16": "debug/elf", - "elf.R_PPC_GOT_TLSGD16_HA": "debug/elf", - "elf.R_PPC_GOT_TLSGD16_HI": "debug/elf", - "elf.R_PPC_GOT_TLSGD16_LO": "debug/elf", - "elf.R_PPC_GOT_TLSLD16": "debug/elf", - "elf.R_PPC_GOT_TLSLD16_HA": "debug/elf", - "elf.R_PPC_GOT_TLSLD16_HI": "debug/elf", - "elf.R_PPC_GOT_TLSLD16_LO": "debug/elf", - "elf.R_PPC_GOT_TPREL16": "debug/elf", - "elf.R_PPC_GOT_TPREL16_HA": "debug/elf", - "elf.R_PPC_GOT_TPREL16_HI": "debug/elf", - "elf.R_PPC_GOT_TPREL16_LO": "debug/elf", - "elf.R_PPC_JMP_SLOT": "debug/elf", - "elf.R_PPC_LOCAL24PC": "debug/elf", - "elf.R_PPC_NONE": "debug/elf", - "elf.R_PPC_PLT16_HA": "debug/elf", - "elf.R_PPC_PLT16_HI": "debug/elf", - "elf.R_PPC_PLT16_LO": "debug/elf", - "elf.R_PPC_PLT32": "debug/elf", - "elf.R_PPC_PLTREL24": "debug/elf", - "elf.R_PPC_PLTREL32": "debug/elf", - "elf.R_PPC_REL14": "debug/elf", - "elf.R_PPC_REL14_BRNTAKEN": "debug/elf", - "elf.R_PPC_REL14_BRTAKEN": "debug/elf", - "elf.R_PPC_REL24": "debug/elf", - "elf.R_PPC_REL32": "debug/elf", - "elf.R_PPC_RELATIVE": "debug/elf", - "elf.R_PPC_SDAREL16": "debug/elf", - "elf.R_PPC_SECTOFF": "debug/elf", - "elf.R_PPC_SECTOFF_HA": "debug/elf", - "elf.R_PPC_SECTOFF_HI": "debug/elf", - "elf.R_PPC_SECTOFF_LO": "debug/elf", - "elf.R_PPC_TLS": "debug/elf", - "elf.R_PPC_TPREL16": "debug/elf", - "elf.R_PPC_TPREL16_HA": "debug/elf", - "elf.R_PPC_TPREL16_HI": "debug/elf", - "elf.R_PPC_TPREL16_LO": "debug/elf", - "elf.R_PPC_TPREL32": "debug/elf", - "elf.R_PPC_UADDR16": "debug/elf", - "elf.R_PPC_UADDR32": "debug/elf", - "elf.R_SPARC": "debug/elf", - "elf.R_SPARC_10": "debug/elf", - "elf.R_SPARC_11": "debug/elf", - "elf.R_SPARC_13": "debug/elf", - "elf.R_SPARC_16": "debug/elf", - "elf.R_SPARC_22": "debug/elf", - "elf.R_SPARC_32": "debug/elf", - "elf.R_SPARC_5": "debug/elf", - "elf.R_SPARC_6": "debug/elf", - "elf.R_SPARC_64": "debug/elf", - "elf.R_SPARC_7": "debug/elf", - "elf.R_SPARC_8": "debug/elf", - "elf.R_SPARC_COPY": "debug/elf", - "elf.R_SPARC_DISP16": "debug/elf", - "elf.R_SPARC_DISP32": "debug/elf", - "elf.R_SPARC_DISP64": "debug/elf", - "elf.R_SPARC_DISP8": "debug/elf", - "elf.R_SPARC_GLOB_DAT": "debug/elf", - "elf.R_SPARC_GLOB_JMP": "debug/elf", - "elf.R_SPARC_GOT10": "debug/elf", - "elf.R_SPARC_GOT13": "debug/elf", - "elf.R_SPARC_GOT22": "debug/elf", - "elf.R_SPARC_H44": "debug/elf", - "elf.R_SPARC_HH22": "debug/elf", - "elf.R_SPARC_HI22": "debug/elf", - "elf.R_SPARC_HIPLT22": "debug/elf", - "elf.R_SPARC_HIX22": "debug/elf", - "elf.R_SPARC_HM10": "debug/elf", - "elf.R_SPARC_JMP_SLOT": "debug/elf", - "elf.R_SPARC_L44": "debug/elf", - "elf.R_SPARC_LM22": "debug/elf", - "elf.R_SPARC_LO10": "debug/elf", - "elf.R_SPARC_LOPLT10": "debug/elf", - "elf.R_SPARC_LOX10": "debug/elf", - "elf.R_SPARC_M44": "debug/elf", - "elf.R_SPARC_NONE": "debug/elf", - "elf.R_SPARC_OLO10": "debug/elf", - "elf.R_SPARC_PC10": "debug/elf", - "elf.R_SPARC_PC22": "debug/elf", - "elf.R_SPARC_PCPLT10": "debug/elf", - "elf.R_SPARC_PCPLT22": "debug/elf", - "elf.R_SPARC_PCPLT32": "debug/elf", - "elf.R_SPARC_PC_HH22": "debug/elf", - "elf.R_SPARC_PC_HM10": "debug/elf", - "elf.R_SPARC_PC_LM22": "debug/elf", - "elf.R_SPARC_PLT32": "debug/elf", - "elf.R_SPARC_PLT64": "debug/elf", - "elf.R_SPARC_REGISTER": "debug/elf", - "elf.R_SPARC_RELATIVE": "debug/elf", - "elf.R_SPARC_UA16": "debug/elf", - "elf.R_SPARC_UA32": "debug/elf", - "elf.R_SPARC_UA64": "debug/elf", - "elf.R_SPARC_WDISP16": "debug/elf", - "elf.R_SPARC_WDISP19": "debug/elf", - "elf.R_SPARC_WDISP22": "debug/elf", - "elf.R_SPARC_WDISP30": "debug/elf", - "elf.R_SPARC_WPLT30": "debug/elf", - "elf.R_SYM32": "debug/elf", - "elf.R_SYM64": "debug/elf", - "elf.R_TYPE32": "debug/elf", - "elf.R_TYPE64": "debug/elf", - "elf.R_X86_64": "debug/elf", - "elf.R_X86_64_16": "debug/elf", - "elf.R_X86_64_32": "debug/elf", - "elf.R_X86_64_32S": "debug/elf", - "elf.R_X86_64_64": "debug/elf", - "elf.R_X86_64_8": "debug/elf", - "elf.R_X86_64_COPY": "debug/elf", - "elf.R_X86_64_DTPMOD64": "debug/elf", - "elf.R_X86_64_DTPOFF32": "debug/elf", - "elf.R_X86_64_DTPOFF64": "debug/elf", - "elf.R_X86_64_GLOB_DAT": "debug/elf", - "elf.R_X86_64_GOT32": "debug/elf", - "elf.R_X86_64_GOTPCREL": "debug/elf", - "elf.R_X86_64_GOTTPOFF": "debug/elf", - "elf.R_X86_64_JMP_SLOT": "debug/elf", - "elf.R_X86_64_NONE": "debug/elf", - "elf.R_X86_64_PC16": "debug/elf", - "elf.R_X86_64_PC32": "debug/elf", - "elf.R_X86_64_PC8": "debug/elf", - "elf.R_X86_64_PLT32": "debug/elf", - "elf.R_X86_64_RELATIVE": "debug/elf", - "elf.R_X86_64_TLSGD": "debug/elf", - "elf.R_X86_64_TLSLD": "debug/elf", - "elf.R_X86_64_TPOFF32": "debug/elf", - "elf.R_X86_64_TPOFF64": "debug/elf", - "elf.Rel32": "debug/elf", - "elf.Rel64": "debug/elf", - "elf.Rela32": "debug/elf", - "elf.Rela64": "debug/elf", - "elf.SHF_ALLOC": "debug/elf", - "elf.SHF_COMPRESSED": "debug/elf", - "elf.SHF_EXECINSTR": "debug/elf", - "elf.SHF_GROUP": "debug/elf", - "elf.SHF_INFO_LINK": "debug/elf", - "elf.SHF_LINK_ORDER": "debug/elf", - "elf.SHF_MASKOS": "debug/elf", - "elf.SHF_MASKPROC": "debug/elf", - "elf.SHF_MERGE": "debug/elf", - "elf.SHF_OS_NONCONFORMING": "debug/elf", - "elf.SHF_STRINGS": "debug/elf", - "elf.SHF_TLS": "debug/elf", - "elf.SHF_WRITE": "debug/elf", - "elf.SHN_ABS": "debug/elf", - "elf.SHN_COMMON": "debug/elf", - "elf.SHN_HIOS": "debug/elf", - "elf.SHN_HIPROC": "debug/elf", - "elf.SHN_HIRESERVE": "debug/elf", - "elf.SHN_LOOS": "debug/elf", - "elf.SHN_LOPROC": "debug/elf", - "elf.SHN_LORESERVE": "debug/elf", - "elf.SHN_UNDEF": "debug/elf", - "elf.SHN_XINDEX": "debug/elf", - "elf.SHT_DYNAMIC": "debug/elf", - "elf.SHT_DYNSYM": "debug/elf", - "elf.SHT_FINI_ARRAY": "debug/elf", - "elf.SHT_GNU_ATTRIBUTES": "debug/elf", - "elf.SHT_GNU_HASH": "debug/elf", - "elf.SHT_GNU_LIBLIST": "debug/elf", - "elf.SHT_GNU_VERDEF": "debug/elf", - "elf.SHT_GNU_VERNEED": "debug/elf", - "elf.SHT_GNU_VERSYM": "debug/elf", - "elf.SHT_GROUP": "debug/elf", - "elf.SHT_HASH": "debug/elf", - "elf.SHT_HIOS": "debug/elf", - "elf.SHT_HIPROC": "debug/elf", - "elf.SHT_HIUSER": "debug/elf", - "elf.SHT_INIT_ARRAY": "debug/elf", - "elf.SHT_LOOS": "debug/elf", - "elf.SHT_LOPROC": "debug/elf", - "elf.SHT_LOUSER": "debug/elf", - "elf.SHT_NOBITS": "debug/elf", - "elf.SHT_NOTE": "debug/elf", - "elf.SHT_NULL": "debug/elf", - "elf.SHT_PREINIT_ARRAY": "debug/elf", - "elf.SHT_PROGBITS": "debug/elf", - "elf.SHT_REL": "debug/elf", - "elf.SHT_RELA": "debug/elf", - "elf.SHT_SHLIB": "debug/elf", - "elf.SHT_STRTAB": "debug/elf", - "elf.SHT_SYMTAB": "debug/elf", - "elf.SHT_SYMTAB_SHNDX": "debug/elf", - "elf.STB_GLOBAL": "debug/elf", - "elf.STB_HIOS": "debug/elf", - "elf.STB_HIPROC": "debug/elf", - "elf.STB_LOCAL": "debug/elf", - "elf.STB_LOOS": "debug/elf", - "elf.STB_LOPROC": "debug/elf", - "elf.STB_WEAK": "debug/elf", - "elf.STT_COMMON": "debug/elf", - "elf.STT_FILE": "debug/elf", - "elf.STT_FUNC": "debug/elf", - "elf.STT_HIOS": "debug/elf", - "elf.STT_HIPROC": "debug/elf", - "elf.STT_LOOS": "debug/elf", - "elf.STT_LOPROC": "debug/elf", - "elf.STT_NOTYPE": "debug/elf", - "elf.STT_OBJECT": "debug/elf", - "elf.STT_SECTION": "debug/elf", - "elf.STT_TLS": "debug/elf", - "elf.STV_DEFAULT": "debug/elf", - "elf.STV_HIDDEN": "debug/elf", - "elf.STV_INTERNAL": "debug/elf", - "elf.STV_PROTECTED": "debug/elf", - "elf.ST_BIND": "debug/elf", - "elf.ST_INFO": "debug/elf", - "elf.ST_TYPE": "debug/elf", - "elf.ST_VISIBILITY": "debug/elf", - "elf.Section": "debug/elf", - "elf.Section32": "debug/elf", - "elf.Section64": "debug/elf", - "elf.SectionFlag": "debug/elf", - "elf.SectionHeader": "debug/elf", - "elf.SectionIndex": "debug/elf", - "elf.SectionType": "debug/elf", - "elf.Sym32": "debug/elf", - "elf.Sym32Size": "debug/elf", - "elf.Sym64": "debug/elf", - "elf.Sym64Size": "debug/elf", - "elf.SymBind": "debug/elf", - "elf.SymType": "debug/elf", - "elf.SymVis": "debug/elf", - "elf.Symbol": "debug/elf", - "elf.Type": "debug/elf", - "elf.Version": "debug/elf", - "elliptic.Curve": "crypto/elliptic", - "elliptic.CurveParams": "crypto/elliptic", - "elliptic.GenerateKey": "crypto/elliptic", - "elliptic.Marshal": "crypto/elliptic", - "elliptic.P224": "crypto/elliptic", - "elliptic.P256": "crypto/elliptic", - "elliptic.P384": "crypto/elliptic", - "elliptic.P521": "crypto/elliptic", - "elliptic.Unmarshal": "crypto/elliptic", - "encoding.BinaryMarshaler": "encoding", - "encoding.BinaryUnmarshaler": "encoding", - "encoding.TextMarshaler": "encoding", - "encoding.TextUnmarshaler": "encoding", - "errors.New": "errors", - "exec.Cmd": "os/exec", - "exec.Command": "os/exec", - "exec.CommandContext": "os/exec", - "exec.ErrNotFound": "os/exec", - "exec.Error": "os/exec", - "exec.ExitError": "os/exec", - "exec.LookPath": "os/exec", - "expvar.Do": "expvar", - "expvar.Float": "expvar", - "expvar.Func": "expvar", - "expvar.Get": "expvar", - "expvar.Handler": "expvar", - "expvar.Int": "expvar", - "expvar.KeyValue": "expvar", - "expvar.Map": "expvar", - "expvar.NewFloat": "expvar", - "expvar.NewInt": "expvar", - "expvar.NewMap": "expvar", - "expvar.NewString": "expvar", - "expvar.Publish": "expvar", - "expvar.String": "expvar", - "expvar.Var": "expvar", - "fcgi.ErrConnClosed": "net/http/fcgi", - "fcgi.ErrRequestAborted": "net/http/fcgi", - "fcgi.Serve": "net/http/fcgi", - "filepath.Abs": "path/filepath", - "filepath.Base": "path/filepath", - "filepath.Clean": "path/filepath", - "filepath.Dir": "path/filepath", - "filepath.ErrBadPattern": "path/filepath", - "filepath.EvalSymlinks": "path/filepath", - "filepath.Ext": "path/filepath", - "filepath.FromSlash": "path/filepath", - "filepath.Glob": "path/filepath", - "filepath.HasPrefix": "path/filepath", - "filepath.IsAbs": "path/filepath", - "filepath.Join": "path/filepath", - "filepath.ListSeparator": "path/filepath", - "filepath.Match": "path/filepath", - "filepath.Rel": "path/filepath", - "filepath.Separator": "path/filepath", - "filepath.SkipDir": "path/filepath", - "filepath.Split": "path/filepath", - "filepath.SplitList": "path/filepath", - "filepath.ToSlash": "path/filepath", - "filepath.VolumeName": "path/filepath", - "filepath.Walk": "path/filepath", - "filepath.WalkFunc": "path/filepath", - "flag.Arg": "flag", - "flag.Args": "flag", - "flag.Bool": "flag", - "flag.BoolVar": "flag", - "flag.CommandLine": "flag", - "flag.ContinueOnError": "flag", - "flag.Duration": "flag", - "flag.DurationVar": "flag", - "flag.ErrHelp": "flag", - "flag.ErrorHandling": "flag", - "flag.ExitOnError": "flag", - "flag.Flag": "flag", - "flag.FlagSet": "flag", - "flag.Float64": "flag", - "flag.Float64Var": "flag", - "flag.Getter": "flag", - "flag.Int": "flag", - "flag.Int64": "flag", - "flag.Int64Var": "flag", - "flag.IntVar": "flag", - "flag.Lookup": "flag", - "flag.NArg": "flag", - "flag.NFlag": "flag", - "flag.NewFlagSet": "flag", - "flag.PanicOnError": "flag", - "flag.Parse": "flag", - "flag.Parsed": "flag", - "flag.PrintDefaults": "flag", - "flag.Set": "flag", - "flag.String": "flag", - "flag.StringVar": "flag", - "flag.Uint": "flag", - "flag.Uint64": "flag", - "flag.Uint64Var": "flag", - "flag.UintVar": "flag", - "flag.UnquoteUsage": "flag", - "flag.Usage": "flag", - "flag.Value": "flag", - "flag.Var": "flag", - "flag.Visit": "flag", - "flag.VisitAll": "flag", - "flate.BestCompression": "compress/flate", - "flate.BestSpeed": "compress/flate", - "flate.CorruptInputError": "compress/flate", - "flate.DefaultCompression": "compress/flate", - "flate.HuffmanOnly": "compress/flate", - "flate.InternalError": "compress/flate", - "flate.NewReader": "compress/flate", - "flate.NewReaderDict": "compress/flate", - "flate.NewWriter": "compress/flate", - "flate.NewWriterDict": "compress/flate", - "flate.NoCompression": "compress/flate", - "flate.ReadError": "compress/flate", - "flate.Reader": "compress/flate", - "flate.Resetter": "compress/flate", - "flate.WriteError": "compress/flate", - "flate.Writer": "compress/flate", - "fmt.Errorf": "fmt", - "fmt.Formatter": "fmt", - "fmt.Fprint": "fmt", - "fmt.Fprintf": "fmt", - "fmt.Fprintln": "fmt", - "fmt.Fscan": "fmt", - "fmt.Fscanf": "fmt", - "fmt.Fscanln": "fmt", - "fmt.GoStringer": "fmt", - "fmt.Print": "fmt", - "fmt.Printf": "fmt", - "fmt.Println": "fmt", - "fmt.Scan": "fmt", - "fmt.ScanState": "fmt", - "fmt.Scanf": "fmt", - "fmt.Scanln": "fmt", - "fmt.Scanner": "fmt", - "fmt.Sprint": "fmt", - "fmt.Sprintf": "fmt", - "fmt.Sprintln": "fmt", - "fmt.Sscan": "fmt", - "fmt.Sscanf": "fmt", - "fmt.Sscanln": "fmt", - "fmt.State": "fmt", - "fmt.Stringer": "fmt", - "fnv.New32": "hash/fnv", - "fnv.New32a": "hash/fnv", - "fnv.New64": "hash/fnv", - "fnv.New64a": "hash/fnv", - "format.Node": "go/format", - "format.Source": "go/format", - "gif.Decode": "image/gif", - "gif.DecodeAll": "image/gif", - "gif.DecodeConfig": "image/gif", - "gif.DisposalBackground": "image/gif", - "gif.DisposalNone": "image/gif", - "gif.DisposalPrevious": "image/gif", - "gif.Encode": "image/gif", - "gif.EncodeAll": "image/gif", - "gif.GIF": "image/gif", - "gif.Options": "image/gif", - "gob.CommonType": "encoding/gob", - "gob.Decoder": "encoding/gob", - "gob.Encoder": "encoding/gob", - "gob.GobDecoder": "encoding/gob", - "gob.GobEncoder": "encoding/gob", - "gob.NewDecoder": "encoding/gob", - "gob.NewEncoder": "encoding/gob", - "gob.Register": "encoding/gob", - "gob.RegisterName": "encoding/gob", - "gosym.DecodingError": "debug/gosym", - "gosym.Func": "debug/gosym", - "gosym.LineTable": "debug/gosym", - "gosym.NewLineTable": "debug/gosym", - "gosym.NewTable": "debug/gosym", - "gosym.Obj": "debug/gosym", - "gosym.Sym": "debug/gosym", - "gosym.Table": "debug/gosym", - "gosym.UnknownFileError": "debug/gosym", - "gosym.UnknownLineError": "debug/gosym", - "gzip.BestCompression": "compress/gzip", - "gzip.BestSpeed": "compress/gzip", - "gzip.DefaultCompression": "compress/gzip", - "gzip.ErrChecksum": "compress/gzip", - "gzip.ErrHeader": "compress/gzip", - "gzip.Header": "compress/gzip", - "gzip.HuffmanOnly": "compress/gzip", - "gzip.NewReader": "compress/gzip", - "gzip.NewWriter": "compress/gzip", - "gzip.NewWriterLevel": "compress/gzip", - "gzip.NoCompression": "compress/gzip", - "gzip.Reader": "compress/gzip", - "gzip.Writer": "compress/gzip", - "hash.Hash": "hash", - "hash.Hash32": "hash", - "hash.Hash64": "hash", - "heap.Fix": "container/heap", - "heap.Init": "container/heap", - "heap.Interface": "container/heap", - "heap.Pop": "container/heap", - "heap.Push": "container/heap", - "heap.Remove": "container/heap", - "hex.Decode": "encoding/hex", - "hex.DecodeString": "encoding/hex", - "hex.DecodedLen": "encoding/hex", - "hex.Dump": "encoding/hex", - "hex.Dumper": "encoding/hex", - "hex.Encode": "encoding/hex", - "hex.EncodeToString": "encoding/hex", - "hex.EncodedLen": "encoding/hex", - "hex.ErrLength": "encoding/hex", - "hex.InvalidByteError": "encoding/hex", - "hmac.Equal": "crypto/hmac", - "hmac.New": "crypto/hmac", - "html.EscapeString": "html", - "html.UnescapeString": "html", - "http.CanonicalHeaderKey": "net/http", - "http.Client": "net/http", - "http.CloseNotifier": "net/http", - "http.ConnState": "net/http", - "http.Cookie": "net/http", - "http.CookieJar": "net/http", - "http.DefaultClient": "net/http", - "http.DefaultMaxHeaderBytes": "net/http", - "http.DefaultMaxIdleConnsPerHost": "net/http", - "http.DefaultServeMux": "net/http", - "http.DefaultTransport": "net/http", - "http.DetectContentType": "net/http", - "http.Dir": "net/http", - "http.ErrAbortHandler": "net/http", - "http.ErrBodyNotAllowed": "net/http", - "http.ErrBodyReadAfterClose": "net/http", - "http.ErrContentLength": "net/http", - "http.ErrHandlerTimeout": "net/http", - "http.ErrHeaderTooLong": "net/http", - "http.ErrHijacked": "net/http", - "http.ErrLineTooLong": "net/http", - "http.ErrMissingBoundary": "net/http", - "http.ErrMissingContentLength": "net/http", - "http.ErrMissingFile": "net/http", - "http.ErrNoCookie": "net/http", - "http.ErrNoLocation": "net/http", - "http.ErrNotMultipart": "net/http", - "http.ErrNotSupported": "net/http", - "http.ErrServerClosed": "net/http", - "http.ErrShortBody": "net/http", - "http.ErrSkipAltProtocol": "net/http", - "http.ErrUnexpectedTrailer": "net/http", - "http.ErrUseLastResponse": "net/http", - "http.ErrWriteAfterFlush": "net/http", - "http.Error": "net/http", - "http.File": "net/http", - "http.FileServer": "net/http", - "http.FileSystem": "net/http", - "http.Flusher": "net/http", - "http.Get": "net/http", - "http.Handle": "net/http", - "http.HandleFunc": "net/http", - "http.Handler": "net/http", - "http.HandlerFunc": "net/http", - "http.Head": "net/http", - "http.Header": "net/http", - "http.Hijacker": "net/http", - "http.ListenAndServe": "net/http", - "http.ListenAndServeTLS": "net/http", - "http.LocalAddrContextKey": "net/http", - "http.MaxBytesReader": "net/http", - "http.MethodConnect": "net/http", - "http.MethodDelete": "net/http", - "http.MethodGet": "net/http", - "http.MethodHead": "net/http", - "http.MethodOptions": "net/http", - "http.MethodPatch": "net/http", - "http.MethodPost": "net/http", - "http.MethodPut": "net/http", - "http.MethodTrace": "net/http", - "http.NewFileTransport": "net/http", - "http.NewRequest": "net/http", - "http.NewServeMux": "net/http", - "http.NoBody": "net/http", - "http.NotFound": "net/http", - "http.NotFoundHandler": "net/http", - "http.ParseHTTPVersion": "net/http", - "http.ParseTime": "net/http", - "http.Post": "net/http", - "http.PostForm": "net/http", - "http.ProtocolError": "net/http", - "http.ProxyFromEnvironment": "net/http", - "http.ProxyURL": "net/http", - "http.PushOptions": "net/http", - "http.Pusher": "net/http", - "http.ReadRequest": "net/http", - "http.ReadResponse": "net/http", - "http.Redirect": "net/http", - "http.RedirectHandler": "net/http", - "http.Request": "net/http", - "http.Response": "net/http", - "http.ResponseWriter": "net/http", - "http.RoundTripper": "net/http", - "http.Serve": "net/http", - "http.ServeContent": "net/http", - "http.ServeFile": "net/http", - "http.ServeMux": "net/http", - "http.Server": "net/http", - "http.ServerContextKey": "net/http", - "http.SetCookie": "net/http", - "http.StateActive": "net/http", - "http.StateClosed": "net/http", - "http.StateHijacked": "net/http", - "http.StateIdle": "net/http", - "http.StateNew": "net/http", - "http.StatusAccepted": "net/http", - "http.StatusAlreadyReported": "net/http", - "http.StatusBadGateway": "net/http", - "http.StatusBadRequest": "net/http", - "http.StatusConflict": "net/http", - "http.StatusContinue": "net/http", - "http.StatusCreated": "net/http", - "http.StatusExpectationFailed": "net/http", - "http.StatusFailedDependency": "net/http", - "http.StatusForbidden": "net/http", - "http.StatusFound": "net/http", - "http.StatusGatewayTimeout": "net/http", - "http.StatusGone": "net/http", - "http.StatusHTTPVersionNotSupported": "net/http", - "http.StatusIMUsed": "net/http", - "http.StatusInsufficientStorage": "net/http", - "http.StatusInternalServerError": "net/http", - "http.StatusLengthRequired": "net/http", - "http.StatusLocked": "net/http", - "http.StatusLoopDetected": "net/http", - "http.StatusMethodNotAllowed": "net/http", - "http.StatusMovedPermanently": "net/http", - "http.StatusMultiStatus": "net/http", - "http.StatusMultipleChoices": "net/http", - "http.StatusNetworkAuthenticationRequired": "net/http", - "http.StatusNoContent": "net/http", - "http.StatusNonAuthoritativeInfo": "net/http", - "http.StatusNotAcceptable": "net/http", - "http.StatusNotExtended": "net/http", - "http.StatusNotFound": "net/http", - "http.StatusNotImplemented": "net/http", - "http.StatusNotModified": "net/http", - "http.StatusOK": "net/http", - "http.StatusPartialContent": "net/http", - "http.StatusPaymentRequired": "net/http", - "http.StatusPermanentRedirect": "net/http", - "http.StatusPreconditionFailed": "net/http", - "http.StatusPreconditionRequired": "net/http", - "http.StatusProcessing": "net/http", - "http.StatusProxyAuthRequired": "net/http", - "http.StatusRequestEntityTooLarge": "net/http", - "http.StatusRequestHeaderFieldsTooLarge": "net/http", - "http.StatusRequestTimeout": "net/http", - "http.StatusRequestURITooLong": "net/http", - "http.StatusRequestedRangeNotSatisfiable": "net/http", - "http.StatusResetContent": "net/http", - "http.StatusSeeOther": "net/http", - "http.StatusServiceUnavailable": "net/http", - "http.StatusSwitchingProtocols": "net/http", - "http.StatusTeapot": "net/http", - "http.StatusTemporaryRedirect": "net/http", - "http.StatusText": "net/http", - "http.StatusTooManyRequests": "net/http", - "http.StatusUnauthorized": "net/http", - "http.StatusUnavailableForLegalReasons": "net/http", - "http.StatusUnprocessableEntity": "net/http", - "http.StatusUnsupportedMediaType": "net/http", - "http.StatusUpgradeRequired": "net/http", - "http.StatusUseProxy": "net/http", - "http.StatusVariantAlsoNegotiates": "net/http", - "http.StripPrefix": "net/http", - "http.TimeFormat": "net/http", - "http.TimeoutHandler": "net/http", - "http.TrailerPrefix": "net/http", - "http.Transport": "net/http", - "httptest.DefaultRemoteAddr": "net/http/httptest", - "httptest.NewRecorder": "net/http/httptest", - "httptest.NewRequest": "net/http/httptest", - "httptest.NewServer": "net/http/httptest", - "httptest.NewTLSServer": "net/http/httptest", - "httptest.NewUnstartedServer": "net/http/httptest", - "httptest.ResponseRecorder": "net/http/httptest", - "httptest.Server": "net/http/httptest", - "httptrace.ClientTrace": "net/http/httptrace", - "httptrace.ContextClientTrace": "net/http/httptrace", - "httptrace.DNSDoneInfo": "net/http/httptrace", - "httptrace.DNSStartInfo": "net/http/httptrace", - "httptrace.GotConnInfo": "net/http/httptrace", - "httptrace.WithClientTrace": "net/http/httptrace", - "httptrace.WroteRequestInfo": "net/http/httptrace", - "httputil.BufferPool": "net/http/httputil", - "httputil.ClientConn": "net/http/httputil", - "httputil.DumpRequest": "net/http/httputil", - "httputil.DumpRequestOut": "net/http/httputil", - "httputil.DumpResponse": "net/http/httputil", - "httputil.ErrClosed": "net/http/httputil", - "httputil.ErrLineTooLong": "net/http/httputil", - "httputil.ErrPersistEOF": "net/http/httputil", - "httputil.ErrPipeline": "net/http/httputil", - "httputil.NewChunkedReader": "net/http/httputil", - "httputil.NewChunkedWriter": "net/http/httputil", - "httputil.NewClientConn": "net/http/httputil", - "httputil.NewProxyClientConn": "net/http/httputil", - "httputil.NewServerConn": "net/http/httputil", - "httputil.NewSingleHostReverseProxy": "net/http/httputil", - "httputil.ReverseProxy": "net/http/httputil", - "httputil.ServerConn": "net/http/httputil", - "image.Alpha": "image", - "image.Alpha16": "image", - "image.Black": "image", - "image.CMYK": "image", - "image.Config": "image", - "image.Decode": "image", - "image.DecodeConfig": "image", - "image.ErrFormat": "image", - "image.Gray": "image", - "image.Gray16": "image", - "image.Image": "image", - "image.NRGBA": "image", - "image.NRGBA64": "image", - "image.NYCbCrA": "image", - "image.NewAlpha": "image", - "image.NewAlpha16": "image", - "image.NewCMYK": "image", - "image.NewGray": "image", - "image.NewGray16": "image", - "image.NewNRGBA": "image", - "image.NewNRGBA64": "image", - "image.NewNYCbCrA": "image", - "image.NewPaletted": "image", - "image.NewRGBA": "image", - "image.NewRGBA64": "image", - "image.NewUniform": "image", - "image.NewYCbCr": "image", - "image.Opaque": "image", - "image.Paletted": "image", - "image.PalettedImage": "image", - "image.Point": "image", - "image.Pt": "image", - "image.RGBA": "image", - "image.RGBA64": "image", - "image.Rect": "image", - "image.Rectangle": "image", - "image.RegisterFormat": "image", - "image.Transparent": "image", - "image.Uniform": "image", - "image.White": "image", - "image.YCbCr": "image", - "image.YCbCrSubsampleRatio": "image", - "image.YCbCrSubsampleRatio410": "image", - "image.YCbCrSubsampleRatio411": "image", - "image.YCbCrSubsampleRatio420": "image", - "image.YCbCrSubsampleRatio422": "image", - "image.YCbCrSubsampleRatio440": "image", - "image.YCbCrSubsampleRatio444": "image", - "image.ZP": "image", - "image.ZR": "image", - "importer.Default": "go/importer", - "importer.For": "go/importer", - "importer.Lookup": "go/importer", - "io.ByteReader": "io", - "io.ByteScanner": "io", - "io.ByteWriter": "io", - "io.Closer": "io", - "io.Copy": "io", - "io.CopyBuffer": "io", - "io.CopyN": "io", - "io.EOF": "io", - "io.ErrClosedPipe": "io", - "io.ErrNoProgress": "io", - "io.ErrShortBuffer": "io", - "io.ErrShortWrite": "io", - "io.ErrUnexpectedEOF": "io", - "io.LimitReader": "io", - "io.LimitedReader": "io", - "io.MultiReader": "io", - "io.MultiWriter": "io", - "io.NewSectionReader": "io", - "io.Pipe": "io", - "io.PipeReader": "io", - "io.PipeWriter": "io", - "io.ReadAtLeast": "io", - "io.ReadCloser": "io", - "io.ReadFull": "io", - "io.ReadSeeker": "io", - "io.ReadWriteCloser": "io", - "io.ReadWriteSeeker": "io", - "io.ReadWriter": "io", - "io.Reader": "io", - "io.ReaderAt": "io", - "io.ReaderFrom": "io", - "io.RuneReader": "io", - "io.RuneScanner": "io", - "io.SectionReader": "io", - "io.SeekCurrent": "io", - "io.SeekEnd": "io", - "io.SeekStart": "io", - "io.Seeker": "io", - "io.TeeReader": "io", - "io.WriteCloser": "io", - "io.WriteSeeker": "io", - "io.WriteString": "io", - "io.Writer": "io", - "io.WriterAt": "io", - "io.WriterTo": "io", - "iotest.DataErrReader": "testing/iotest", - "iotest.ErrTimeout": "testing/iotest", - "iotest.HalfReader": "testing/iotest", - "iotest.NewReadLogger": "testing/iotest", - "iotest.NewWriteLogger": "testing/iotest", - "iotest.OneByteReader": "testing/iotest", - "iotest.TimeoutReader": "testing/iotest", - "iotest.TruncateWriter": "testing/iotest", - "ioutil.Discard": "io/ioutil", - "ioutil.NopCloser": "io/ioutil", - "ioutil.ReadAll": "io/ioutil", - "ioutil.ReadDir": "io/ioutil", - "ioutil.ReadFile": "io/ioutil", - "ioutil.TempDir": "io/ioutil", - "ioutil.TempFile": "io/ioutil", - "ioutil.WriteFile": "io/ioutil", - "jpeg.Decode": "image/jpeg", - "jpeg.DecodeConfig": "image/jpeg", - "jpeg.DefaultQuality": "image/jpeg", - "jpeg.Encode": "image/jpeg", - "jpeg.FormatError": "image/jpeg", - "jpeg.Options": "image/jpeg", - "jpeg.Reader": "image/jpeg", - "jpeg.UnsupportedError": "image/jpeg", - "json.Compact": "encoding/json", - "json.Decoder": "encoding/json", - "json.Delim": "encoding/json", - "json.Encoder": "encoding/json", - "json.HTMLEscape": "encoding/json", - "json.Indent": "encoding/json", - "json.InvalidUTF8Error": "encoding/json", - "json.InvalidUnmarshalError": "encoding/json", - "json.Marshal": "encoding/json", - "json.MarshalIndent": "encoding/json", - "json.Marshaler": "encoding/json", - "json.MarshalerError": "encoding/json", - "json.NewDecoder": "encoding/json", - "json.NewEncoder": "encoding/json", - "json.Number": "encoding/json", - "json.RawMessage": "encoding/json", - "json.SyntaxError": "encoding/json", - "json.Token": "encoding/json", - "json.Unmarshal": "encoding/json", - "json.UnmarshalFieldError": "encoding/json", - "json.UnmarshalTypeError": "encoding/json", - "json.Unmarshaler": "encoding/json", - "json.UnsupportedTypeError": "encoding/json", - "json.UnsupportedValueError": "encoding/json", - "jsonrpc.Dial": "net/rpc/jsonrpc", - "jsonrpc.NewClient": "net/rpc/jsonrpc", - "jsonrpc.NewClientCodec": "net/rpc/jsonrpc", - "jsonrpc.NewServerCodec": "net/rpc/jsonrpc", - "jsonrpc.ServeConn": "net/rpc/jsonrpc", - "list.Element": "container/list", - "list.List": "container/list", - "list.New": "container/list", - "log.Fatal": "log", - "log.Fatalf": "log", - "log.Fatalln": "log", - "log.Flags": "log", - "log.LUTC": "log", - "log.Ldate": "log", - "log.Llongfile": "log", - "log.Lmicroseconds": "log", - "log.Logger": "log", - "log.Lshortfile": "log", - "log.LstdFlags": "log", - "log.Ltime": "log", - "log.New": "log", - "log.Output": "log", - "log.Panic": "log", - "log.Panicf": "log", - "log.Panicln": "log", - "log.Prefix": "log", - "log.Print": "log", - "log.Printf": "log", - "log.Println": "log", - "log.SetFlags": "log", - "log.SetOutput": "log", - "log.SetPrefix": "log", - "lzw.LSB": "compress/lzw", - "lzw.MSB": "compress/lzw", - "lzw.NewReader": "compress/lzw", - "lzw.NewWriter": "compress/lzw", - "lzw.Order": "compress/lzw", - "macho.Cpu": "debug/macho", - "macho.Cpu386": "debug/macho", - "macho.CpuAmd64": "debug/macho", - "macho.CpuArm": "debug/macho", - "macho.CpuPpc": "debug/macho", - "macho.CpuPpc64": "debug/macho", - "macho.Dylib": "debug/macho", - "macho.DylibCmd": "debug/macho", - "macho.Dysymtab": "debug/macho", - "macho.DysymtabCmd": "debug/macho", - "macho.ErrNotFat": "debug/macho", - "macho.FatArch": "debug/macho", - "macho.FatArchHeader": "debug/macho", - "macho.FatFile": "debug/macho", - "macho.File": "debug/macho", - "macho.FileHeader": "debug/macho", - "macho.FormatError": "debug/macho", - "macho.Load": "debug/macho", - "macho.LoadBytes": "debug/macho", - "macho.LoadCmd": "debug/macho", - "macho.LoadCmdDylib": "debug/macho", - "macho.LoadCmdDylinker": "debug/macho", - "macho.LoadCmdDysymtab": "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.NewFile": "debug/macho", - "macho.Nlist32": "debug/macho", - "macho.Nlist64": "debug/macho", - "macho.Open": "debug/macho", - "macho.OpenFat": "debug/macho", - "macho.Regs386": "debug/macho", - "macho.RegsAMD64": "debug/macho", - "macho.Section": "debug/macho", - "macho.Section32": "debug/macho", - "macho.Section64": "debug/macho", - "macho.SectionHeader": "debug/macho", - "macho.Segment": "debug/macho", - "macho.Segment32": "debug/macho", - "macho.Segment64": "debug/macho", - "macho.SegmentHeader": "debug/macho", - "macho.Symbol": "debug/macho", - "macho.Symtab": "debug/macho", - "macho.SymtabCmd": "debug/macho", - "macho.Thread": "debug/macho", - "macho.Type": "debug/macho", - "macho.TypeBundle": "debug/macho", - "macho.TypeDylib": "debug/macho", - "macho.TypeExec": "debug/macho", - "macho.TypeObj": "debug/macho", - "mail.Address": "net/mail", - "mail.AddressParser": "net/mail", - "mail.ErrHeaderNotPresent": "net/mail", - "mail.Header": "net/mail", - "mail.Message": "net/mail", - "mail.ParseAddress": "net/mail", - "mail.ParseAddressList": "net/mail", - "mail.ParseDate": "net/mail", - "mail.ReadMessage": "net/mail", - "math.Abs": "math", - "math.Acos": "math", - "math.Acosh": "math", - "math.Asin": "math", - "math.Asinh": "math", - "math.Atan": "math", - "math.Atan2": "math", - "math.Atanh": "math", - "math.Cbrt": "math", - "math.Ceil": "math", - "math.Copysign": "math", - "math.Cos": "math", - "math.Cosh": "math", - "math.Dim": "math", - "math.E": "math", - "math.Erf": "math", - "math.Erfc": "math", - "math.Exp": "math", - "math.Exp2": "math", - "math.Expm1": "math", - "math.Float32bits": "math", - "math.Float32frombits": "math", - "math.Float64bits": "math", - "math.Float64frombits": "math", - "math.Floor": "math", - "math.Frexp": "math", - "math.Gamma": "math", - "math.Hypot": "math", - "math.Ilogb": "math", - "math.Inf": "math", - "math.IsInf": "math", - "math.IsNaN": "math", - "math.J0": "math", - "math.J1": "math", - "math.Jn": "math", - "math.Ldexp": "math", - "math.Lgamma": "math", - "math.Ln10": "math", - "math.Ln2": "math", - "math.Log": "math", - "math.Log10": "math", - "math.Log10E": "math", - "math.Log1p": "math", - "math.Log2": "math", - "math.Log2E": "math", - "math.Logb": "math", - "math.Max": "math", - "math.MaxFloat32": "math", - "math.MaxFloat64": "math", - "math.MaxInt16": "math", - "math.MaxInt32": "math", - "math.MaxInt64": "math", - "math.MaxInt8": "math", - "math.MaxUint16": "math", - "math.MaxUint32": "math", - "math.MaxUint64": "math", - "math.MaxUint8": "math", - "math.Min": "math", - "math.MinInt16": "math", - "math.MinInt32": "math", - "math.MinInt64": "math", - "math.MinInt8": "math", - "math.Mod": "math", - "math.Modf": "math", - "math.NaN": "math", - "math.Nextafter": "math", - "math.Nextafter32": "math", - "math.Phi": "math", - "math.Pi": "math", - "math.Pow": "math", - "math.Pow10": "math", - "math.Remainder": "math", - "math.Signbit": "math", - "math.Sin": "math", - "math.Sincos": "math", - "math.Sinh": "math", - "math.SmallestNonzeroFloat32": "math", - "math.SmallestNonzeroFloat64": "math", - "math.Sqrt": "math", - "math.Sqrt2": "math", - "math.SqrtE": "math", - "math.SqrtPhi": "math", - "math.SqrtPi": "math", - "math.Tan": "math", - "math.Tanh": "math", - "math.Trunc": "math", - "math.Y0": "math", - "math.Y1": "math", - "math.Yn": "math", - "md5.BlockSize": "crypto/md5", - "md5.New": "crypto/md5", - "md5.Size": "crypto/md5", - "md5.Sum": "crypto/md5", - "mime.AddExtensionType": "mime", - "mime.BEncoding": "mime", - "mime.ExtensionsByType": "mime", - "mime.FormatMediaType": "mime", - "mime.ParseMediaType": "mime", - "mime.QEncoding": "mime", - "mime.TypeByExtension": "mime", - "mime.WordDecoder": "mime", - "mime.WordEncoder": "mime", - "multipart.File": "mime/multipart", - "multipart.FileHeader": "mime/multipart", - "multipart.Form": "mime/multipart", - "multipart.NewReader": "mime/multipart", - "multipart.NewWriter": "mime/multipart", - "multipart.Part": "mime/multipart", - "multipart.Reader": "mime/multipart", - "multipart.Writer": "mime/multipart", - "net.Addr": "net", - "net.AddrError": "net", - "net.Buffers": "net", - "net.CIDRMask": "net", - "net.Conn": "net", - "net.DNSConfigError": "net", - "net.DNSError": "net", - "net.DefaultResolver": "net", - "net.Dial": "net", - "net.DialIP": "net", - "net.DialTCP": "net", - "net.DialTimeout": "net", - "net.DialUDP": "net", - "net.DialUnix": "net", - "net.Dialer": "net", - "net.ErrWriteToConnected": "net", - "net.Error": "net", - "net.FileConn": "net", - "net.FileListener": "net", - "net.FilePacketConn": "net", - "net.FlagBroadcast": "net", - "net.FlagLoopback": "net", - "net.FlagMulticast": "net", - "net.FlagPointToPoint": "net", - "net.FlagUp": "net", - "net.Flags": "net", - "net.HardwareAddr": "net", - "net.IP": "net", - "net.IPAddr": "net", - "net.IPConn": "net", - "net.IPMask": "net", - "net.IPNet": "net", - "net.IPv4": "net", - "net.IPv4Mask": "net", - "net.IPv4allrouter": "net", - "net.IPv4allsys": "net", - "net.IPv4bcast": "net", - "net.IPv4len": "net", - "net.IPv4zero": "net", - "net.IPv6interfacelocalallnodes": "net", - "net.IPv6len": "net", - "net.IPv6linklocalallnodes": "net", - "net.IPv6linklocalallrouters": "net", - "net.IPv6loopback": "net", - "net.IPv6unspecified": "net", - "net.IPv6zero": "net", - "net.Interface": "net", - "net.InterfaceAddrs": "net", - "net.InterfaceByIndex": "net", - "net.InterfaceByName": "net", - "net.Interfaces": "net", - "net.InvalidAddrError": "net", - "net.JoinHostPort": "net", - "net.Listen": "net", - "net.ListenIP": "net", - "net.ListenMulticastUDP": "net", - "net.ListenPacket": "net", - "net.ListenTCP": "net", - "net.ListenUDP": "net", - "net.ListenUnix": "net", - "net.ListenUnixgram": "net", - "net.Listener": "net", - "net.LookupAddr": "net", - "net.LookupCNAME": "net", - "net.LookupHost": "net", - "net.LookupIP": "net", - "net.LookupMX": "net", - "net.LookupNS": "net", - "net.LookupPort": "net", - "net.LookupSRV": "net", - "net.LookupTXT": "net", - "net.MX": "net", - "net.NS": "net", - "net.OpError": "net", - "net.PacketConn": "net", - "net.ParseCIDR": "net", - "net.ParseError": "net", - "net.ParseIP": "net", - "net.ParseMAC": "net", - "net.Pipe": "net", - "net.ResolveIPAddr": "net", - "net.ResolveTCPAddr": "net", - "net.ResolveUDPAddr": "net", - "net.ResolveUnixAddr": "net", - "net.Resolver": "net", - "net.SRV": "net", - "net.SplitHostPort": "net", - "net.TCPAddr": "net", - "net.TCPConn": "net", - "net.TCPListener": "net", - "net.UDPAddr": "net", - "net.UDPConn": "net", - "net.UnixAddr": "net", - "net.UnixConn": "net", - "net.UnixListener": "net", - "net.UnknownNetworkError": "net", - "os.Args": "os", - "os.Chdir": "os", - "os.Chmod": "os", - "os.Chown": "os", - "os.Chtimes": "os", - "os.Clearenv": "os", - "os.Create": "os", - "os.DevNull": "os", - "os.Environ": "os", - "os.ErrClosed": "os", - "os.ErrExist": "os", - "os.ErrInvalid": "os", - "os.ErrNotExist": "os", - "os.ErrPermission": "os", - "os.Executable": "os", - "os.Exit": "os", - "os.Expand": "os", - "os.ExpandEnv": "os", - "os.File": "os", - "os.FileInfo": "os", - "os.FileMode": "os", - "os.FindProcess": "os", - "os.Getegid": "os", - "os.Getenv": "os", - "os.Geteuid": "os", - "os.Getgid": "os", - "os.Getgroups": "os", - "os.Getpagesize": "os", - "os.Getpid": "os", - "os.Getppid": "os", - "os.Getuid": "os", - "os.Getwd": "os", - "os.Hostname": "os", - "os.Interrupt": "os", - "os.IsExist": "os", - "os.IsNotExist": "os", - "os.IsPathSeparator": "os", - "os.IsPermission": "os", - "os.Kill": "os", - "os.Lchown": "os", - "os.Link": "os", - "os.LinkError": "os", - "os.LookupEnv": "os", - "os.Lstat": "os", - "os.Mkdir": "os", - "os.MkdirAll": "os", - "os.ModeAppend": "os", - "os.ModeCharDevice": "os", - "os.ModeDevice": "os", - "os.ModeDir": "os", - "os.ModeExclusive": "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.NewFile": "os", - "os.NewSyscallError": "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.Open": "os", - "os.OpenFile": "os", - "os.PathError": "os", - "os.PathListSeparator": "os", - "os.PathSeparator": "os", - "os.Pipe": "os", - "os.ProcAttr": "os", - "os.Process": "os", - "os.ProcessState": "os", - "os.Readlink": "os", - "os.Remove": "os", - "os.RemoveAll": "os", - "os.Rename": "os", - "os.SEEK_CUR": "os", - "os.SEEK_END": "os", - "os.SEEK_SET": "os", - "os.SameFile": "os", - "os.Setenv": "os", - "os.Signal": "os", - "os.StartProcess": "os", - "os.Stat": "os", - "os.Stderr": "os", - "os.Stdin": "os", - "os.Stdout": "os", - "os.Symlink": "os", - "os.SyscallError": "os", - "os.TempDir": "os", - "os.Truncate": "os", - "os.Unsetenv": "os", - "palette.Plan9": "image/color/palette", - "palette.WebSafe": "image/color/palette", - "parse.ActionNode": "text/template/parse", - "parse.BoolNode": "text/template/parse", - "parse.BranchNode": "text/template/parse", - "parse.ChainNode": "text/template/parse", - "parse.CommandNode": "text/template/parse", - "parse.DotNode": "text/template/parse", - "parse.FieldNode": "text/template/parse", - "parse.IdentifierNode": "text/template/parse", - "parse.IfNode": "text/template/parse", - "parse.IsEmptyTree": "text/template/parse", - "parse.ListNode": "text/template/parse", - "parse.New": "text/template/parse", - "parse.NewIdentifier": "text/template/parse", - "parse.NilNode": "text/template/parse", - "parse.Node": "text/template/parse", - "parse.NodeAction": "text/template/parse", - "parse.NodeBool": "text/template/parse", - "parse.NodeChain": "text/template/parse", - "parse.NodeCommand": "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.NodeType": "text/template/parse", - "parse.NodeVariable": "text/template/parse", - "parse.NodeWith": "text/template/parse", - "parse.NumberNode": "text/template/parse", - "parse.Parse": "text/template/parse", - "parse.PipeNode": "text/template/parse", - "parse.Pos": "text/template/parse", - "parse.RangeNode": "text/template/parse", - "parse.StringNode": "text/template/parse", - "parse.TemplateNode": "text/template/parse", - "parse.TextNode": "text/template/parse", - "parse.Tree": "text/template/parse", - "parse.VariableNode": "text/template/parse", - "parse.WithNode": "text/template/parse", - "parser.AllErrors": "go/parser", - "parser.DeclarationErrors": "go/parser", - "parser.ImportsOnly": "go/parser", - "parser.Mode": "go/parser", - "parser.PackageClauseOnly": "go/parser", - "parser.ParseComments": "go/parser", - "parser.ParseDir": "go/parser", - "parser.ParseExpr": "go/parser", - "parser.ParseExprFrom": "go/parser", - "parser.ParseFile": "go/parser", - "parser.SpuriousErrors": "go/parser", - "parser.Trace": "go/parser", - "path.Base": "path", - "path.Clean": "path", - "path.Dir": "path", - "path.ErrBadPattern": "path", - "path.Ext": "path", - "path.IsAbs": "path", - "path.Join": "path", - "path.Match": "path", - "path.Split": "path", - "pe.COFFSymbol": "debug/pe", - "pe.COFFSymbolSize": "debug/pe", - "pe.DataDirectory": "debug/pe", - "pe.File": "debug/pe", - "pe.FileHeader": "debug/pe", - "pe.FormatError": "debug/pe", - "pe.IMAGE_FILE_MACHINE_AM33": "debug/pe", - "pe.IMAGE_FILE_MACHINE_AMD64": "debug/pe", - "pe.IMAGE_FILE_MACHINE_ARM": "debug/pe", - "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_M32R": "debug/pe", - "pe.IMAGE_FILE_MACHINE_MIPS16": "debug/pe", - "pe.IMAGE_FILE_MACHINE_MIPSFPU": "debug/pe", - "pe.IMAGE_FILE_MACHINE_MIPSFPU16": "debug/pe", - "pe.IMAGE_FILE_MACHINE_POWERPC": "debug/pe", - "pe.IMAGE_FILE_MACHINE_POWERPCFP": "debug/pe", - "pe.IMAGE_FILE_MACHINE_R4000": "debug/pe", - "pe.IMAGE_FILE_MACHINE_SH3": "debug/pe", - "pe.IMAGE_FILE_MACHINE_SH3DSP": "debug/pe", - "pe.IMAGE_FILE_MACHINE_SH4": "debug/pe", - "pe.IMAGE_FILE_MACHINE_SH5": "debug/pe", - "pe.IMAGE_FILE_MACHINE_THUMB": "debug/pe", - "pe.IMAGE_FILE_MACHINE_UNKNOWN": "debug/pe", - "pe.IMAGE_FILE_MACHINE_WCEMIPSV2": "debug/pe", - "pe.ImportDirectory": "debug/pe", - "pe.NewFile": "debug/pe", - "pe.Open": "debug/pe", - "pe.OptionalHeader32": "debug/pe", - "pe.OptionalHeader64": "debug/pe", - "pe.Reloc": "debug/pe", - "pe.Section": "debug/pe", - "pe.SectionHeader": "debug/pe", - "pe.SectionHeader32": "debug/pe", - "pe.StringTable": "debug/pe", - "pe.Symbol": "debug/pe", - "pem.Block": "encoding/pem", - "pem.Decode": "encoding/pem", - "pem.Encode": "encoding/pem", - "pem.EncodeToMemory": "encoding/pem", - "pkix.AlgorithmIdentifier": "crypto/x509/pkix", - "pkix.AttributeTypeAndValue": "crypto/x509/pkix", - "pkix.AttributeTypeAndValueSET": "crypto/x509/pkix", - "pkix.CertificateList": "crypto/x509/pkix", - "pkix.Extension": "crypto/x509/pkix", - "pkix.Name": "crypto/x509/pkix", - "pkix.RDNSequence": "crypto/x509/pkix", - "pkix.RelativeDistinguishedNameSET": "crypto/x509/pkix", - "pkix.RevokedCertificate": "crypto/x509/pkix", - "pkix.TBSCertificateList": "crypto/x509/pkix", - "plan9obj.File": "debug/plan9obj", - "plan9obj.FileHeader": "debug/plan9obj", - "plan9obj.Magic386": "debug/plan9obj", - "plan9obj.Magic64": "debug/plan9obj", - "plan9obj.MagicAMD64": "debug/plan9obj", - "plan9obj.MagicARM": "debug/plan9obj", - "plan9obj.NewFile": "debug/plan9obj", - "plan9obj.Open": "debug/plan9obj", - "plan9obj.Section": "debug/plan9obj", - "plan9obj.SectionHeader": "debug/plan9obj", - "plan9obj.Sym": "debug/plan9obj", - "plugin.Open": "plugin", - "plugin.Plugin": "plugin", - "plugin.Symbol": "plugin", - "png.BestCompression": "image/png", - "png.BestSpeed": "image/png", - "png.CompressionLevel": "image/png", - "png.Decode": "image/png", - "png.DecodeConfig": "image/png", - "png.DefaultCompression": "image/png", - "png.Encode": "image/png", - "png.Encoder": "image/png", - "png.FormatError": "image/png", - "png.NoCompression": "image/png", - "png.UnsupportedError": "image/png", - "pprof.Cmdline": "net/http/pprof", - "pprof.Handler": "net/http/pprof", - "pprof.Index": "net/http/pprof", - "pprof.Lookup": "runtime/pprof", - "pprof.NewProfile": "runtime/pprof", - // "pprof.Profile" is ambiguous - "pprof.Profiles": "runtime/pprof", - "pprof.StartCPUProfile": "runtime/pprof", - "pprof.StopCPUProfile": "runtime/pprof", - "pprof.Symbol": "net/http/pprof", - "pprof.Trace": "net/http/pprof", - "pprof.WriteHeapProfile": "runtime/pprof", - "printer.CommentedNode": "go/printer", - "printer.Config": "go/printer", - "printer.Fprint": "go/printer", - "printer.Mode": "go/printer", - "printer.RawFormat": "go/printer", - "printer.SourcePos": "go/printer", - "printer.TabIndent": "go/printer", - "printer.UseSpaces": "go/printer", - "quick.Check": "testing/quick", - "quick.CheckEqual": "testing/quick", - "quick.CheckEqualError": "testing/quick", - "quick.CheckError": "testing/quick", - "quick.Config": "testing/quick", - "quick.Generator": "testing/quick", - "quick.SetupError": "testing/quick", - "quick.Value": "testing/quick", - "quotedprintable.NewReader": "mime/quotedprintable", - "quotedprintable.NewWriter": "mime/quotedprintable", - "quotedprintable.Reader": "mime/quotedprintable", - "quotedprintable.Writer": "mime/quotedprintable", - "rand.ExpFloat64": "math/rand", - "rand.Float32": "math/rand", - "rand.Float64": "math/rand", - // "rand.Int" is ambiguous - "rand.Int31": "math/rand", - "rand.Int31n": "math/rand", - "rand.Int63": "math/rand", - "rand.Int63n": "math/rand", - "rand.Intn": "math/rand", - "rand.New": "math/rand", - "rand.NewSource": "math/rand", - "rand.NewZipf": "math/rand", - "rand.NormFloat64": "math/rand", - "rand.Perm": "math/rand", - "rand.Prime": "crypto/rand", - "rand.Rand": "math/rand", - // "rand.Read" is ambiguous - "rand.Reader": "crypto/rand", - "rand.Seed": "math/rand", - "rand.Source": "math/rand", - "rand.Source64": "math/rand", - "rand.Uint32": "math/rand", - "rand.Uint64": "math/rand", - "rand.Zipf": "math/rand", - "rc4.Cipher": "crypto/rc4", - "rc4.KeySizeError": "crypto/rc4", - "rc4.NewCipher": "crypto/rc4", - "reflect.Append": "reflect", - "reflect.AppendSlice": "reflect", - "reflect.Array": "reflect", - "reflect.ArrayOf": "reflect", - "reflect.Bool": "reflect", - "reflect.BothDir": "reflect", - "reflect.Chan": "reflect", - "reflect.ChanDir": "reflect", - "reflect.ChanOf": "reflect", - "reflect.Complex128": "reflect", - "reflect.Complex64": "reflect", - "reflect.Copy": "reflect", - "reflect.DeepEqual": "reflect", - "reflect.Float32": "reflect", - "reflect.Float64": "reflect", - "reflect.Func": "reflect", - "reflect.FuncOf": "reflect", - "reflect.Indirect": "reflect", - "reflect.Int": "reflect", - "reflect.Int16": "reflect", - "reflect.Int32": "reflect", - "reflect.Int64": "reflect", - "reflect.Int8": "reflect", - "reflect.Interface": "reflect", - "reflect.Invalid": "reflect", - "reflect.Kind": "reflect", - "reflect.MakeChan": "reflect", - "reflect.MakeFunc": "reflect", - "reflect.MakeMap": "reflect", - "reflect.MakeSlice": "reflect", - "reflect.Map": "reflect", - "reflect.MapOf": "reflect", - "reflect.Method": "reflect", - "reflect.New": "reflect", - "reflect.NewAt": "reflect", - "reflect.Ptr": "reflect", - "reflect.PtrTo": "reflect", - "reflect.RecvDir": "reflect", - "reflect.Select": "reflect", - "reflect.SelectCase": "reflect", - "reflect.SelectDefault": "reflect", - "reflect.SelectDir": "reflect", - "reflect.SelectRecv": "reflect", - "reflect.SelectSend": "reflect", - "reflect.SendDir": "reflect", - "reflect.Slice": "reflect", - "reflect.SliceHeader": "reflect", - "reflect.SliceOf": "reflect", - "reflect.String": "reflect", - "reflect.StringHeader": "reflect", - "reflect.Struct": "reflect", - "reflect.StructField": "reflect", - "reflect.StructOf": "reflect", - "reflect.StructTag": "reflect", - "reflect.Swapper": "reflect", - "reflect.TypeOf": "reflect", - "reflect.Uint": "reflect", - "reflect.Uint16": "reflect", - "reflect.Uint32": "reflect", - "reflect.Uint64": "reflect", - "reflect.Uint8": "reflect", - "reflect.Uintptr": "reflect", - "reflect.UnsafePointer": "reflect", - "reflect.Value": "reflect", - "reflect.ValueError": "reflect", - "reflect.ValueOf": "reflect", - "reflect.Zero": "reflect", - "regexp.Compile": "regexp", - "regexp.CompilePOSIX": "regexp", - "regexp.Match": "regexp", - "regexp.MatchReader": "regexp", - "regexp.MatchString": "regexp", - "regexp.MustCompile": "regexp", - "regexp.MustCompilePOSIX": "regexp", - "regexp.QuoteMeta": "regexp", - "regexp.Regexp": "regexp", - "ring.New": "container/ring", - "ring.Ring": "container/ring", - "rpc.Accept": "net/rpc", - "rpc.Call": "net/rpc", - "rpc.Client": "net/rpc", - "rpc.ClientCodec": "net/rpc", - "rpc.DefaultDebugPath": "net/rpc", - "rpc.DefaultRPCPath": "net/rpc", - "rpc.DefaultServer": "net/rpc", - "rpc.Dial": "net/rpc", - "rpc.DialHTTP": "net/rpc", - "rpc.DialHTTPPath": "net/rpc", - "rpc.ErrShutdown": "net/rpc", - "rpc.HandleHTTP": "net/rpc", - "rpc.NewClient": "net/rpc", - "rpc.NewClientWithCodec": "net/rpc", - "rpc.NewServer": "net/rpc", - "rpc.Register": "net/rpc", - "rpc.RegisterName": "net/rpc", - "rpc.Request": "net/rpc", - "rpc.Response": "net/rpc", - "rpc.ServeCodec": "net/rpc", - "rpc.ServeConn": "net/rpc", - "rpc.ServeRequest": "net/rpc", - "rpc.Server": "net/rpc", - "rpc.ServerCodec": "net/rpc", - "rpc.ServerError": "net/rpc", - "rsa.CRTValue": "crypto/rsa", - "rsa.DecryptOAEP": "crypto/rsa", - "rsa.DecryptPKCS1v15": "crypto/rsa", - "rsa.DecryptPKCS1v15SessionKey": "crypto/rsa", - "rsa.EncryptOAEP": "crypto/rsa", - "rsa.EncryptPKCS1v15": "crypto/rsa", - "rsa.ErrDecryption": "crypto/rsa", - "rsa.ErrMessageTooLong": "crypto/rsa", - "rsa.ErrVerification": "crypto/rsa", - "rsa.GenerateKey": "crypto/rsa", - "rsa.GenerateMultiPrimeKey": "crypto/rsa", - "rsa.OAEPOptions": "crypto/rsa", - "rsa.PKCS1v15DecryptOptions": "crypto/rsa", - "rsa.PSSOptions": "crypto/rsa", - "rsa.PSSSaltLengthAuto": "crypto/rsa", - "rsa.PSSSaltLengthEqualsHash": "crypto/rsa", - "rsa.PrecomputedValues": "crypto/rsa", - "rsa.PrivateKey": "crypto/rsa", - "rsa.PublicKey": "crypto/rsa", - "rsa.SignPKCS1v15": "crypto/rsa", - "rsa.SignPSS": "crypto/rsa", - "rsa.VerifyPKCS1v15": "crypto/rsa", - "rsa.VerifyPSS": "crypto/rsa", - "runtime.BlockProfile": "runtime", - "runtime.BlockProfileRecord": "runtime", - "runtime.Breakpoint": "runtime", - "runtime.CPUProfile": "runtime", - "runtime.Caller": "runtime", - "runtime.Callers": "runtime", - "runtime.CallersFrames": "runtime", - "runtime.Compiler": "runtime", - "runtime.Error": "runtime", - "runtime.Frame": "runtime", - "runtime.Frames": "runtime", - "runtime.Func": "runtime", - "runtime.FuncForPC": "runtime", - "runtime.GC": "runtime", - "runtime.GOARCH": "runtime", - "runtime.GOMAXPROCS": "runtime", - "runtime.GOOS": "runtime", - "runtime.GOROOT": "runtime", - "runtime.Goexit": "runtime", - "runtime.GoroutineProfile": "runtime", - "runtime.Gosched": "runtime", - "runtime.KeepAlive": "runtime", - "runtime.LockOSThread": "runtime", - "runtime.MemProfile": "runtime", - "runtime.MemProfileRate": "runtime", - "runtime.MemProfileRecord": "runtime", - "runtime.MemStats": "runtime", - "runtime.MutexProfile": "runtime", - "runtime.NumCPU": "runtime", - "runtime.NumCgoCall": "runtime", - "runtime.NumGoroutine": "runtime", - "runtime.ReadMemStats": "runtime", - "runtime.ReadTrace": "runtime", - "runtime.SetBlockProfileRate": "runtime", - "runtime.SetCPUProfileRate": "runtime", - "runtime.SetCgoTraceback": "runtime", - "runtime.SetFinalizer": "runtime", - "runtime.SetMutexProfileFraction": "runtime", - "runtime.Stack": "runtime", - "runtime.StackRecord": "runtime", - "runtime.StartTrace": "runtime", - "runtime.StopTrace": "runtime", - "runtime.ThreadCreateProfile": "runtime", - "runtime.TypeAssertionError": "runtime", - "runtime.UnlockOSThread": "runtime", - "runtime.Version": "runtime", - "scanner.Char": "text/scanner", - "scanner.Comment": "text/scanner", - "scanner.EOF": "text/scanner", - "scanner.Error": "go/scanner", - "scanner.ErrorHandler": "go/scanner", - "scanner.ErrorList": "go/scanner", - "scanner.Float": "text/scanner", - "scanner.GoTokens": "text/scanner", - "scanner.GoWhitespace": "text/scanner", - "scanner.Ident": "text/scanner", - "scanner.Int": "text/scanner", - "scanner.Mode": "go/scanner", - "scanner.Position": "text/scanner", - "scanner.PrintError": "go/scanner", - "scanner.RawString": "text/scanner", - "scanner.ScanChars": "text/scanner", - // "scanner.ScanComments" is ambiguous - "scanner.ScanFloats": "text/scanner", - "scanner.ScanIdents": "text/scanner", - "scanner.ScanInts": "text/scanner", - "scanner.ScanRawStrings": "text/scanner", - "scanner.ScanStrings": "text/scanner", - // "scanner.Scanner" is ambiguous - "scanner.SkipComments": "text/scanner", - "scanner.String": "text/scanner", - "scanner.TokenString": "text/scanner", - "sha1.BlockSize": "crypto/sha1", - "sha1.New": "crypto/sha1", - "sha1.Size": "crypto/sha1", - "sha1.Sum": "crypto/sha1", - "sha256.BlockSize": "crypto/sha256", - "sha256.New": "crypto/sha256", - "sha256.New224": "crypto/sha256", - "sha256.Size": "crypto/sha256", - "sha256.Size224": "crypto/sha256", - "sha256.Sum224": "crypto/sha256", - "sha256.Sum256": "crypto/sha256", - "sha512.BlockSize": "crypto/sha512", - "sha512.New": "crypto/sha512", - "sha512.New384": "crypto/sha512", - "sha512.New512_224": "crypto/sha512", - "sha512.New512_256": "crypto/sha512", - "sha512.Size": "crypto/sha512", - "sha512.Size224": "crypto/sha512", - "sha512.Size256": "crypto/sha512", - "sha512.Size384": "crypto/sha512", - "sha512.Sum384": "crypto/sha512", - "sha512.Sum512": "crypto/sha512", - "sha512.Sum512_224": "crypto/sha512", - "sha512.Sum512_256": "crypto/sha512", - "signal.Ignore": "os/signal", - "signal.Notify": "os/signal", - "signal.Reset": "os/signal", - "signal.Stop": "os/signal", - "smtp.Auth": "net/smtp", - "smtp.CRAMMD5Auth": "net/smtp", - "smtp.Client": "net/smtp", - "smtp.Dial": "net/smtp", - "smtp.NewClient": "net/smtp", - "smtp.PlainAuth": "net/smtp", - "smtp.SendMail": "net/smtp", - "smtp.ServerInfo": "net/smtp", - "sort.Float64Slice": "sort", - "sort.Float64s": "sort", - "sort.Float64sAreSorted": "sort", - "sort.IntSlice": "sort", - "sort.Interface": "sort", - "sort.Ints": "sort", - "sort.IntsAreSorted": "sort", - "sort.IsSorted": "sort", - "sort.Reverse": "sort", - "sort.Search": "sort", - "sort.SearchFloat64s": "sort", - "sort.SearchInts": "sort", - "sort.SearchStrings": "sort", - "sort.Slice": "sort", - "sort.SliceIsSorted": "sort", - "sort.SliceStable": "sort", - "sort.Sort": "sort", - "sort.Stable": "sort", - "sort.StringSlice": "sort", - "sort.Strings": "sort", - "sort.StringsAreSorted": "sort", - "sql.ColumnType": "database/sql", - "sql.DB": "database/sql", - "sql.DBStats": "database/sql", - "sql.Drivers": "database/sql", - "sql.ErrNoRows": "database/sql", - "sql.ErrTxDone": "database/sql", - "sql.IsolationLevel": "database/sql", - "sql.LevelDefault": "database/sql", - "sql.LevelLinearizable": "database/sql", - "sql.LevelReadCommitted": "database/sql", - "sql.LevelReadUncommitted": "database/sql", - "sql.LevelRepeatableRead": "database/sql", - "sql.LevelSerializable": "database/sql", - "sql.LevelSnapshot": "database/sql", - "sql.LevelWriteCommitted": "database/sql", - "sql.Named": "database/sql", - "sql.NamedArg": "database/sql", - "sql.NullBool": "database/sql", - "sql.NullFloat64": "database/sql", - "sql.NullInt64": "database/sql", - "sql.NullString": "database/sql", - "sql.Open": "database/sql", - "sql.RawBytes": "database/sql", - "sql.Register": "database/sql", - "sql.Result": "database/sql", - "sql.Row": "database/sql", - "sql.Rows": "database/sql", - "sql.Scanner": "database/sql", - "sql.Stmt": "database/sql", - "sql.Tx": "database/sql", - "sql.TxOptions": "database/sql", - "strconv.AppendBool": "strconv", - "strconv.AppendFloat": "strconv", - "strconv.AppendInt": "strconv", - "strconv.AppendQuote": "strconv", - "strconv.AppendQuoteRune": "strconv", - "strconv.AppendQuoteRuneToASCII": "strconv", - "strconv.AppendQuoteRuneToGraphic": "strconv", - "strconv.AppendQuoteToASCII": "strconv", - "strconv.AppendQuoteToGraphic": "strconv", - "strconv.AppendUint": "strconv", - "strconv.Atoi": "strconv", - "strconv.CanBackquote": "strconv", - "strconv.ErrRange": "strconv", - "strconv.ErrSyntax": "strconv", - "strconv.FormatBool": "strconv", - "strconv.FormatFloat": "strconv", - "strconv.FormatInt": "strconv", - "strconv.FormatUint": "strconv", - "strconv.IntSize": "strconv", - "strconv.IsGraphic": "strconv", - "strconv.IsPrint": "strconv", - "strconv.Itoa": "strconv", - "strconv.NumError": "strconv", - "strconv.ParseBool": "strconv", - "strconv.ParseFloat": "strconv", - "strconv.ParseInt": "strconv", - "strconv.ParseUint": "strconv", - "strconv.Quote": "strconv", - "strconv.QuoteRune": "strconv", - "strconv.QuoteRuneToASCII": "strconv", - "strconv.QuoteRuneToGraphic": "strconv", - "strconv.QuoteToASCII": "strconv", - "strconv.QuoteToGraphic": "strconv", - "strconv.Unquote": "strconv", - "strconv.UnquoteChar": "strconv", - "strings.Compare": "strings", - "strings.Contains": "strings", - "strings.ContainsAny": "strings", - "strings.ContainsRune": "strings", - "strings.Count": "strings", - "strings.EqualFold": "strings", - "strings.Fields": "strings", - "strings.FieldsFunc": "strings", - "strings.HasPrefix": "strings", - "strings.HasSuffix": "strings", - "strings.Index": "strings", - "strings.IndexAny": "strings", - "strings.IndexByte": "strings", - "strings.IndexFunc": "strings", - "strings.IndexRune": "strings", - "strings.Join": "strings", - "strings.LastIndex": "strings", - "strings.LastIndexAny": "strings", - "strings.LastIndexByte": "strings", - "strings.LastIndexFunc": "strings", - "strings.Map": "strings", - "strings.NewReader": "strings", - "strings.NewReplacer": "strings", - "strings.Reader": "strings", - "strings.Repeat": "strings", - "strings.Replace": "strings", - "strings.Replacer": "strings", - "strings.Split": "strings", - "strings.SplitAfter": "strings", - "strings.SplitAfterN": "strings", - "strings.SplitN": "strings", - "strings.Title": "strings", - "strings.ToLower": "strings", - "strings.ToLowerSpecial": "strings", - "strings.ToTitle": "strings", - "strings.ToTitleSpecial": "strings", - "strings.ToUpper": "strings", - "strings.ToUpperSpecial": "strings", - "strings.Trim": "strings", - "strings.TrimFunc": "strings", - "strings.TrimLeft": "strings", - "strings.TrimLeftFunc": "strings", - "strings.TrimPrefix": "strings", - "strings.TrimRight": "strings", - "strings.TrimRightFunc": "strings", - "strings.TrimSpace": "strings", - "strings.TrimSuffix": "strings", - "subtle.ConstantTimeByteEq": "crypto/subtle", - "subtle.ConstantTimeCompare": "crypto/subtle", - "subtle.ConstantTimeCopy": "crypto/subtle", - "subtle.ConstantTimeEq": "crypto/subtle", - "subtle.ConstantTimeLessOrEq": "crypto/subtle", - "subtle.ConstantTimeSelect": "crypto/subtle", - "suffixarray.Index": "index/suffixarray", - "suffixarray.New": "index/suffixarray", - "sync.Cond": "sync", - "sync.Locker": "sync", - "sync.Mutex": "sync", - "sync.NewCond": "sync", - "sync.Once": "sync", - "sync.Pool": "sync", - "sync.RWMutex": "sync", - "sync.WaitGroup": "sync", - "syntax.ClassNL": "regexp/syntax", - "syntax.Compile": "regexp/syntax", - "syntax.DotNL": "regexp/syntax", - "syntax.EmptyBeginLine": "regexp/syntax", - "syntax.EmptyBeginText": "regexp/syntax", - "syntax.EmptyEndLine": "regexp/syntax", - "syntax.EmptyEndText": "regexp/syntax", - "syntax.EmptyNoWordBoundary": "regexp/syntax", - "syntax.EmptyOp": "regexp/syntax", - "syntax.EmptyOpContext": "regexp/syntax", - "syntax.EmptyWordBoundary": "regexp/syntax", - "syntax.ErrInternalError": "regexp/syntax", - "syntax.ErrInvalidCharClass": "regexp/syntax", - "syntax.ErrInvalidCharRange": "regexp/syntax", - "syntax.ErrInvalidEscape": "regexp/syntax", - "syntax.ErrInvalidNamedCapture": "regexp/syntax", - "syntax.ErrInvalidPerlOp": "regexp/syntax", - "syntax.ErrInvalidRepeatOp": "regexp/syntax", - "syntax.ErrInvalidRepeatSize": "regexp/syntax", - "syntax.ErrInvalidUTF8": "regexp/syntax", - "syntax.ErrMissingBracket": "regexp/syntax", - "syntax.ErrMissingParen": "regexp/syntax", - "syntax.ErrMissingRepeatArgument": "regexp/syntax", - "syntax.ErrTrailingBackslash": "regexp/syntax", - "syntax.ErrUnexpectedParen": "regexp/syntax", - "syntax.Error": "regexp/syntax", - "syntax.ErrorCode": "regexp/syntax", - "syntax.Flags": "regexp/syntax", - "syntax.FoldCase": "regexp/syntax", - "syntax.Inst": "regexp/syntax", - "syntax.InstAlt": "regexp/syntax", - "syntax.InstAltMatch": "regexp/syntax", - "syntax.InstCapture": "regexp/syntax", - "syntax.InstEmptyWidth": "regexp/syntax", - "syntax.InstFail": "regexp/syntax", - "syntax.InstMatch": "regexp/syntax", - "syntax.InstNop": "regexp/syntax", - "syntax.InstOp": "regexp/syntax", - "syntax.InstRune": "regexp/syntax", - "syntax.InstRune1": "regexp/syntax", - "syntax.InstRuneAny": "regexp/syntax", - "syntax.InstRuneAnyNotNL": "regexp/syntax", - "syntax.IsWordChar": "regexp/syntax", - "syntax.Literal": "regexp/syntax", - "syntax.MatchNL": "regexp/syntax", - "syntax.NonGreedy": "regexp/syntax", - "syntax.OneLine": "regexp/syntax", - "syntax.Op": "regexp/syntax", - "syntax.OpAlternate": "regexp/syntax", - "syntax.OpAnyChar": "regexp/syntax", - "syntax.OpAnyCharNotNL": "regexp/syntax", - "syntax.OpBeginLine": "regexp/syntax", - "syntax.OpBeginText": "regexp/syntax", - "syntax.OpCapture": "regexp/syntax", - "syntax.OpCharClass": "regexp/syntax", - "syntax.OpConcat": "regexp/syntax", - "syntax.OpEmptyMatch": "regexp/syntax", - "syntax.OpEndLine": "regexp/syntax", - "syntax.OpEndText": "regexp/syntax", - "syntax.OpLiteral": "regexp/syntax", - "syntax.OpNoMatch": "regexp/syntax", - "syntax.OpNoWordBoundary": "regexp/syntax", - "syntax.OpPlus": "regexp/syntax", - "syntax.OpQuest": "regexp/syntax", - "syntax.OpRepeat": "regexp/syntax", - "syntax.OpStar": "regexp/syntax", - "syntax.OpWordBoundary": "regexp/syntax", - "syntax.POSIX": "regexp/syntax", - "syntax.Parse": "regexp/syntax", - "syntax.Perl": "regexp/syntax", - "syntax.PerlX": "regexp/syntax", - "syntax.Prog": "regexp/syntax", - "syntax.Regexp": "regexp/syntax", - "syntax.Simple": "regexp/syntax", - "syntax.UnicodeGroups": "regexp/syntax", - "syntax.WasDollar": "regexp/syntax", - "syscall.AF_ALG": "syscall", - "syscall.AF_APPLETALK": "syscall", - "syscall.AF_ARP": "syscall", - "syscall.AF_ASH": "syscall", - "syscall.AF_ATM": "syscall", - "syscall.AF_ATMPVC": "syscall", - "syscall.AF_ATMSVC": "syscall", - "syscall.AF_AX25": "syscall", - "syscall.AF_BLUETOOTH": "syscall", - "syscall.AF_BRIDGE": "syscall", - "syscall.AF_CAIF": "syscall", - "syscall.AF_CAN": "syscall", - "syscall.AF_CCITT": "syscall", - "syscall.AF_CHAOS": "syscall", - "syscall.AF_CNT": "syscall", - "syscall.AF_COIP": "syscall", - "syscall.AF_DATAKIT": "syscall", - "syscall.AF_DECnet": "syscall", - "syscall.AF_DLI": "syscall", - "syscall.AF_E164": "syscall", - "syscall.AF_ECMA": "syscall", - "syscall.AF_ECONET": "syscall", - "syscall.AF_ENCAP": "syscall", - "syscall.AF_FILE": "syscall", - "syscall.AF_HYLINK": "syscall", - "syscall.AF_IEEE80211": "syscall", - "syscall.AF_IEEE802154": "syscall", - "syscall.AF_IMPLINK": "syscall", - "syscall.AF_INET": "syscall", - "syscall.AF_INET6": "syscall", - "syscall.AF_INET6_SDP": "syscall", - "syscall.AF_INET_SDP": "syscall", - "syscall.AF_IPX": "syscall", - "syscall.AF_IRDA": "syscall", - "syscall.AF_ISDN": "syscall", - "syscall.AF_ISO": "syscall", - "syscall.AF_IUCV": "syscall", - "syscall.AF_KEY": "syscall", - "syscall.AF_LAT": "syscall", - "syscall.AF_LINK": "syscall", - "syscall.AF_LLC": "syscall", - "syscall.AF_LOCAL": "syscall", - "syscall.AF_MAX": "syscall", - "syscall.AF_MPLS": "syscall", - "syscall.AF_NATM": "syscall", - "syscall.AF_NDRV": "syscall", - "syscall.AF_NETBEUI": "syscall", - "syscall.AF_NETBIOS": "syscall", - "syscall.AF_NETGRAPH": "syscall", - "syscall.AF_NETLINK": "syscall", - "syscall.AF_NETROM": "syscall", - "syscall.AF_NS": "syscall", - "syscall.AF_OROUTE": "syscall", - "syscall.AF_OSI": "syscall", - "syscall.AF_PACKET": "syscall", - "syscall.AF_PHONET": "syscall", - "syscall.AF_PPP": "syscall", - "syscall.AF_PPPOX": "syscall", - "syscall.AF_PUP": "syscall", - "syscall.AF_RDS": "syscall", - "syscall.AF_RESERVED_36": "syscall", - "syscall.AF_ROSE": "syscall", - "syscall.AF_ROUTE": "syscall", - "syscall.AF_RXRPC": "syscall", - "syscall.AF_SCLUSTER": "syscall", - "syscall.AF_SECURITY": "syscall", - "syscall.AF_SIP": "syscall", - "syscall.AF_SLOW": "syscall", - "syscall.AF_SNA": "syscall", - "syscall.AF_SYSTEM": "syscall", - "syscall.AF_TIPC": "syscall", - "syscall.AF_UNIX": "syscall", - "syscall.AF_UNSPEC": "syscall", - "syscall.AF_VENDOR00": "syscall", - "syscall.AF_VENDOR01": "syscall", - "syscall.AF_VENDOR02": "syscall", - "syscall.AF_VENDOR03": "syscall", - "syscall.AF_VENDOR04": "syscall", - "syscall.AF_VENDOR05": "syscall", - "syscall.AF_VENDOR06": "syscall", - "syscall.AF_VENDOR07": "syscall", - "syscall.AF_VENDOR08": "syscall", - "syscall.AF_VENDOR09": "syscall", - "syscall.AF_VENDOR10": "syscall", - "syscall.AF_VENDOR11": "syscall", - "syscall.AF_VENDOR12": "syscall", - "syscall.AF_VENDOR13": "syscall", - "syscall.AF_VENDOR14": "syscall", - "syscall.AF_VENDOR15": "syscall", - "syscall.AF_VENDOR16": "syscall", - "syscall.AF_VENDOR17": "syscall", - "syscall.AF_VENDOR18": "syscall", - "syscall.AF_VENDOR19": "syscall", - "syscall.AF_VENDOR20": "syscall", - "syscall.AF_VENDOR21": "syscall", - "syscall.AF_VENDOR22": "syscall", - "syscall.AF_VENDOR23": "syscall", - "syscall.AF_VENDOR24": "syscall", - "syscall.AF_VENDOR25": "syscall", - "syscall.AF_VENDOR26": "syscall", - "syscall.AF_VENDOR27": "syscall", - "syscall.AF_VENDOR28": "syscall", - "syscall.AF_VENDOR29": "syscall", - "syscall.AF_VENDOR30": "syscall", - "syscall.AF_VENDOR31": "syscall", - "syscall.AF_VENDOR32": "syscall", - "syscall.AF_VENDOR33": "syscall", - "syscall.AF_VENDOR34": "syscall", - "syscall.AF_VENDOR35": "syscall", - "syscall.AF_VENDOR36": "syscall", - "syscall.AF_VENDOR37": "syscall", - "syscall.AF_VENDOR38": "syscall", - "syscall.AF_VENDOR39": "syscall", - "syscall.AF_VENDOR40": "syscall", - "syscall.AF_VENDOR41": "syscall", - "syscall.AF_VENDOR42": "syscall", - "syscall.AF_VENDOR43": "syscall", - "syscall.AF_VENDOR44": "syscall", - "syscall.AF_VENDOR45": "syscall", - "syscall.AF_VENDOR46": "syscall", - "syscall.AF_VENDOR47": "syscall", - "syscall.AF_WANPIPE": "syscall", - "syscall.AF_X25": "syscall", - "syscall.AI_CANONNAME": "syscall", - "syscall.AI_NUMERICHOST": "syscall", - "syscall.AI_PASSIVE": "syscall", - "syscall.APPLICATION_ERROR": "syscall", - "syscall.ARPHRD_ADAPT": "syscall", - "syscall.ARPHRD_APPLETLK": "syscall", - "syscall.ARPHRD_ARCNET": "syscall", - "syscall.ARPHRD_ASH": "syscall", - "syscall.ARPHRD_ATM": "syscall", - "syscall.ARPHRD_AX25": "syscall", - "syscall.ARPHRD_BIF": "syscall", - "syscall.ARPHRD_CHAOS": "syscall", - "syscall.ARPHRD_CISCO": "syscall", - "syscall.ARPHRD_CSLIP": "syscall", - "syscall.ARPHRD_CSLIP6": "syscall", - "syscall.ARPHRD_DDCMP": "syscall", - "syscall.ARPHRD_DLCI": "syscall", - "syscall.ARPHRD_ECONET": "syscall", - "syscall.ARPHRD_EETHER": "syscall", - "syscall.ARPHRD_ETHER": "syscall", - "syscall.ARPHRD_EUI64": "syscall", - "syscall.ARPHRD_FCAL": "syscall", - "syscall.ARPHRD_FCFABRIC": "syscall", - "syscall.ARPHRD_FCPL": "syscall", - "syscall.ARPHRD_FCPP": "syscall", - "syscall.ARPHRD_FDDI": "syscall", - "syscall.ARPHRD_FRAD": "syscall", - "syscall.ARPHRD_FRELAY": "syscall", - "syscall.ARPHRD_HDLC": "syscall", - "syscall.ARPHRD_HIPPI": "syscall", - "syscall.ARPHRD_HWX25": "syscall", - "syscall.ARPHRD_IEEE1394": "syscall", - "syscall.ARPHRD_IEEE802": "syscall", - "syscall.ARPHRD_IEEE80211": "syscall", - "syscall.ARPHRD_IEEE80211_PRISM": "syscall", - "syscall.ARPHRD_IEEE80211_RADIOTAP": "syscall", - "syscall.ARPHRD_IEEE802154": "syscall", - "syscall.ARPHRD_IEEE802154_PHY": "syscall", - "syscall.ARPHRD_IEEE802_TR": "syscall", - "syscall.ARPHRD_INFINIBAND": "syscall", - "syscall.ARPHRD_IPDDP": "syscall", - "syscall.ARPHRD_IPGRE": "syscall", - "syscall.ARPHRD_IRDA": "syscall", - "syscall.ARPHRD_LAPB": "syscall", - "syscall.ARPHRD_LOCALTLK": "syscall", - "syscall.ARPHRD_LOOPBACK": "syscall", - "syscall.ARPHRD_METRICOM": "syscall", - "syscall.ARPHRD_NETROM": "syscall", - "syscall.ARPHRD_NONE": "syscall", - "syscall.ARPHRD_PIMREG": "syscall", - "syscall.ARPHRD_PPP": "syscall", - "syscall.ARPHRD_PRONET": "syscall", - "syscall.ARPHRD_RAWHDLC": "syscall", - "syscall.ARPHRD_ROSE": "syscall", - "syscall.ARPHRD_RSRVD": "syscall", - "syscall.ARPHRD_SIT": "syscall", - "syscall.ARPHRD_SKIP": "syscall", - "syscall.ARPHRD_SLIP": "syscall", - "syscall.ARPHRD_SLIP6": "syscall", - "syscall.ARPHRD_STRIP": "syscall", - "syscall.ARPHRD_TUNNEL": "syscall", - "syscall.ARPHRD_TUNNEL6": "syscall", - "syscall.ARPHRD_VOID": "syscall", - "syscall.ARPHRD_X25": "syscall", - "syscall.AUTHTYPE_CLIENT": "syscall", - "syscall.AUTHTYPE_SERVER": "syscall", - "syscall.Accept": "syscall", - "syscall.Accept4": "syscall", - "syscall.AcceptEx": "syscall", - "syscall.Access": "syscall", - "syscall.Acct": "syscall", - "syscall.AddrinfoW": "syscall", - "syscall.Adjtime": "syscall", - "syscall.Adjtimex": "syscall", - "syscall.AttachLsf": "syscall", - "syscall.B0": "syscall", - "syscall.B1000000": "syscall", - "syscall.B110": "syscall", - "syscall.B115200": "syscall", - "syscall.B1152000": "syscall", - "syscall.B1200": "syscall", - "syscall.B134": "syscall", - "syscall.B14400": "syscall", - "syscall.B150": "syscall", - "syscall.B1500000": "syscall", - "syscall.B1800": "syscall", - "syscall.B19200": "syscall", - "syscall.B200": "syscall", - "syscall.B2000000": "syscall", - "syscall.B230400": "syscall", - "syscall.B2400": "syscall", - "syscall.B2500000": "syscall", - "syscall.B28800": "syscall", - "syscall.B300": "syscall", - "syscall.B3000000": "syscall", - "syscall.B3500000": "syscall", - "syscall.B38400": "syscall", - "syscall.B4000000": "syscall", - "syscall.B460800": "syscall", - "syscall.B4800": "syscall", - "syscall.B50": "syscall", - "syscall.B500000": "syscall", - "syscall.B57600": "syscall", - "syscall.B576000": "syscall", - "syscall.B600": "syscall", - "syscall.B7200": "syscall", - "syscall.B75": "syscall", - "syscall.B76800": "syscall", - "syscall.B921600": "syscall", - "syscall.B9600": "syscall", - "syscall.BASE_PROTOCOL": "syscall", - "syscall.BIOCFEEDBACK": "syscall", - "syscall.BIOCFLUSH": "syscall", - "syscall.BIOCGBLEN": "syscall", - "syscall.BIOCGDIRECTION": "syscall", - "syscall.BIOCGDIRFILT": "syscall", - "syscall.BIOCGDLT": "syscall", - "syscall.BIOCGDLTLIST": "syscall", - "syscall.BIOCGETBUFMODE": "syscall", - "syscall.BIOCGETIF": "syscall", - "syscall.BIOCGETZMAX": "syscall", - "syscall.BIOCGFEEDBACK": "syscall", - "syscall.BIOCGFILDROP": "syscall", - "syscall.BIOCGHDRCMPLT": "syscall", - "syscall.BIOCGRSIG": "syscall", - "syscall.BIOCGRTIMEOUT": "syscall", - "syscall.BIOCGSEESENT": "syscall", - "syscall.BIOCGSTATS": "syscall", - "syscall.BIOCGSTATSOLD": "syscall", - "syscall.BIOCGTSTAMP": "syscall", - "syscall.BIOCIMMEDIATE": "syscall", - "syscall.BIOCLOCK": "syscall", - "syscall.BIOCPROMISC": "syscall", - "syscall.BIOCROTZBUF": "syscall", - "syscall.BIOCSBLEN": "syscall", - "syscall.BIOCSDIRECTION": "syscall", - "syscall.BIOCSDIRFILT": "syscall", - "syscall.BIOCSDLT": "syscall", - "syscall.BIOCSETBUFMODE": "syscall", - "syscall.BIOCSETF": "syscall", - "syscall.BIOCSETFNR": "syscall", - "syscall.BIOCSETIF": "syscall", - "syscall.BIOCSETWF": "syscall", - "syscall.BIOCSETZBUF": "syscall", - "syscall.BIOCSFEEDBACK": "syscall", - "syscall.BIOCSFILDROP": "syscall", - "syscall.BIOCSHDRCMPLT": "syscall", - "syscall.BIOCSRSIG": "syscall", - "syscall.BIOCSRTIMEOUT": "syscall", - "syscall.BIOCSSEESENT": "syscall", - "syscall.BIOCSTCPF": "syscall", - "syscall.BIOCSTSTAMP": "syscall", - "syscall.BIOCSUDPF": "syscall", - "syscall.BIOCVERSION": "syscall", - "syscall.BPF_A": "syscall", - "syscall.BPF_ABS": "syscall", - "syscall.BPF_ADD": "syscall", - "syscall.BPF_ALIGNMENT": "syscall", - "syscall.BPF_ALIGNMENT32": "syscall", - "syscall.BPF_ALU": "syscall", - "syscall.BPF_AND": "syscall", - "syscall.BPF_B": "syscall", - "syscall.BPF_BUFMODE_BUFFER": "syscall", - "syscall.BPF_BUFMODE_ZBUF": "syscall", - "syscall.BPF_DFLTBUFSIZE": "syscall", - "syscall.BPF_DIRECTION_IN": "syscall", - "syscall.BPF_DIRECTION_OUT": "syscall", - "syscall.BPF_DIV": "syscall", - "syscall.BPF_H": "syscall", - "syscall.BPF_IMM": "syscall", - "syscall.BPF_IND": "syscall", - "syscall.BPF_JA": "syscall", - "syscall.BPF_JEQ": "syscall", - "syscall.BPF_JGE": "syscall", - "syscall.BPF_JGT": "syscall", - "syscall.BPF_JMP": "syscall", - "syscall.BPF_JSET": "syscall", - "syscall.BPF_K": "syscall", - "syscall.BPF_LD": "syscall", - "syscall.BPF_LDX": "syscall", - "syscall.BPF_LEN": "syscall", - "syscall.BPF_LSH": "syscall", - "syscall.BPF_MAJOR_VERSION": "syscall", - "syscall.BPF_MAXBUFSIZE": "syscall", - "syscall.BPF_MAXINSNS": "syscall", - "syscall.BPF_MEM": "syscall", - "syscall.BPF_MEMWORDS": "syscall", - "syscall.BPF_MINBUFSIZE": "syscall", - "syscall.BPF_MINOR_VERSION": "syscall", - "syscall.BPF_MISC": "syscall", - "syscall.BPF_MSH": "syscall", - "syscall.BPF_MUL": "syscall", - "syscall.BPF_NEG": "syscall", - "syscall.BPF_OR": "syscall", - "syscall.BPF_RELEASE": "syscall", - "syscall.BPF_RET": "syscall", - "syscall.BPF_RSH": "syscall", - "syscall.BPF_ST": "syscall", - "syscall.BPF_STX": "syscall", - "syscall.BPF_SUB": "syscall", - "syscall.BPF_TAX": "syscall", - "syscall.BPF_TXA": "syscall", - "syscall.BPF_T_BINTIME": "syscall", - "syscall.BPF_T_BINTIME_FAST": "syscall", - "syscall.BPF_T_BINTIME_MONOTONIC": "syscall", - "syscall.BPF_T_BINTIME_MONOTONIC_FAST": "syscall", - "syscall.BPF_T_FAST": "syscall", - "syscall.BPF_T_FLAG_MASK": "syscall", - "syscall.BPF_T_FORMAT_MASK": "syscall", - "syscall.BPF_T_MICROTIME": "syscall", - "syscall.BPF_T_MICROTIME_FAST": "syscall", - "syscall.BPF_T_MICROTIME_MONOTONIC": "syscall", - "syscall.BPF_T_MICROTIME_MONOTONIC_FAST": "syscall", - "syscall.BPF_T_MONOTONIC": "syscall", - "syscall.BPF_T_MONOTONIC_FAST": "syscall", - "syscall.BPF_T_NANOTIME": "syscall", - "syscall.BPF_T_NANOTIME_FAST": "syscall", - "syscall.BPF_T_NANOTIME_MONOTONIC": "syscall", - "syscall.BPF_T_NANOTIME_MONOTONIC_FAST": "syscall", - "syscall.BPF_T_NONE": "syscall", - "syscall.BPF_T_NORMAL": "syscall", - "syscall.BPF_W": "syscall", - "syscall.BPF_X": "syscall", - "syscall.BRKINT": "syscall", - "syscall.Bind": "syscall", - "syscall.BindToDevice": "syscall", - "syscall.BpfBuflen": "syscall", - "syscall.BpfDatalink": "syscall", - "syscall.BpfHdr": "syscall", - "syscall.BpfHeadercmpl": "syscall", - "syscall.BpfInsn": "syscall", - "syscall.BpfInterface": "syscall", - "syscall.BpfJump": "syscall", - "syscall.BpfProgram": "syscall", - "syscall.BpfStat": "syscall", - "syscall.BpfStats": "syscall", - "syscall.BpfStmt": "syscall", - "syscall.BpfTimeout": "syscall", - "syscall.BpfTimeval": "syscall", - "syscall.BpfVersion": "syscall", - "syscall.BpfZbuf": "syscall", - "syscall.BpfZbufHeader": "syscall", - "syscall.ByHandleFileInformation": "syscall", - "syscall.BytePtrFromString": "syscall", - "syscall.ByteSliceFromString": "syscall", - "syscall.CCR0_FLUSH": "syscall", - "syscall.CERT_CHAIN_POLICY_AUTHENTICODE": "syscall", - "syscall.CERT_CHAIN_POLICY_AUTHENTICODE_TS": "syscall", - "syscall.CERT_CHAIN_POLICY_BASE": "syscall", - "syscall.CERT_CHAIN_POLICY_BASIC_CONSTRAINTS": "syscall", - "syscall.CERT_CHAIN_POLICY_EV": "syscall", - "syscall.CERT_CHAIN_POLICY_MICROSOFT_ROOT": "syscall", - "syscall.CERT_CHAIN_POLICY_NT_AUTH": "syscall", - "syscall.CERT_CHAIN_POLICY_SSL": "syscall", - "syscall.CERT_E_CN_NO_MATCH": "syscall", - "syscall.CERT_E_EXPIRED": "syscall", - "syscall.CERT_E_PURPOSE": "syscall", - "syscall.CERT_E_ROLE": "syscall", - "syscall.CERT_E_UNTRUSTEDROOT": "syscall", - "syscall.CERT_STORE_ADD_ALWAYS": "syscall", - "syscall.CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG": "syscall", - "syscall.CERT_STORE_PROV_MEMORY": "syscall", - "syscall.CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT": "syscall", - "syscall.CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT": "syscall", - "syscall.CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT": "syscall", - "syscall.CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT": "syscall", - "syscall.CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT": "syscall", - "syscall.CERT_TRUST_INVALID_BASIC_CONSTRAINTS": "syscall", - "syscall.CERT_TRUST_INVALID_EXTENSION": "syscall", - "syscall.CERT_TRUST_INVALID_NAME_CONSTRAINTS": "syscall", - "syscall.CERT_TRUST_INVALID_POLICY_CONSTRAINTS": "syscall", - "syscall.CERT_TRUST_IS_CYCLIC": "syscall", - "syscall.CERT_TRUST_IS_EXPLICIT_DISTRUST": "syscall", - "syscall.CERT_TRUST_IS_NOT_SIGNATURE_VALID": "syscall", - "syscall.CERT_TRUST_IS_NOT_TIME_VALID": "syscall", - "syscall.CERT_TRUST_IS_NOT_VALID_FOR_USAGE": "syscall", - "syscall.CERT_TRUST_IS_OFFLINE_REVOCATION": "syscall", - "syscall.CERT_TRUST_IS_REVOKED": "syscall", - "syscall.CERT_TRUST_IS_UNTRUSTED_ROOT": "syscall", - "syscall.CERT_TRUST_NO_ERROR": "syscall", - "syscall.CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY": "syscall", - "syscall.CERT_TRUST_REVOCATION_STATUS_UNKNOWN": "syscall", - "syscall.CFLUSH": "syscall", - "syscall.CLOCAL": "syscall", - "syscall.CLONE_CHILD_CLEARTID": "syscall", - "syscall.CLONE_CHILD_SETTID": "syscall", - "syscall.CLONE_CSIGNAL": "syscall", - "syscall.CLONE_DETACHED": "syscall", - "syscall.CLONE_FILES": "syscall", - "syscall.CLONE_FS": "syscall", - "syscall.CLONE_IO": "syscall", - "syscall.CLONE_NEWIPC": "syscall", - "syscall.CLONE_NEWNET": "syscall", - "syscall.CLONE_NEWNS": "syscall", - "syscall.CLONE_NEWPID": "syscall", - "syscall.CLONE_NEWUSER": "syscall", - "syscall.CLONE_NEWUTS": "syscall", - "syscall.CLONE_PARENT": "syscall", - "syscall.CLONE_PARENT_SETTID": "syscall", - "syscall.CLONE_PID": "syscall", - "syscall.CLONE_PTRACE": "syscall", - "syscall.CLONE_SETTLS": "syscall", - "syscall.CLONE_SIGHAND": "syscall", - "syscall.CLONE_SYSVSEM": "syscall", - "syscall.CLONE_THREAD": "syscall", - "syscall.CLONE_UNTRACED": "syscall", - "syscall.CLONE_VFORK": "syscall", - "syscall.CLONE_VM": "syscall", - "syscall.CPUID_CFLUSH": "syscall", - "syscall.CREAD": "syscall", - "syscall.CREATE_ALWAYS": "syscall", - "syscall.CREATE_NEW": "syscall", - "syscall.CREATE_NEW_PROCESS_GROUP": "syscall", - "syscall.CREATE_UNICODE_ENVIRONMENT": "syscall", - "syscall.CRYPT_DEFAULT_CONTAINER_OPTIONAL": "syscall", - "syscall.CRYPT_DELETEKEYSET": "syscall", - "syscall.CRYPT_MACHINE_KEYSET": "syscall", - "syscall.CRYPT_NEWKEYSET": "syscall", - "syscall.CRYPT_SILENT": "syscall", - "syscall.CRYPT_VERIFYCONTEXT": "syscall", - "syscall.CS5": "syscall", - "syscall.CS6": "syscall", - "syscall.CS7": "syscall", - "syscall.CS8": "syscall", - "syscall.CSIZE": "syscall", - "syscall.CSTART": "syscall", - "syscall.CSTATUS": "syscall", - "syscall.CSTOP": "syscall", - "syscall.CSTOPB": "syscall", - "syscall.CSUSP": "syscall", - "syscall.CTL_MAXNAME": "syscall", - "syscall.CTL_NET": "syscall", - "syscall.CTL_QUERY": "syscall", - "syscall.CTRL_BREAK_EVENT": "syscall", - "syscall.CTRL_C_EVENT": "syscall", - "syscall.CancelIo": "syscall", - "syscall.CancelIoEx": "syscall", - "syscall.CertAddCertificateContextToStore": "syscall", - "syscall.CertChainContext": "syscall", - "syscall.CertChainElement": "syscall", - "syscall.CertChainPara": "syscall", - "syscall.CertChainPolicyPara": "syscall", - "syscall.CertChainPolicyStatus": "syscall", - "syscall.CertCloseStore": "syscall", - "syscall.CertContext": "syscall", - "syscall.CertCreateCertificateContext": "syscall", - "syscall.CertEnhKeyUsage": "syscall", - "syscall.CertEnumCertificatesInStore": "syscall", - "syscall.CertFreeCertificateChain": "syscall", - "syscall.CertFreeCertificateContext": "syscall", - "syscall.CertGetCertificateChain": "syscall", - "syscall.CertOpenStore": "syscall", - "syscall.CertOpenSystemStore": "syscall", - "syscall.CertRevocationInfo": "syscall", - "syscall.CertSimpleChain": "syscall", - "syscall.CertTrustStatus": "syscall", - "syscall.CertUsageMatch": "syscall", - "syscall.CertVerifyCertificateChainPolicy": "syscall", - "syscall.Chdir": "syscall", - "syscall.CheckBpfVersion": "syscall", - "syscall.Chflags": "syscall", - "syscall.Chmod": "syscall", - "syscall.Chown": "syscall", - "syscall.Chroot": "syscall", - "syscall.Clearenv": "syscall", - "syscall.Close": "syscall", - "syscall.CloseHandle": "syscall", - "syscall.CloseOnExec": "syscall", - "syscall.Closesocket": "syscall", - "syscall.CmsgLen": "syscall", - "syscall.CmsgSpace": "syscall", - "syscall.Cmsghdr": "syscall", - "syscall.CommandLineToArgv": "syscall", - "syscall.ComputerName": "syscall", - "syscall.Connect": "syscall", - "syscall.ConnectEx": "syscall", - "syscall.ConvertSidToStringSid": "syscall", - "syscall.ConvertStringSidToSid": "syscall", - "syscall.CopySid": "syscall", - "syscall.Creat": "syscall", - "syscall.CreateDirectory": "syscall", - "syscall.CreateFile": "syscall", - "syscall.CreateFileMapping": "syscall", - "syscall.CreateHardLink": "syscall", - "syscall.CreateIoCompletionPort": "syscall", - "syscall.CreatePipe": "syscall", - "syscall.CreateProcess": "syscall", - "syscall.CreateSymbolicLink": "syscall", - "syscall.CreateToolhelp32Snapshot": "syscall", - "syscall.Credential": "syscall", - "syscall.CryptAcquireContext": "syscall", - "syscall.CryptGenRandom": "syscall", - "syscall.CryptReleaseContext": "syscall", - "syscall.DIOCBSFLUSH": "syscall", - "syscall.DIOCOSFPFLUSH": "syscall", - "syscall.DLL": "syscall", - "syscall.DLLError": "syscall", - "syscall.DLT_A429": "syscall", - "syscall.DLT_A653_ICM": "syscall", - "syscall.DLT_AIRONET_HEADER": "syscall", - "syscall.DLT_AOS": "syscall", - "syscall.DLT_APPLE_IP_OVER_IEEE1394": "syscall", - "syscall.DLT_ARCNET": "syscall", - "syscall.DLT_ARCNET_LINUX": "syscall", - "syscall.DLT_ATM_CLIP": "syscall", - "syscall.DLT_ATM_RFC1483": "syscall", - "syscall.DLT_AURORA": "syscall", - "syscall.DLT_AX25": "syscall", - "syscall.DLT_AX25_KISS": "syscall", - "syscall.DLT_BACNET_MS_TP": "syscall", - "syscall.DLT_BLUETOOTH_HCI_H4": "syscall", - "syscall.DLT_BLUETOOTH_HCI_H4_WITH_PHDR": "syscall", - "syscall.DLT_CAN20B": "syscall", - "syscall.DLT_CAN_SOCKETCAN": "syscall", - "syscall.DLT_CHAOS": "syscall", - "syscall.DLT_CHDLC": "syscall", - "syscall.DLT_CISCO_IOS": "syscall", - "syscall.DLT_C_HDLC": "syscall", - "syscall.DLT_C_HDLC_WITH_DIR": "syscall", - "syscall.DLT_DBUS": "syscall", - "syscall.DLT_DECT": "syscall", - "syscall.DLT_DOCSIS": "syscall", - "syscall.DLT_DVB_CI": "syscall", - "syscall.DLT_ECONET": "syscall", - "syscall.DLT_EN10MB": "syscall", - "syscall.DLT_EN3MB": "syscall", - "syscall.DLT_ENC": "syscall", - "syscall.DLT_ERF": "syscall", - "syscall.DLT_ERF_ETH": "syscall", - "syscall.DLT_ERF_POS": "syscall", - "syscall.DLT_FC_2": "syscall", - "syscall.DLT_FC_2_WITH_FRAME_DELIMS": "syscall", - "syscall.DLT_FDDI": "syscall", - "syscall.DLT_FLEXRAY": "syscall", - "syscall.DLT_FRELAY": "syscall", - "syscall.DLT_FRELAY_WITH_DIR": "syscall", - "syscall.DLT_GCOM_SERIAL": "syscall", - "syscall.DLT_GCOM_T1E1": "syscall", - "syscall.DLT_GPF_F": "syscall", - "syscall.DLT_GPF_T": "syscall", - "syscall.DLT_GPRS_LLC": "syscall", - "syscall.DLT_GSMTAP_ABIS": "syscall", - "syscall.DLT_GSMTAP_UM": "syscall", - "syscall.DLT_HDLC": "syscall", - "syscall.DLT_HHDLC": "syscall", - "syscall.DLT_HIPPI": "syscall", - "syscall.DLT_IBM_SN": "syscall", - "syscall.DLT_IBM_SP": "syscall", - "syscall.DLT_IEEE802": "syscall", - "syscall.DLT_IEEE802_11": "syscall", - "syscall.DLT_IEEE802_11_RADIO": "syscall", - "syscall.DLT_IEEE802_11_RADIO_AVS": "syscall", - "syscall.DLT_IEEE802_15_4": "syscall", - "syscall.DLT_IEEE802_15_4_LINUX": "syscall", - "syscall.DLT_IEEE802_15_4_NOFCS": "syscall", - "syscall.DLT_IEEE802_15_4_NONASK_PHY": "syscall", - "syscall.DLT_IEEE802_16_MAC_CPS": "syscall", - "syscall.DLT_IEEE802_16_MAC_CPS_RADIO": "syscall", - "syscall.DLT_IPFILTER": "syscall", - "syscall.DLT_IPMB": "syscall", - "syscall.DLT_IPMB_LINUX": "syscall", - "syscall.DLT_IPNET": "syscall", - "syscall.DLT_IPOIB": "syscall", - "syscall.DLT_IPV4": "syscall", - "syscall.DLT_IPV6": "syscall", - "syscall.DLT_IP_OVER_FC": "syscall", - "syscall.DLT_JUNIPER_ATM1": "syscall", - "syscall.DLT_JUNIPER_ATM2": "syscall", - "syscall.DLT_JUNIPER_ATM_CEMIC": "syscall", - "syscall.DLT_JUNIPER_CHDLC": "syscall", - "syscall.DLT_JUNIPER_ES": "syscall", - "syscall.DLT_JUNIPER_ETHER": "syscall", - "syscall.DLT_JUNIPER_FIBRECHANNEL": "syscall", - "syscall.DLT_JUNIPER_FRELAY": "syscall", - "syscall.DLT_JUNIPER_GGSN": "syscall", - "syscall.DLT_JUNIPER_ISM": "syscall", - "syscall.DLT_JUNIPER_MFR": "syscall", - "syscall.DLT_JUNIPER_MLFR": "syscall", - "syscall.DLT_JUNIPER_MLPPP": "syscall", - "syscall.DLT_JUNIPER_MONITOR": "syscall", - "syscall.DLT_JUNIPER_PIC_PEER": "syscall", - "syscall.DLT_JUNIPER_PPP": "syscall", - "syscall.DLT_JUNIPER_PPPOE": "syscall", - "syscall.DLT_JUNIPER_PPPOE_ATM": "syscall", - "syscall.DLT_JUNIPER_SERVICES": "syscall", - "syscall.DLT_JUNIPER_SRX_E2E": "syscall", - "syscall.DLT_JUNIPER_ST": "syscall", - "syscall.DLT_JUNIPER_VP": "syscall", - "syscall.DLT_JUNIPER_VS": "syscall", - "syscall.DLT_LAPB_WITH_DIR": "syscall", - "syscall.DLT_LAPD": "syscall", - "syscall.DLT_LIN": "syscall", - "syscall.DLT_LINUX_EVDEV": "syscall", - "syscall.DLT_LINUX_IRDA": "syscall", - "syscall.DLT_LINUX_LAPD": "syscall", - "syscall.DLT_LINUX_PPP_WITHDIRECTION": "syscall", - "syscall.DLT_LINUX_SLL": "syscall", - "syscall.DLT_LOOP": "syscall", - "syscall.DLT_LTALK": "syscall", - "syscall.DLT_MATCHING_MAX": "syscall", - "syscall.DLT_MATCHING_MIN": "syscall", - "syscall.DLT_MFR": "syscall", - "syscall.DLT_MOST": "syscall", - "syscall.DLT_MPEG_2_TS": "syscall", - "syscall.DLT_MPLS": "syscall", - "syscall.DLT_MTP2": "syscall", - "syscall.DLT_MTP2_WITH_PHDR": "syscall", - "syscall.DLT_MTP3": "syscall", - "syscall.DLT_MUX27010": "syscall", - "syscall.DLT_NETANALYZER": "syscall", - "syscall.DLT_NETANALYZER_TRANSPARENT": "syscall", - "syscall.DLT_NFC_LLCP": "syscall", - "syscall.DLT_NFLOG": "syscall", - "syscall.DLT_NG40": "syscall", - "syscall.DLT_NULL": "syscall", - "syscall.DLT_PCI_EXP": "syscall", - "syscall.DLT_PFLOG": "syscall", - "syscall.DLT_PFSYNC": "syscall", - "syscall.DLT_PPI": "syscall", - "syscall.DLT_PPP": "syscall", - "syscall.DLT_PPP_BSDOS": "syscall", - "syscall.DLT_PPP_ETHER": "syscall", - "syscall.DLT_PPP_PPPD": "syscall", - "syscall.DLT_PPP_SERIAL": "syscall", - "syscall.DLT_PPP_WITH_DIR": "syscall", - "syscall.DLT_PPP_WITH_DIRECTION": "syscall", - "syscall.DLT_PRISM_HEADER": "syscall", - "syscall.DLT_PRONET": "syscall", - "syscall.DLT_RAIF1": "syscall", - "syscall.DLT_RAW": "syscall", - "syscall.DLT_RAWAF_MASK": "syscall", - "syscall.DLT_RIO": "syscall", - "syscall.DLT_SCCP": "syscall", - "syscall.DLT_SITA": "syscall", - "syscall.DLT_SLIP": "syscall", - "syscall.DLT_SLIP_BSDOS": "syscall", - "syscall.DLT_STANAG_5066_D_PDU": "syscall", - "syscall.DLT_SUNATM": "syscall", - "syscall.DLT_SYMANTEC_FIREWALL": "syscall", - "syscall.DLT_TZSP": "syscall", - "syscall.DLT_USB": "syscall", - "syscall.DLT_USB_LINUX": "syscall", - "syscall.DLT_USB_LINUX_MMAPPED": "syscall", - "syscall.DLT_USER0": "syscall", - "syscall.DLT_USER1": "syscall", - "syscall.DLT_USER10": "syscall", - "syscall.DLT_USER11": "syscall", - "syscall.DLT_USER12": "syscall", - "syscall.DLT_USER13": "syscall", - "syscall.DLT_USER14": "syscall", - "syscall.DLT_USER15": "syscall", - "syscall.DLT_USER2": "syscall", - "syscall.DLT_USER3": "syscall", - "syscall.DLT_USER4": "syscall", - "syscall.DLT_USER5": "syscall", - "syscall.DLT_USER6": "syscall", - "syscall.DLT_USER7": "syscall", - "syscall.DLT_USER8": "syscall", - "syscall.DLT_USER9": "syscall", - "syscall.DLT_WIHART": "syscall", - "syscall.DLT_X2E_SERIAL": "syscall", - "syscall.DLT_X2E_XORAYA": "syscall", - "syscall.DNSMXData": "syscall", - "syscall.DNSPTRData": "syscall", - "syscall.DNSRecord": "syscall", - "syscall.DNSSRVData": "syscall", - "syscall.DNSTXTData": "syscall", - "syscall.DNS_INFO_NO_RECORDS": "syscall", - "syscall.DNS_TYPE_A": "syscall", - "syscall.DNS_TYPE_A6": "syscall", - "syscall.DNS_TYPE_AAAA": "syscall", - "syscall.DNS_TYPE_ADDRS": "syscall", - "syscall.DNS_TYPE_AFSDB": "syscall", - "syscall.DNS_TYPE_ALL": "syscall", - "syscall.DNS_TYPE_ANY": "syscall", - "syscall.DNS_TYPE_ATMA": "syscall", - "syscall.DNS_TYPE_AXFR": "syscall", - "syscall.DNS_TYPE_CERT": "syscall", - "syscall.DNS_TYPE_CNAME": "syscall", - "syscall.DNS_TYPE_DHCID": "syscall", - "syscall.DNS_TYPE_DNAME": "syscall", - "syscall.DNS_TYPE_DNSKEY": "syscall", - "syscall.DNS_TYPE_DS": "syscall", - "syscall.DNS_TYPE_EID": "syscall", - "syscall.DNS_TYPE_GID": "syscall", - "syscall.DNS_TYPE_GPOS": "syscall", - "syscall.DNS_TYPE_HINFO": "syscall", - "syscall.DNS_TYPE_ISDN": "syscall", - "syscall.DNS_TYPE_IXFR": "syscall", - "syscall.DNS_TYPE_KEY": "syscall", - "syscall.DNS_TYPE_KX": "syscall", - "syscall.DNS_TYPE_LOC": "syscall", - "syscall.DNS_TYPE_MAILA": "syscall", - "syscall.DNS_TYPE_MAILB": "syscall", - "syscall.DNS_TYPE_MB": "syscall", - "syscall.DNS_TYPE_MD": "syscall", - "syscall.DNS_TYPE_MF": "syscall", - "syscall.DNS_TYPE_MG": "syscall", - "syscall.DNS_TYPE_MINFO": "syscall", - "syscall.DNS_TYPE_MR": "syscall", - "syscall.DNS_TYPE_MX": "syscall", - "syscall.DNS_TYPE_NAPTR": "syscall", - "syscall.DNS_TYPE_NBSTAT": "syscall", - "syscall.DNS_TYPE_NIMLOC": "syscall", - "syscall.DNS_TYPE_NS": "syscall", - "syscall.DNS_TYPE_NSAP": "syscall", - "syscall.DNS_TYPE_NSAPPTR": "syscall", - "syscall.DNS_TYPE_NSEC": "syscall", - "syscall.DNS_TYPE_NULL": "syscall", - "syscall.DNS_TYPE_NXT": "syscall", - "syscall.DNS_TYPE_OPT": "syscall", - "syscall.DNS_TYPE_PTR": "syscall", - "syscall.DNS_TYPE_PX": "syscall", - "syscall.DNS_TYPE_RP": "syscall", - "syscall.DNS_TYPE_RRSIG": "syscall", - "syscall.DNS_TYPE_RT": "syscall", - "syscall.DNS_TYPE_SIG": "syscall", - "syscall.DNS_TYPE_SINK": "syscall", - "syscall.DNS_TYPE_SOA": "syscall", - "syscall.DNS_TYPE_SRV": "syscall", - "syscall.DNS_TYPE_TEXT": "syscall", - "syscall.DNS_TYPE_TKEY": "syscall", - "syscall.DNS_TYPE_TSIG": "syscall", - "syscall.DNS_TYPE_UID": "syscall", - "syscall.DNS_TYPE_UINFO": "syscall", - "syscall.DNS_TYPE_UNSPEC": "syscall", - "syscall.DNS_TYPE_WINS": "syscall", - "syscall.DNS_TYPE_WINSR": "syscall", - "syscall.DNS_TYPE_WKS": "syscall", - "syscall.DNS_TYPE_X25": "syscall", - "syscall.DT_BLK": "syscall", - "syscall.DT_CHR": "syscall", - "syscall.DT_DIR": "syscall", - "syscall.DT_FIFO": "syscall", - "syscall.DT_LNK": "syscall", - "syscall.DT_REG": "syscall", - "syscall.DT_SOCK": "syscall", - "syscall.DT_UNKNOWN": "syscall", - "syscall.DT_WHT": "syscall", - "syscall.DUPLICATE_CLOSE_SOURCE": "syscall", - "syscall.DUPLICATE_SAME_ACCESS": "syscall", - "syscall.DeleteFile": "syscall", - "syscall.DetachLsf": "syscall", - "syscall.DeviceIoControl": "syscall", - "syscall.Dirent": "syscall", - "syscall.DnsNameCompare": "syscall", - "syscall.DnsQuery": "syscall", - "syscall.DnsRecordListFree": "syscall", - "syscall.DnsSectionAdditional": "syscall", - "syscall.DnsSectionAnswer": "syscall", - "syscall.DnsSectionAuthority": "syscall", - "syscall.DnsSectionQuestion": "syscall", - "syscall.Dup": "syscall", - "syscall.Dup2": "syscall", - "syscall.Dup3": "syscall", - "syscall.DuplicateHandle": "syscall", - "syscall.E2BIG": "syscall", - "syscall.EACCES": "syscall", - "syscall.EADDRINUSE": "syscall", - "syscall.EADDRNOTAVAIL": "syscall", - "syscall.EADV": "syscall", - "syscall.EAFNOSUPPORT": "syscall", - "syscall.EAGAIN": "syscall", - "syscall.EALREADY": "syscall", - "syscall.EAUTH": "syscall", - "syscall.EBADARCH": "syscall", - "syscall.EBADE": "syscall", - "syscall.EBADEXEC": "syscall", - "syscall.EBADF": "syscall", - "syscall.EBADFD": "syscall", - "syscall.EBADMACHO": "syscall", - "syscall.EBADMSG": "syscall", - "syscall.EBADR": "syscall", - "syscall.EBADRPC": "syscall", - "syscall.EBADRQC": "syscall", - "syscall.EBADSLT": "syscall", - "syscall.EBFONT": "syscall", - "syscall.EBUSY": "syscall", - "syscall.ECANCELED": "syscall", - "syscall.ECAPMODE": "syscall", - "syscall.ECHILD": "syscall", - "syscall.ECHO": "syscall", - "syscall.ECHOCTL": "syscall", - "syscall.ECHOE": "syscall", - "syscall.ECHOK": "syscall", - "syscall.ECHOKE": "syscall", - "syscall.ECHONL": "syscall", - "syscall.ECHOPRT": "syscall", - "syscall.ECHRNG": "syscall", - "syscall.ECOMM": "syscall", - "syscall.ECONNABORTED": "syscall", - "syscall.ECONNREFUSED": "syscall", - "syscall.ECONNRESET": "syscall", - "syscall.EDEADLK": "syscall", - "syscall.EDEADLOCK": "syscall", - "syscall.EDESTADDRREQ": "syscall", - "syscall.EDEVERR": "syscall", - "syscall.EDOM": "syscall", - "syscall.EDOOFUS": "syscall", - "syscall.EDOTDOT": "syscall", - "syscall.EDQUOT": "syscall", - "syscall.EEXIST": "syscall", - "syscall.EFAULT": "syscall", - "syscall.EFBIG": "syscall", - "syscall.EFER_LMA": "syscall", - "syscall.EFER_LME": "syscall", - "syscall.EFER_NXE": "syscall", - "syscall.EFER_SCE": "syscall", - "syscall.EFTYPE": "syscall", - "syscall.EHOSTDOWN": "syscall", - "syscall.EHOSTUNREACH": "syscall", - "syscall.EHWPOISON": "syscall", - "syscall.EIDRM": "syscall", - "syscall.EILSEQ": "syscall", - "syscall.EINPROGRESS": "syscall", - "syscall.EINTR": "syscall", - "syscall.EINVAL": "syscall", - "syscall.EIO": "syscall", - "syscall.EIPSEC": "syscall", - "syscall.EISCONN": "syscall", - "syscall.EISDIR": "syscall", - "syscall.EISNAM": "syscall", - "syscall.EKEYEXPIRED": "syscall", - "syscall.EKEYREJECTED": "syscall", - "syscall.EKEYREVOKED": "syscall", - "syscall.EL2HLT": "syscall", - "syscall.EL2NSYNC": "syscall", - "syscall.EL3HLT": "syscall", - "syscall.EL3RST": "syscall", - "syscall.ELAST": "syscall", - "syscall.ELF_NGREG": "syscall", - "syscall.ELF_PRARGSZ": "syscall", - "syscall.ELIBACC": "syscall", - "syscall.ELIBBAD": "syscall", - "syscall.ELIBEXEC": "syscall", - "syscall.ELIBMAX": "syscall", - "syscall.ELIBSCN": "syscall", - "syscall.ELNRNG": "syscall", - "syscall.ELOOP": "syscall", - "syscall.EMEDIUMTYPE": "syscall", - "syscall.EMFILE": "syscall", - "syscall.EMLINK": "syscall", - "syscall.EMSGSIZE": "syscall", - "syscall.EMT_TAGOVF": "syscall", - "syscall.EMULTIHOP": "syscall", - "syscall.EMUL_ENABLED": "syscall", - "syscall.EMUL_LINUX": "syscall", - "syscall.EMUL_LINUX32": "syscall", - "syscall.EMUL_MAXID": "syscall", - "syscall.EMUL_NATIVE": "syscall", - "syscall.ENAMETOOLONG": "syscall", - "syscall.ENAVAIL": "syscall", - "syscall.ENDRUNDISC": "syscall", - "syscall.ENEEDAUTH": "syscall", - "syscall.ENETDOWN": "syscall", - "syscall.ENETRESET": "syscall", - "syscall.ENETUNREACH": "syscall", - "syscall.ENFILE": "syscall", - "syscall.ENOANO": "syscall", - "syscall.ENOATTR": "syscall", - "syscall.ENOBUFS": "syscall", - "syscall.ENOCSI": "syscall", - "syscall.ENODATA": "syscall", - "syscall.ENODEV": "syscall", - "syscall.ENOENT": "syscall", - "syscall.ENOEXEC": "syscall", - "syscall.ENOKEY": "syscall", - "syscall.ENOLCK": "syscall", - "syscall.ENOLINK": "syscall", - "syscall.ENOMEDIUM": "syscall", - "syscall.ENOMEM": "syscall", - "syscall.ENOMSG": "syscall", - "syscall.ENONET": "syscall", - "syscall.ENOPKG": "syscall", - "syscall.ENOPOLICY": "syscall", - "syscall.ENOPROTOOPT": "syscall", - "syscall.ENOSPC": "syscall", - "syscall.ENOSR": "syscall", - "syscall.ENOSTR": "syscall", - "syscall.ENOSYS": "syscall", - "syscall.ENOTBLK": "syscall", - "syscall.ENOTCAPABLE": "syscall", - "syscall.ENOTCONN": "syscall", - "syscall.ENOTDIR": "syscall", - "syscall.ENOTEMPTY": "syscall", - "syscall.ENOTNAM": "syscall", - "syscall.ENOTRECOVERABLE": "syscall", - "syscall.ENOTSOCK": "syscall", - "syscall.ENOTSUP": "syscall", - "syscall.ENOTTY": "syscall", - "syscall.ENOTUNIQ": "syscall", - "syscall.ENXIO": "syscall", - "syscall.EN_SW_CTL_INF": "syscall", - "syscall.EN_SW_CTL_PREC": "syscall", - "syscall.EN_SW_CTL_ROUND": "syscall", - "syscall.EN_SW_DATACHAIN": "syscall", - "syscall.EN_SW_DENORM": "syscall", - "syscall.EN_SW_INVOP": "syscall", - "syscall.EN_SW_OVERFLOW": "syscall", - "syscall.EN_SW_PRECLOSS": "syscall", - "syscall.EN_SW_UNDERFLOW": "syscall", - "syscall.EN_SW_ZERODIV": "syscall", - "syscall.EOPNOTSUPP": "syscall", - "syscall.EOVERFLOW": "syscall", - "syscall.EOWNERDEAD": "syscall", - "syscall.EPERM": "syscall", - "syscall.EPFNOSUPPORT": "syscall", - "syscall.EPIPE": "syscall", - "syscall.EPOLLERR": "syscall", - "syscall.EPOLLET": "syscall", - "syscall.EPOLLHUP": "syscall", - "syscall.EPOLLIN": "syscall", - "syscall.EPOLLMSG": "syscall", - "syscall.EPOLLONESHOT": "syscall", - "syscall.EPOLLOUT": "syscall", - "syscall.EPOLLPRI": "syscall", - "syscall.EPOLLRDBAND": "syscall", - "syscall.EPOLLRDHUP": "syscall", - "syscall.EPOLLRDNORM": "syscall", - "syscall.EPOLLWRBAND": "syscall", - "syscall.EPOLLWRNORM": "syscall", - "syscall.EPOLL_CLOEXEC": "syscall", - "syscall.EPOLL_CTL_ADD": "syscall", - "syscall.EPOLL_CTL_DEL": "syscall", - "syscall.EPOLL_CTL_MOD": "syscall", - "syscall.EPOLL_NONBLOCK": "syscall", - "syscall.EPROCLIM": "syscall", - "syscall.EPROCUNAVAIL": "syscall", - "syscall.EPROGMISMATCH": "syscall", - "syscall.EPROGUNAVAIL": "syscall", - "syscall.EPROTO": "syscall", - "syscall.EPROTONOSUPPORT": "syscall", - "syscall.EPROTOTYPE": "syscall", - "syscall.EPWROFF": "syscall", - "syscall.ERANGE": "syscall", - "syscall.EREMCHG": "syscall", - "syscall.EREMOTE": "syscall", - "syscall.EREMOTEIO": "syscall", - "syscall.ERESTART": "syscall", - "syscall.ERFKILL": "syscall", - "syscall.EROFS": "syscall", - "syscall.ERPCMISMATCH": "syscall", - "syscall.ERROR_ACCESS_DENIED": "syscall", - "syscall.ERROR_ALREADY_EXISTS": "syscall", - "syscall.ERROR_BROKEN_PIPE": "syscall", - "syscall.ERROR_BUFFER_OVERFLOW": "syscall", - "syscall.ERROR_DIR_NOT_EMPTY": "syscall", - "syscall.ERROR_ENVVAR_NOT_FOUND": "syscall", - "syscall.ERROR_FILE_EXISTS": "syscall", - "syscall.ERROR_FILE_NOT_FOUND": "syscall", - "syscall.ERROR_HANDLE_EOF": "syscall", - "syscall.ERROR_INSUFFICIENT_BUFFER": "syscall", - "syscall.ERROR_IO_PENDING": "syscall", - "syscall.ERROR_MOD_NOT_FOUND": "syscall", - "syscall.ERROR_MORE_DATA": "syscall", - "syscall.ERROR_NETNAME_DELETED": "syscall", - "syscall.ERROR_NOT_FOUND": "syscall", - "syscall.ERROR_NO_MORE_FILES": "syscall", - "syscall.ERROR_OPERATION_ABORTED": "syscall", - "syscall.ERROR_PATH_NOT_FOUND": "syscall", - "syscall.ERROR_PRIVILEGE_NOT_HELD": "syscall", - "syscall.ERROR_PROC_NOT_FOUND": "syscall", - "syscall.ESHLIBVERS": "syscall", - "syscall.ESHUTDOWN": "syscall", - "syscall.ESOCKTNOSUPPORT": "syscall", - "syscall.ESPIPE": "syscall", - "syscall.ESRCH": "syscall", - "syscall.ESRMNT": "syscall", - "syscall.ESTALE": "syscall", - "syscall.ESTRPIPE": "syscall", - "syscall.ETHERCAP_JUMBO_MTU": "syscall", - "syscall.ETHERCAP_VLAN_HWTAGGING": "syscall", - "syscall.ETHERCAP_VLAN_MTU": "syscall", - "syscall.ETHERMIN": "syscall", - "syscall.ETHERMTU": "syscall", - "syscall.ETHERMTU_JUMBO": "syscall", - "syscall.ETHERTYPE_8023": "syscall", - "syscall.ETHERTYPE_AARP": "syscall", - "syscall.ETHERTYPE_ACCTON": "syscall", - "syscall.ETHERTYPE_AEONIC": "syscall", - "syscall.ETHERTYPE_ALPHA": "syscall", - "syscall.ETHERTYPE_AMBER": "syscall", - "syscall.ETHERTYPE_AMOEBA": "syscall", - "syscall.ETHERTYPE_AOE": "syscall", - "syscall.ETHERTYPE_APOLLO": "syscall", - "syscall.ETHERTYPE_APOLLODOMAIN": "syscall", - "syscall.ETHERTYPE_APPLETALK": "syscall", - "syscall.ETHERTYPE_APPLITEK": "syscall", - "syscall.ETHERTYPE_ARGONAUT": "syscall", - "syscall.ETHERTYPE_ARP": "syscall", - "syscall.ETHERTYPE_AT": "syscall", - "syscall.ETHERTYPE_ATALK": "syscall", - "syscall.ETHERTYPE_ATOMIC": "syscall", - "syscall.ETHERTYPE_ATT": "syscall", - "syscall.ETHERTYPE_ATTSTANFORD": "syscall", - "syscall.ETHERTYPE_AUTOPHON": "syscall", - "syscall.ETHERTYPE_AXIS": "syscall", - "syscall.ETHERTYPE_BCLOOP": "syscall", - "syscall.ETHERTYPE_BOFL": "syscall", - "syscall.ETHERTYPE_CABLETRON": "syscall", - "syscall.ETHERTYPE_CHAOS": "syscall", - "syscall.ETHERTYPE_COMDESIGN": "syscall", - "syscall.ETHERTYPE_COMPUGRAPHIC": "syscall", - "syscall.ETHERTYPE_COUNTERPOINT": "syscall", - "syscall.ETHERTYPE_CRONUS": "syscall", - "syscall.ETHERTYPE_CRONUSVLN": "syscall", - "syscall.ETHERTYPE_DCA": "syscall", - "syscall.ETHERTYPE_DDE": "syscall", - "syscall.ETHERTYPE_DEBNI": "syscall", - "syscall.ETHERTYPE_DECAM": "syscall", - "syscall.ETHERTYPE_DECCUST": "syscall", - "syscall.ETHERTYPE_DECDIAG": "syscall", - "syscall.ETHERTYPE_DECDNS": "syscall", - "syscall.ETHERTYPE_DECDTS": "syscall", - "syscall.ETHERTYPE_DECEXPER": "syscall", - "syscall.ETHERTYPE_DECLAST": "syscall", - "syscall.ETHERTYPE_DECLTM": "syscall", - "syscall.ETHERTYPE_DECMUMPS": "syscall", - "syscall.ETHERTYPE_DECNETBIOS": "syscall", - "syscall.ETHERTYPE_DELTACON": "syscall", - "syscall.ETHERTYPE_DIDDLE": "syscall", - "syscall.ETHERTYPE_DLOG1": "syscall", - "syscall.ETHERTYPE_DLOG2": "syscall", - "syscall.ETHERTYPE_DN": "syscall", - "syscall.ETHERTYPE_DOGFIGHT": "syscall", - "syscall.ETHERTYPE_DSMD": "syscall", - "syscall.ETHERTYPE_ECMA": "syscall", - "syscall.ETHERTYPE_ENCRYPT": "syscall", - "syscall.ETHERTYPE_ES": "syscall", - "syscall.ETHERTYPE_EXCELAN": "syscall", - "syscall.ETHERTYPE_EXPERDATA": "syscall", - "syscall.ETHERTYPE_FLIP": "syscall", - "syscall.ETHERTYPE_FLOWCONTROL": "syscall", - "syscall.ETHERTYPE_FRARP": "syscall", - "syscall.ETHERTYPE_GENDYN": "syscall", - "syscall.ETHERTYPE_HAYES": "syscall", - "syscall.ETHERTYPE_HIPPI_FP": "syscall", - "syscall.ETHERTYPE_HITACHI": "syscall", - "syscall.ETHERTYPE_HP": "syscall", - "syscall.ETHERTYPE_IEEEPUP": "syscall", - "syscall.ETHERTYPE_IEEEPUPAT": "syscall", - "syscall.ETHERTYPE_IMLBL": "syscall", - "syscall.ETHERTYPE_IMLBLDIAG": "syscall", - "syscall.ETHERTYPE_IP": "syscall", - "syscall.ETHERTYPE_IPAS": "syscall", - "syscall.ETHERTYPE_IPV6": "syscall", - "syscall.ETHERTYPE_IPX": "syscall", - "syscall.ETHERTYPE_IPXNEW": "syscall", - "syscall.ETHERTYPE_KALPANA": "syscall", - "syscall.ETHERTYPE_LANBRIDGE": "syscall", - "syscall.ETHERTYPE_LANPROBE": "syscall", - "syscall.ETHERTYPE_LAT": "syscall", - "syscall.ETHERTYPE_LBACK": "syscall", - "syscall.ETHERTYPE_LITTLE": "syscall", - "syscall.ETHERTYPE_LLDP": "syscall", - "syscall.ETHERTYPE_LOGICRAFT": "syscall", - "syscall.ETHERTYPE_LOOPBACK": "syscall", - "syscall.ETHERTYPE_MATRA": "syscall", - "syscall.ETHERTYPE_MAX": "syscall", - "syscall.ETHERTYPE_MERIT": "syscall", - "syscall.ETHERTYPE_MICP": "syscall", - "syscall.ETHERTYPE_MOPDL": "syscall", - "syscall.ETHERTYPE_MOPRC": "syscall", - "syscall.ETHERTYPE_MOTOROLA": "syscall", - "syscall.ETHERTYPE_MPLS": "syscall", - "syscall.ETHERTYPE_MPLS_MCAST": "syscall", - "syscall.ETHERTYPE_MUMPS": "syscall", - "syscall.ETHERTYPE_NBPCC": "syscall", - "syscall.ETHERTYPE_NBPCLAIM": "syscall", - "syscall.ETHERTYPE_NBPCLREQ": "syscall", - "syscall.ETHERTYPE_NBPCLRSP": "syscall", - "syscall.ETHERTYPE_NBPCREQ": "syscall", - "syscall.ETHERTYPE_NBPCRSP": "syscall", - "syscall.ETHERTYPE_NBPDG": "syscall", - "syscall.ETHERTYPE_NBPDGB": "syscall", - "syscall.ETHERTYPE_NBPDLTE": "syscall", - "syscall.ETHERTYPE_NBPRAR": "syscall", - "syscall.ETHERTYPE_NBPRAS": "syscall", - "syscall.ETHERTYPE_NBPRST": "syscall", - "syscall.ETHERTYPE_NBPSCD": "syscall", - "syscall.ETHERTYPE_NBPVCD": "syscall", - "syscall.ETHERTYPE_NBS": "syscall", - "syscall.ETHERTYPE_NCD": "syscall", - "syscall.ETHERTYPE_NESTAR": "syscall", - "syscall.ETHERTYPE_NETBEUI": "syscall", - "syscall.ETHERTYPE_NOVELL": "syscall", - "syscall.ETHERTYPE_NS": "syscall", - "syscall.ETHERTYPE_NSAT": "syscall", - "syscall.ETHERTYPE_NSCOMPAT": "syscall", - "syscall.ETHERTYPE_NTRAILER": "syscall", - "syscall.ETHERTYPE_OS9": "syscall", - "syscall.ETHERTYPE_OS9NET": "syscall", - "syscall.ETHERTYPE_PACER": "syscall", - "syscall.ETHERTYPE_PAE": "syscall", - "syscall.ETHERTYPE_PCS": "syscall", - "syscall.ETHERTYPE_PLANNING": "syscall", - "syscall.ETHERTYPE_PPP": "syscall", - "syscall.ETHERTYPE_PPPOE": "syscall", - "syscall.ETHERTYPE_PPPOEDISC": "syscall", - "syscall.ETHERTYPE_PRIMENTS": "syscall", - "syscall.ETHERTYPE_PUP": "syscall", - "syscall.ETHERTYPE_PUPAT": "syscall", - "syscall.ETHERTYPE_QINQ": "syscall", - "syscall.ETHERTYPE_RACAL": "syscall", - "syscall.ETHERTYPE_RATIONAL": "syscall", - "syscall.ETHERTYPE_RAWFR": "syscall", - "syscall.ETHERTYPE_RCL": "syscall", - "syscall.ETHERTYPE_RDP": "syscall", - "syscall.ETHERTYPE_RETIX": "syscall", - "syscall.ETHERTYPE_REVARP": "syscall", - "syscall.ETHERTYPE_SCA": "syscall", - "syscall.ETHERTYPE_SECTRA": "syscall", - "syscall.ETHERTYPE_SECUREDATA": "syscall", - "syscall.ETHERTYPE_SGITW": "syscall", - "syscall.ETHERTYPE_SG_BOUNCE": "syscall", - "syscall.ETHERTYPE_SG_DIAG": "syscall", - "syscall.ETHERTYPE_SG_NETGAMES": "syscall", - "syscall.ETHERTYPE_SG_RESV": "syscall", - "syscall.ETHERTYPE_SIMNET": "syscall", - "syscall.ETHERTYPE_SLOW": "syscall", - "syscall.ETHERTYPE_SLOWPROTOCOLS": "syscall", - "syscall.ETHERTYPE_SNA": "syscall", - "syscall.ETHERTYPE_SNMP": "syscall", - "syscall.ETHERTYPE_SONIX": "syscall", - "syscall.ETHERTYPE_SPIDER": "syscall", - "syscall.ETHERTYPE_SPRITE": "syscall", - "syscall.ETHERTYPE_STP": "syscall", - "syscall.ETHERTYPE_TALARIS": "syscall", - "syscall.ETHERTYPE_TALARISMC": "syscall", - "syscall.ETHERTYPE_TCPCOMP": "syscall", - "syscall.ETHERTYPE_TCPSM": "syscall", - "syscall.ETHERTYPE_TEC": "syscall", - "syscall.ETHERTYPE_TIGAN": "syscall", - "syscall.ETHERTYPE_TRAIL": "syscall", - "syscall.ETHERTYPE_TRANSETHER": "syscall", - "syscall.ETHERTYPE_TYMSHARE": "syscall", - "syscall.ETHERTYPE_UBBST": "syscall", - "syscall.ETHERTYPE_UBDEBUG": "syscall", - "syscall.ETHERTYPE_UBDIAGLOOP": "syscall", - "syscall.ETHERTYPE_UBDL": "syscall", - "syscall.ETHERTYPE_UBNIU": "syscall", - "syscall.ETHERTYPE_UBNMC": "syscall", - "syscall.ETHERTYPE_VALID": "syscall", - "syscall.ETHERTYPE_VARIAN": "syscall", - "syscall.ETHERTYPE_VAXELN": "syscall", - "syscall.ETHERTYPE_VEECO": "syscall", - "syscall.ETHERTYPE_VEXP": "syscall", - "syscall.ETHERTYPE_VGLAB": "syscall", - "syscall.ETHERTYPE_VINES": "syscall", - "syscall.ETHERTYPE_VINESECHO": "syscall", - "syscall.ETHERTYPE_VINESLOOP": "syscall", - "syscall.ETHERTYPE_VITAL": "syscall", - "syscall.ETHERTYPE_VLAN": "syscall", - "syscall.ETHERTYPE_VLTLMAN": "syscall", - "syscall.ETHERTYPE_VPROD": "syscall", - "syscall.ETHERTYPE_VURESERVED": "syscall", - "syscall.ETHERTYPE_WATERLOO": "syscall", - "syscall.ETHERTYPE_WELLFLEET": "syscall", - "syscall.ETHERTYPE_X25": "syscall", - "syscall.ETHERTYPE_X75": "syscall", - "syscall.ETHERTYPE_XNSSM": "syscall", - "syscall.ETHERTYPE_XTP": "syscall", - "syscall.ETHER_ADDR_LEN": "syscall", - "syscall.ETHER_ALIGN": "syscall", - "syscall.ETHER_CRC_LEN": "syscall", - "syscall.ETHER_CRC_POLY_BE": "syscall", - "syscall.ETHER_CRC_POLY_LE": "syscall", - "syscall.ETHER_HDR_LEN": "syscall", - "syscall.ETHER_MAX_DIX_LEN": "syscall", - "syscall.ETHER_MAX_LEN": "syscall", - "syscall.ETHER_MAX_LEN_JUMBO": "syscall", - "syscall.ETHER_MIN_LEN": "syscall", - "syscall.ETHER_PPPOE_ENCAP_LEN": "syscall", - "syscall.ETHER_TYPE_LEN": "syscall", - "syscall.ETHER_VLAN_ENCAP_LEN": "syscall", - "syscall.ETH_P_1588": "syscall", - "syscall.ETH_P_8021Q": "syscall", - "syscall.ETH_P_802_2": "syscall", - "syscall.ETH_P_802_3": "syscall", - "syscall.ETH_P_AARP": "syscall", - "syscall.ETH_P_ALL": "syscall", - "syscall.ETH_P_AOE": "syscall", - "syscall.ETH_P_ARCNET": "syscall", - "syscall.ETH_P_ARP": "syscall", - "syscall.ETH_P_ATALK": "syscall", - "syscall.ETH_P_ATMFATE": "syscall", - "syscall.ETH_P_ATMMPOA": "syscall", - "syscall.ETH_P_AX25": "syscall", - "syscall.ETH_P_BPQ": "syscall", - "syscall.ETH_P_CAIF": "syscall", - "syscall.ETH_P_CAN": "syscall", - "syscall.ETH_P_CONTROL": "syscall", - "syscall.ETH_P_CUST": "syscall", - "syscall.ETH_P_DDCMP": "syscall", - "syscall.ETH_P_DEC": "syscall", - "syscall.ETH_P_DIAG": "syscall", - "syscall.ETH_P_DNA_DL": "syscall", - "syscall.ETH_P_DNA_RC": "syscall", - "syscall.ETH_P_DNA_RT": "syscall", - "syscall.ETH_P_DSA": "syscall", - "syscall.ETH_P_ECONET": "syscall", - "syscall.ETH_P_EDSA": "syscall", - "syscall.ETH_P_FCOE": "syscall", - "syscall.ETH_P_FIP": "syscall", - "syscall.ETH_P_HDLC": "syscall", - "syscall.ETH_P_IEEE802154": "syscall", - "syscall.ETH_P_IEEEPUP": "syscall", - "syscall.ETH_P_IEEEPUPAT": "syscall", - "syscall.ETH_P_IP": "syscall", - "syscall.ETH_P_IPV6": "syscall", - "syscall.ETH_P_IPX": "syscall", - "syscall.ETH_P_IRDA": "syscall", - "syscall.ETH_P_LAT": "syscall", - "syscall.ETH_P_LINK_CTL": "syscall", - "syscall.ETH_P_LOCALTALK": "syscall", - "syscall.ETH_P_LOOP": "syscall", - "syscall.ETH_P_MOBITEX": "syscall", - "syscall.ETH_P_MPLS_MC": "syscall", - "syscall.ETH_P_MPLS_UC": "syscall", - "syscall.ETH_P_PAE": "syscall", - "syscall.ETH_P_PAUSE": "syscall", - "syscall.ETH_P_PHONET": "syscall", - "syscall.ETH_P_PPPTALK": "syscall", - "syscall.ETH_P_PPP_DISC": "syscall", - "syscall.ETH_P_PPP_MP": "syscall", - "syscall.ETH_P_PPP_SES": "syscall", - "syscall.ETH_P_PUP": "syscall", - "syscall.ETH_P_PUPAT": "syscall", - "syscall.ETH_P_RARP": "syscall", - "syscall.ETH_P_SCA": "syscall", - "syscall.ETH_P_SLOW": "syscall", - "syscall.ETH_P_SNAP": "syscall", - "syscall.ETH_P_TEB": "syscall", - "syscall.ETH_P_TIPC": "syscall", - "syscall.ETH_P_TRAILER": "syscall", - "syscall.ETH_P_TR_802_2": "syscall", - "syscall.ETH_P_WAN_PPP": "syscall", - "syscall.ETH_P_WCCP": "syscall", - "syscall.ETH_P_X25": "syscall", - "syscall.ETIME": "syscall", - "syscall.ETIMEDOUT": "syscall", - "syscall.ETOOMANYREFS": "syscall", - "syscall.ETXTBSY": "syscall", - "syscall.EUCLEAN": "syscall", - "syscall.EUNATCH": "syscall", - "syscall.EUSERS": "syscall", - "syscall.EVFILT_AIO": "syscall", - "syscall.EVFILT_FS": "syscall", - "syscall.EVFILT_LIO": "syscall", - "syscall.EVFILT_MACHPORT": "syscall", - "syscall.EVFILT_PROC": "syscall", - "syscall.EVFILT_READ": "syscall", - "syscall.EVFILT_SIGNAL": "syscall", - "syscall.EVFILT_SYSCOUNT": "syscall", - "syscall.EVFILT_THREADMARKER": "syscall", - "syscall.EVFILT_TIMER": "syscall", - "syscall.EVFILT_USER": "syscall", - "syscall.EVFILT_VM": "syscall", - "syscall.EVFILT_VNODE": "syscall", - "syscall.EVFILT_WRITE": "syscall", - "syscall.EV_ADD": "syscall", - "syscall.EV_CLEAR": "syscall", - "syscall.EV_DELETE": "syscall", - "syscall.EV_DISABLE": "syscall", - "syscall.EV_DISPATCH": "syscall", - "syscall.EV_DROP": "syscall", - "syscall.EV_ENABLE": "syscall", - "syscall.EV_EOF": "syscall", - "syscall.EV_ERROR": "syscall", - "syscall.EV_FLAG0": "syscall", - "syscall.EV_FLAG1": "syscall", - "syscall.EV_ONESHOT": "syscall", - "syscall.EV_OOBAND": "syscall", - "syscall.EV_POLL": "syscall", - "syscall.EV_RECEIPT": "syscall", - "syscall.EV_SYSFLAGS": "syscall", - "syscall.EWINDOWS": "syscall", - "syscall.EWOULDBLOCK": "syscall", - "syscall.EXDEV": "syscall", - "syscall.EXFULL": "syscall", - "syscall.EXTA": "syscall", - "syscall.EXTB": "syscall", - "syscall.EXTPROC": "syscall", - "syscall.Environ": "syscall", - "syscall.EpollCreate": "syscall", - "syscall.EpollCreate1": "syscall", - "syscall.EpollCtl": "syscall", - "syscall.EpollEvent": "syscall", - "syscall.EpollWait": "syscall", - "syscall.Errno": "syscall", - "syscall.EscapeArg": "syscall", - "syscall.Exchangedata": "syscall", - "syscall.Exec": "syscall", - "syscall.Exit": "syscall", - "syscall.ExitProcess": "syscall", - "syscall.FD_CLOEXEC": "syscall", - "syscall.FD_SETSIZE": "syscall", - "syscall.FILE_ACTION_ADDED": "syscall", - "syscall.FILE_ACTION_MODIFIED": "syscall", - "syscall.FILE_ACTION_REMOVED": "syscall", - "syscall.FILE_ACTION_RENAMED_NEW_NAME": "syscall", - "syscall.FILE_ACTION_RENAMED_OLD_NAME": "syscall", - "syscall.FILE_APPEND_DATA": "syscall", - "syscall.FILE_ATTRIBUTE_ARCHIVE": "syscall", - "syscall.FILE_ATTRIBUTE_DIRECTORY": "syscall", - "syscall.FILE_ATTRIBUTE_HIDDEN": "syscall", - "syscall.FILE_ATTRIBUTE_NORMAL": "syscall", - "syscall.FILE_ATTRIBUTE_READONLY": "syscall", - "syscall.FILE_ATTRIBUTE_REPARSE_POINT": "syscall", - "syscall.FILE_ATTRIBUTE_SYSTEM": "syscall", - "syscall.FILE_BEGIN": "syscall", - "syscall.FILE_CURRENT": "syscall", - "syscall.FILE_END": "syscall", - "syscall.FILE_FLAG_BACKUP_SEMANTICS": "syscall", - "syscall.FILE_FLAG_OPEN_REPARSE_POINT": "syscall", - "syscall.FILE_FLAG_OVERLAPPED": "syscall", - "syscall.FILE_LIST_DIRECTORY": "syscall", - "syscall.FILE_MAP_COPY": "syscall", - "syscall.FILE_MAP_EXECUTE": "syscall", - "syscall.FILE_MAP_READ": "syscall", - "syscall.FILE_MAP_WRITE": "syscall", - "syscall.FILE_NOTIFY_CHANGE_ATTRIBUTES": "syscall", - "syscall.FILE_NOTIFY_CHANGE_CREATION": "syscall", - "syscall.FILE_NOTIFY_CHANGE_DIR_NAME": "syscall", - "syscall.FILE_NOTIFY_CHANGE_FILE_NAME": "syscall", - "syscall.FILE_NOTIFY_CHANGE_LAST_ACCESS": "syscall", - "syscall.FILE_NOTIFY_CHANGE_LAST_WRITE": "syscall", - "syscall.FILE_NOTIFY_CHANGE_SIZE": "syscall", - "syscall.FILE_SHARE_DELETE": "syscall", - "syscall.FILE_SHARE_READ": "syscall", - "syscall.FILE_SHARE_WRITE": "syscall", - "syscall.FILE_SKIP_COMPLETION_PORT_ON_SUCCESS": "syscall", - "syscall.FILE_SKIP_SET_EVENT_ON_HANDLE": "syscall", - "syscall.FILE_TYPE_CHAR": "syscall", - "syscall.FILE_TYPE_DISK": "syscall", - "syscall.FILE_TYPE_PIPE": "syscall", - "syscall.FILE_TYPE_REMOTE": "syscall", - "syscall.FILE_TYPE_UNKNOWN": "syscall", - "syscall.FILE_WRITE_ATTRIBUTES": "syscall", - "syscall.FLUSHO": "syscall", - "syscall.FORMAT_MESSAGE_ALLOCATE_BUFFER": "syscall", - "syscall.FORMAT_MESSAGE_ARGUMENT_ARRAY": "syscall", - "syscall.FORMAT_MESSAGE_FROM_HMODULE": "syscall", - "syscall.FORMAT_MESSAGE_FROM_STRING": "syscall", - "syscall.FORMAT_MESSAGE_FROM_SYSTEM": "syscall", - "syscall.FORMAT_MESSAGE_IGNORE_INSERTS": "syscall", - "syscall.FORMAT_MESSAGE_MAX_WIDTH_MASK": "syscall", - "syscall.FSCTL_GET_REPARSE_POINT": "syscall", - "syscall.F_ADDFILESIGS": "syscall", - "syscall.F_ADDSIGS": "syscall", - "syscall.F_ALLOCATEALL": "syscall", - "syscall.F_ALLOCATECONTIG": "syscall", - "syscall.F_CANCEL": "syscall", - "syscall.F_CHKCLEAN": "syscall", - "syscall.F_CLOSEM": "syscall", - "syscall.F_DUP2FD": "syscall", - "syscall.F_DUP2FD_CLOEXEC": "syscall", - "syscall.F_DUPFD": "syscall", - "syscall.F_DUPFD_CLOEXEC": "syscall", - "syscall.F_EXLCK": "syscall", - "syscall.F_FLUSH_DATA": "syscall", - "syscall.F_FREEZE_FS": "syscall", - "syscall.F_FSCTL": "syscall", - "syscall.F_FSDIRMASK": "syscall", - "syscall.F_FSIN": "syscall", - "syscall.F_FSINOUT": "syscall", - "syscall.F_FSOUT": "syscall", - "syscall.F_FSPRIV": "syscall", - "syscall.F_FSVOID": "syscall", - "syscall.F_FULLFSYNC": "syscall", - "syscall.F_GETFD": "syscall", - "syscall.F_GETFL": "syscall", - "syscall.F_GETLEASE": "syscall", - "syscall.F_GETLK": "syscall", - "syscall.F_GETLK64": "syscall", - "syscall.F_GETLKPID": "syscall", - "syscall.F_GETNOSIGPIPE": "syscall", - "syscall.F_GETOWN": "syscall", - "syscall.F_GETOWN_EX": "syscall", - "syscall.F_GETPATH": "syscall", - "syscall.F_GETPATH_MTMINFO": "syscall", - "syscall.F_GETPIPE_SZ": "syscall", - "syscall.F_GETPROTECTIONCLASS": "syscall", - "syscall.F_GETSIG": "syscall", - "syscall.F_GLOBAL_NOCACHE": "syscall", - "syscall.F_LOCK": "syscall", - "syscall.F_LOG2PHYS": "syscall", - "syscall.F_LOG2PHYS_EXT": "syscall", - "syscall.F_MARKDEPENDENCY": "syscall", - "syscall.F_MAXFD": "syscall", - "syscall.F_NOCACHE": "syscall", - "syscall.F_NODIRECT": "syscall", - "syscall.F_NOTIFY": "syscall", - "syscall.F_OGETLK": "syscall", - "syscall.F_OK": "syscall", - "syscall.F_OSETLK": "syscall", - "syscall.F_OSETLKW": "syscall", - "syscall.F_PARAM_MASK": "syscall", - "syscall.F_PARAM_MAX": "syscall", - "syscall.F_PATHPKG_CHECK": "syscall", - "syscall.F_PEOFPOSMODE": "syscall", - "syscall.F_PREALLOCATE": "syscall", - "syscall.F_RDADVISE": "syscall", - "syscall.F_RDAHEAD": "syscall", - "syscall.F_RDLCK": "syscall", - "syscall.F_READAHEAD": "syscall", - "syscall.F_READBOOTSTRAP": "syscall", - "syscall.F_SETBACKINGSTORE": "syscall", - "syscall.F_SETFD": "syscall", - "syscall.F_SETFL": "syscall", - "syscall.F_SETLEASE": "syscall", - "syscall.F_SETLK": "syscall", - "syscall.F_SETLK64": "syscall", - "syscall.F_SETLKW": "syscall", - "syscall.F_SETLKW64": "syscall", - "syscall.F_SETLK_REMOTE": "syscall", - "syscall.F_SETNOSIGPIPE": "syscall", - "syscall.F_SETOWN": "syscall", - "syscall.F_SETOWN_EX": "syscall", - "syscall.F_SETPIPE_SZ": "syscall", - "syscall.F_SETPROTECTIONCLASS": "syscall", - "syscall.F_SETSIG": "syscall", - "syscall.F_SETSIZE": "syscall", - "syscall.F_SHLCK": "syscall", - "syscall.F_TEST": "syscall", - "syscall.F_THAW_FS": "syscall", - "syscall.F_TLOCK": "syscall", - "syscall.F_ULOCK": "syscall", - "syscall.F_UNLCK": "syscall", - "syscall.F_UNLCKSYS": "syscall", - "syscall.F_VOLPOSMODE": "syscall", - "syscall.F_WRITEBOOTSTRAP": "syscall", - "syscall.F_WRLCK": "syscall", - "syscall.Faccessat": "syscall", - "syscall.Fallocate": "syscall", - "syscall.Fbootstraptransfer_t": "syscall", - "syscall.Fchdir": "syscall", - "syscall.Fchflags": "syscall", - "syscall.Fchmod": "syscall", - "syscall.Fchmodat": "syscall", - "syscall.Fchown": "syscall", - "syscall.Fchownat": "syscall", - "syscall.FcntlFlock": "syscall", - "syscall.FdSet": "syscall", - "syscall.Fdatasync": "syscall", - "syscall.FileNotifyInformation": "syscall", - "syscall.Filetime": "syscall", - "syscall.FindClose": "syscall", - "syscall.FindFirstFile": "syscall", - "syscall.FindNextFile": "syscall", - "syscall.Flock": "syscall", - "syscall.Flock_t": "syscall", - "syscall.FlushBpf": "syscall", - "syscall.FlushFileBuffers": "syscall", - "syscall.FlushViewOfFile": "syscall", - "syscall.ForkExec": "syscall", - "syscall.ForkLock": "syscall", - "syscall.FormatMessage": "syscall", - "syscall.Fpathconf": "syscall", - "syscall.FreeAddrInfoW": "syscall", - "syscall.FreeEnvironmentStrings": "syscall", - "syscall.FreeLibrary": "syscall", - "syscall.Fsid": "syscall", - "syscall.Fstat": "syscall", - "syscall.Fstatfs": "syscall", - "syscall.Fstore_t": "syscall", - "syscall.Fsync": "syscall", - "syscall.Ftruncate": "syscall", - "syscall.FullPath": "syscall", - "syscall.Futimes": "syscall", - "syscall.Futimesat": "syscall", - "syscall.GENERIC_ALL": "syscall", - "syscall.GENERIC_EXECUTE": "syscall", - "syscall.GENERIC_READ": "syscall", - "syscall.GENERIC_WRITE": "syscall", - "syscall.GUID": "syscall", - "syscall.GetAcceptExSockaddrs": "syscall", - "syscall.GetAdaptersInfo": "syscall", - "syscall.GetAddrInfoW": "syscall", - "syscall.GetCommandLine": "syscall", - "syscall.GetComputerName": "syscall", - "syscall.GetConsoleMode": "syscall", - "syscall.GetCurrentDirectory": "syscall", - "syscall.GetCurrentProcess": "syscall", - "syscall.GetEnvironmentStrings": "syscall", - "syscall.GetEnvironmentVariable": "syscall", - "syscall.GetExitCodeProcess": "syscall", - "syscall.GetFileAttributes": "syscall", - "syscall.GetFileAttributesEx": "syscall", - "syscall.GetFileExInfoStandard": "syscall", - "syscall.GetFileExMaxInfoLevel": "syscall", - "syscall.GetFileInformationByHandle": "syscall", - "syscall.GetFileType": "syscall", - "syscall.GetFullPathName": "syscall", - "syscall.GetHostByName": "syscall", - "syscall.GetIfEntry": "syscall", - "syscall.GetLastError": "syscall", - "syscall.GetLengthSid": "syscall", - "syscall.GetLongPathName": "syscall", - "syscall.GetProcAddress": "syscall", - "syscall.GetProcessTimes": "syscall", - "syscall.GetProtoByName": "syscall", - "syscall.GetQueuedCompletionStatus": "syscall", - "syscall.GetServByName": "syscall", - "syscall.GetShortPathName": "syscall", - "syscall.GetStartupInfo": "syscall", - "syscall.GetStdHandle": "syscall", - "syscall.GetSystemTimeAsFileTime": "syscall", - "syscall.GetTempPath": "syscall", - "syscall.GetTimeZoneInformation": "syscall", - "syscall.GetTokenInformation": "syscall", - "syscall.GetUserNameEx": "syscall", - "syscall.GetUserProfileDirectory": "syscall", - "syscall.GetVersion": "syscall", - "syscall.Getcwd": "syscall", - "syscall.Getdents": "syscall", - "syscall.Getdirentries": "syscall", - "syscall.Getdtablesize": "syscall", - "syscall.Getegid": "syscall", - "syscall.Getenv": "syscall", - "syscall.Geteuid": "syscall", - "syscall.Getfsstat": "syscall", - "syscall.Getgid": "syscall", - "syscall.Getgroups": "syscall", - "syscall.Getpagesize": "syscall", - "syscall.Getpeername": "syscall", - "syscall.Getpgid": "syscall", - "syscall.Getpgrp": "syscall", - "syscall.Getpid": "syscall", - "syscall.Getppid": "syscall", - "syscall.Getpriority": "syscall", - "syscall.Getrlimit": "syscall", - "syscall.Getrusage": "syscall", - "syscall.Getsid": "syscall", - "syscall.Getsockname": "syscall", - "syscall.Getsockopt": "syscall", - "syscall.GetsockoptByte": "syscall", - "syscall.GetsockoptICMPv6Filter": "syscall", - "syscall.GetsockoptIPMreq": "syscall", - "syscall.GetsockoptIPMreqn": "syscall", - "syscall.GetsockoptIPv6MTUInfo": "syscall", - "syscall.GetsockoptIPv6Mreq": "syscall", - "syscall.GetsockoptInet4Addr": "syscall", - "syscall.GetsockoptInt": "syscall", - "syscall.GetsockoptUcred": "syscall", - "syscall.Gettid": "syscall", - "syscall.Gettimeofday": "syscall", - "syscall.Getuid": "syscall", - "syscall.Getwd": "syscall", - "syscall.Getxattr": "syscall", - "syscall.HANDLE_FLAG_INHERIT": "syscall", - "syscall.HKEY_CLASSES_ROOT": "syscall", - "syscall.HKEY_CURRENT_CONFIG": "syscall", - "syscall.HKEY_CURRENT_USER": "syscall", - "syscall.HKEY_DYN_DATA": "syscall", - "syscall.HKEY_LOCAL_MACHINE": "syscall", - "syscall.HKEY_PERFORMANCE_DATA": "syscall", - "syscall.HKEY_USERS": "syscall", - "syscall.HUPCL": "syscall", - "syscall.Handle": "syscall", - "syscall.Hostent": "syscall", - "syscall.ICANON": "syscall", - "syscall.ICMP6_FILTER": "syscall", - "syscall.ICMPV6_FILTER": "syscall", - "syscall.ICMPv6Filter": "syscall", - "syscall.ICRNL": "syscall", - "syscall.IEXTEN": "syscall", - "syscall.IFAN_ARRIVAL": "syscall", - "syscall.IFAN_DEPARTURE": "syscall", - "syscall.IFA_ADDRESS": "syscall", - "syscall.IFA_ANYCAST": "syscall", - "syscall.IFA_BROADCAST": "syscall", - "syscall.IFA_CACHEINFO": "syscall", - "syscall.IFA_F_DADFAILED": "syscall", - "syscall.IFA_F_DEPRECATED": "syscall", - "syscall.IFA_F_HOMEADDRESS": "syscall", - "syscall.IFA_F_NODAD": "syscall", - "syscall.IFA_F_OPTIMISTIC": "syscall", - "syscall.IFA_F_PERMANENT": "syscall", - "syscall.IFA_F_SECONDARY": "syscall", - "syscall.IFA_F_TEMPORARY": "syscall", - "syscall.IFA_F_TENTATIVE": "syscall", - "syscall.IFA_LABEL": "syscall", - "syscall.IFA_LOCAL": "syscall", - "syscall.IFA_MAX": "syscall", - "syscall.IFA_MULTICAST": "syscall", - "syscall.IFA_ROUTE": "syscall", - "syscall.IFA_UNSPEC": "syscall", - "syscall.IFF_ALLMULTI": "syscall", - "syscall.IFF_ALTPHYS": "syscall", - "syscall.IFF_AUTOMEDIA": "syscall", - "syscall.IFF_BROADCAST": "syscall", - "syscall.IFF_CANTCHANGE": "syscall", - "syscall.IFF_CANTCONFIG": "syscall", - "syscall.IFF_DEBUG": "syscall", - "syscall.IFF_DRV_OACTIVE": "syscall", - "syscall.IFF_DRV_RUNNING": "syscall", - "syscall.IFF_DYING": "syscall", - "syscall.IFF_DYNAMIC": "syscall", - "syscall.IFF_LINK0": "syscall", - "syscall.IFF_LINK1": "syscall", - "syscall.IFF_LINK2": "syscall", - "syscall.IFF_LOOPBACK": "syscall", - "syscall.IFF_MASTER": "syscall", - "syscall.IFF_MONITOR": "syscall", - "syscall.IFF_MULTICAST": "syscall", - "syscall.IFF_NOARP": "syscall", - "syscall.IFF_NOTRAILERS": "syscall", - "syscall.IFF_NO_PI": "syscall", - "syscall.IFF_OACTIVE": "syscall", - "syscall.IFF_ONE_QUEUE": "syscall", - "syscall.IFF_POINTOPOINT": "syscall", - "syscall.IFF_POINTTOPOINT": "syscall", - "syscall.IFF_PORTSEL": "syscall", - "syscall.IFF_PPROMISC": "syscall", - "syscall.IFF_PROMISC": "syscall", - "syscall.IFF_RENAMING": "syscall", - "syscall.IFF_RUNNING": "syscall", - "syscall.IFF_SIMPLEX": "syscall", - "syscall.IFF_SLAVE": "syscall", - "syscall.IFF_SMART": "syscall", - "syscall.IFF_STATICARP": "syscall", - "syscall.IFF_TAP": "syscall", - "syscall.IFF_TUN": "syscall", - "syscall.IFF_TUN_EXCL": "syscall", - "syscall.IFF_UP": "syscall", - "syscall.IFF_VNET_HDR": "syscall", - "syscall.IFLA_ADDRESS": "syscall", - "syscall.IFLA_BROADCAST": "syscall", - "syscall.IFLA_COST": "syscall", - "syscall.IFLA_IFALIAS": "syscall", - "syscall.IFLA_IFNAME": "syscall", - "syscall.IFLA_LINK": "syscall", - "syscall.IFLA_LINKINFO": "syscall", - "syscall.IFLA_LINKMODE": "syscall", - "syscall.IFLA_MAP": "syscall", - "syscall.IFLA_MASTER": "syscall", - "syscall.IFLA_MAX": "syscall", - "syscall.IFLA_MTU": "syscall", - "syscall.IFLA_NET_NS_PID": "syscall", - "syscall.IFLA_OPERSTATE": "syscall", - "syscall.IFLA_PRIORITY": "syscall", - "syscall.IFLA_PROTINFO": "syscall", - "syscall.IFLA_QDISC": "syscall", - "syscall.IFLA_STATS": "syscall", - "syscall.IFLA_TXQLEN": "syscall", - "syscall.IFLA_UNSPEC": "syscall", - "syscall.IFLA_WEIGHT": "syscall", - "syscall.IFLA_WIRELESS": "syscall", - "syscall.IFNAMSIZ": "syscall", - "syscall.IFT_1822": "syscall", - "syscall.IFT_A12MPPSWITCH": "syscall", - "syscall.IFT_AAL2": "syscall", - "syscall.IFT_AAL5": "syscall", - "syscall.IFT_ADSL": "syscall", - "syscall.IFT_AFLANE8023": "syscall", - "syscall.IFT_AFLANE8025": "syscall", - "syscall.IFT_ARAP": "syscall", - "syscall.IFT_ARCNET": "syscall", - "syscall.IFT_ARCNETPLUS": "syscall", - "syscall.IFT_ASYNC": "syscall", - "syscall.IFT_ATM": "syscall", - "syscall.IFT_ATMDXI": "syscall", - "syscall.IFT_ATMFUNI": "syscall", - "syscall.IFT_ATMIMA": "syscall", - "syscall.IFT_ATMLOGICAL": "syscall", - "syscall.IFT_ATMRADIO": "syscall", - "syscall.IFT_ATMSUBINTERFACE": "syscall", - "syscall.IFT_ATMVCIENDPT": "syscall", - "syscall.IFT_ATMVIRTUAL": "syscall", - "syscall.IFT_BGPPOLICYACCOUNTING": "syscall", - "syscall.IFT_BLUETOOTH": "syscall", - "syscall.IFT_BRIDGE": "syscall", - "syscall.IFT_BSC": "syscall", - "syscall.IFT_CARP": "syscall", - "syscall.IFT_CCTEMUL": "syscall", - "syscall.IFT_CELLULAR": "syscall", - "syscall.IFT_CEPT": "syscall", - "syscall.IFT_CES": "syscall", - "syscall.IFT_CHANNEL": "syscall", - "syscall.IFT_CNR": "syscall", - "syscall.IFT_COFFEE": "syscall", - "syscall.IFT_COMPOSITELINK": "syscall", - "syscall.IFT_DCN": "syscall", - "syscall.IFT_DIGITALPOWERLINE": "syscall", - "syscall.IFT_DIGITALWRAPPEROVERHEADCHANNEL": "syscall", - "syscall.IFT_DLSW": "syscall", - "syscall.IFT_DOCSCABLEDOWNSTREAM": "syscall", - "syscall.IFT_DOCSCABLEMACLAYER": "syscall", - "syscall.IFT_DOCSCABLEUPSTREAM": "syscall", - "syscall.IFT_DOCSCABLEUPSTREAMCHANNEL": "syscall", - "syscall.IFT_DS0": "syscall", - "syscall.IFT_DS0BUNDLE": "syscall", - "syscall.IFT_DS1FDL": "syscall", - "syscall.IFT_DS3": "syscall", - "syscall.IFT_DTM": "syscall", - "syscall.IFT_DUMMY": "syscall", - "syscall.IFT_DVBASILN": "syscall", - "syscall.IFT_DVBASIOUT": "syscall", - "syscall.IFT_DVBRCCDOWNSTREAM": "syscall", - "syscall.IFT_DVBRCCMACLAYER": "syscall", - "syscall.IFT_DVBRCCUPSTREAM": "syscall", - "syscall.IFT_ECONET": "syscall", - "syscall.IFT_ENC": "syscall", - "syscall.IFT_EON": "syscall", - "syscall.IFT_EPLRS": "syscall", - "syscall.IFT_ESCON": "syscall", - "syscall.IFT_ETHER": "syscall", - "syscall.IFT_FAITH": "syscall", - "syscall.IFT_FAST": "syscall", - "syscall.IFT_FASTETHER": "syscall", - "syscall.IFT_FASTETHERFX": "syscall", - "syscall.IFT_FDDI": "syscall", - "syscall.IFT_FIBRECHANNEL": "syscall", - "syscall.IFT_FRAMERELAYINTERCONNECT": "syscall", - "syscall.IFT_FRAMERELAYMPI": "syscall", - "syscall.IFT_FRDLCIENDPT": "syscall", - "syscall.IFT_FRELAY": "syscall", - "syscall.IFT_FRELAYDCE": "syscall", - "syscall.IFT_FRF16MFRBUNDLE": "syscall", - "syscall.IFT_FRFORWARD": "syscall", - "syscall.IFT_G703AT2MB": "syscall", - "syscall.IFT_G703AT64K": "syscall", - "syscall.IFT_GIF": "syscall", - "syscall.IFT_GIGABITETHERNET": "syscall", - "syscall.IFT_GR303IDT": "syscall", - "syscall.IFT_GR303RDT": "syscall", - "syscall.IFT_H323GATEKEEPER": "syscall", - "syscall.IFT_H323PROXY": "syscall", - "syscall.IFT_HDH1822": "syscall", - "syscall.IFT_HDLC": "syscall", - "syscall.IFT_HDSL2": "syscall", - "syscall.IFT_HIPERLAN2": "syscall", - "syscall.IFT_HIPPI": "syscall", - "syscall.IFT_HIPPIINTERFACE": "syscall", - "syscall.IFT_HOSTPAD": "syscall", - "syscall.IFT_HSSI": "syscall", - "syscall.IFT_HY": "syscall", - "syscall.IFT_IBM370PARCHAN": "syscall", - "syscall.IFT_IDSL": "syscall", - "syscall.IFT_IEEE1394": "syscall", - "syscall.IFT_IEEE80211": "syscall", - "syscall.IFT_IEEE80212": "syscall", - "syscall.IFT_IEEE8023ADLAG": "syscall", - "syscall.IFT_IFGSN": "syscall", - "syscall.IFT_IMT": "syscall", - "syscall.IFT_INFINIBAND": "syscall", - "syscall.IFT_INTERLEAVE": "syscall", - "syscall.IFT_IP": "syscall", - "syscall.IFT_IPFORWARD": "syscall", - "syscall.IFT_IPOVERATM": "syscall", - "syscall.IFT_IPOVERCDLC": "syscall", - "syscall.IFT_IPOVERCLAW": "syscall", - "syscall.IFT_IPSWITCH": "syscall", - "syscall.IFT_IPXIP": "syscall", - "syscall.IFT_ISDN": "syscall", - "syscall.IFT_ISDNBASIC": "syscall", - "syscall.IFT_ISDNPRIMARY": "syscall", - "syscall.IFT_ISDNS": "syscall", - "syscall.IFT_ISDNU": "syscall", - "syscall.IFT_ISO88022LLC": "syscall", - "syscall.IFT_ISO88023": "syscall", - "syscall.IFT_ISO88024": "syscall", - "syscall.IFT_ISO88025": "syscall", - "syscall.IFT_ISO88025CRFPINT": "syscall", - "syscall.IFT_ISO88025DTR": "syscall", - "syscall.IFT_ISO88025FIBER": "syscall", - "syscall.IFT_ISO88026": "syscall", - "syscall.IFT_ISUP": "syscall", - "syscall.IFT_L2VLAN": "syscall", - "syscall.IFT_L3IPVLAN": "syscall", - "syscall.IFT_L3IPXVLAN": "syscall", - "syscall.IFT_LAPB": "syscall", - "syscall.IFT_LAPD": "syscall", - "syscall.IFT_LAPF": "syscall", - "syscall.IFT_LINEGROUP": "syscall", - "syscall.IFT_LOCALTALK": "syscall", - "syscall.IFT_LOOP": "syscall", - "syscall.IFT_MEDIAMAILOVERIP": "syscall", - "syscall.IFT_MFSIGLINK": "syscall", - "syscall.IFT_MIOX25": "syscall", - "syscall.IFT_MODEM": "syscall", - "syscall.IFT_MPC": "syscall", - "syscall.IFT_MPLS": "syscall", - "syscall.IFT_MPLSTUNNEL": "syscall", - "syscall.IFT_MSDSL": "syscall", - "syscall.IFT_MVL": "syscall", - "syscall.IFT_MYRINET": "syscall", - "syscall.IFT_NFAS": "syscall", - "syscall.IFT_NSIP": "syscall", - "syscall.IFT_OPTICALCHANNEL": "syscall", - "syscall.IFT_OPTICALTRANSPORT": "syscall", - "syscall.IFT_OTHER": "syscall", - "syscall.IFT_P10": "syscall", - "syscall.IFT_P80": "syscall", - "syscall.IFT_PARA": "syscall", - "syscall.IFT_PDP": "syscall", - "syscall.IFT_PFLOG": "syscall", - "syscall.IFT_PFLOW": "syscall", - "syscall.IFT_PFSYNC": "syscall", - "syscall.IFT_PLC": "syscall", - "syscall.IFT_PON155": "syscall", - "syscall.IFT_PON622": "syscall", - "syscall.IFT_POS": "syscall", - "syscall.IFT_PPP": "syscall", - "syscall.IFT_PPPMULTILINKBUNDLE": "syscall", - "syscall.IFT_PROPATM": "syscall", - "syscall.IFT_PROPBWAP2MP": "syscall", - "syscall.IFT_PROPCNLS": "syscall", - "syscall.IFT_PROPDOCSWIRELESSDOWNSTREAM": "syscall", - "syscall.IFT_PROPDOCSWIRELESSMACLAYER": "syscall", - "syscall.IFT_PROPDOCSWIRELESSUPSTREAM": "syscall", - "syscall.IFT_PROPMUX": "syscall", - "syscall.IFT_PROPVIRTUAL": "syscall", - "syscall.IFT_PROPWIRELESSP2P": "syscall", - "syscall.IFT_PTPSERIAL": "syscall", - "syscall.IFT_PVC": "syscall", - "syscall.IFT_Q2931": "syscall", - "syscall.IFT_QLLC": "syscall", - "syscall.IFT_RADIOMAC": "syscall", - "syscall.IFT_RADSL": "syscall", - "syscall.IFT_REACHDSL": "syscall", - "syscall.IFT_RFC1483": "syscall", - "syscall.IFT_RS232": "syscall", - "syscall.IFT_RSRB": "syscall", - "syscall.IFT_SDLC": "syscall", - "syscall.IFT_SDSL": "syscall", - "syscall.IFT_SHDSL": "syscall", - "syscall.IFT_SIP": "syscall", - "syscall.IFT_SIPSIG": "syscall", - "syscall.IFT_SIPTG": "syscall", - "syscall.IFT_SLIP": "syscall", - "syscall.IFT_SMDSDXI": "syscall", - "syscall.IFT_SMDSICIP": "syscall", - "syscall.IFT_SONET": "syscall", - "syscall.IFT_SONETOVERHEADCHANNEL": "syscall", - "syscall.IFT_SONETPATH": "syscall", - "syscall.IFT_SONETVT": "syscall", - "syscall.IFT_SRP": "syscall", - "syscall.IFT_SS7SIGLINK": "syscall", - "syscall.IFT_STACKTOSTACK": "syscall", - "syscall.IFT_STARLAN": "syscall", - "syscall.IFT_STF": "syscall", - "syscall.IFT_T1": "syscall", - "syscall.IFT_TDLC": "syscall", - "syscall.IFT_TELINK": "syscall", - "syscall.IFT_TERMPAD": "syscall", - "syscall.IFT_TR008": "syscall", - "syscall.IFT_TRANSPHDLC": "syscall", - "syscall.IFT_TUNNEL": "syscall", - "syscall.IFT_ULTRA": "syscall", - "syscall.IFT_USB": "syscall", - "syscall.IFT_V11": "syscall", - "syscall.IFT_V35": "syscall", - "syscall.IFT_V36": "syscall", - "syscall.IFT_V37": "syscall", - "syscall.IFT_VDSL": "syscall", - "syscall.IFT_VIRTUALIPADDRESS": "syscall", - "syscall.IFT_VIRTUALTG": "syscall", - "syscall.IFT_VOICEDID": "syscall", - "syscall.IFT_VOICEEM": "syscall", - "syscall.IFT_VOICEEMFGD": "syscall", - "syscall.IFT_VOICEENCAP": "syscall", - "syscall.IFT_VOICEFGDEANA": "syscall", - "syscall.IFT_VOICEFXO": "syscall", - "syscall.IFT_VOICEFXS": "syscall", - "syscall.IFT_VOICEOVERATM": "syscall", - "syscall.IFT_VOICEOVERCABLE": "syscall", - "syscall.IFT_VOICEOVERFRAMERELAY": "syscall", - "syscall.IFT_VOICEOVERIP": "syscall", - "syscall.IFT_X213": "syscall", - "syscall.IFT_X25": "syscall", - "syscall.IFT_X25DDN": "syscall", - "syscall.IFT_X25HUNTGROUP": "syscall", - "syscall.IFT_X25MLP": "syscall", - "syscall.IFT_X25PLE": "syscall", - "syscall.IFT_XETHER": "syscall", - "syscall.IGNBRK": "syscall", - "syscall.IGNCR": "syscall", - "syscall.IGNORE": "syscall", - "syscall.IGNPAR": "syscall", - "syscall.IMAXBEL": "syscall", - "syscall.INFINITE": "syscall", - "syscall.INLCR": "syscall", - "syscall.INPCK": "syscall", - "syscall.INVALID_FILE_ATTRIBUTES": "syscall", - "syscall.IN_ACCESS": "syscall", - "syscall.IN_ALL_EVENTS": "syscall", - "syscall.IN_ATTRIB": "syscall", - "syscall.IN_CLASSA_HOST": "syscall", - "syscall.IN_CLASSA_MAX": "syscall", - "syscall.IN_CLASSA_NET": "syscall", - "syscall.IN_CLASSA_NSHIFT": "syscall", - "syscall.IN_CLASSB_HOST": "syscall", - "syscall.IN_CLASSB_MAX": "syscall", - "syscall.IN_CLASSB_NET": "syscall", - "syscall.IN_CLASSB_NSHIFT": "syscall", - "syscall.IN_CLASSC_HOST": "syscall", - "syscall.IN_CLASSC_NET": "syscall", - "syscall.IN_CLASSC_NSHIFT": "syscall", - "syscall.IN_CLASSD_HOST": "syscall", - "syscall.IN_CLASSD_NET": "syscall", - "syscall.IN_CLASSD_NSHIFT": "syscall", - "syscall.IN_CLOEXEC": "syscall", - "syscall.IN_CLOSE": "syscall", - "syscall.IN_CLOSE_NOWRITE": "syscall", - "syscall.IN_CLOSE_WRITE": "syscall", - "syscall.IN_CREATE": "syscall", - "syscall.IN_DELETE": "syscall", - "syscall.IN_DELETE_SELF": "syscall", - "syscall.IN_DONT_FOLLOW": "syscall", - "syscall.IN_EXCL_UNLINK": "syscall", - "syscall.IN_IGNORED": "syscall", - "syscall.IN_ISDIR": "syscall", - "syscall.IN_LINKLOCALNETNUM": "syscall", - "syscall.IN_LOOPBACKNET": "syscall", - "syscall.IN_MASK_ADD": "syscall", - "syscall.IN_MODIFY": "syscall", - "syscall.IN_MOVE": "syscall", - "syscall.IN_MOVED_FROM": "syscall", - "syscall.IN_MOVED_TO": "syscall", - "syscall.IN_MOVE_SELF": "syscall", - "syscall.IN_NONBLOCK": "syscall", - "syscall.IN_ONESHOT": "syscall", - "syscall.IN_ONLYDIR": "syscall", - "syscall.IN_OPEN": "syscall", - "syscall.IN_Q_OVERFLOW": "syscall", - "syscall.IN_RFC3021_HOST": "syscall", - "syscall.IN_RFC3021_MASK": "syscall", - "syscall.IN_RFC3021_NET": "syscall", - "syscall.IN_RFC3021_NSHIFT": "syscall", - "syscall.IN_UNMOUNT": "syscall", - "syscall.IOC_IN": "syscall", - "syscall.IOC_INOUT": "syscall", - "syscall.IOC_OUT": "syscall", - "syscall.IOC_VENDOR": "syscall", - "syscall.IOC_WS2": "syscall", - "syscall.IO_REPARSE_TAG_SYMLINK": "syscall", - "syscall.IPMreq": "syscall", - "syscall.IPMreqn": "syscall", - "syscall.IPPROTO_3PC": "syscall", - "syscall.IPPROTO_ADFS": "syscall", - "syscall.IPPROTO_AH": "syscall", - "syscall.IPPROTO_AHIP": "syscall", - "syscall.IPPROTO_APES": "syscall", - "syscall.IPPROTO_ARGUS": "syscall", - "syscall.IPPROTO_AX25": "syscall", - "syscall.IPPROTO_BHA": "syscall", - "syscall.IPPROTO_BLT": "syscall", - "syscall.IPPROTO_BRSATMON": "syscall", - "syscall.IPPROTO_CARP": "syscall", - "syscall.IPPROTO_CFTP": "syscall", - "syscall.IPPROTO_CHAOS": "syscall", - "syscall.IPPROTO_CMTP": "syscall", - "syscall.IPPROTO_COMP": "syscall", - "syscall.IPPROTO_CPHB": "syscall", - "syscall.IPPROTO_CPNX": "syscall", - "syscall.IPPROTO_DCCP": "syscall", - "syscall.IPPROTO_DDP": "syscall", - "syscall.IPPROTO_DGP": "syscall", - "syscall.IPPROTO_DIVERT": "syscall", - "syscall.IPPROTO_DIVERT_INIT": "syscall", - "syscall.IPPROTO_DIVERT_RESP": "syscall", - "syscall.IPPROTO_DONE": "syscall", - "syscall.IPPROTO_DSTOPTS": "syscall", - "syscall.IPPROTO_EGP": "syscall", - "syscall.IPPROTO_EMCON": "syscall", - "syscall.IPPROTO_ENCAP": "syscall", - "syscall.IPPROTO_EON": "syscall", - "syscall.IPPROTO_ESP": "syscall", - "syscall.IPPROTO_ETHERIP": "syscall", - "syscall.IPPROTO_FRAGMENT": "syscall", - "syscall.IPPROTO_GGP": "syscall", - "syscall.IPPROTO_GMTP": "syscall", - "syscall.IPPROTO_GRE": "syscall", - "syscall.IPPROTO_HELLO": "syscall", - "syscall.IPPROTO_HMP": "syscall", - "syscall.IPPROTO_HOPOPTS": "syscall", - "syscall.IPPROTO_ICMP": "syscall", - "syscall.IPPROTO_ICMPV6": "syscall", - "syscall.IPPROTO_IDP": "syscall", - "syscall.IPPROTO_IDPR": "syscall", - "syscall.IPPROTO_IDRP": "syscall", - "syscall.IPPROTO_IGMP": "syscall", - "syscall.IPPROTO_IGP": "syscall", - "syscall.IPPROTO_IGRP": "syscall", - "syscall.IPPROTO_IL": "syscall", - "syscall.IPPROTO_INLSP": "syscall", - "syscall.IPPROTO_INP": "syscall", - "syscall.IPPROTO_IP": "syscall", - "syscall.IPPROTO_IPCOMP": "syscall", - "syscall.IPPROTO_IPCV": "syscall", - "syscall.IPPROTO_IPEIP": "syscall", - "syscall.IPPROTO_IPIP": "syscall", - "syscall.IPPROTO_IPPC": "syscall", - "syscall.IPPROTO_IPV4": "syscall", - "syscall.IPPROTO_IPV6": "syscall", - "syscall.IPPROTO_IPV6_ICMP": "syscall", - "syscall.IPPROTO_IRTP": "syscall", - "syscall.IPPROTO_KRYPTOLAN": "syscall", - "syscall.IPPROTO_LARP": "syscall", - "syscall.IPPROTO_LEAF1": "syscall", - "syscall.IPPROTO_LEAF2": "syscall", - "syscall.IPPROTO_MAX": "syscall", - "syscall.IPPROTO_MAXID": "syscall", - "syscall.IPPROTO_MEAS": "syscall", - "syscall.IPPROTO_MH": "syscall", - "syscall.IPPROTO_MHRP": "syscall", - "syscall.IPPROTO_MICP": "syscall", - "syscall.IPPROTO_MOBILE": "syscall", - "syscall.IPPROTO_MPLS": "syscall", - "syscall.IPPROTO_MTP": "syscall", - "syscall.IPPROTO_MUX": "syscall", - "syscall.IPPROTO_ND": "syscall", - "syscall.IPPROTO_NHRP": "syscall", - "syscall.IPPROTO_NONE": "syscall", - "syscall.IPPROTO_NSP": "syscall", - "syscall.IPPROTO_NVPII": "syscall", - "syscall.IPPROTO_OLD_DIVERT": "syscall", - "syscall.IPPROTO_OSPFIGP": "syscall", - "syscall.IPPROTO_PFSYNC": "syscall", - "syscall.IPPROTO_PGM": "syscall", - "syscall.IPPROTO_PIGP": "syscall", - "syscall.IPPROTO_PIM": "syscall", - "syscall.IPPROTO_PRM": "syscall", - "syscall.IPPROTO_PUP": "syscall", - "syscall.IPPROTO_PVP": "syscall", - "syscall.IPPROTO_RAW": "syscall", - "syscall.IPPROTO_RCCMON": "syscall", - "syscall.IPPROTO_RDP": "syscall", - "syscall.IPPROTO_ROUTING": "syscall", - "syscall.IPPROTO_RSVP": "syscall", - "syscall.IPPROTO_RVD": "syscall", - "syscall.IPPROTO_SATEXPAK": "syscall", - "syscall.IPPROTO_SATMON": "syscall", - "syscall.IPPROTO_SCCSP": "syscall", - "syscall.IPPROTO_SCTP": "syscall", - "syscall.IPPROTO_SDRP": "syscall", - "syscall.IPPROTO_SEND": "syscall", - "syscall.IPPROTO_SEP": "syscall", - "syscall.IPPROTO_SKIP": "syscall", - "syscall.IPPROTO_SPACER": "syscall", - "syscall.IPPROTO_SRPC": "syscall", - "syscall.IPPROTO_ST": "syscall", - "syscall.IPPROTO_SVMTP": "syscall", - "syscall.IPPROTO_SWIPE": "syscall", - "syscall.IPPROTO_TCF": "syscall", - "syscall.IPPROTO_TCP": "syscall", - "syscall.IPPROTO_TLSP": "syscall", - "syscall.IPPROTO_TP": "syscall", - "syscall.IPPROTO_TPXX": "syscall", - "syscall.IPPROTO_TRUNK1": "syscall", - "syscall.IPPROTO_TRUNK2": "syscall", - "syscall.IPPROTO_TTP": "syscall", - "syscall.IPPROTO_UDP": "syscall", - "syscall.IPPROTO_UDPLITE": "syscall", - "syscall.IPPROTO_VINES": "syscall", - "syscall.IPPROTO_VISA": "syscall", - "syscall.IPPROTO_VMTP": "syscall", - "syscall.IPPROTO_VRRP": "syscall", - "syscall.IPPROTO_WBEXPAK": "syscall", - "syscall.IPPROTO_WBMON": "syscall", - "syscall.IPPROTO_WSN": "syscall", - "syscall.IPPROTO_XNET": "syscall", - "syscall.IPPROTO_XTP": "syscall", - "syscall.IPV6_2292DSTOPTS": "syscall", - "syscall.IPV6_2292HOPLIMIT": "syscall", - "syscall.IPV6_2292HOPOPTS": "syscall", - "syscall.IPV6_2292NEXTHOP": "syscall", - "syscall.IPV6_2292PKTINFO": "syscall", - "syscall.IPV6_2292PKTOPTIONS": "syscall", - "syscall.IPV6_2292RTHDR": "syscall", - "syscall.IPV6_ADDRFORM": "syscall", - "syscall.IPV6_ADD_MEMBERSHIP": "syscall", - "syscall.IPV6_AUTHHDR": "syscall", - "syscall.IPV6_AUTH_LEVEL": "syscall", - "syscall.IPV6_AUTOFLOWLABEL": "syscall", - "syscall.IPV6_BINDANY": "syscall", - "syscall.IPV6_BINDV6ONLY": "syscall", - "syscall.IPV6_BOUND_IF": "syscall", - "syscall.IPV6_CHECKSUM": "syscall", - "syscall.IPV6_DEFAULT_MULTICAST_HOPS": "syscall", - "syscall.IPV6_DEFAULT_MULTICAST_LOOP": "syscall", - "syscall.IPV6_DEFHLIM": "syscall", - "syscall.IPV6_DONTFRAG": "syscall", - "syscall.IPV6_DROP_MEMBERSHIP": "syscall", - "syscall.IPV6_DSTOPTS": "syscall", - "syscall.IPV6_ESP_NETWORK_LEVEL": "syscall", - "syscall.IPV6_ESP_TRANS_LEVEL": "syscall", - "syscall.IPV6_FAITH": "syscall", - "syscall.IPV6_FLOWINFO_MASK": "syscall", - "syscall.IPV6_FLOWLABEL_MASK": "syscall", - "syscall.IPV6_FRAGTTL": "syscall", - "syscall.IPV6_FW_ADD": "syscall", - "syscall.IPV6_FW_DEL": "syscall", - "syscall.IPV6_FW_FLUSH": "syscall", - "syscall.IPV6_FW_GET": "syscall", - "syscall.IPV6_FW_ZERO": "syscall", - "syscall.IPV6_HLIMDEC": "syscall", - "syscall.IPV6_HOPLIMIT": "syscall", - "syscall.IPV6_HOPOPTS": "syscall", - "syscall.IPV6_IPCOMP_LEVEL": "syscall", - "syscall.IPV6_IPSEC_POLICY": "syscall", - "syscall.IPV6_JOIN_ANYCAST": "syscall", - "syscall.IPV6_JOIN_GROUP": "syscall", - "syscall.IPV6_LEAVE_ANYCAST": "syscall", - "syscall.IPV6_LEAVE_GROUP": "syscall", - "syscall.IPV6_MAXHLIM": "syscall", - "syscall.IPV6_MAXOPTHDR": "syscall", - "syscall.IPV6_MAXPACKET": "syscall", - "syscall.IPV6_MAX_GROUP_SRC_FILTER": "syscall", - "syscall.IPV6_MAX_MEMBERSHIPS": "syscall", - "syscall.IPV6_MAX_SOCK_SRC_FILTER": "syscall", - "syscall.IPV6_MIN_MEMBERSHIPS": "syscall", - "syscall.IPV6_MMTU": "syscall", - "syscall.IPV6_MSFILTER": "syscall", - "syscall.IPV6_MTU": "syscall", - "syscall.IPV6_MTU_DISCOVER": "syscall", - "syscall.IPV6_MULTICAST_HOPS": "syscall", - "syscall.IPV6_MULTICAST_IF": "syscall", - "syscall.IPV6_MULTICAST_LOOP": "syscall", - "syscall.IPV6_NEXTHOP": "syscall", - "syscall.IPV6_OPTIONS": "syscall", - "syscall.IPV6_PATHMTU": "syscall", - "syscall.IPV6_PIPEX": "syscall", - "syscall.IPV6_PKTINFO": "syscall", - "syscall.IPV6_PMTUDISC_DO": "syscall", - "syscall.IPV6_PMTUDISC_DONT": "syscall", - "syscall.IPV6_PMTUDISC_PROBE": "syscall", - "syscall.IPV6_PMTUDISC_WANT": "syscall", - "syscall.IPV6_PORTRANGE": "syscall", - "syscall.IPV6_PORTRANGE_DEFAULT": "syscall", - "syscall.IPV6_PORTRANGE_HIGH": "syscall", - "syscall.IPV6_PORTRANGE_LOW": "syscall", - "syscall.IPV6_PREFER_TEMPADDR": "syscall", - "syscall.IPV6_RECVDSTOPTS": "syscall", - "syscall.IPV6_RECVDSTPORT": "syscall", - "syscall.IPV6_RECVERR": "syscall", - "syscall.IPV6_RECVHOPLIMIT": "syscall", - "syscall.IPV6_RECVHOPOPTS": "syscall", - "syscall.IPV6_RECVPATHMTU": "syscall", - "syscall.IPV6_RECVPKTINFO": "syscall", - "syscall.IPV6_RECVRTHDR": "syscall", - "syscall.IPV6_RECVTCLASS": "syscall", - "syscall.IPV6_ROUTER_ALERT": "syscall", - "syscall.IPV6_RTABLE": "syscall", - "syscall.IPV6_RTHDR": "syscall", - "syscall.IPV6_RTHDRDSTOPTS": "syscall", - "syscall.IPV6_RTHDR_LOOSE": "syscall", - "syscall.IPV6_RTHDR_STRICT": "syscall", - "syscall.IPV6_RTHDR_TYPE_0": "syscall", - "syscall.IPV6_RXDSTOPTS": "syscall", - "syscall.IPV6_RXHOPOPTS": "syscall", - "syscall.IPV6_SOCKOPT_RESERVED1": "syscall", - "syscall.IPV6_TCLASS": "syscall", - "syscall.IPV6_UNICAST_HOPS": "syscall", - "syscall.IPV6_USE_MIN_MTU": "syscall", - "syscall.IPV6_V6ONLY": "syscall", - "syscall.IPV6_VERSION": "syscall", - "syscall.IPV6_VERSION_MASK": "syscall", - "syscall.IPV6_XFRM_POLICY": "syscall", - "syscall.IP_ADD_MEMBERSHIP": "syscall", - "syscall.IP_ADD_SOURCE_MEMBERSHIP": "syscall", - "syscall.IP_AUTH_LEVEL": "syscall", - "syscall.IP_BINDANY": "syscall", - "syscall.IP_BLOCK_SOURCE": "syscall", - "syscall.IP_BOUND_IF": "syscall", - "syscall.IP_DEFAULT_MULTICAST_LOOP": "syscall", - "syscall.IP_DEFAULT_MULTICAST_TTL": "syscall", - "syscall.IP_DF": "syscall", - "syscall.IP_DIVERTFL": "syscall", - "syscall.IP_DONTFRAG": "syscall", - "syscall.IP_DROP_MEMBERSHIP": "syscall", - "syscall.IP_DROP_SOURCE_MEMBERSHIP": "syscall", - "syscall.IP_DUMMYNET3": "syscall", - "syscall.IP_DUMMYNET_CONFIGURE": "syscall", - "syscall.IP_DUMMYNET_DEL": "syscall", - "syscall.IP_DUMMYNET_FLUSH": "syscall", - "syscall.IP_DUMMYNET_GET": "syscall", - "syscall.IP_EF": "syscall", - "syscall.IP_ERRORMTU": "syscall", - "syscall.IP_ESP_NETWORK_LEVEL": "syscall", - "syscall.IP_ESP_TRANS_LEVEL": "syscall", - "syscall.IP_FAITH": "syscall", - "syscall.IP_FREEBIND": "syscall", - "syscall.IP_FW3": "syscall", - "syscall.IP_FW_ADD": "syscall", - "syscall.IP_FW_DEL": "syscall", - "syscall.IP_FW_FLUSH": "syscall", - "syscall.IP_FW_GET": "syscall", - "syscall.IP_FW_NAT_CFG": "syscall", - "syscall.IP_FW_NAT_DEL": "syscall", - "syscall.IP_FW_NAT_GET_CONFIG": "syscall", - "syscall.IP_FW_NAT_GET_LOG": "syscall", - "syscall.IP_FW_RESETLOG": "syscall", - "syscall.IP_FW_TABLE_ADD": "syscall", - "syscall.IP_FW_TABLE_DEL": "syscall", - "syscall.IP_FW_TABLE_FLUSH": "syscall", - "syscall.IP_FW_TABLE_GETSIZE": "syscall", - "syscall.IP_FW_TABLE_LIST": "syscall", - "syscall.IP_FW_ZERO": "syscall", - "syscall.IP_HDRINCL": "syscall", - "syscall.IP_IPCOMP_LEVEL": "syscall", - "syscall.IP_IPSECFLOWINFO": "syscall", - "syscall.IP_IPSEC_LOCAL_AUTH": "syscall", - "syscall.IP_IPSEC_LOCAL_CRED": "syscall", - "syscall.IP_IPSEC_LOCAL_ID": "syscall", - "syscall.IP_IPSEC_POLICY": "syscall", - "syscall.IP_IPSEC_REMOTE_AUTH": "syscall", - "syscall.IP_IPSEC_REMOTE_CRED": "syscall", - "syscall.IP_IPSEC_REMOTE_ID": "syscall", - "syscall.IP_MAXPACKET": "syscall", - "syscall.IP_MAX_GROUP_SRC_FILTER": "syscall", - "syscall.IP_MAX_MEMBERSHIPS": "syscall", - "syscall.IP_MAX_SOCK_MUTE_FILTER": "syscall", - "syscall.IP_MAX_SOCK_SRC_FILTER": "syscall", - "syscall.IP_MAX_SOURCE_FILTER": "syscall", - "syscall.IP_MF": "syscall", - "syscall.IP_MINFRAGSIZE": "syscall", - "syscall.IP_MINTTL": "syscall", - "syscall.IP_MIN_MEMBERSHIPS": "syscall", - "syscall.IP_MSFILTER": "syscall", - "syscall.IP_MSS": "syscall", - "syscall.IP_MTU": "syscall", - "syscall.IP_MTU_DISCOVER": "syscall", - "syscall.IP_MULTICAST_IF": "syscall", - "syscall.IP_MULTICAST_IFINDEX": "syscall", - "syscall.IP_MULTICAST_LOOP": "syscall", - "syscall.IP_MULTICAST_TTL": "syscall", - "syscall.IP_MULTICAST_VIF": "syscall", - "syscall.IP_NAT__XXX": "syscall", - "syscall.IP_OFFMASK": "syscall", - "syscall.IP_OLD_FW_ADD": "syscall", - "syscall.IP_OLD_FW_DEL": "syscall", - "syscall.IP_OLD_FW_FLUSH": "syscall", - "syscall.IP_OLD_FW_GET": "syscall", - "syscall.IP_OLD_FW_RESETLOG": "syscall", - "syscall.IP_OLD_FW_ZERO": "syscall", - "syscall.IP_ONESBCAST": "syscall", - "syscall.IP_OPTIONS": "syscall", - "syscall.IP_ORIGDSTADDR": "syscall", - "syscall.IP_PASSSEC": "syscall", - "syscall.IP_PIPEX": "syscall", - "syscall.IP_PKTINFO": "syscall", - "syscall.IP_PKTOPTIONS": "syscall", - "syscall.IP_PMTUDISC": "syscall", - "syscall.IP_PMTUDISC_DO": "syscall", - "syscall.IP_PMTUDISC_DONT": "syscall", - "syscall.IP_PMTUDISC_PROBE": "syscall", - "syscall.IP_PMTUDISC_WANT": "syscall", - "syscall.IP_PORTRANGE": "syscall", - "syscall.IP_PORTRANGE_DEFAULT": "syscall", - "syscall.IP_PORTRANGE_HIGH": "syscall", - "syscall.IP_PORTRANGE_LOW": "syscall", - "syscall.IP_RECVDSTADDR": "syscall", - "syscall.IP_RECVDSTPORT": "syscall", - "syscall.IP_RECVERR": "syscall", - "syscall.IP_RECVIF": "syscall", - "syscall.IP_RECVOPTS": "syscall", - "syscall.IP_RECVORIGDSTADDR": "syscall", - "syscall.IP_RECVPKTINFO": "syscall", - "syscall.IP_RECVRETOPTS": "syscall", - "syscall.IP_RECVRTABLE": "syscall", - "syscall.IP_RECVTOS": "syscall", - "syscall.IP_RECVTTL": "syscall", - "syscall.IP_RETOPTS": "syscall", - "syscall.IP_RF": "syscall", - "syscall.IP_ROUTER_ALERT": "syscall", - "syscall.IP_RSVP_OFF": "syscall", - "syscall.IP_RSVP_ON": "syscall", - "syscall.IP_RSVP_VIF_OFF": "syscall", - "syscall.IP_RSVP_VIF_ON": "syscall", - "syscall.IP_RTABLE": "syscall", - "syscall.IP_SENDSRCADDR": "syscall", - "syscall.IP_STRIPHDR": "syscall", - "syscall.IP_TOS": "syscall", - "syscall.IP_TRAFFIC_MGT_BACKGROUND": "syscall", - "syscall.IP_TRANSPARENT": "syscall", - "syscall.IP_TTL": "syscall", - "syscall.IP_UNBLOCK_SOURCE": "syscall", - "syscall.IP_XFRM_POLICY": "syscall", - "syscall.IPv6MTUInfo": "syscall", - "syscall.IPv6Mreq": "syscall", - "syscall.ISIG": "syscall", - "syscall.ISTRIP": "syscall", - "syscall.IUCLC": "syscall", - "syscall.IUTF8": "syscall", - "syscall.IXANY": "syscall", - "syscall.IXOFF": "syscall", - "syscall.IXON": "syscall", - "syscall.IfAddrmsg": "syscall", - "syscall.IfAnnounceMsghdr": "syscall", - "syscall.IfData": "syscall", - "syscall.IfInfomsg": "syscall", - "syscall.IfMsghdr": "syscall", - "syscall.IfaMsghdr": "syscall", - "syscall.IfmaMsghdr": "syscall", - "syscall.IfmaMsghdr2": "syscall", - "syscall.ImplementsGetwd": "syscall", - "syscall.Inet4Pktinfo": "syscall", - "syscall.Inet6Pktinfo": "syscall", - "syscall.InotifyAddWatch": "syscall", - "syscall.InotifyEvent": "syscall", - "syscall.InotifyInit": "syscall", - "syscall.InotifyInit1": "syscall", - "syscall.InotifyRmWatch": "syscall", - "syscall.InterfaceAddrMessage": "syscall", - "syscall.InterfaceAnnounceMessage": "syscall", - "syscall.InterfaceInfo": "syscall", - "syscall.InterfaceMessage": "syscall", - "syscall.InterfaceMulticastAddrMessage": "syscall", - "syscall.InvalidHandle": "syscall", - "syscall.Ioperm": "syscall", - "syscall.Iopl": "syscall", - "syscall.Iovec": "syscall", - "syscall.IpAdapterInfo": "syscall", - "syscall.IpAddrString": "syscall", - "syscall.IpAddressString": "syscall", - "syscall.IpMaskString": "syscall", - "syscall.Issetugid": "syscall", - "syscall.KEY_ALL_ACCESS": "syscall", - "syscall.KEY_CREATE_LINK": "syscall", - "syscall.KEY_CREATE_SUB_KEY": "syscall", - "syscall.KEY_ENUMERATE_SUB_KEYS": "syscall", - "syscall.KEY_EXECUTE": "syscall", - "syscall.KEY_NOTIFY": "syscall", - "syscall.KEY_QUERY_VALUE": "syscall", - "syscall.KEY_READ": "syscall", - "syscall.KEY_SET_VALUE": "syscall", - "syscall.KEY_WOW64_32KEY": "syscall", - "syscall.KEY_WOW64_64KEY": "syscall", - "syscall.KEY_WRITE": "syscall", - "syscall.Kevent": "syscall", - "syscall.Kevent_t": "syscall", - "syscall.Kill": "syscall", - "syscall.Klogctl": "syscall", - "syscall.Kqueue": "syscall", - "syscall.LANG_ENGLISH": "syscall", - "syscall.LAYERED_PROTOCOL": "syscall", - "syscall.LCNT_OVERLOAD_FLUSH": "syscall", - "syscall.LINUX_REBOOT_CMD_CAD_OFF": "syscall", - "syscall.LINUX_REBOOT_CMD_CAD_ON": "syscall", - "syscall.LINUX_REBOOT_CMD_HALT": "syscall", - "syscall.LINUX_REBOOT_CMD_KEXEC": "syscall", - "syscall.LINUX_REBOOT_CMD_POWER_OFF": "syscall", - "syscall.LINUX_REBOOT_CMD_RESTART": "syscall", - "syscall.LINUX_REBOOT_CMD_RESTART2": "syscall", - "syscall.LINUX_REBOOT_CMD_SW_SUSPEND": "syscall", - "syscall.LINUX_REBOOT_MAGIC1": "syscall", - "syscall.LINUX_REBOOT_MAGIC2": "syscall", - "syscall.LOCK_EX": "syscall", - "syscall.LOCK_NB": "syscall", - "syscall.LOCK_SH": "syscall", - "syscall.LOCK_UN": "syscall", - "syscall.LazyDLL": "syscall", - "syscall.LazyProc": "syscall", - "syscall.Lchown": "syscall", - "syscall.Linger": "syscall", - "syscall.Link": "syscall", - "syscall.Listen": "syscall", - "syscall.Listxattr": "syscall", - "syscall.LoadCancelIoEx": "syscall", - "syscall.LoadConnectEx": "syscall", - "syscall.LoadCreateSymbolicLink": "syscall", - "syscall.LoadDLL": "syscall", - "syscall.LoadGetAddrInfo": "syscall", - "syscall.LoadLibrary": "syscall", - "syscall.LoadSetFileCompletionNotificationModes": "syscall", - "syscall.LocalFree": "syscall", - "syscall.Log2phys_t": "syscall", - "syscall.LookupAccountName": "syscall", - "syscall.LookupAccountSid": "syscall", - "syscall.LookupSID": "syscall", - "syscall.LsfJump": "syscall", - "syscall.LsfSocket": "syscall", - "syscall.LsfStmt": "syscall", - "syscall.Lstat": "syscall", - "syscall.MADV_AUTOSYNC": "syscall", - "syscall.MADV_CAN_REUSE": "syscall", - "syscall.MADV_CORE": "syscall", - "syscall.MADV_DOFORK": "syscall", - "syscall.MADV_DONTFORK": "syscall", - "syscall.MADV_DONTNEED": "syscall", - "syscall.MADV_FREE": "syscall", - "syscall.MADV_FREE_REUSABLE": "syscall", - "syscall.MADV_FREE_REUSE": "syscall", - "syscall.MADV_HUGEPAGE": "syscall", - "syscall.MADV_HWPOISON": "syscall", - "syscall.MADV_MERGEABLE": "syscall", - "syscall.MADV_NOCORE": "syscall", - "syscall.MADV_NOHUGEPAGE": "syscall", - "syscall.MADV_NORMAL": "syscall", - "syscall.MADV_NOSYNC": "syscall", - "syscall.MADV_PROTECT": "syscall", - "syscall.MADV_RANDOM": "syscall", - "syscall.MADV_REMOVE": "syscall", - "syscall.MADV_SEQUENTIAL": "syscall", - "syscall.MADV_SPACEAVAIL": "syscall", - "syscall.MADV_UNMERGEABLE": "syscall", - "syscall.MADV_WILLNEED": "syscall", - "syscall.MADV_ZERO_WIRED_PAGES": "syscall", - "syscall.MAP_32BIT": "syscall", - "syscall.MAP_ALIGNED_SUPER": "syscall", - "syscall.MAP_ALIGNMENT_16MB": "syscall", - "syscall.MAP_ALIGNMENT_1TB": "syscall", - "syscall.MAP_ALIGNMENT_256TB": "syscall", - "syscall.MAP_ALIGNMENT_4GB": "syscall", - "syscall.MAP_ALIGNMENT_64KB": "syscall", - "syscall.MAP_ALIGNMENT_64PB": "syscall", - "syscall.MAP_ALIGNMENT_MASK": "syscall", - "syscall.MAP_ALIGNMENT_SHIFT": "syscall", - "syscall.MAP_ANON": "syscall", - "syscall.MAP_ANONYMOUS": "syscall", - "syscall.MAP_COPY": "syscall", - "syscall.MAP_DENYWRITE": "syscall", - "syscall.MAP_EXECUTABLE": "syscall", - "syscall.MAP_FILE": "syscall", - "syscall.MAP_FIXED": "syscall", - "syscall.MAP_FLAGMASK": "syscall", - "syscall.MAP_GROWSDOWN": "syscall", - "syscall.MAP_HASSEMAPHORE": "syscall", - "syscall.MAP_HUGETLB": "syscall", - "syscall.MAP_INHERIT": "syscall", - "syscall.MAP_INHERIT_COPY": "syscall", - "syscall.MAP_INHERIT_DEFAULT": "syscall", - "syscall.MAP_INHERIT_DONATE_COPY": "syscall", - "syscall.MAP_INHERIT_NONE": "syscall", - "syscall.MAP_INHERIT_SHARE": "syscall", - "syscall.MAP_JIT": "syscall", - "syscall.MAP_LOCKED": "syscall", - "syscall.MAP_NOCACHE": "syscall", - "syscall.MAP_NOCORE": "syscall", - "syscall.MAP_NOEXTEND": "syscall", - "syscall.MAP_NONBLOCK": "syscall", - "syscall.MAP_NORESERVE": "syscall", - "syscall.MAP_NOSYNC": "syscall", - "syscall.MAP_POPULATE": "syscall", - "syscall.MAP_PREFAULT_READ": "syscall", - "syscall.MAP_PRIVATE": "syscall", - "syscall.MAP_RENAME": "syscall", - "syscall.MAP_RESERVED0080": "syscall", - "syscall.MAP_RESERVED0100": "syscall", - "syscall.MAP_SHARED": "syscall", - "syscall.MAP_STACK": "syscall", - "syscall.MAP_TRYFIXED": "syscall", - "syscall.MAP_TYPE": "syscall", - "syscall.MAP_WIRED": "syscall", - "syscall.MAXIMUM_REPARSE_DATA_BUFFER_SIZE": "syscall", - "syscall.MAXLEN_IFDESCR": "syscall", - "syscall.MAXLEN_PHYSADDR": "syscall", - "syscall.MAX_ADAPTER_ADDRESS_LENGTH": "syscall", - "syscall.MAX_ADAPTER_DESCRIPTION_LENGTH": "syscall", - "syscall.MAX_ADAPTER_NAME_LENGTH": "syscall", - "syscall.MAX_COMPUTERNAME_LENGTH": "syscall", - "syscall.MAX_INTERFACE_NAME_LEN": "syscall", - "syscall.MAX_LONG_PATH": "syscall", - "syscall.MAX_PATH": "syscall", - "syscall.MAX_PROTOCOL_CHAIN": "syscall", - "syscall.MCL_CURRENT": "syscall", - "syscall.MCL_FUTURE": "syscall", - "syscall.MNT_DETACH": "syscall", - "syscall.MNT_EXPIRE": "syscall", - "syscall.MNT_FORCE": "syscall", - "syscall.MSG_BCAST": "syscall", - "syscall.MSG_CMSG_CLOEXEC": "syscall", - "syscall.MSG_COMPAT": "syscall", - "syscall.MSG_CONFIRM": "syscall", - "syscall.MSG_CONTROLMBUF": "syscall", - "syscall.MSG_CTRUNC": "syscall", - "syscall.MSG_DONTROUTE": "syscall", - "syscall.MSG_DONTWAIT": "syscall", - "syscall.MSG_EOF": "syscall", - "syscall.MSG_EOR": "syscall", - "syscall.MSG_ERRQUEUE": "syscall", - "syscall.MSG_FASTOPEN": "syscall", - "syscall.MSG_FIN": "syscall", - "syscall.MSG_FLUSH": "syscall", - "syscall.MSG_HAVEMORE": "syscall", - "syscall.MSG_HOLD": "syscall", - "syscall.MSG_IOVUSRSPACE": "syscall", - "syscall.MSG_LENUSRSPACE": "syscall", - "syscall.MSG_MCAST": "syscall", - "syscall.MSG_MORE": "syscall", - "syscall.MSG_NAMEMBUF": "syscall", - "syscall.MSG_NBIO": "syscall", - "syscall.MSG_NEEDSA": "syscall", - "syscall.MSG_NOSIGNAL": "syscall", - "syscall.MSG_NOTIFICATION": "syscall", - "syscall.MSG_OOB": "syscall", - "syscall.MSG_PEEK": "syscall", - "syscall.MSG_PROXY": "syscall", - "syscall.MSG_RCVMORE": "syscall", - "syscall.MSG_RST": "syscall", - "syscall.MSG_SEND": "syscall", - "syscall.MSG_SYN": "syscall", - "syscall.MSG_TRUNC": "syscall", - "syscall.MSG_TRYHARD": "syscall", - "syscall.MSG_USERFLAGS": "syscall", - "syscall.MSG_WAITALL": "syscall", - "syscall.MSG_WAITFORONE": "syscall", - "syscall.MSG_WAITSTREAM": "syscall", - "syscall.MS_ACTIVE": "syscall", - "syscall.MS_ASYNC": "syscall", - "syscall.MS_BIND": "syscall", - "syscall.MS_DEACTIVATE": "syscall", - "syscall.MS_DIRSYNC": "syscall", - "syscall.MS_INVALIDATE": "syscall", - "syscall.MS_I_VERSION": "syscall", - "syscall.MS_KERNMOUNT": "syscall", - "syscall.MS_KILLPAGES": "syscall", - "syscall.MS_MANDLOCK": "syscall", - "syscall.MS_MGC_MSK": "syscall", - "syscall.MS_MGC_VAL": "syscall", - "syscall.MS_MOVE": "syscall", - "syscall.MS_NOATIME": "syscall", - "syscall.MS_NODEV": "syscall", - "syscall.MS_NODIRATIME": "syscall", - "syscall.MS_NOEXEC": "syscall", - "syscall.MS_NOSUID": "syscall", - "syscall.MS_NOUSER": "syscall", - "syscall.MS_POSIXACL": "syscall", - "syscall.MS_PRIVATE": "syscall", - "syscall.MS_RDONLY": "syscall", - "syscall.MS_REC": "syscall", - "syscall.MS_RELATIME": "syscall", - "syscall.MS_REMOUNT": "syscall", - "syscall.MS_RMT_MASK": "syscall", - "syscall.MS_SHARED": "syscall", - "syscall.MS_SILENT": "syscall", - "syscall.MS_SLAVE": "syscall", - "syscall.MS_STRICTATIME": "syscall", - "syscall.MS_SYNC": "syscall", - "syscall.MS_SYNCHRONOUS": "syscall", - "syscall.MS_UNBINDABLE": "syscall", - "syscall.Madvise": "syscall", - "syscall.MapViewOfFile": "syscall", - "syscall.MaxTokenInfoClass": "syscall", - "syscall.Mclpool": "syscall", - "syscall.MibIfRow": "syscall", - "syscall.Mkdir": "syscall", - "syscall.Mkdirat": "syscall", - "syscall.Mkfifo": "syscall", - "syscall.Mknod": "syscall", - "syscall.Mknodat": "syscall", - "syscall.Mlock": "syscall", - "syscall.Mlockall": "syscall", - "syscall.Mmap": "syscall", - "syscall.Mount": "syscall", - "syscall.MoveFile": "syscall", - "syscall.Mprotect": "syscall", - "syscall.Msghdr": "syscall", - "syscall.Munlock": "syscall", - "syscall.Munlockall": "syscall", - "syscall.Munmap": "syscall", - "syscall.MustLoadDLL": "syscall", - "syscall.NAME_MAX": "syscall", - "syscall.NETLINK_ADD_MEMBERSHIP": "syscall", - "syscall.NETLINK_AUDIT": "syscall", - "syscall.NETLINK_BROADCAST_ERROR": "syscall", - "syscall.NETLINK_CONNECTOR": "syscall", - "syscall.NETLINK_DNRTMSG": "syscall", - "syscall.NETLINK_DROP_MEMBERSHIP": "syscall", - "syscall.NETLINK_ECRYPTFS": "syscall", - "syscall.NETLINK_FIB_LOOKUP": "syscall", - "syscall.NETLINK_FIREWALL": "syscall", - "syscall.NETLINK_GENERIC": "syscall", - "syscall.NETLINK_INET_DIAG": "syscall", - "syscall.NETLINK_IP6_FW": "syscall", - "syscall.NETLINK_ISCSI": "syscall", - "syscall.NETLINK_KOBJECT_UEVENT": "syscall", - "syscall.NETLINK_NETFILTER": "syscall", - "syscall.NETLINK_NFLOG": "syscall", - "syscall.NETLINK_NO_ENOBUFS": "syscall", - "syscall.NETLINK_PKTINFO": "syscall", - "syscall.NETLINK_RDMA": "syscall", - "syscall.NETLINK_ROUTE": "syscall", - "syscall.NETLINK_SCSITRANSPORT": "syscall", - "syscall.NETLINK_SELINUX": "syscall", - "syscall.NETLINK_UNUSED": "syscall", - "syscall.NETLINK_USERSOCK": "syscall", - "syscall.NETLINK_XFRM": "syscall", - "syscall.NET_RT_DUMP": "syscall", - "syscall.NET_RT_DUMP2": "syscall", - "syscall.NET_RT_FLAGS": "syscall", - "syscall.NET_RT_IFLIST": "syscall", - "syscall.NET_RT_IFLIST2": "syscall", - "syscall.NET_RT_IFLISTL": "syscall", - "syscall.NET_RT_IFMALIST": "syscall", - "syscall.NET_RT_MAXID": "syscall", - "syscall.NET_RT_OIFLIST": "syscall", - "syscall.NET_RT_OOIFLIST": "syscall", - "syscall.NET_RT_STAT": "syscall", - "syscall.NET_RT_STATS": "syscall", - "syscall.NET_RT_TABLE": "syscall", - "syscall.NET_RT_TRASH": "syscall", - "syscall.NLA_ALIGNTO": "syscall", - "syscall.NLA_F_NESTED": "syscall", - "syscall.NLA_F_NET_BYTEORDER": "syscall", - "syscall.NLA_HDRLEN": "syscall", - "syscall.NLMSG_ALIGNTO": "syscall", - "syscall.NLMSG_DONE": "syscall", - "syscall.NLMSG_ERROR": "syscall", - "syscall.NLMSG_HDRLEN": "syscall", - "syscall.NLMSG_MIN_TYPE": "syscall", - "syscall.NLMSG_NOOP": "syscall", - "syscall.NLMSG_OVERRUN": "syscall", - "syscall.NLM_F_ACK": "syscall", - "syscall.NLM_F_APPEND": "syscall", - "syscall.NLM_F_ATOMIC": "syscall", - "syscall.NLM_F_CREATE": "syscall", - "syscall.NLM_F_DUMP": "syscall", - "syscall.NLM_F_ECHO": "syscall", - "syscall.NLM_F_EXCL": "syscall", - "syscall.NLM_F_MATCH": "syscall", - "syscall.NLM_F_MULTI": "syscall", - "syscall.NLM_F_REPLACE": "syscall", - "syscall.NLM_F_REQUEST": "syscall", - "syscall.NLM_F_ROOT": "syscall", - "syscall.NOFLSH": "syscall", - "syscall.NOTE_ABSOLUTE": "syscall", - "syscall.NOTE_ATTRIB": "syscall", - "syscall.NOTE_CHILD": "syscall", - "syscall.NOTE_DELETE": "syscall", - "syscall.NOTE_EOF": "syscall", - "syscall.NOTE_EXEC": "syscall", - "syscall.NOTE_EXIT": "syscall", - "syscall.NOTE_EXITSTATUS": "syscall", - "syscall.NOTE_EXTEND": "syscall", - "syscall.NOTE_FFAND": "syscall", - "syscall.NOTE_FFCOPY": "syscall", - "syscall.NOTE_FFCTRLMASK": "syscall", - "syscall.NOTE_FFLAGSMASK": "syscall", - "syscall.NOTE_FFNOP": "syscall", - "syscall.NOTE_FFOR": "syscall", - "syscall.NOTE_FORK": "syscall", - "syscall.NOTE_LINK": "syscall", - "syscall.NOTE_LOWAT": "syscall", - "syscall.NOTE_NONE": "syscall", - "syscall.NOTE_NSECONDS": "syscall", - "syscall.NOTE_PCTRLMASK": "syscall", - "syscall.NOTE_PDATAMASK": "syscall", - "syscall.NOTE_REAP": "syscall", - "syscall.NOTE_RENAME": "syscall", - "syscall.NOTE_RESOURCEEND": "syscall", - "syscall.NOTE_REVOKE": "syscall", - "syscall.NOTE_SECONDS": "syscall", - "syscall.NOTE_SIGNAL": "syscall", - "syscall.NOTE_TRACK": "syscall", - "syscall.NOTE_TRACKERR": "syscall", - "syscall.NOTE_TRIGGER": "syscall", - "syscall.NOTE_TRUNCATE": "syscall", - "syscall.NOTE_USECONDS": "syscall", - "syscall.NOTE_VM_ERROR": "syscall", - "syscall.NOTE_VM_PRESSURE": "syscall", - "syscall.NOTE_VM_PRESSURE_SUDDEN_TERMINATE": "syscall", - "syscall.NOTE_VM_PRESSURE_TERMINATE": "syscall", - "syscall.NOTE_WRITE": "syscall", - "syscall.NameCanonical": "syscall", - "syscall.NameCanonicalEx": "syscall", - "syscall.NameDisplay": "syscall", - "syscall.NameDnsDomain": "syscall", - "syscall.NameFullyQualifiedDN": "syscall", - "syscall.NameSamCompatible": "syscall", - "syscall.NameServicePrincipal": "syscall", - "syscall.NameUniqueId": "syscall", - "syscall.NameUnknown": "syscall", - "syscall.NameUserPrincipal": "syscall", - "syscall.Nanosleep": "syscall", - "syscall.NetApiBufferFree": "syscall", - "syscall.NetGetJoinInformation": "syscall", - "syscall.NetSetupDomainName": "syscall", - "syscall.NetSetupUnjoined": "syscall", - "syscall.NetSetupUnknownStatus": "syscall", - "syscall.NetSetupWorkgroupName": "syscall", - "syscall.NetUserGetInfo": "syscall", - "syscall.NetlinkMessage": "syscall", - "syscall.NetlinkRIB": "syscall", - "syscall.NetlinkRouteAttr": "syscall", - "syscall.NetlinkRouteRequest": "syscall", - "syscall.NewCallback": "syscall", - "syscall.NewCallbackCDecl": "syscall", - "syscall.NewLazyDLL": "syscall", - "syscall.NlAttr": "syscall", - "syscall.NlMsgerr": "syscall", - "syscall.NlMsghdr": "syscall", - "syscall.NsecToFiletime": "syscall", - "syscall.NsecToTimespec": "syscall", - "syscall.NsecToTimeval": "syscall", - "syscall.Ntohs": "syscall", - "syscall.OCRNL": "syscall", - "syscall.OFDEL": "syscall", - "syscall.OFILL": "syscall", - "syscall.OFIOGETBMAP": "syscall", - "syscall.OID_PKIX_KP_SERVER_AUTH": "syscall", - "syscall.OID_SERVER_GATED_CRYPTO": "syscall", - "syscall.OID_SGC_NETSCAPE": "syscall", - "syscall.OLCUC": "syscall", - "syscall.ONLCR": "syscall", - "syscall.ONLRET": "syscall", - "syscall.ONOCR": "syscall", - "syscall.ONOEOT": "syscall", - "syscall.OPEN_ALWAYS": "syscall", - "syscall.OPEN_EXISTING": "syscall", - "syscall.OPOST": "syscall", - "syscall.O_ACCMODE": "syscall", - "syscall.O_ALERT": "syscall", - "syscall.O_ALT_IO": "syscall", - "syscall.O_APPEND": "syscall", - "syscall.O_ASYNC": "syscall", - "syscall.O_CLOEXEC": "syscall", - "syscall.O_CREAT": "syscall", - "syscall.O_DIRECT": "syscall", - "syscall.O_DIRECTORY": "syscall", - "syscall.O_DSYNC": "syscall", - "syscall.O_EVTONLY": "syscall", - "syscall.O_EXCL": "syscall", - "syscall.O_EXEC": "syscall", - "syscall.O_EXLOCK": "syscall", - "syscall.O_FSYNC": "syscall", - "syscall.O_LARGEFILE": "syscall", - "syscall.O_NDELAY": "syscall", - "syscall.O_NOATIME": "syscall", - "syscall.O_NOCTTY": "syscall", - "syscall.O_NOFOLLOW": "syscall", - "syscall.O_NONBLOCK": "syscall", - "syscall.O_NOSIGPIPE": "syscall", - "syscall.O_POPUP": "syscall", - "syscall.O_RDONLY": "syscall", - "syscall.O_RDWR": "syscall", - "syscall.O_RSYNC": "syscall", - "syscall.O_SHLOCK": "syscall", - "syscall.O_SYMLINK": "syscall", - "syscall.O_SYNC": "syscall", - "syscall.O_TRUNC": "syscall", - "syscall.O_TTY_INIT": "syscall", - "syscall.O_WRONLY": "syscall", - "syscall.Open": "syscall", - "syscall.OpenCurrentProcessToken": "syscall", - "syscall.OpenProcess": "syscall", - "syscall.OpenProcessToken": "syscall", - "syscall.Openat": "syscall", - "syscall.Overlapped": "syscall", - "syscall.PACKET_ADD_MEMBERSHIP": "syscall", - "syscall.PACKET_BROADCAST": "syscall", - "syscall.PACKET_DROP_MEMBERSHIP": "syscall", - "syscall.PACKET_FASTROUTE": "syscall", - "syscall.PACKET_HOST": "syscall", - "syscall.PACKET_LOOPBACK": "syscall", - "syscall.PACKET_MR_ALLMULTI": "syscall", - "syscall.PACKET_MR_MULTICAST": "syscall", - "syscall.PACKET_MR_PROMISC": "syscall", - "syscall.PACKET_MULTICAST": "syscall", - "syscall.PACKET_OTHERHOST": "syscall", - "syscall.PACKET_OUTGOING": "syscall", - "syscall.PACKET_RECV_OUTPUT": "syscall", - "syscall.PACKET_RX_RING": "syscall", - "syscall.PACKET_STATISTICS": "syscall", - "syscall.PAGE_EXECUTE_READ": "syscall", - "syscall.PAGE_EXECUTE_READWRITE": "syscall", - "syscall.PAGE_EXECUTE_WRITECOPY": "syscall", - "syscall.PAGE_READONLY": "syscall", - "syscall.PAGE_READWRITE": "syscall", - "syscall.PAGE_WRITECOPY": "syscall", - "syscall.PARENB": "syscall", - "syscall.PARMRK": "syscall", - "syscall.PARODD": "syscall", - "syscall.PENDIN": "syscall", - "syscall.PFL_HIDDEN": "syscall", - "syscall.PFL_MATCHES_PROTOCOL_ZERO": "syscall", - "syscall.PFL_MULTIPLE_PROTO_ENTRIES": "syscall", - "syscall.PFL_NETWORKDIRECT_PROVIDER": "syscall", - "syscall.PFL_RECOMMENDED_PROTO_ENTRY": "syscall", - "syscall.PF_FLUSH": "syscall", - "syscall.PKCS_7_ASN_ENCODING": "syscall", - "syscall.PMC5_PIPELINE_FLUSH": "syscall", - "syscall.PRIO_PGRP": "syscall", - "syscall.PRIO_PROCESS": "syscall", - "syscall.PRIO_USER": "syscall", - "syscall.PRI_IOFLUSH": "syscall", - "syscall.PROCESS_QUERY_INFORMATION": "syscall", - "syscall.PROCESS_TERMINATE": "syscall", - "syscall.PROT_EXEC": "syscall", - "syscall.PROT_GROWSDOWN": "syscall", - "syscall.PROT_GROWSUP": "syscall", - "syscall.PROT_NONE": "syscall", - "syscall.PROT_READ": "syscall", - "syscall.PROT_WRITE": "syscall", - "syscall.PROV_DH_SCHANNEL": "syscall", - "syscall.PROV_DSS": "syscall", - "syscall.PROV_DSS_DH": "syscall", - "syscall.PROV_EC_ECDSA_FULL": "syscall", - "syscall.PROV_EC_ECDSA_SIG": "syscall", - "syscall.PROV_EC_ECNRA_FULL": "syscall", - "syscall.PROV_EC_ECNRA_SIG": "syscall", - "syscall.PROV_FORTEZZA": "syscall", - "syscall.PROV_INTEL_SEC": "syscall", - "syscall.PROV_MS_EXCHANGE": "syscall", - "syscall.PROV_REPLACE_OWF": "syscall", - "syscall.PROV_RNG": "syscall", - "syscall.PROV_RSA_AES": "syscall", - "syscall.PROV_RSA_FULL": "syscall", - "syscall.PROV_RSA_SCHANNEL": "syscall", - "syscall.PROV_RSA_SIG": "syscall", - "syscall.PROV_SPYRUS_LYNKS": "syscall", - "syscall.PROV_SSL": "syscall", - "syscall.PR_CAPBSET_DROP": "syscall", - "syscall.PR_CAPBSET_READ": "syscall", - "syscall.PR_CLEAR_SECCOMP_FILTER": "syscall", - "syscall.PR_ENDIAN_BIG": "syscall", - "syscall.PR_ENDIAN_LITTLE": "syscall", - "syscall.PR_ENDIAN_PPC_LITTLE": "syscall", - "syscall.PR_FPEMU_NOPRINT": "syscall", - "syscall.PR_FPEMU_SIGFPE": "syscall", - "syscall.PR_FP_EXC_ASYNC": "syscall", - "syscall.PR_FP_EXC_DISABLED": "syscall", - "syscall.PR_FP_EXC_DIV": "syscall", - "syscall.PR_FP_EXC_INV": "syscall", - "syscall.PR_FP_EXC_NONRECOV": "syscall", - "syscall.PR_FP_EXC_OVF": "syscall", - "syscall.PR_FP_EXC_PRECISE": "syscall", - "syscall.PR_FP_EXC_RES": "syscall", - "syscall.PR_FP_EXC_SW_ENABLE": "syscall", - "syscall.PR_FP_EXC_UND": "syscall", - "syscall.PR_GET_DUMPABLE": "syscall", - "syscall.PR_GET_ENDIAN": "syscall", - "syscall.PR_GET_FPEMU": "syscall", - "syscall.PR_GET_FPEXC": "syscall", - "syscall.PR_GET_KEEPCAPS": "syscall", - "syscall.PR_GET_NAME": "syscall", - "syscall.PR_GET_PDEATHSIG": "syscall", - "syscall.PR_GET_SECCOMP": "syscall", - "syscall.PR_GET_SECCOMP_FILTER": "syscall", - "syscall.PR_GET_SECUREBITS": "syscall", - "syscall.PR_GET_TIMERSLACK": "syscall", - "syscall.PR_GET_TIMING": "syscall", - "syscall.PR_GET_TSC": "syscall", - "syscall.PR_GET_UNALIGN": "syscall", - "syscall.PR_MCE_KILL": "syscall", - "syscall.PR_MCE_KILL_CLEAR": "syscall", - "syscall.PR_MCE_KILL_DEFAULT": "syscall", - "syscall.PR_MCE_KILL_EARLY": "syscall", - "syscall.PR_MCE_KILL_GET": "syscall", - "syscall.PR_MCE_KILL_LATE": "syscall", - "syscall.PR_MCE_KILL_SET": "syscall", - "syscall.PR_SECCOMP_FILTER_EVENT": "syscall", - "syscall.PR_SECCOMP_FILTER_SYSCALL": "syscall", - "syscall.PR_SET_DUMPABLE": "syscall", - "syscall.PR_SET_ENDIAN": "syscall", - "syscall.PR_SET_FPEMU": "syscall", - "syscall.PR_SET_FPEXC": "syscall", - "syscall.PR_SET_KEEPCAPS": "syscall", - "syscall.PR_SET_NAME": "syscall", - "syscall.PR_SET_PDEATHSIG": "syscall", - "syscall.PR_SET_PTRACER": "syscall", - "syscall.PR_SET_SECCOMP": "syscall", - "syscall.PR_SET_SECCOMP_FILTER": "syscall", - "syscall.PR_SET_SECUREBITS": "syscall", - "syscall.PR_SET_TIMERSLACK": "syscall", - "syscall.PR_SET_TIMING": "syscall", - "syscall.PR_SET_TSC": "syscall", - "syscall.PR_SET_UNALIGN": "syscall", - "syscall.PR_TASK_PERF_EVENTS_DISABLE": "syscall", - "syscall.PR_TASK_PERF_EVENTS_ENABLE": "syscall", - "syscall.PR_TIMING_STATISTICAL": "syscall", - "syscall.PR_TIMING_TIMESTAMP": "syscall", - "syscall.PR_TSC_ENABLE": "syscall", - "syscall.PR_TSC_SIGSEGV": "syscall", - "syscall.PR_UNALIGN_NOPRINT": "syscall", - "syscall.PR_UNALIGN_SIGBUS": "syscall", - "syscall.PTRACE_ARCH_PRCTL": "syscall", - "syscall.PTRACE_ATTACH": "syscall", - "syscall.PTRACE_CONT": "syscall", - "syscall.PTRACE_DETACH": "syscall", - "syscall.PTRACE_EVENT_CLONE": "syscall", - "syscall.PTRACE_EVENT_EXEC": "syscall", - "syscall.PTRACE_EVENT_EXIT": "syscall", - "syscall.PTRACE_EVENT_FORK": "syscall", - "syscall.PTRACE_EVENT_VFORK": "syscall", - "syscall.PTRACE_EVENT_VFORK_DONE": "syscall", - "syscall.PTRACE_GETCRUNCHREGS": "syscall", - "syscall.PTRACE_GETEVENTMSG": "syscall", - "syscall.PTRACE_GETFPREGS": "syscall", - "syscall.PTRACE_GETFPXREGS": "syscall", - "syscall.PTRACE_GETHBPREGS": "syscall", - "syscall.PTRACE_GETREGS": "syscall", - "syscall.PTRACE_GETREGSET": "syscall", - "syscall.PTRACE_GETSIGINFO": "syscall", - "syscall.PTRACE_GETVFPREGS": "syscall", - "syscall.PTRACE_GETWMMXREGS": "syscall", - "syscall.PTRACE_GET_THREAD_AREA": "syscall", - "syscall.PTRACE_KILL": "syscall", - "syscall.PTRACE_OLDSETOPTIONS": "syscall", - "syscall.PTRACE_O_MASK": "syscall", - "syscall.PTRACE_O_TRACECLONE": "syscall", - "syscall.PTRACE_O_TRACEEXEC": "syscall", - "syscall.PTRACE_O_TRACEEXIT": "syscall", - "syscall.PTRACE_O_TRACEFORK": "syscall", - "syscall.PTRACE_O_TRACESYSGOOD": "syscall", - "syscall.PTRACE_O_TRACEVFORK": "syscall", - "syscall.PTRACE_O_TRACEVFORKDONE": "syscall", - "syscall.PTRACE_PEEKDATA": "syscall", - "syscall.PTRACE_PEEKTEXT": "syscall", - "syscall.PTRACE_PEEKUSR": "syscall", - "syscall.PTRACE_POKEDATA": "syscall", - "syscall.PTRACE_POKETEXT": "syscall", - "syscall.PTRACE_POKEUSR": "syscall", - "syscall.PTRACE_SETCRUNCHREGS": "syscall", - "syscall.PTRACE_SETFPREGS": "syscall", - "syscall.PTRACE_SETFPXREGS": "syscall", - "syscall.PTRACE_SETHBPREGS": "syscall", - "syscall.PTRACE_SETOPTIONS": "syscall", - "syscall.PTRACE_SETREGS": "syscall", - "syscall.PTRACE_SETREGSET": "syscall", - "syscall.PTRACE_SETSIGINFO": "syscall", - "syscall.PTRACE_SETVFPREGS": "syscall", - "syscall.PTRACE_SETWMMXREGS": "syscall", - "syscall.PTRACE_SET_SYSCALL": "syscall", - "syscall.PTRACE_SET_THREAD_AREA": "syscall", - "syscall.PTRACE_SINGLEBLOCK": "syscall", - "syscall.PTRACE_SINGLESTEP": "syscall", - "syscall.PTRACE_SYSCALL": "syscall", - "syscall.PTRACE_SYSEMU": "syscall", - "syscall.PTRACE_SYSEMU_SINGLESTEP": "syscall", - "syscall.PTRACE_TRACEME": "syscall", - "syscall.PT_ATTACH": "syscall", - "syscall.PT_ATTACHEXC": "syscall", - "syscall.PT_CONTINUE": "syscall", - "syscall.PT_DATA_ADDR": "syscall", - "syscall.PT_DENY_ATTACH": "syscall", - "syscall.PT_DETACH": "syscall", - "syscall.PT_FIRSTMACH": "syscall", - "syscall.PT_FORCEQUOTA": "syscall", - "syscall.PT_KILL": "syscall", - "syscall.PT_MASK": "syscall", - "syscall.PT_READ_D": "syscall", - "syscall.PT_READ_I": "syscall", - "syscall.PT_READ_U": "syscall", - "syscall.PT_SIGEXC": "syscall", - "syscall.PT_STEP": "syscall", - "syscall.PT_TEXT_ADDR": "syscall", - "syscall.PT_TEXT_END_ADDR": "syscall", - "syscall.PT_THUPDATE": "syscall", - "syscall.PT_TRACE_ME": "syscall", - "syscall.PT_WRITE_D": "syscall", - "syscall.PT_WRITE_I": "syscall", - "syscall.PT_WRITE_U": "syscall", - "syscall.ParseDirent": "syscall", - "syscall.ParseNetlinkMessage": "syscall", - "syscall.ParseNetlinkRouteAttr": "syscall", - "syscall.ParseRoutingMessage": "syscall", - "syscall.ParseRoutingSockaddr": "syscall", - "syscall.ParseSocketControlMessage": "syscall", - "syscall.ParseUnixCredentials": "syscall", - "syscall.ParseUnixRights": "syscall", - "syscall.PathMax": "syscall", - "syscall.Pathconf": "syscall", - "syscall.Pause": "syscall", - "syscall.Pipe": "syscall", - "syscall.Pipe2": "syscall", - "syscall.PivotRoot": "syscall", - "syscall.PostQueuedCompletionStatus": "syscall", - "syscall.Pread": "syscall", - "syscall.Proc": "syscall", - "syscall.ProcAttr": "syscall", - "syscall.Process32First": "syscall", - "syscall.Process32Next": "syscall", - "syscall.ProcessEntry32": "syscall", - "syscall.ProcessInformation": "syscall", - "syscall.Protoent": "syscall", - "syscall.PtraceAttach": "syscall", - "syscall.PtraceCont": "syscall", - "syscall.PtraceDetach": "syscall", - "syscall.PtraceGetEventMsg": "syscall", - "syscall.PtraceGetRegs": "syscall", - "syscall.PtracePeekData": "syscall", - "syscall.PtracePeekText": "syscall", - "syscall.PtracePokeData": "syscall", - "syscall.PtracePokeText": "syscall", - "syscall.PtraceRegs": "syscall", - "syscall.PtraceSetOptions": "syscall", - "syscall.PtraceSetRegs": "syscall", - "syscall.PtraceSingleStep": "syscall", - "syscall.PtraceSyscall": "syscall", - "syscall.Pwrite": "syscall", - "syscall.REG_BINARY": "syscall", - "syscall.REG_DWORD": "syscall", - "syscall.REG_DWORD_BIG_ENDIAN": "syscall", - "syscall.REG_DWORD_LITTLE_ENDIAN": "syscall", - "syscall.REG_EXPAND_SZ": "syscall", - "syscall.REG_FULL_RESOURCE_DESCRIPTOR": "syscall", - "syscall.REG_LINK": "syscall", - "syscall.REG_MULTI_SZ": "syscall", - "syscall.REG_NONE": "syscall", - "syscall.REG_QWORD": "syscall", - "syscall.REG_QWORD_LITTLE_ENDIAN": "syscall", - "syscall.REG_RESOURCE_LIST": "syscall", - "syscall.REG_RESOURCE_REQUIREMENTS_LIST": "syscall", - "syscall.REG_SZ": "syscall", - "syscall.RLIMIT_AS": "syscall", - "syscall.RLIMIT_CORE": "syscall", - "syscall.RLIMIT_CPU": "syscall", - "syscall.RLIMIT_DATA": "syscall", - "syscall.RLIMIT_FSIZE": "syscall", - "syscall.RLIMIT_NOFILE": "syscall", - "syscall.RLIMIT_STACK": "syscall", - "syscall.RLIM_INFINITY": "syscall", - "syscall.RTAX_ADVMSS": "syscall", - "syscall.RTAX_AUTHOR": "syscall", - "syscall.RTAX_BRD": "syscall", - "syscall.RTAX_CWND": "syscall", - "syscall.RTAX_DST": "syscall", - "syscall.RTAX_FEATURES": "syscall", - "syscall.RTAX_FEATURE_ALLFRAG": "syscall", - "syscall.RTAX_FEATURE_ECN": "syscall", - "syscall.RTAX_FEATURE_SACK": "syscall", - "syscall.RTAX_FEATURE_TIMESTAMP": "syscall", - "syscall.RTAX_GATEWAY": "syscall", - "syscall.RTAX_GENMASK": "syscall", - "syscall.RTAX_HOPLIMIT": "syscall", - "syscall.RTAX_IFA": "syscall", - "syscall.RTAX_IFP": "syscall", - "syscall.RTAX_INITCWND": "syscall", - "syscall.RTAX_INITRWND": "syscall", - "syscall.RTAX_LABEL": "syscall", - "syscall.RTAX_LOCK": "syscall", - "syscall.RTAX_MAX": "syscall", - "syscall.RTAX_MTU": "syscall", - "syscall.RTAX_NETMASK": "syscall", - "syscall.RTAX_REORDERING": "syscall", - "syscall.RTAX_RTO_MIN": "syscall", - "syscall.RTAX_RTT": "syscall", - "syscall.RTAX_RTTVAR": "syscall", - "syscall.RTAX_SRC": "syscall", - "syscall.RTAX_SRCMASK": "syscall", - "syscall.RTAX_SSTHRESH": "syscall", - "syscall.RTAX_TAG": "syscall", - "syscall.RTAX_UNSPEC": "syscall", - "syscall.RTAX_WINDOW": "syscall", - "syscall.RTA_ALIGNTO": "syscall", - "syscall.RTA_AUTHOR": "syscall", - "syscall.RTA_BRD": "syscall", - "syscall.RTA_CACHEINFO": "syscall", - "syscall.RTA_DST": "syscall", - "syscall.RTA_FLOW": "syscall", - "syscall.RTA_GATEWAY": "syscall", - "syscall.RTA_GENMASK": "syscall", - "syscall.RTA_IFA": "syscall", - "syscall.RTA_IFP": "syscall", - "syscall.RTA_IIF": "syscall", - "syscall.RTA_LABEL": "syscall", - "syscall.RTA_MAX": "syscall", - "syscall.RTA_METRICS": "syscall", - "syscall.RTA_MULTIPATH": "syscall", - "syscall.RTA_NETMASK": "syscall", - "syscall.RTA_OIF": "syscall", - "syscall.RTA_PREFSRC": "syscall", - "syscall.RTA_PRIORITY": "syscall", - "syscall.RTA_SRC": "syscall", - "syscall.RTA_SRCMASK": "syscall", - "syscall.RTA_TABLE": "syscall", - "syscall.RTA_TAG": "syscall", - "syscall.RTA_UNSPEC": "syscall", - "syscall.RTCF_DIRECTSRC": "syscall", - "syscall.RTCF_DOREDIRECT": "syscall", - "syscall.RTCF_LOG": "syscall", - "syscall.RTCF_MASQ": "syscall", - "syscall.RTCF_NAT": "syscall", - "syscall.RTCF_VALVE": "syscall", - "syscall.RTF_ADDRCLASSMASK": "syscall", - "syscall.RTF_ADDRCONF": "syscall", - "syscall.RTF_ALLONLINK": "syscall", - "syscall.RTF_ANNOUNCE": "syscall", - "syscall.RTF_BLACKHOLE": "syscall", - "syscall.RTF_BROADCAST": "syscall", - "syscall.RTF_CACHE": "syscall", - "syscall.RTF_CLONED": "syscall", - "syscall.RTF_CLONING": "syscall", - "syscall.RTF_CONDEMNED": "syscall", - "syscall.RTF_DEFAULT": "syscall", - "syscall.RTF_DELCLONE": "syscall", - "syscall.RTF_DONE": "syscall", - "syscall.RTF_DYNAMIC": "syscall", - "syscall.RTF_FLOW": "syscall", - "syscall.RTF_FMASK": "syscall", - "syscall.RTF_GATEWAY": "syscall", - "syscall.RTF_GWFLAG_COMPAT": "syscall", - "syscall.RTF_HOST": "syscall", - "syscall.RTF_IFREF": "syscall", - "syscall.RTF_IFSCOPE": "syscall", - "syscall.RTF_INTERFACE": "syscall", - "syscall.RTF_IRTT": "syscall", - "syscall.RTF_LINKRT": "syscall", - "syscall.RTF_LLDATA": "syscall", - "syscall.RTF_LLINFO": "syscall", - "syscall.RTF_LOCAL": "syscall", - "syscall.RTF_MASK": "syscall", - "syscall.RTF_MODIFIED": "syscall", - "syscall.RTF_MPATH": "syscall", - "syscall.RTF_MPLS": "syscall", - "syscall.RTF_MSS": "syscall", - "syscall.RTF_MTU": "syscall", - "syscall.RTF_MULTICAST": "syscall", - "syscall.RTF_NAT": "syscall", - "syscall.RTF_NOFORWARD": "syscall", - "syscall.RTF_NONEXTHOP": "syscall", - "syscall.RTF_NOPMTUDISC": "syscall", - "syscall.RTF_PERMANENT_ARP": "syscall", - "syscall.RTF_PINNED": "syscall", - "syscall.RTF_POLICY": "syscall", - "syscall.RTF_PRCLONING": "syscall", - "syscall.RTF_PROTO1": "syscall", - "syscall.RTF_PROTO2": "syscall", - "syscall.RTF_PROTO3": "syscall", - "syscall.RTF_REINSTATE": "syscall", - "syscall.RTF_REJECT": "syscall", - "syscall.RTF_RNH_LOCKED": "syscall", - "syscall.RTF_SOURCE": "syscall", - "syscall.RTF_SRC": "syscall", - "syscall.RTF_STATIC": "syscall", - "syscall.RTF_STICKY": "syscall", - "syscall.RTF_THROW": "syscall", - "syscall.RTF_TUNNEL": "syscall", - "syscall.RTF_UP": "syscall", - "syscall.RTF_USETRAILERS": "syscall", - "syscall.RTF_WASCLONED": "syscall", - "syscall.RTF_WINDOW": "syscall", - "syscall.RTF_XRESOLVE": "syscall", - "syscall.RTM_ADD": "syscall", - "syscall.RTM_BASE": "syscall", - "syscall.RTM_CHANGE": "syscall", - "syscall.RTM_CHGADDR": "syscall", - "syscall.RTM_DELACTION": "syscall", - "syscall.RTM_DELADDR": "syscall", - "syscall.RTM_DELADDRLABEL": "syscall", - "syscall.RTM_DELETE": "syscall", - "syscall.RTM_DELLINK": "syscall", - "syscall.RTM_DELMADDR": "syscall", - "syscall.RTM_DELNEIGH": "syscall", - "syscall.RTM_DELQDISC": "syscall", - "syscall.RTM_DELROUTE": "syscall", - "syscall.RTM_DELRULE": "syscall", - "syscall.RTM_DELTCLASS": "syscall", - "syscall.RTM_DELTFILTER": "syscall", - "syscall.RTM_DESYNC": "syscall", - "syscall.RTM_F_CLONED": "syscall", - "syscall.RTM_F_EQUALIZE": "syscall", - "syscall.RTM_F_NOTIFY": "syscall", - "syscall.RTM_F_PREFIX": "syscall", - "syscall.RTM_GET": "syscall", - "syscall.RTM_GET2": "syscall", - "syscall.RTM_GETACTION": "syscall", - "syscall.RTM_GETADDR": "syscall", - "syscall.RTM_GETADDRLABEL": "syscall", - "syscall.RTM_GETANYCAST": "syscall", - "syscall.RTM_GETDCB": "syscall", - "syscall.RTM_GETLINK": "syscall", - "syscall.RTM_GETMULTICAST": "syscall", - "syscall.RTM_GETNEIGH": "syscall", - "syscall.RTM_GETNEIGHTBL": "syscall", - "syscall.RTM_GETQDISC": "syscall", - "syscall.RTM_GETROUTE": "syscall", - "syscall.RTM_GETRULE": "syscall", - "syscall.RTM_GETTCLASS": "syscall", - "syscall.RTM_GETTFILTER": "syscall", - "syscall.RTM_IEEE80211": "syscall", - "syscall.RTM_IFANNOUNCE": "syscall", - "syscall.RTM_IFINFO": "syscall", - "syscall.RTM_IFINFO2": "syscall", - "syscall.RTM_LLINFO_UPD": "syscall", - "syscall.RTM_LOCK": "syscall", - "syscall.RTM_LOSING": "syscall", - "syscall.RTM_MAX": "syscall", - "syscall.RTM_MAXSIZE": "syscall", - "syscall.RTM_MISS": "syscall", - "syscall.RTM_NEWACTION": "syscall", - "syscall.RTM_NEWADDR": "syscall", - "syscall.RTM_NEWADDRLABEL": "syscall", - "syscall.RTM_NEWLINK": "syscall", - "syscall.RTM_NEWMADDR": "syscall", - "syscall.RTM_NEWMADDR2": "syscall", - "syscall.RTM_NEWNDUSEROPT": "syscall", - "syscall.RTM_NEWNEIGH": "syscall", - "syscall.RTM_NEWNEIGHTBL": "syscall", - "syscall.RTM_NEWPREFIX": "syscall", - "syscall.RTM_NEWQDISC": "syscall", - "syscall.RTM_NEWROUTE": "syscall", - "syscall.RTM_NEWRULE": "syscall", - "syscall.RTM_NEWTCLASS": "syscall", - "syscall.RTM_NEWTFILTER": "syscall", - "syscall.RTM_NR_FAMILIES": "syscall", - "syscall.RTM_NR_MSGTYPES": "syscall", - "syscall.RTM_OIFINFO": "syscall", - "syscall.RTM_OLDADD": "syscall", - "syscall.RTM_OLDDEL": "syscall", - "syscall.RTM_OOIFINFO": "syscall", - "syscall.RTM_REDIRECT": "syscall", - "syscall.RTM_RESOLVE": "syscall", - "syscall.RTM_RTTUNIT": "syscall", - "syscall.RTM_SETDCB": "syscall", - "syscall.RTM_SETGATE": "syscall", - "syscall.RTM_SETLINK": "syscall", - "syscall.RTM_SETNEIGHTBL": "syscall", - "syscall.RTM_VERSION": "syscall", - "syscall.RTNH_ALIGNTO": "syscall", - "syscall.RTNH_F_DEAD": "syscall", - "syscall.RTNH_F_ONLINK": "syscall", - "syscall.RTNH_F_PERVASIVE": "syscall", - "syscall.RTNLGRP_IPV4_IFADDR": "syscall", - "syscall.RTNLGRP_IPV4_MROUTE": "syscall", - "syscall.RTNLGRP_IPV4_ROUTE": "syscall", - "syscall.RTNLGRP_IPV4_RULE": "syscall", - "syscall.RTNLGRP_IPV6_IFADDR": "syscall", - "syscall.RTNLGRP_IPV6_IFINFO": "syscall", - "syscall.RTNLGRP_IPV6_MROUTE": "syscall", - "syscall.RTNLGRP_IPV6_PREFIX": "syscall", - "syscall.RTNLGRP_IPV6_ROUTE": "syscall", - "syscall.RTNLGRP_IPV6_RULE": "syscall", - "syscall.RTNLGRP_LINK": "syscall", - "syscall.RTNLGRP_ND_USEROPT": "syscall", - "syscall.RTNLGRP_NEIGH": "syscall", - "syscall.RTNLGRP_NONE": "syscall", - "syscall.RTNLGRP_NOTIFY": "syscall", - "syscall.RTNLGRP_TC": "syscall", - "syscall.RTN_ANYCAST": "syscall", - "syscall.RTN_BLACKHOLE": "syscall", - "syscall.RTN_BROADCAST": "syscall", - "syscall.RTN_LOCAL": "syscall", - "syscall.RTN_MAX": "syscall", - "syscall.RTN_MULTICAST": "syscall", - "syscall.RTN_NAT": "syscall", - "syscall.RTN_PROHIBIT": "syscall", - "syscall.RTN_THROW": "syscall", - "syscall.RTN_UNICAST": "syscall", - "syscall.RTN_UNREACHABLE": "syscall", - "syscall.RTN_UNSPEC": "syscall", - "syscall.RTN_XRESOLVE": "syscall", - "syscall.RTPROT_BIRD": "syscall", - "syscall.RTPROT_BOOT": "syscall", - "syscall.RTPROT_DHCP": "syscall", - "syscall.RTPROT_DNROUTED": "syscall", - "syscall.RTPROT_GATED": "syscall", - "syscall.RTPROT_KERNEL": "syscall", - "syscall.RTPROT_MRT": "syscall", - "syscall.RTPROT_NTK": "syscall", - "syscall.RTPROT_RA": "syscall", - "syscall.RTPROT_REDIRECT": "syscall", - "syscall.RTPROT_STATIC": "syscall", - "syscall.RTPROT_UNSPEC": "syscall", - "syscall.RTPROT_XORP": "syscall", - "syscall.RTPROT_ZEBRA": "syscall", - "syscall.RTV_EXPIRE": "syscall", - "syscall.RTV_HOPCOUNT": "syscall", - "syscall.RTV_MTU": "syscall", - "syscall.RTV_RPIPE": "syscall", - "syscall.RTV_RTT": "syscall", - "syscall.RTV_RTTVAR": "syscall", - "syscall.RTV_SPIPE": "syscall", - "syscall.RTV_SSTHRESH": "syscall", - "syscall.RTV_WEIGHT": "syscall", - "syscall.RT_CACHING_CONTEXT": "syscall", - "syscall.RT_CLASS_DEFAULT": "syscall", - "syscall.RT_CLASS_LOCAL": "syscall", - "syscall.RT_CLASS_MAIN": "syscall", - "syscall.RT_CLASS_MAX": "syscall", - "syscall.RT_CLASS_UNSPEC": "syscall", - "syscall.RT_DEFAULT_FIB": "syscall", - "syscall.RT_NORTREF": "syscall", - "syscall.RT_SCOPE_HOST": "syscall", - "syscall.RT_SCOPE_LINK": "syscall", - "syscall.RT_SCOPE_NOWHERE": "syscall", - "syscall.RT_SCOPE_SITE": "syscall", - "syscall.RT_SCOPE_UNIVERSE": "syscall", - "syscall.RT_TABLEID_MAX": "syscall", - "syscall.RT_TABLE_COMPAT": "syscall", - "syscall.RT_TABLE_DEFAULT": "syscall", - "syscall.RT_TABLE_LOCAL": "syscall", - "syscall.RT_TABLE_MAIN": "syscall", - "syscall.RT_TABLE_MAX": "syscall", - "syscall.RT_TABLE_UNSPEC": "syscall", - "syscall.RUSAGE_CHILDREN": "syscall", - "syscall.RUSAGE_SELF": "syscall", - "syscall.RUSAGE_THREAD": "syscall", - "syscall.Radvisory_t": "syscall", - "syscall.RawSockaddr": "syscall", - "syscall.RawSockaddrAny": "syscall", - "syscall.RawSockaddrDatalink": "syscall", - "syscall.RawSockaddrInet4": "syscall", - "syscall.RawSockaddrInet6": "syscall", - "syscall.RawSockaddrLinklayer": "syscall", - "syscall.RawSockaddrNetlink": "syscall", - "syscall.RawSockaddrUnix": "syscall", - "syscall.RawSyscall": "syscall", - "syscall.RawSyscall6": "syscall", - "syscall.Read": "syscall", - "syscall.ReadConsole": "syscall", - "syscall.ReadDirectoryChanges": "syscall", - "syscall.ReadDirent": "syscall", - "syscall.ReadFile": "syscall", - "syscall.Readlink": "syscall", - "syscall.Reboot": "syscall", - "syscall.Recvfrom": "syscall", - "syscall.Recvmsg": "syscall", - "syscall.RegCloseKey": "syscall", - "syscall.RegEnumKeyEx": "syscall", - "syscall.RegOpenKeyEx": "syscall", - "syscall.RegQueryInfoKey": "syscall", - "syscall.RegQueryValueEx": "syscall", - "syscall.RemoveDirectory": "syscall", - "syscall.Removexattr": "syscall", - "syscall.Rename": "syscall", - "syscall.Renameat": "syscall", - "syscall.Revoke": "syscall", - "syscall.Rlimit": "syscall", - "syscall.Rmdir": "syscall", - "syscall.RouteMessage": "syscall", - "syscall.RouteRIB": "syscall", - "syscall.RtAttr": "syscall", - "syscall.RtGenmsg": "syscall", - "syscall.RtMetrics": "syscall", - "syscall.RtMsg": "syscall", - "syscall.RtMsghdr": "syscall", - "syscall.RtNexthop": "syscall", - "syscall.Rusage": "syscall", - "syscall.SCM_BINTIME": "syscall", - "syscall.SCM_CREDENTIALS": "syscall", - "syscall.SCM_CREDS": "syscall", - "syscall.SCM_RIGHTS": "syscall", - "syscall.SCM_TIMESTAMP": "syscall", - "syscall.SCM_TIMESTAMPING": "syscall", - "syscall.SCM_TIMESTAMPNS": "syscall", - "syscall.SCM_TIMESTAMP_MONOTONIC": "syscall", - "syscall.SHUT_RD": "syscall", - "syscall.SHUT_RDWR": "syscall", - "syscall.SHUT_WR": "syscall", - "syscall.SID": "syscall", - "syscall.SIDAndAttributes": "syscall", - "syscall.SIGABRT": "syscall", - "syscall.SIGALRM": "syscall", - "syscall.SIGBUS": "syscall", - "syscall.SIGCHLD": "syscall", - "syscall.SIGCLD": "syscall", - "syscall.SIGCONT": "syscall", - "syscall.SIGEMT": "syscall", - "syscall.SIGFPE": "syscall", - "syscall.SIGHUP": "syscall", - "syscall.SIGILL": "syscall", - "syscall.SIGINFO": "syscall", - "syscall.SIGINT": "syscall", - "syscall.SIGIO": "syscall", - "syscall.SIGIOT": "syscall", - "syscall.SIGKILL": "syscall", - "syscall.SIGLIBRT": "syscall", - "syscall.SIGLWP": "syscall", - "syscall.SIGPIPE": "syscall", - "syscall.SIGPOLL": "syscall", - "syscall.SIGPROF": "syscall", - "syscall.SIGPWR": "syscall", - "syscall.SIGQUIT": "syscall", - "syscall.SIGSEGV": "syscall", - "syscall.SIGSTKFLT": "syscall", - "syscall.SIGSTOP": "syscall", - "syscall.SIGSYS": "syscall", - "syscall.SIGTERM": "syscall", - "syscall.SIGTHR": "syscall", - "syscall.SIGTRAP": "syscall", - "syscall.SIGTSTP": "syscall", - "syscall.SIGTTIN": "syscall", - "syscall.SIGTTOU": "syscall", - "syscall.SIGUNUSED": "syscall", - "syscall.SIGURG": "syscall", - "syscall.SIGUSR1": "syscall", - "syscall.SIGUSR2": "syscall", - "syscall.SIGVTALRM": "syscall", - "syscall.SIGWINCH": "syscall", - "syscall.SIGXCPU": "syscall", - "syscall.SIGXFSZ": "syscall", - "syscall.SIOCADDDLCI": "syscall", - "syscall.SIOCADDMULTI": "syscall", - "syscall.SIOCADDRT": "syscall", - "syscall.SIOCAIFADDR": "syscall", - "syscall.SIOCAIFGROUP": "syscall", - "syscall.SIOCALIFADDR": "syscall", - "syscall.SIOCARPIPLL": "syscall", - "syscall.SIOCATMARK": "syscall", - "syscall.SIOCAUTOADDR": "syscall", - "syscall.SIOCAUTONETMASK": "syscall", - "syscall.SIOCBRDGADD": "syscall", - "syscall.SIOCBRDGADDS": "syscall", - "syscall.SIOCBRDGARL": "syscall", - "syscall.SIOCBRDGDADDR": "syscall", - "syscall.SIOCBRDGDEL": "syscall", - "syscall.SIOCBRDGDELS": "syscall", - "syscall.SIOCBRDGFLUSH": "syscall", - "syscall.SIOCBRDGFRL": "syscall", - "syscall.SIOCBRDGGCACHE": "syscall", - "syscall.SIOCBRDGGFD": "syscall", - "syscall.SIOCBRDGGHT": "syscall", - "syscall.SIOCBRDGGIFFLGS": "syscall", - "syscall.SIOCBRDGGMA": "syscall", - "syscall.SIOCBRDGGPARAM": "syscall", - "syscall.SIOCBRDGGPRI": "syscall", - "syscall.SIOCBRDGGRL": "syscall", - "syscall.SIOCBRDGGSIFS": "syscall", - "syscall.SIOCBRDGGTO": "syscall", - "syscall.SIOCBRDGIFS": "syscall", - "syscall.SIOCBRDGRTS": "syscall", - "syscall.SIOCBRDGSADDR": "syscall", - "syscall.SIOCBRDGSCACHE": "syscall", - "syscall.SIOCBRDGSFD": "syscall", - "syscall.SIOCBRDGSHT": "syscall", - "syscall.SIOCBRDGSIFCOST": "syscall", - "syscall.SIOCBRDGSIFFLGS": "syscall", - "syscall.SIOCBRDGSIFPRIO": "syscall", - "syscall.SIOCBRDGSMA": "syscall", - "syscall.SIOCBRDGSPRI": "syscall", - "syscall.SIOCBRDGSPROTO": "syscall", - "syscall.SIOCBRDGSTO": "syscall", - "syscall.SIOCBRDGSTXHC": "syscall", - "syscall.SIOCDARP": "syscall", - "syscall.SIOCDELDLCI": "syscall", - "syscall.SIOCDELMULTI": "syscall", - "syscall.SIOCDELRT": "syscall", - "syscall.SIOCDEVPRIVATE": "syscall", - "syscall.SIOCDIFADDR": "syscall", - "syscall.SIOCDIFGROUP": "syscall", - "syscall.SIOCDIFPHYADDR": "syscall", - "syscall.SIOCDLIFADDR": "syscall", - "syscall.SIOCDRARP": "syscall", - "syscall.SIOCGARP": "syscall", - "syscall.SIOCGDRVSPEC": "syscall", - "syscall.SIOCGETKALIVE": "syscall", - "syscall.SIOCGETLABEL": "syscall", - "syscall.SIOCGETPFLOW": "syscall", - "syscall.SIOCGETPFSYNC": "syscall", - "syscall.SIOCGETSGCNT": "syscall", - "syscall.SIOCGETVIFCNT": "syscall", - "syscall.SIOCGETVLAN": "syscall", - "syscall.SIOCGHIWAT": "syscall", - "syscall.SIOCGIFADDR": "syscall", - "syscall.SIOCGIFADDRPREF": "syscall", - "syscall.SIOCGIFALIAS": "syscall", - "syscall.SIOCGIFALTMTU": "syscall", - "syscall.SIOCGIFASYNCMAP": "syscall", - "syscall.SIOCGIFBOND": "syscall", - "syscall.SIOCGIFBR": "syscall", - "syscall.SIOCGIFBRDADDR": "syscall", - "syscall.SIOCGIFCAP": "syscall", - "syscall.SIOCGIFCONF": "syscall", - "syscall.SIOCGIFCOUNT": "syscall", - "syscall.SIOCGIFDATA": "syscall", - "syscall.SIOCGIFDESCR": "syscall", - "syscall.SIOCGIFDEVMTU": "syscall", - "syscall.SIOCGIFDLT": "syscall", - "syscall.SIOCGIFDSTADDR": "syscall", - "syscall.SIOCGIFENCAP": "syscall", - "syscall.SIOCGIFFIB": "syscall", - "syscall.SIOCGIFFLAGS": "syscall", - "syscall.SIOCGIFGATTR": "syscall", - "syscall.SIOCGIFGENERIC": "syscall", - "syscall.SIOCGIFGMEMB": "syscall", - "syscall.SIOCGIFGROUP": "syscall", - "syscall.SIOCGIFHARDMTU": "syscall", - "syscall.SIOCGIFHWADDR": "syscall", - "syscall.SIOCGIFINDEX": "syscall", - "syscall.SIOCGIFKPI": "syscall", - "syscall.SIOCGIFMAC": "syscall", - "syscall.SIOCGIFMAP": "syscall", - "syscall.SIOCGIFMEDIA": "syscall", - "syscall.SIOCGIFMEM": "syscall", - "syscall.SIOCGIFMETRIC": "syscall", - "syscall.SIOCGIFMTU": "syscall", - "syscall.SIOCGIFNAME": "syscall", - "syscall.SIOCGIFNETMASK": "syscall", - "syscall.SIOCGIFPDSTADDR": "syscall", - "syscall.SIOCGIFPFLAGS": "syscall", - "syscall.SIOCGIFPHYS": "syscall", - "syscall.SIOCGIFPRIORITY": "syscall", - "syscall.SIOCGIFPSRCADDR": "syscall", - "syscall.SIOCGIFRDOMAIN": "syscall", - "syscall.SIOCGIFRTLABEL": "syscall", - "syscall.SIOCGIFSLAVE": "syscall", - "syscall.SIOCGIFSTATUS": "syscall", - "syscall.SIOCGIFTIMESLOT": "syscall", - "syscall.SIOCGIFTXQLEN": "syscall", - "syscall.SIOCGIFVLAN": "syscall", - "syscall.SIOCGIFWAKEFLAGS": "syscall", - "syscall.SIOCGIFXFLAGS": "syscall", - "syscall.SIOCGLIFADDR": "syscall", - "syscall.SIOCGLIFPHYADDR": "syscall", - "syscall.SIOCGLIFPHYRTABLE": "syscall", - "syscall.SIOCGLIFPHYTTL": "syscall", - "syscall.SIOCGLINKSTR": "syscall", - "syscall.SIOCGLOWAT": "syscall", - "syscall.SIOCGPGRP": "syscall", - "syscall.SIOCGPRIVATE_0": "syscall", - "syscall.SIOCGPRIVATE_1": "syscall", - "syscall.SIOCGRARP": "syscall", - "syscall.SIOCGSPPPPARAMS": "syscall", - "syscall.SIOCGSTAMP": "syscall", - "syscall.SIOCGSTAMPNS": "syscall", - "syscall.SIOCGVH": "syscall", - "syscall.SIOCGVNETID": "syscall", - "syscall.SIOCIFCREATE": "syscall", - "syscall.SIOCIFCREATE2": "syscall", - "syscall.SIOCIFDESTROY": "syscall", - "syscall.SIOCIFGCLONERS": "syscall", - "syscall.SIOCINITIFADDR": "syscall", - "syscall.SIOCPROTOPRIVATE": "syscall", - "syscall.SIOCRSLVMULTI": "syscall", - "syscall.SIOCRTMSG": "syscall", - "syscall.SIOCSARP": "syscall", - "syscall.SIOCSDRVSPEC": "syscall", - "syscall.SIOCSETKALIVE": "syscall", - "syscall.SIOCSETLABEL": "syscall", - "syscall.SIOCSETPFLOW": "syscall", - "syscall.SIOCSETPFSYNC": "syscall", - "syscall.SIOCSETVLAN": "syscall", - "syscall.SIOCSHIWAT": "syscall", - "syscall.SIOCSIFADDR": "syscall", - "syscall.SIOCSIFADDRPREF": "syscall", - "syscall.SIOCSIFALTMTU": "syscall", - "syscall.SIOCSIFASYNCMAP": "syscall", - "syscall.SIOCSIFBOND": "syscall", - "syscall.SIOCSIFBR": "syscall", - "syscall.SIOCSIFBRDADDR": "syscall", - "syscall.SIOCSIFCAP": "syscall", - "syscall.SIOCSIFDESCR": "syscall", - "syscall.SIOCSIFDSTADDR": "syscall", - "syscall.SIOCSIFENCAP": "syscall", - "syscall.SIOCSIFFIB": "syscall", - "syscall.SIOCSIFFLAGS": "syscall", - "syscall.SIOCSIFGATTR": "syscall", - "syscall.SIOCSIFGENERIC": "syscall", - "syscall.SIOCSIFHWADDR": "syscall", - "syscall.SIOCSIFHWBROADCAST": "syscall", - "syscall.SIOCSIFKPI": "syscall", - "syscall.SIOCSIFLINK": "syscall", - "syscall.SIOCSIFLLADDR": "syscall", - "syscall.SIOCSIFMAC": "syscall", - "syscall.SIOCSIFMAP": "syscall", - "syscall.SIOCSIFMEDIA": "syscall", - "syscall.SIOCSIFMEM": "syscall", - "syscall.SIOCSIFMETRIC": "syscall", - "syscall.SIOCSIFMTU": "syscall", - "syscall.SIOCSIFNAME": "syscall", - "syscall.SIOCSIFNETMASK": "syscall", - "syscall.SIOCSIFPFLAGS": "syscall", - "syscall.SIOCSIFPHYADDR": "syscall", - "syscall.SIOCSIFPHYS": "syscall", - "syscall.SIOCSIFPRIORITY": "syscall", - "syscall.SIOCSIFRDOMAIN": "syscall", - "syscall.SIOCSIFRTLABEL": "syscall", - "syscall.SIOCSIFRVNET": "syscall", - "syscall.SIOCSIFSLAVE": "syscall", - "syscall.SIOCSIFTIMESLOT": "syscall", - "syscall.SIOCSIFTXQLEN": "syscall", - "syscall.SIOCSIFVLAN": "syscall", - "syscall.SIOCSIFVNET": "syscall", - "syscall.SIOCSIFXFLAGS": "syscall", - "syscall.SIOCSLIFPHYADDR": "syscall", - "syscall.SIOCSLIFPHYRTABLE": "syscall", - "syscall.SIOCSLIFPHYTTL": "syscall", - "syscall.SIOCSLINKSTR": "syscall", - "syscall.SIOCSLOWAT": "syscall", - "syscall.SIOCSPGRP": "syscall", - "syscall.SIOCSRARP": "syscall", - "syscall.SIOCSSPPPPARAMS": "syscall", - "syscall.SIOCSVH": "syscall", - "syscall.SIOCSVNETID": "syscall", - "syscall.SIOCZIFDATA": "syscall", - "syscall.SIO_GET_EXTENSION_FUNCTION_POINTER": "syscall", - "syscall.SIO_GET_INTERFACE_LIST": "syscall", - "syscall.SIO_KEEPALIVE_VALS": "syscall", - "syscall.SIO_UDP_CONNRESET": "syscall", - "syscall.SOCK_CLOEXEC": "syscall", - "syscall.SOCK_DCCP": "syscall", - "syscall.SOCK_DGRAM": "syscall", - "syscall.SOCK_FLAGS_MASK": "syscall", - "syscall.SOCK_MAXADDRLEN": "syscall", - "syscall.SOCK_NONBLOCK": "syscall", - "syscall.SOCK_NOSIGPIPE": "syscall", - "syscall.SOCK_PACKET": "syscall", - "syscall.SOCK_RAW": "syscall", - "syscall.SOCK_RDM": "syscall", - "syscall.SOCK_SEQPACKET": "syscall", - "syscall.SOCK_STREAM": "syscall", - "syscall.SOL_AAL": "syscall", - "syscall.SOL_ATM": "syscall", - "syscall.SOL_DECNET": "syscall", - "syscall.SOL_ICMPV6": "syscall", - "syscall.SOL_IP": "syscall", - "syscall.SOL_IPV6": "syscall", - "syscall.SOL_IRDA": "syscall", - "syscall.SOL_PACKET": "syscall", - "syscall.SOL_RAW": "syscall", - "syscall.SOL_SOCKET": "syscall", - "syscall.SOL_TCP": "syscall", - "syscall.SOL_X25": "syscall", - "syscall.SOMAXCONN": "syscall", - "syscall.SO_ACCEPTCONN": "syscall", - "syscall.SO_ACCEPTFILTER": "syscall", - "syscall.SO_ATTACH_FILTER": "syscall", - "syscall.SO_BINDANY": "syscall", - "syscall.SO_BINDTODEVICE": "syscall", - "syscall.SO_BINTIME": "syscall", - "syscall.SO_BROADCAST": "syscall", - "syscall.SO_BSDCOMPAT": "syscall", - "syscall.SO_DEBUG": "syscall", - "syscall.SO_DETACH_FILTER": "syscall", - "syscall.SO_DOMAIN": "syscall", - "syscall.SO_DONTROUTE": "syscall", - "syscall.SO_DONTTRUNC": "syscall", - "syscall.SO_ERROR": "syscall", - "syscall.SO_KEEPALIVE": "syscall", - "syscall.SO_LABEL": "syscall", - "syscall.SO_LINGER": "syscall", - "syscall.SO_LINGER_SEC": "syscall", - "syscall.SO_LISTENINCQLEN": "syscall", - "syscall.SO_LISTENQLEN": "syscall", - "syscall.SO_LISTENQLIMIT": "syscall", - "syscall.SO_MARK": "syscall", - "syscall.SO_NETPROC": "syscall", - "syscall.SO_NKE": "syscall", - "syscall.SO_NOADDRERR": "syscall", - "syscall.SO_NOHEADER": "syscall", - "syscall.SO_NOSIGPIPE": "syscall", - "syscall.SO_NOTIFYCONFLICT": "syscall", - "syscall.SO_NO_CHECK": "syscall", - "syscall.SO_NO_DDP": "syscall", - "syscall.SO_NO_OFFLOAD": "syscall", - "syscall.SO_NP_EXTENSIONS": "syscall", - "syscall.SO_NREAD": "syscall", - "syscall.SO_NWRITE": "syscall", - "syscall.SO_OOBINLINE": "syscall", - "syscall.SO_OVERFLOWED": "syscall", - "syscall.SO_PASSCRED": "syscall", - "syscall.SO_PASSSEC": "syscall", - "syscall.SO_PEERCRED": "syscall", - "syscall.SO_PEERLABEL": "syscall", - "syscall.SO_PEERNAME": "syscall", - "syscall.SO_PEERSEC": "syscall", - "syscall.SO_PRIORITY": "syscall", - "syscall.SO_PROTOCOL": "syscall", - "syscall.SO_PROTOTYPE": "syscall", - "syscall.SO_RANDOMPORT": "syscall", - "syscall.SO_RCVBUF": "syscall", - "syscall.SO_RCVBUFFORCE": "syscall", - "syscall.SO_RCVLOWAT": "syscall", - "syscall.SO_RCVTIMEO": "syscall", - "syscall.SO_RESTRICTIONS": "syscall", - "syscall.SO_RESTRICT_DENYIN": "syscall", - "syscall.SO_RESTRICT_DENYOUT": "syscall", - "syscall.SO_RESTRICT_DENYSET": "syscall", - "syscall.SO_REUSEADDR": "syscall", - "syscall.SO_REUSEPORT": "syscall", - "syscall.SO_REUSESHAREUID": "syscall", - "syscall.SO_RTABLE": "syscall", - "syscall.SO_RXQ_OVFL": "syscall", - "syscall.SO_SECURITY_AUTHENTICATION": "syscall", - "syscall.SO_SECURITY_ENCRYPTION_NETWORK": "syscall", - "syscall.SO_SECURITY_ENCRYPTION_TRANSPORT": "syscall", - "syscall.SO_SETFIB": "syscall", - "syscall.SO_SNDBUF": "syscall", - "syscall.SO_SNDBUFFORCE": "syscall", - "syscall.SO_SNDLOWAT": "syscall", - "syscall.SO_SNDTIMEO": "syscall", - "syscall.SO_SPLICE": "syscall", - "syscall.SO_TIMESTAMP": "syscall", - "syscall.SO_TIMESTAMPING": "syscall", - "syscall.SO_TIMESTAMPNS": "syscall", - "syscall.SO_TIMESTAMP_MONOTONIC": "syscall", - "syscall.SO_TYPE": "syscall", - "syscall.SO_UPCALLCLOSEWAIT": "syscall", - "syscall.SO_UPDATE_ACCEPT_CONTEXT": "syscall", - "syscall.SO_UPDATE_CONNECT_CONTEXT": "syscall", - "syscall.SO_USELOOPBACK": "syscall", - "syscall.SO_USER_COOKIE": "syscall", - "syscall.SO_VENDOR": "syscall", - "syscall.SO_WANTMORE": "syscall", - "syscall.SO_WANTOOBFLAG": "syscall", - "syscall.SSLExtraCertChainPolicyPara": "syscall", - "syscall.STANDARD_RIGHTS_ALL": "syscall", - "syscall.STANDARD_RIGHTS_EXECUTE": "syscall", - "syscall.STANDARD_RIGHTS_READ": "syscall", - "syscall.STANDARD_RIGHTS_REQUIRED": "syscall", - "syscall.STANDARD_RIGHTS_WRITE": "syscall", - "syscall.STARTF_USESHOWWINDOW": "syscall", - "syscall.STARTF_USESTDHANDLES": "syscall", - "syscall.STD_ERROR_HANDLE": "syscall", - "syscall.STD_INPUT_HANDLE": "syscall", - "syscall.STD_OUTPUT_HANDLE": "syscall", - "syscall.SUBLANG_ENGLISH_US": "syscall", - "syscall.SW_FORCEMINIMIZE": "syscall", - "syscall.SW_HIDE": "syscall", - "syscall.SW_MAXIMIZE": "syscall", - "syscall.SW_MINIMIZE": "syscall", - "syscall.SW_NORMAL": "syscall", - "syscall.SW_RESTORE": "syscall", - "syscall.SW_SHOW": "syscall", - "syscall.SW_SHOWDEFAULT": "syscall", - "syscall.SW_SHOWMAXIMIZED": "syscall", - "syscall.SW_SHOWMINIMIZED": "syscall", - "syscall.SW_SHOWMINNOACTIVE": "syscall", - "syscall.SW_SHOWNA": "syscall", - "syscall.SW_SHOWNOACTIVATE": "syscall", - "syscall.SW_SHOWNORMAL": "syscall", - "syscall.SYMBOLIC_LINK_FLAG_DIRECTORY": "syscall", - "syscall.SYNCHRONIZE": "syscall", - "syscall.SYSCTL_VERSION": "syscall", - "syscall.SYSCTL_VERS_0": "syscall", - "syscall.SYSCTL_VERS_1": "syscall", - "syscall.SYSCTL_VERS_MASK": "syscall", - "syscall.SYS_ABORT2": "syscall", - "syscall.SYS_ACCEPT": "syscall", - "syscall.SYS_ACCEPT4": "syscall", - "syscall.SYS_ACCEPT_NOCANCEL": "syscall", - "syscall.SYS_ACCESS": "syscall", - "syscall.SYS_ACCESS_EXTENDED": "syscall", - "syscall.SYS_ACCT": "syscall", - "syscall.SYS_ADD_KEY": "syscall", - "syscall.SYS_ADD_PROFIL": "syscall", - "syscall.SYS_ADJFREQ": "syscall", - "syscall.SYS_ADJTIME": "syscall", - "syscall.SYS_ADJTIMEX": "syscall", - "syscall.SYS_AFS_SYSCALL": "syscall", - "syscall.SYS_AIO_CANCEL": "syscall", - "syscall.SYS_AIO_ERROR": "syscall", - "syscall.SYS_AIO_FSYNC": "syscall", - "syscall.SYS_AIO_READ": "syscall", - "syscall.SYS_AIO_RETURN": "syscall", - "syscall.SYS_AIO_SUSPEND": "syscall", - "syscall.SYS_AIO_SUSPEND_NOCANCEL": "syscall", - "syscall.SYS_AIO_WRITE": "syscall", - "syscall.SYS_ALARM": "syscall", - "syscall.SYS_ARCH_PRCTL": "syscall", - "syscall.SYS_ARM_FADVISE64_64": "syscall", - "syscall.SYS_ARM_SYNC_FILE_RANGE": "syscall", - "syscall.SYS_ATGETMSG": "syscall", - "syscall.SYS_ATPGETREQ": "syscall", - "syscall.SYS_ATPGETRSP": "syscall", - "syscall.SYS_ATPSNDREQ": "syscall", - "syscall.SYS_ATPSNDRSP": "syscall", - "syscall.SYS_ATPUTMSG": "syscall", - "syscall.SYS_ATSOCKET": "syscall", - "syscall.SYS_AUDIT": "syscall", - "syscall.SYS_AUDITCTL": "syscall", - "syscall.SYS_AUDITON": "syscall", - "syscall.SYS_AUDIT_SESSION_JOIN": "syscall", - "syscall.SYS_AUDIT_SESSION_PORT": "syscall", - "syscall.SYS_AUDIT_SESSION_SELF": "syscall", - "syscall.SYS_BDFLUSH": "syscall", - "syscall.SYS_BIND": "syscall", - "syscall.SYS_BINDAT": "syscall", - "syscall.SYS_BREAK": "syscall", - "syscall.SYS_BRK": "syscall", - "syscall.SYS_BSDTHREAD_CREATE": "syscall", - "syscall.SYS_BSDTHREAD_REGISTER": "syscall", - "syscall.SYS_BSDTHREAD_TERMINATE": "syscall", - "syscall.SYS_CAPGET": "syscall", - "syscall.SYS_CAPSET": "syscall", - "syscall.SYS_CAP_ENTER": "syscall", - "syscall.SYS_CAP_FCNTLS_GET": "syscall", - "syscall.SYS_CAP_FCNTLS_LIMIT": "syscall", - "syscall.SYS_CAP_GETMODE": "syscall", - "syscall.SYS_CAP_GETRIGHTS": "syscall", - "syscall.SYS_CAP_IOCTLS_GET": "syscall", - "syscall.SYS_CAP_IOCTLS_LIMIT": "syscall", - "syscall.SYS_CAP_NEW": "syscall", - "syscall.SYS_CAP_RIGHTS_GET": "syscall", - "syscall.SYS_CAP_RIGHTS_LIMIT": "syscall", - "syscall.SYS_CHDIR": "syscall", - "syscall.SYS_CHFLAGS": "syscall", - "syscall.SYS_CHFLAGSAT": "syscall", - "syscall.SYS_CHMOD": "syscall", - "syscall.SYS_CHMOD_EXTENDED": "syscall", - "syscall.SYS_CHOWN": "syscall", - "syscall.SYS_CHOWN32": "syscall", - "syscall.SYS_CHROOT": "syscall", - "syscall.SYS_CHUD": "syscall", - "syscall.SYS_CLOCK_ADJTIME": "syscall", - "syscall.SYS_CLOCK_GETCPUCLOCKID2": "syscall", - "syscall.SYS_CLOCK_GETRES": "syscall", - "syscall.SYS_CLOCK_GETTIME": "syscall", - "syscall.SYS_CLOCK_NANOSLEEP": "syscall", - "syscall.SYS_CLOCK_SETTIME": "syscall", - "syscall.SYS_CLONE": "syscall", - "syscall.SYS_CLOSE": "syscall", - "syscall.SYS_CLOSEFROM": "syscall", - "syscall.SYS_CLOSE_NOCANCEL": "syscall", - "syscall.SYS_CONNECT": "syscall", - "syscall.SYS_CONNECTAT": "syscall", - "syscall.SYS_CONNECT_NOCANCEL": "syscall", - "syscall.SYS_COPYFILE": "syscall", - "syscall.SYS_CPUSET": "syscall", - "syscall.SYS_CPUSET_GETAFFINITY": "syscall", - "syscall.SYS_CPUSET_GETID": "syscall", - "syscall.SYS_CPUSET_SETAFFINITY": "syscall", - "syscall.SYS_CPUSET_SETID": "syscall", - "syscall.SYS_CREAT": "syscall", - "syscall.SYS_CREATE_MODULE": "syscall", - "syscall.SYS_CSOPS": "syscall", - "syscall.SYS_DELETE": "syscall", - "syscall.SYS_DELETE_MODULE": "syscall", - "syscall.SYS_DUP": "syscall", - "syscall.SYS_DUP2": "syscall", - "syscall.SYS_DUP3": "syscall", - "syscall.SYS_EACCESS": "syscall", - "syscall.SYS_EPOLL_CREATE": "syscall", - "syscall.SYS_EPOLL_CREATE1": "syscall", - "syscall.SYS_EPOLL_CTL": "syscall", - "syscall.SYS_EPOLL_CTL_OLD": "syscall", - "syscall.SYS_EPOLL_PWAIT": "syscall", - "syscall.SYS_EPOLL_WAIT": "syscall", - "syscall.SYS_EPOLL_WAIT_OLD": "syscall", - "syscall.SYS_EVENTFD": "syscall", - "syscall.SYS_EVENTFD2": "syscall", - "syscall.SYS_EXCHANGEDATA": "syscall", - "syscall.SYS_EXECVE": "syscall", - "syscall.SYS_EXIT": "syscall", - "syscall.SYS_EXIT_GROUP": "syscall", - "syscall.SYS_EXTATTRCTL": "syscall", - "syscall.SYS_EXTATTR_DELETE_FD": "syscall", - "syscall.SYS_EXTATTR_DELETE_FILE": "syscall", - "syscall.SYS_EXTATTR_DELETE_LINK": "syscall", - "syscall.SYS_EXTATTR_GET_FD": "syscall", - "syscall.SYS_EXTATTR_GET_FILE": "syscall", - "syscall.SYS_EXTATTR_GET_LINK": "syscall", - "syscall.SYS_EXTATTR_LIST_FD": "syscall", - "syscall.SYS_EXTATTR_LIST_FILE": "syscall", - "syscall.SYS_EXTATTR_LIST_LINK": "syscall", - "syscall.SYS_EXTATTR_SET_FD": "syscall", - "syscall.SYS_EXTATTR_SET_FILE": "syscall", - "syscall.SYS_EXTATTR_SET_LINK": "syscall", - "syscall.SYS_FACCESSAT": "syscall", - "syscall.SYS_FADVISE64": "syscall", - "syscall.SYS_FADVISE64_64": "syscall", - "syscall.SYS_FALLOCATE": "syscall", - "syscall.SYS_FANOTIFY_INIT": "syscall", - "syscall.SYS_FANOTIFY_MARK": "syscall", - "syscall.SYS_FCHDIR": "syscall", - "syscall.SYS_FCHFLAGS": "syscall", - "syscall.SYS_FCHMOD": "syscall", - "syscall.SYS_FCHMODAT": "syscall", - "syscall.SYS_FCHMOD_EXTENDED": "syscall", - "syscall.SYS_FCHOWN": "syscall", - "syscall.SYS_FCHOWN32": "syscall", - "syscall.SYS_FCHOWNAT": "syscall", - "syscall.SYS_FCHROOT": "syscall", - "syscall.SYS_FCNTL": "syscall", - "syscall.SYS_FCNTL64": "syscall", - "syscall.SYS_FCNTL_NOCANCEL": "syscall", - "syscall.SYS_FDATASYNC": "syscall", - "syscall.SYS_FEXECVE": "syscall", - "syscall.SYS_FFCLOCK_GETCOUNTER": "syscall", - "syscall.SYS_FFCLOCK_GETESTIMATE": "syscall", - "syscall.SYS_FFCLOCK_SETESTIMATE": "syscall", - "syscall.SYS_FFSCTL": "syscall", - "syscall.SYS_FGETATTRLIST": "syscall", - "syscall.SYS_FGETXATTR": "syscall", - "syscall.SYS_FHOPEN": "syscall", - "syscall.SYS_FHSTAT": "syscall", - "syscall.SYS_FHSTATFS": "syscall", - "syscall.SYS_FILEPORT_MAKEFD": "syscall", - "syscall.SYS_FILEPORT_MAKEPORT": "syscall", - "syscall.SYS_FKTRACE": "syscall", - "syscall.SYS_FLISTXATTR": "syscall", - "syscall.SYS_FLOCK": "syscall", - "syscall.SYS_FORK": "syscall", - "syscall.SYS_FPATHCONF": "syscall", - "syscall.SYS_FREEBSD6_FTRUNCATE": "syscall", - "syscall.SYS_FREEBSD6_LSEEK": "syscall", - "syscall.SYS_FREEBSD6_MMAP": "syscall", - "syscall.SYS_FREEBSD6_PREAD": "syscall", - "syscall.SYS_FREEBSD6_PWRITE": "syscall", - "syscall.SYS_FREEBSD6_TRUNCATE": "syscall", - "syscall.SYS_FREMOVEXATTR": "syscall", - "syscall.SYS_FSCTL": "syscall", - "syscall.SYS_FSETATTRLIST": "syscall", - "syscall.SYS_FSETXATTR": "syscall", - "syscall.SYS_FSGETPATH": "syscall", - "syscall.SYS_FSTAT": "syscall", - "syscall.SYS_FSTAT64": "syscall", - "syscall.SYS_FSTAT64_EXTENDED": "syscall", - "syscall.SYS_FSTATAT": "syscall", - "syscall.SYS_FSTATAT64": "syscall", - "syscall.SYS_FSTATFS": "syscall", - "syscall.SYS_FSTATFS64": "syscall", - "syscall.SYS_FSTATV": "syscall", - "syscall.SYS_FSTATVFS1": "syscall", - "syscall.SYS_FSTAT_EXTENDED": "syscall", - "syscall.SYS_FSYNC": "syscall", - "syscall.SYS_FSYNC_NOCANCEL": "syscall", - "syscall.SYS_FSYNC_RANGE": "syscall", - "syscall.SYS_FTIME": "syscall", - "syscall.SYS_FTRUNCATE": "syscall", - "syscall.SYS_FTRUNCATE64": "syscall", - "syscall.SYS_FUTEX": "syscall", - "syscall.SYS_FUTIMENS": "syscall", - "syscall.SYS_FUTIMES": "syscall", - "syscall.SYS_FUTIMESAT": "syscall", - "syscall.SYS_GETATTRLIST": "syscall", - "syscall.SYS_GETAUDIT": "syscall", - "syscall.SYS_GETAUDIT_ADDR": "syscall", - "syscall.SYS_GETAUID": "syscall", - "syscall.SYS_GETCONTEXT": "syscall", - "syscall.SYS_GETCPU": "syscall", - "syscall.SYS_GETCWD": "syscall", - "syscall.SYS_GETDENTS": "syscall", - "syscall.SYS_GETDENTS64": "syscall", - "syscall.SYS_GETDIRENTRIES": "syscall", - "syscall.SYS_GETDIRENTRIES64": "syscall", - "syscall.SYS_GETDIRENTRIESATTR": "syscall", - "syscall.SYS_GETDTABLECOUNT": "syscall", - "syscall.SYS_GETDTABLESIZE": "syscall", - "syscall.SYS_GETEGID": "syscall", - "syscall.SYS_GETEGID32": "syscall", - "syscall.SYS_GETEUID": "syscall", - "syscall.SYS_GETEUID32": "syscall", - "syscall.SYS_GETFH": "syscall", - "syscall.SYS_GETFSSTAT": "syscall", - "syscall.SYS_GETFSSTAT64": "syscall", - "syscall.SYS_GETGID": "syscall", - "syscall.SYS_GETGID32": "syscall", - "syscall.SYS_GETGROUPS": "syscall", - "syscall.SYS_GETGROUPS32": "syscall", - "syscall.SYS_GETHOSTUUID": "syscall", - "syscall.SYS_GETITIMER": "syscall", - "syscall.SYS_GETLCID": "syscall", - "syscall.SYS_GETLOGIN": "syscall", - "syscall.SYS_GETLOGINCLASS": "syscall", - "syscall.SYS_GETPEERNAME": "syscall", - "syscall.SYS_GETPGID": "syscall", - "syscall.SYS_GETPGRP": "syscall", - "syscall.SYS_GETPID": "syscall", - "syscall.SYS_GETPMSG": "syscall", - "syscall.SYS_GETPPID": "syscall", - "syscall.SYS_GETPRIORITY": "syscall", - "syscall.SYS_GETRESGID": "syscall", - "syscall.SYS_GETRESGID32": "syscall", - "syscall.SYS_GETRESUID": "syscall", - "syscall.SYS_GETRESUID32": "syscall", - "syscall.SYS_GETRLIMIT": "syscall", - "syscall.SYS_GETRTABLE": "syscall", - "syscall.SYS_GETRUSAGE": "syscall", - "syscall.SYS_GETSGROUPS": "syscall", - "syscall.SYS_GETSID": "syscall", - "syscall.SYS_GETSOCKNAME": "syscall", - "syscall.SYS_GETSOCKOPT": "syscall", - "syscall.SYS_GETTHRID": "syscall", - "syscall.SYS_GETTID": "syscall", - "syscall.SYS_GETTIMEOFDAY": "syscall", - "syscall.SYS_GETUID": "syscall", - "syscall.SYS_GETUID32": "syscall", - "syscall.SYS_GETVFSSTAT": "syscall", - "syscall.SYS_GETWGROUPS": "syscall", - "syscall.SYS_GETXATTR": "syscall", - "syscall.SYS_GET_KERNEL_SYMS": "syscall", - "syscall.SYS_GET_MEMPOLICY": "syscall", - "syscall.SYS_GET_ROBUST_LIST": "syscall", - "syscall.SYS_GET_THREAD_AREA": "syscall", - "syscall.SYS_GTTY": "syscall", - "syscall.SYS_IDENTITYSVC": "syscall", - "syscall.SYS_IDLE": "syscall", - "syscall.SYS_INITGROUPS": "syscall", - "syscall.SYS_INIT_MODULE": "syscall", - "syscall.SYS_INOTIFY_ADD_WATCH": "syscall", - "syscall.SYS_INOTIFY_INIT": "syscall", - "syscall.SYS_INOTIFY_INIT1": "syscall", - "syscall.SYS_INOTIFY_RM_WATCH": "syscall", - "syscall.SYS_IOCTL": "syscall", - "syscall.SYS_IOPERM": "syscall", - "syscall.SYS_IOPL": "syscall", - "syscall.SYS_IOPOLICYSYS": "syscall", - "syscall.SYS_IOPRIO_GET": "syscall", - "syscall.SYS_IOPRIO_SET": "syscall", - "syscall.SYS_IO_CANCEL": "syscall", - "syscall.SYS_IO_DESTROY": "syscall", - "syscall.SYS_IO_GETEVENTS": "syscall", - "syscall.SYS_IO_SETUP": "syscall", - "syscall.SYS_IO_SUBMIT": "syscall", - "syscall.SYS_IPC": "syscall", - "syscall.SYS_ISSETUGID": "syscall", - "syscall.SYS_JAIL": "syscall", - "syscall.SYS_JAIL_ATTACH": "syscall", - "syscall.SYS_JAIL_GET": "syscall", - "syscall.SYS_JAIL_REMOVE": "syscall", - "syscall.SYS_JAIL_SET": "syscall", - "syscall.SYS_KDEBUG_TRACE": "syscall", - "syscall.SYS_KENV": "syscall", - "syscall.SYS_KEVENT": "syscall", - "syscall.SYS_KEVENT64": "syscall", - "syscall.SYS_KEXEC_LOAD": "syscall", - "syscall.SYS_KEYCTL": "syscall", - "syscall.SYS_KILL": "syscall", - "syscall.SYS_KLDFIND": "syscall", - "syscall.SYS_KLDFIRSTMOD": "syscall", - "syscall.SYS_KLDLOAD": "syscall", - "syscall.SYS_KLDNEXT": "syscall", - "syscall.SYS_KLDSTAT": "syscall", - "syscall.SYS_KLDSYM": "syscall", - "syscall.SYS_KLDUNLOAD": "syscall", - "syscall.SYS_KLDUNLOADF": "syscall", - "syscall.SYS_KQUEUE": "syscall", - "syscall.SYS_KQUEUE1": "syscall", - "syscall.SYS_KTIMER_CREATE": "syscall", - "syscall.SYS_KTIMER_DELETE": "syscall", - "syscall.SYS_KTIMER_GETOVERRUN": "syscall", - "syscall.SYS_KTIMER_GETTIME": "syscall", - "syscall.SYS_KTIMER_SETTIME": "syscall", - "syscall.SYS_KTRACE": "syscall", - "syscall.SYS_LCHFLAGS": "syscall", - "syscall.SYS_LCHMOD": "syscall", - "syscall.SYS_LCHOWN": "syscall", - "syscall.SYS_LCHOWN32": "syscall", - "syscall.SYS_LGETFH": "syscall", - "syscall.SYS_LGETXATTR": "syscall", - "syscall.SYS_LINK": "syscall", - "syscall.SYS_LINKAT": "syscall", - "syscall.SYS_LIO_LISTIO": "syscall", - "syscall.SYS_LISTEN": "syscall", - "syscall.SYS_LISTXATTR": "syscall", - "syscall.SYS_LLISTXATTR": "syscall", - "syscall.SYS_LOCK": "syscall", - "syscall.SYS_LOOKUP_DCOOKIE": "syscall", - "syscall.SYS_LPATHCONF": "syscall", - "syscall.SYS_LREMOVEXATTR": "syscall", - "syscall.SYS_LSEEK": "syscall", - "syscall.SYS_LSETXATTR": "syscall", - "syscall.SYS_LSTAT": "syscall", - "syscall.SYS_LSTAT64": "syscall", - "syscall.SYS_LSTAT64_EXTENDED": "syscall", - "syscall.SYS_LSTATV": "syscall", - "syscall.SYS_LSTAT_EXTENDED": "syscall", - "syscall.SYS_LUTIMES": "syscall", - "syscall.SYS_MAC_SYSCALL": "syscall", - "syscall.SYS_MADVISE": "syscall", - "syscall.SYS_MADVISE1": "syscall", - "syscall.SYS_MAXSYSCALL": "syscall", - "syscall.SYS_MBIND": "syscall", - "syscall.SYS_MIGRATE_PAGES": "syscall", - "syscall.SYS_MINCORE": "syscall", - "syscall.SYS_MINHERIT": "syscall", - "syscall.SYS_MKCOMPLEX": "syscall", - "syscall.SYS_MKDIR": "syscall", - "syscall.SYS_MKDIRAT": "syscall", - "syscall.SYS_MKDIR_EXTENDED": "syscall", - "syscall.SYS_MKFIFO": "syscall", - "syscall.SYS_MKFIFOAT": "syscall", - "syscall.SYS_MKFIFO_EXTENDED": "syscall", - "syscall.SYS_MKNOD": "syscall", - "syscall.SYS_MKNODAT": "syscall", - "syscall.SYS_MLOCK": "syscall", - "syscall.SYS_MLOCKALL": "syscall", - "syscall.SYS_MMAP": "syscall", - "syscall.SYS_MMAP2": "syscall", - "syscall.SYS_MODCTL": "syscall", - "syscall.SYS_MODFIND": "syscall", - "syscall.SYS_MODFNEXT": "syscall", - "syscall.SYS_MODIFY_LDT": "syscall", - "syscall.SYS_MODNEXT": "syscall", - "syscall.SYS_MODSTAT": "syscall", - "syscall.SYS_MODWATCH": "syscall", - "syscall.SYS_MOUNT": "syscall", - "syscall.SYS_MOVE_PAGES": "syscall", - "syscall.SYS_MPROTECT": "syscall", - "syscall.SYS_MPX": "syscall", - "syscall.SYS_MQUERY": "syscall", - "syscall.SYS_MQ_GETSETATTR": "syscall", - "syscall.SYS_MQ_NOTIFY": "syscall", - "syscall.SYS_MQ_OPEN": "syscall", - "syscall.SYS_MQ_TIMEDRECEIVE": "syscall", - "syscall.SYS_MQ_TIMEDSEND": "syscall", - "syscall.SYS_MQ_UNLINK": "syscall", - "syscall.SYS_MREMAP": "syscall", - "syscall.SYS_MSGCTL": "syscall", - "syscall.SYS_MSGGET": "syscall", - "syscall.SYS_MSGRCV": "syscall", - "syscall.SYS_MSGRCV_NOCANCEL": "syscall", - "syscall.SYS_MSGSND": "syscall", - "syscall.SYS_MSGSND_NOCANCEL": "syscall", - "syscall.SYS_MSGSYS": "syscall", - "syscall.SYS_MSYNC": "syscall", - "syscall.SYS_MSYNC_NOCANCEL": "syscall", - "syscall.SYS_MUNLOCK": "syscall", - "syscall.SYS_MUNLOCKALL": "syscall", - "syscall.SYS_MUNMAP": "syscall", - "syscall.SYS_NAME_TO_HANDLE_AT": "syscall", - "syscall.SYS_NANOSLEEP": "syscall", - "syscall.SYS_NEWFSTATAT": "syscall", - "syscall.SYS_NFSCLNT": "syscall", - "syscall.SYS_NFSSERVCTL": "syscall", - "syscall.SYS_NFSSVC": "syscall", - "syscall.SYS_NFSTAT": "syscall", - "syscall.SYS_NICE": "syscall", - "syscall.SYS_NLSTAT": "syscall", - "syscall.SYS_NMOUNT": "syscall", - "syscall.SYS_NSTAT": "syscall", - "syscall.SYS_NTP_ADJTIME": "syscall", - "syscall.SYS_NTP_GETTIME": "syscall", - "syscall.SYS_OABI_SYSCALL_BASE": "syscall", - "syscall.SYS_OBREAK": "syscall", - "syscall.SYS_OLDFSTAT": "syscall", - "syscall.SYS_OLDLSTAT": "syscall", - "syscall.SYS_OLDOLDUNAME": "syscall", - "syscall.SYS_OLDSTAT": "syscall", - "syscall.SYS_OLDUNAME": "syscall", - "syscall.SYS_OPEN": "syscall", - "syscall.SYS_OPENAT": "syscall", - "syscall.SYS_OPENBSD_POLL": "syscall", - "syscall.SYS_OPEN_BY_HANDLE_AT": "syscall", - "syscall.SYS_OPEN_EXTENDED": "syscall", - "syscall.SYS_OPEN_NOCANCEL": "syscall", - "syscall.SYS_OVADVISE": "syscall", - "syscall.SYS_PACCEPT": "syscall", - "syscall.SYS_PATHCONF": "syscall", - "syscall.SYS_PAUSE": "syscall", - "syscall.SYS_PCICONFIG_IOBASE": "syscall", - "syscall.SYS_PCICONFIG_READ": "syscall", - "syscall.SYS_PCICONFIG_WRITE": "syscall", - "syscall.SYS_PDFORK": "syscall", - "syscall.SYS_PDGETPID": "syscall", - "syscall.SYS_PDKILL": "syscall", - "syscall.SYS_PERF_EVENT_OPEN": "syscall", - "syscall.SYS_PERSONALITY": "syscall", - "syscall.SYS_PID_HIBERNATE": "syscall", - "syscall.SYS_PID_RESUME": "syscall", - "syscall.SYS_PID_SHUTDOWN_SOCKETS": "syscall", - "syscall.SYS_PID_SUSPEND": "syscall", - "syscall.SYS_PIPE": "syscall", - "syscall.SYS_PIPE2": "syscall", - "syscall.SYS_PIVOT_ROOT": "syscall", - "syscall.SYS_PMC_CONTROL": "syscall", - "syscall.SYS_PMC_GET_INFO": "syscall", - "syscall.SYS_POLL": "syscall", - "syscall.SYS_POLLTS": "syscall", - "syscall.SYS_POLL_NOCANCEL": "syscall", - "syscall.SYS_POSIX_FADVISE": "syscall", - "syscall.SYS_POSIX_FALLOCATE": "syscall", - "syscall.SYS_POSIX_OPENPT": "syscall", - "syscall.SYS_POSIX_SPAWN": "syscall", - "syscall.SYS_PPOLL": "syscall", - "syscall.SYS_PRCTL": "syscall", - "syscall.SYS_PREAD": "syscall", - "syscall.SYS_PREAD64": "syscall", - "syscall.SYS_PREADV": "syscall", - "syscall.SYS_PREAD_NOCANCEL": "syscall", - "syscall.SYS_PRLIMIT64": "syscall", - "syscall.SYS_PROCCTL": "syscall", - "syscall.SYS_PROCESS_POLICY": "syscall", - "syscall.SYS_PROCESS_VM_READV": "syscall", - "syscall.SYS_PROCESS_VM_WRITEV": "syscall", - "syscall.SYS_PROC_INFO": "syscall", - "syscall.SYS_PROF": "syscall", - "syscall.SYS_PROFIL": "syscall", - "syscall.SYS_PSELECT": "syscall", - "syscall.SYS_PSELECT6": "syscall", - "syscall.SYS_PSET_ASSIGN": "syscall", - "syscall.SYS_PSET_CREATE": "syscall", - "syscall.SYS_PSET_DESTROY": "syscall", - "syscall.SYS_PSYNCH_CVBROAD": "syscall", - "syscall.SYS_PSYNCH_CVCLRPREPOST": "syscall", - "syscall.SYS_PSYNCH_CVSIGNAL": "syscall", - "syscall.SYS_PSYNCH_CVWAIT": "syscall", - "syscall.SYS_PSYNCH_MUTEXDROP": "syscall", - "syscall.SYS_PSYNCH_MUTEXWAIT": "syscall", - "syscall.SYS_PSYNCH_RW_DOWNGRADE": "syscall", - "syscall.SYS_PSYNCH_RW_LONGRDLOCK": "syscall", - "syscall.SYS_PSYNCH_RW_RDLOCK": "syscall", - "syscall.SYS_PSYNCH_RW_UNLOCK": "syscall", - "syscall.SYS_PSYNCH_RW_UNLOCK2": "syscall", - "syscall.SYS_PSYNCH_RW_UPGRADE": "syscall", - "syscall.SYS_PSYNCH_RW_WRLOCK": "syscall", - "syscall.SYS_PSYNCH_RW_YIELDWRLOCK": "syscall", - "syscall.SYS_PTRACE": "syscall", - "syscall.SYS_PUTPMSG": "syscall", - "syscall.SYS_PWRITE": "syscall", - "syscall.SYS_PWRITE64": "syscall", - "syscall.SYS_PWRITEV": "syscall", - "syscall.SYS_PWRITE_NOCANCEL": "syscall", - "syscall.SYS_QUERY_MODULE": "syscall", - "syscall.SYS_QUOTACTL": "syscall", - "syscall.SYS_RASCTL": "syscall", - "syscall.SYS_RCTL_ADD_RULE": "syscall", - "syscall.SYS_RCTL_GET_LIMITS": "syscall", - "syscall.SYS_RCTL_GET_RACCT": "syscall", - "syscall.SYS_RCTL_GET_RULES": "syscall", - "syscall.SYS_RCTL_REMOVE_RULE": "syscall", - "syscall.SYS_READ": "syscall", - "syscall.SYS_READAHEAD": "syscall", - "syscall.SYS_READDIR": "syscall", - "syscall.SYS_READLINK": "syscall", - "syscall.SYS_READLINKAT": "syscall", - "syscall.SYS_READV": "syscall", - "syscall.SYS_READV_NOCANCEL": "syscall", - "syscall.SYS_READ_NOCANCEL": "syscall", - "syscall.SYS_REBOOT": "syscall", - "syscall.SYS_RECV": "syscall", - "syscall.SYS_RECVFROM": "syscall", - "syscall.SYS_RECVFROM_NOCANCEL": "syscall", - "syscall.SYS_RECVMMSG": "syscall", - "syscall.SYS_RECVMSG": "syscall", - "syscall.SYS_RECVMSG_NOCANCEL": "syscall", - "syscall.SYS_REMAP_FILE_PAGES": "syscall", - "syscall.SYS_REMOVEXATTR": "syscall", - "syscall.SYS_RENAME": "syscall", - "syscall.SYS_RENAMEAT": "syscall", - "syscall.SYS_REQUEST_KEY": "syscall", - "syscall.SYS_RESTART_SYSCALL": "syscall", - "syscall.SYS_REVOKE": "syscall", - "syscall.SYS_RFORK": "syscall", - "syscall.SYS_RMDIR": "syscall", - "syscall.SYS_RTPRIO": "syscall", - "syscall.SYS_RTPRIO_THREAD": "syscall", - "syscall.SYS_RT_SIGACTION": "syscall", - "syscall.SYS_RT_SIGPENDING": "syscall", - "syscall.SYS_RT_SIGPROCMASK": "syscall", - "syscall.SYS_RT_SIGQUEUEINFO": "syscall", - "syscall.SYS_RT_SIGRETURN": "syscall", - "syscall.SYS_RT_SIGSUSPEND": "syscall", - "syscall.SYS_RT_SIGTIMEDWAIT": "syscall", - "syscall.SYS_RT_TGSIGQUEUEINFO": "syscall", - "syscall.SYS_SBRK": "syscall", - "syscall.SYS_SCHED_GETAFFINITY": "syscall", - "syscall.SYS_SCHED_GETPARAM": "syscall", - "syscall.SYS_SCHED_GETSCHEDULER": "syscall", - "syscall.SYS_SCHED_GET_PRIORITY_MAX": "syscall", - "syscall.SYS_SCHED_GET_PRIORITY_MIN": "syscall", - "syscall.SYS_SCHED_RR_GET_INTERVAL": "syscall", - "syscall.SYS_SCHED_SETAFFINITY": "syscall", - "syscall.SYS_SCHED_SETPARAM": "syscall", - "syscall.SYS_SCHED_SETSCHEDULER": "syscall", - "syscall.SYS_SCHED_YIELD": "syscall", - "syscall.SYS_SCTP_GENERIC_RECVMSG": "syscall", - "syscall.SYS_SCTP_GENERIC_SENDMSG": "syscall", - "syscall.SYS_SCTP_GENERIC_SENDMSG_IOV": "syscall", - "syscall.SYS_SCTP_PEELOFF": "syscall", - "syscall.SYS_SEARCHFS": "syscall", - "syscall.SYS_SECURITY": "syscall", - "syscall.SYS_SELECT": "syscall", - "syscall.SYS_SELECT_NOCANCEL": "syscall", - "syscall.SYS_SEMCONFIG": "syscall", - "syscall.SYS_SEMCTL": "syscall", - "syscall.SYS_SEMGET": "syscall", - "syscall.SYS_SEMOP": "syscall", - "syscall.SYS_SEMSYS": "syscall", - "syscall.SYS_SEMTIMEDOP": "syscall", - "syscall.SYS_SEM_CLOSE": "syscall", - "syscall.SYS_SEM_DESTROY": "syscall", - "syscall.SYS_SEM_GETVALUE": "syscall", - "syscall.SYS_SEM_INIT": "syscall", - "syscall.SYS_SEM_OPEN": "syscall", - "syscall.SYS_SEM_POST": "syscall", - "syscall.SYS_SEM_TRYWAIT": "syscall", - "syscall.SYS_SEM_UNLINK": "syscall", - "syscall.SYS_SEM_WAIT": "syscall", - "syscall.SYS_SEM_WAIT_NOCANCEL": "syscall", - "syscall.SYS_SEND": "syscall", - "syscall.SYS_SENDFILE": "syscall", - "syscall.SYS_SENDFILE64": "syscall", - "syscall.SYS_SENDMMSG": "syscall", - "syscall.SYS_SENDMSG": "syscall", - "syscall.SYS_SENDMSG_NOCANCEL": "syscall", - "syscall.SYS_SENDTO": "syscall", - "syscall.SYS_SENDTO_NOCANCEL": "syscall", - "syscall.SYS_SETATTRLIST": "syscall", - "syscall.SYS_SETAUDIT": "syscall", - "syscall.SYS_SETAUDIT_ADDR": "syscall", - "syscall.SYS_SETAUID": "syscall", - "syscall.SYS_SETCONTEXT": "syscall", - "syscall.SYS_SETDOMAINNAME": "syscall", - "syscall.SYS_SETEGID": "syscall", - "syscall.SYS_SETEUID": "syscall", - "syscall.SYS_SETFIB": "syscall", - "syscall.SYS_SETFSGID": "syscall", - "syscall.SYS_SETFSGID32": "syscall", - "syscall.SYS_SETFSUID": "syscall", - "syscall.SYS_SETFSUID32": "syscall", - "syscall.SYS_SETGID": "syscall", - "syscall.SYS_SETGID32": "syscall", - "syscall.SYS_SETGROUPS": "syscall", - "syscall.SYS_SETGROUPS32": "syscall", - "syscall.SYS_SETHOSTNAME": "syscall", - "syscall.SYS_SETITIMER": "syscall", - "syscall.SYS_SETLCID": "syscall", - "syscall.SYS_SETLOGIN": "syscall", - "syscall.SYS_SETLOGINCLASS": "syscall", - "syscall.SYS_SETNS": "syscall", - "syscall.SYS_SETPGID": "syscall", - "syscall.SYS_SETPRIORITY": "syscall", - "syscall.SYS_SETPRIVEXEC": "syscall", - "syscall.SYS_SETREGID": "syscall", - "syscall.SYS_SETREGID32": "syscall", - "syscall.SYS_SETRESGID": "syscall", - "syscall.SYS_SETRESGID32": "syscall", - "syscall.SYS_SETRESUID": "syscall", - "syscall.SYS_SETRESUID32": "syscall", - "syscall.SYS_SETREUID": "syscall", - "syscall.SYS_SETREUID32": "syscall", - "syscall.SYS_SETRLIMIT": "syscall", - "syscall.SYS_SETRTABLE": "syscall", - "syscall.SYS_SETSGROUPS": "syscall", - "syscall.SYS_SETSID": "syscall", - "syscall.SYS_SETSOCKOPT": "syscall", - "syscall.SYS_SETTID": "syscall", - "syscall.SYS_SETTID_WITH_PID": "syscall", - "syscall.SYS_SETTIMEOFDAY": "syscall", - "syscall.SYS_SETUID": "syscall", - "syscall.SYS_SETUID32": "syscall", - "syscall.SYS_SETWGROUPS": "syscall", - "syscall.SYS_SETXATTR": "syscall", - "syscall.SYS_SET_MEMPOLICY": "syscall", - "syscall.SYS_SET_ROBUST_LIST": "syscall", - "syscall.SYS_SET_THREAD_AREA": "syscall", - "syscall.SYS_SET_TID_ADDRESS": "syscall", - "syscall.SYS_SGETMASK": "syscall", - "syscall.SYS_SHARED_REGION_CHECK_NP": "syscall", - "syscall.SYS_SHARED_REGION_MAP_AND_SLIDE_NP": "syscall", - "syscall.SYS_SHMAT": "syscall", - "syscall.SYS_SHMCTL": "syscall", - "syscall.SYS_SHMDT": "syscall", - "syscall.SYS_SHMGET": "syscall", - "syscall.SYS_SHMSYS": "syscall", - "syscall.SYS_SHM_OPEN": "syscall", - "syscall.SYS_SHM_UNLINK": "syscall", - "syscall.SYS_SHUTDOWN": "syscall", - "syscall.SYS_SIGACTION": "syscall", - "syscall.SYS_SIGALTSTACK": "syscall", - "syscall.SYS_SIGNAL": "syscall", - "syscall.SYS_SIGNALFD": "syscall", - "syscall.SYS_SIGNALFD4": "syscall", - "syscall.SYS_SIGPENDING": "syscall", - "syscall.SYS_SIGPROCMASK": "syscall", - "syscall.SYS_SIGQUEUE": "syscall", - "syscall.SYS_SIGQUEUEINFO": "syscall", - "syscall.SYS_SIGRETURN": "syscall", - "syscall.SYS_SIGSUSPEND": "syscall", - "syscall.SYS_SIGSUSPEND_NOCANCEL": "syscall", - "syscall.SYS_SIGTIMEDWAIT": "syscall", - "syscall.SYS_SIGWAIT": "syscall", - "syscall.SYS_SIGWAITINFO": "syscall", - "syscall.SYS_SOCKET": "syscall", - "syscall.SYS_SOCKETCALL": "syscall", - "syscall.SYS_SOCKETPAIR": "syscall", - "syscall.SYS_SPLICE": "syscall", - "syscall.SYS_SSETMASK": "syscall", - "syscall.SYS_SSTK": "syscall", - "syscall.SYS_STACK_SNAPSHOT": "syscall", - "syscall.SYS_STAT": "syscall", - "syscall.SYS_STAT64": "syscall", - "syscall.SYS_STAT64_EXTENDED": "syscall", - "syscall.SYS_STATFS": "syscall", - "syscall.SYS_STATFS64": "syscall", - "syscall.SYS_STATV": "syscall", - "syscall.SYS_STATVFS1": "syscall", - "syscall.SYS_STAT_EXTENDED": "syscall", - "syscall.SYS_STIME": "syscall", - "syscall.SYS_STTY": "syscall", - "syscall.SYS_SWAPCONTEXT": "syscall", - "syscall.SYS_SWAPCTL": "syscall", - "syscall.SYS_SWAPOFF": "syscall", - "syscall.SYS_SWAPON": "syscall", - "syscall.SYS_SYMLINK": "syscall", - "syscall.SYS_SYMLINKAT": "syscall", - "syscall.SYS_SYNC": "syscall", - "syscall.SYS_SYNCFS": "syscall", - "syscall.SYS_SYNC_FILE_RANGE": "syscall", - "syscall.SYS_SYSARCH": "syscall", - "syscall.SYS_SYSCALL": "syscall", - "syscall.SYS_SYSCALL_BASE": "syscall", - "syscall.SYS_SYSFS": "syscall", - "syscall.SYS_SYSINFO": "syscall", - "syscall.SYS_SYSLOG": "syscall", - "syscall.SYS_TEE": "syscall", - "syscall.SYS_TGKILL": "syscall", - "syscall.SYS_THREAD_SELFID": "syscall", - "syscall.SYS_THR_CREATE": "syscall", - "syscall.SYS_THR_EXIT": "syscall", - "syscall.SYS_THR_KILL": "syscall", - "syscall.SYS_THR_KILL2": "syscall", - "syscall.SYS_THR_NEW": "syscall", - "syscall.SYS_THR_SELF": "syscall", - "syscall.SYS_THR_SET_NAME": "syscall", - "syscall.SYS_THR_SUSPEND": "syscall", - "syscall.SYS_THR_WAKE": "syscall", - "syscall.SYS_TIME": "syscall", - "syscall.SYS_TIMERFD_CREATE": "syscall", - "syscall.SYS_TIMERFD_GETTIME": "syscall", - "syscall.SYS_TIMERFD_SETTIME": "syscall", - "syscall.SYS_TIMER_CREATE": "syscall", - "syscall.SYS_TIMER_DELETE": "syscall", - "syscall.SYS_TIMER_GETOVERRUN": "syscall", - "syscall.SYS_TIMER_GETTIME": "syscall", - "syscall.SYS_TIMER_SETTIME": "syscall", - "syscall.SYS_TIMES": "syscall", - "syscall.SYS_TKILL": "syscall", - "syscall.SYS_TRUNCATE": "syscall", - "syscall.SYS_TRUNCATE64": "syscall", - "syscall.SYS_TUXCALL": "syscall", - "syscall.SYS_UGETRLIMIT": "syscall", - "syscall.SYS_ULIMIT": "syscall", - "syscall.SYS_UMASK": "syscall", - "syscall.SYS_UMASK_EXTENDED": "syscall", - "syscall.SYS_UMOUNT": "syscall", - "syscall.SYS_UMOUNT2": "syscall", - "syscall.SYS_UNAME": "syscall", - "syscall.SYS_UNDELETE": "syscall", - "syscall.SYS_UNLINK": "syscall", - "syscall.SYS_UNLINKAT": "syscall", - "syscall.SYS_UNMOUNT": "syscall", - "syscall.SYS_UNSHARE": "syscall", - "syscall.SYS_USELIB": "syscall", - "syscall.SYS_USTAT": "syscall", - "syscall.SYS_UTIME": "syscall", - "syscall.SYS_UTIMENSAT": "syscall", - "syscall.SYS_UTIMES": "syscall", - "syscall.SYS_UTRACE": "syscall", - "syscall.SYS_UUIDGEN": "syscall", - "syscall.SYS_VADVISE": "syscall", - "syscall.SYS_VFORK": "syscall", - "syscall.SYS_VHANGUP": "syscall", - "syscall.SYS_VM86": "syscall", - "syscall.SYS_VM86OLD": "syscall", - "syscall.SYS_VMSPLICE": "syscall", - "syscall.SYS_VM_PRESSURE_MONITOR": "syscall", - "syscall.SYS_VSERVER": "syscall", - "syscall.SYS_WAIT4": "syscall", - "syscall.SYS_WAIT4_NOCANCEL": "syscall", - "syscall.SYS_WAIT6": "syscall", - "syscall.SYS_WAITEVENT": "syscall", - "syscall.SYS_WAITID": "syscall", - "syscall.SYS_WAITID_NOCANCEL": "syscall", - "syscall.SYS_WAITPID": "syscall", - "syscall.SYS_WATCHEVENT": "syscall", - "syscall.SYS_WORKQ_KERNRETURN": "syscall", - "syscall.SYS_WORKQ_OPEN": "syscall", - "syscall.SYS_WRITE": "syscall", - "syscall.SYS_WRITEV": "syscall", - "syscall.SYS_WRITEV_NOCANCEL": "syscall", - "syscall.SYS_WRITE_NOCANCEL": "syscall", - "syscall.SYS_YIELD": "syscall", - "syscall.SYS__LLSEEK": "syscall", - "syscall.SYS__LWP_CONTINUE": "syscall", - "syscall.SYS__LWP_CREATE": "syscall", - "syscall.SYS__LWP_CTL": "syscall", - "syscall.SYS__LWP_DETACH": "syscall", - "syscall.SYS__LWP_EXIT": "syscall", - "syscall.SYS__LWP_GETNAME": "syscall", - "syscall.SYS__LWP_GETPRIVATE": "syscall", - "syscall.SYS__LWP_KILL": "syscall", - "syscall.SYS__LWP_PARK": "syscall", - "syscall.SYS__LWP_SELF": "syscall", - "syscall.SYS__LWP_SETNAME": "syscall", - "syscall.SYS__LWP_SETPRIVATE": "syscall", - "syscall.SYS__LWP_SUSPEND": "syscall", - "syscall.SYS__LWP_UNPARK": "syscall", - "syscall.SYS__LWP_UNPARK_ALL": "syscall", - "syscall.SYS__LWP_WAIT": "syscall", - "syscall.SYS__LWP_WAKEUP": "syscall", - "syscall.SYS__NEWSELECT": "syscall", - "syscall.SYS__PSET_BIND": "syscall", - "syscall.SYS__SCHED_GETAFFINITY": "syscall", - "syscall.SYS__SCHED_GETPARAM": "syscall", - "syscall.SYS__SCHED_SETAFFINITY": "syscall", - "syscall.SYS__SCHED_SETPARAM": "syscall", - "syscall.SYS__SYSCTL": "syscall", - "syscall.SYS__UMTX_LOCK": "syscall", - "syscall.SYS__UMTX_OP": "syscall", - "syscall.SYS__UMTX_UNLOCK": "syscall", - "syscall.SYS___ACL_ACLCHECK_FD": "syscall", - "syscall.SYS___ACL_ACLCHECK_FILE": "syscall", - "syscall.SYS___ACL_ACLCHECK_LINK": "syscall", - "syscall.SYS___ACL_DELETE_FD": "syscall", - "syscall.SYS___ACL_DELETE_FILE": "syscall", - "syscall.SYS___ACL_DELETE_LINK": "syscall", - "syscall.SYS___ACL_GET_FD": "syscall", - "syscall.SYS___ACL_GET_FILE": "syscall", - "syscall.SYS___ACL_GET_LINK": "syscall", - "syscall.SYS___ACL_SET_FD": "syscall", - "syscall.SYS___ACL_SET_FILE": "syscall", - "syscall.SYS___ACL_SET_LINK": "syscall", - "syscall.SYS___CLONE": "syscall", - "syscall.SYS___DISABLE_THREADSIGNAL": "syscall", - "syscall.SYS___GETCWD": "syscall", - "syscall.SYS___GETLOGIN": "syscall", - "syscall.SYS___GET_TCB": "syscall", - "syscall.SYS___MAC_EXECVE": "syscall", - "syscall.SYS___MAC_GETFSSTAT": "syscall", - "syscall.SYS___MAC_GET_FD": "syscall", - "syscall.SYS___MAC_GET_FILE": "syscall", - "syscall.SYS___MAC_GET_LCID": "syscall", - "syscall.SYS___MAC_GET_LCTX": "syscall", - "syscall.SYS___MAC_GET_LINK": "syscall", - "syscall.SYS___MAC_GET_MOUNT": "syscall", - "syscall.SYS___MAC_GET_PID": "syscall", - "syscall.SYS___MAC_GET_PROC": "syscall", - "syscall.SYS___MAC_MOUNT": "syscall", - "syscall.SYS___MAC_SET_FD": "syscall", - "syscall.SYS___MAC_SET_FILE": "syscall", - "syscall.SYS___MAC_SET_LCTX": "syscall", - "syscall.SYS___MAC_SET_LINK": "syscall", - "syscall.SYS___MAC_SET_PROC": "syscall", - "syscall.SYS___MAC_SYSCALL": "syscall", - "syscall.SYS___OLD_SEMWAIT_SIGNAL": "syscall", - "syscall.SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL": "syscall", - "syscall.SYS___POSIX_CHOWN": "syscall", - "syscall.SYS___POSIX_FCHOWN": "syscall", - "syscall.SYS___POSIX_LCHOWN": "syscall", - "syscall.SYS___POSIX_RENAME": "syscall", - "syscall.SYS___PTHREAD_CANCELED": "syscall", - "syscall.SYS___PTHREAD_CHDIR": "syscall", - "syscall.SYS___PTHREAD_FCHDIR": "syscall", - "syscall.SYS___PTHREAD_KILL": "syscall", - "syscall.SYS___PTHREAD_MARKCANCEL": "syscall", - "syscall.SYS___PTHREAD_SIGMASK": "syscall", - "syscall.SYS___QUOTACTL": "syscall", - "syscall.SYS___SEMCTL": "syscall", - "syscall.SYS___SEMWAIT_SIGNAL": "syscall", - "syscall.SYS___SEMWAIT_SIGNAL_NOCANCEL": "syscall", - "syscall.SYS___SETLOGIN": "syscall", - "syscall.SYS___SETUGID": "syscall", - "syscall.SYS___SET_TCB": "syscall", - "syscall.SYS___SIGACTION_SIGTRAMP": "syscall", - "syscall.SYS___SIGTIMEDWAIT": "syscall", - "syscall.SYS___SIGWAIT": "syscall", - "syscall.SYS___SIGWAIT_NOCANCEL": "syscall", - "syscall.SYS___SYSCTL": "syscall", - "syscall.SYS___TFORK": "syscall", - "syscall.SYS___THREXIT": "syscall", - "syscall.SYS___THRSIGDIVERT": "syscall", - "syscall.SYS___THRSLEEP": "syscall", - "syscall.SYS___THRWAKEUP": "syscall", - "syscall.S_ARCH1": "syscall", - "syscall.S_ARCH2": "syscall", - "syscall.S_BLKSIZE": "syscall", - "syscall.S_IEXEC": "syscall", - "syscall.S_IFBLK": "syscall", - "syscall.S_IFCHR": "syscall", - "syscall.S_IFDIR": "syscall", - "syscall.S_IFIFO": "syscall", - "syscall.S_IFLNK": "syscall", - "syscall.S_IFMT": "syscall", - "syscall.S_IFREG": "syscall", - "syscall.S_IFSOCK": "syscall", - "syscall.S_IFWHT": "syscall", - "syscall.S_IREAD": "syscall", - "syscall.S_IRGRP": "syscall", - "syscall.S_IROTH": "syscall", - "syscall.S_IRUSR": "syscall", - "syscall.S_IRWXG": "syscall", - "syscall.S_IRWXO": "syscall", - "syscall.S_IRWXU": "syscall", - "syscall.S_ISGID": "syscall", - "syscall.S_ISTXT": "syscall", - "syscall.S_ISUID": "syscall", - "syscall.S_ISVTX": "syscall", - "syscall.S_IWGRP": "syscall", - "syscall.S_IWOTH": "syscall", - "syscall.S_IWRITE": "syscall", - "syscall.S_IWUSR": "syscall", - "syscall.S_IXGRP": "syscall", - "syscall.S_IXOTH": "syscall", - "syscall.S_IXUSR": "syscall", - "syscall.S_LOGIN_SET": "syscall", - "syscall.SecurityAttributes": "syscall", - "syscall.Seek": "syscall", - "syscall.Select": "syscall", - "syscall.Sendfile": "syscall", - "syscall.Sendmsg": "syscall", - "syscall.SendmsgN": "syscall", - "syscall.Sendto": "syscall", - "syscall.Servent": "syscall", - "syscall.SetBpf": "syscall", - "syscall.SetBpfBuflen": "syscall", - "syscall.SetBpfDatalink": "syscall", - "syscall.SetBpfHeadercmpl": "syscall", - "syscall.SetBpfImmediate": "syscall", - "syscall.SetBpfInterface": "syscall", - "syscall.SetBpfPromisc": "syscall", - "syscall.SetBpfTimeout": "syscall", - "syscall.SetCurrentDirectory": "syscall", - "syscall.SetEndOfFile": "syscall", - "syscall.SetEnvironmentVariable": "syscall", - "syscall.SetFileAttributes": "syscall", - "syscall.SetFileCompletionNotificationModes": "syscall", - "syscall.SetFilePointer": "syscall", - "syscall.SetFileTime": "syscall", - "syscall.SetHandleInformation": "syscall", - "syscall.SetKevent": "syscall", - "syscall.SetLsfPromisc": "syscall", - "syscall.SetNonblock": "syscall", - "syscall.Setdomainname": "syscall", - "syscall.Setegid": "syscall", - "syscall.Setenv": "syscall", - "syscall.Seteuid": "syscall", - "syscall.Setfsgid": "syscall", - "syscall.Setfsuid": "syscall", - "syscall.Setgid": "syscall", - "syscall.Setgroups": "syscall", - "syscall.Sethostname": "syscall", - "syscall.Setlogin": "syscall", - "syscall.Setpgid": "syscall", - "syscall.Setpriority": "syscall", - "syscall.Setprivexec": "syscall", - "syscall.Setregid": "syscall", - "syscall.Setresgid": "syscall", - "syscall.Setresuid": "syscall", - "syscall.Setreuid": "syscall", - "syscall.Setrlimit": "syscall", - "syscall.Setsid": "syscall", - "syscall.Setsockopt": "syscall", - "syscall.SetsockoptByte": "syscall", - "syscall.SetsockoptICMPv6Filter": "syscall", - "syscall.SetsockoptIPMreq": "syscall", - "syscall.SetsockoptIPMreqn": "syscall", - "syscall.SetsockoptIPv6Mreq": "syscall", - "syscall.SetsockoptInet4Addr": "syscall", - "syscall.SetsockoptInt": "syscall", - "syscall.SetsockoptLinger": "syscall", - "syscall.SetsockoptString": "syscall", - "syscall.SetsockoptTimeval": "syscall", - "syscall.Settimeofday": "syscall", - "syscall.Setuid": "syscall", - "syscall.Setxattr": "syscall", - "syscall.Shutdown": "syscall", - "syscall.SidTypeAlias": "syscall", - "syscall.SidTypeComputer": "syscall", - "syscall.SidTypeDeletedAccount": "syscall", - "syscall.SidTypeDomain": "syscall", - "syscall.SidTypeGroup": "syscall", - "syscall.SidTypeInvalid": "syscall", - "syscall.SidTypeLabel": "syscall", - "syscall.SidTypeUnknown": "syscall", - "syscall.SidTypeUser": "syscall", - "syscall.SidTypeWellKnownGroup": "syscall", - "syscall.Signal": "syscall", - "syscall.SizeofBpfHdr": "syscall", - "syscall.SizeofBpfInsn": "syscall", - "syscall.SizeofBpfProgram": "syscall", - "syscall.SizeofBpfStat": "syscall", - "syscall.SizeofBpfVersion": "syscall", - "syscall.SizeofBpfZbuf": "syscall", - "syscall.SizeofBpfZbufHeader": "syscall", - "syscall.SizeofCmsghdr": "syscall", - "syscall.SizeofICMPv6Filter": "syscall", - "syscall.SizeofIPMreq": "syscall", - "syscall.SizeofIPMreqn": "syscall", - "syscall.SizeofIPv6MTUInfo": "syscall", - "syscall.SizeofIPv6Mreq": "syscall", - "syscall.SizeofIfAddrmsg": "syscall", - "syscall.SizeofIfAnnounceMsghdr": "syscall", - "syscall.SizeofIfData": "syscall", - "syscall.SizeofIfInfomsg": "syscall", - "syscall.SizeofIfMsghdr": "syscall", - "syscall.SizeofIfaMsghdr": "syscall", - "syscall.SizeofIfmaMsghdr": "syscall", - "syscall.SizeofIfmaMsghdr2": "syscall", - "syscall.SizeofInet4Pktinfo": "syscall", - "syscall.SizeofInet6Pktinfo": "syscall", - "syscall.SizeofInotifyEvent": "syscall", - "syscall.SizeofLinger": "syscall", - "syscall.SizeofMsghdr": "syscall", - "syscall.SizeofNlAttr": "syscall", - "syscall.SizeofNlMsgerr": "syscall", - "syscall.SizeofNlMsghdr": "syscall", - "syscall.SizeofRtAttr": "syscall", - "syscall.SizeofRtGenmsg": "syscall", - "syscall.SizeofRtMetrics": "syscall", - "syscall.SizeofRtMsg": "syscall", - "syscall.SizeofRtMsghdr": "syscall", - "syscall.SizeofRtNexthop": "syscall", - "syscall.SizeofSockFilter": "syscall", - "syscall.SizeofSockFprog": "syscall", - "syscall.SizeofSockaddrAny": "syscall", - "syscall.SizeofSockaddrDatalink": "syscall", - "syscall.SizeofSockaddrInet4": "syscall", - "syscall.SizeofSockaddrInet6": "syscall", - "syscall.SizeofSockaddrLinklayer": "syscall", - "syscall.SizeofSockaddrNetlink": "syscall", - "syscall.SizeofSockaddrUnix": "syscall", - "syscall.SizeofTCPInfo": "syscall", - "syscall.SizeofUcred": "syscall", - "syscall.SlicePtrFromStrings": "syscall", - "syscall.SockFilter": "syscall", - "syscall.SockFprog": "syscall", - "syscall.SockaddrDatalink": "syscall", - "syscall.SockaddrGen": "syscall", - "syscall.SockaddrInet4": "syscall", - "syscall.SockaddrInet6": "syscall", - "syscall.SockaddrLinklayer": "syscall", - "syscall.SockaddrNetlink": "syscall", - "syscall.SockaddrUnix": "syscall", - "syscall.Socket": "syscall", - "syscall.SocketControlMessage": "syscall", - "syscall.SocketDisableIPv6": "syscall", - "syscall.Socketpair": "syscall", - "syscall.Splice": "syscall", - "syscall.StartProcess": "syscall", - "syscall.StartupInfo": "syscall", - "syscall.Stat": "syscall", - "syscall.Stat_t": "syscall", - "syscall.Statfs": "syscall", - "syscall.Statfs_t": "syscall", - "syscall.Stderr": "syscall", - "syscall.Stdin": "syscall", - "syscall.Stdout": "syscall", - "syscall.StringBytePtr": "syscall", - "syscall.StringByteSlice": "syscall", - "syscall.StringSlicePtr": "syscall", - "syscall.StringToSid": "syscall", - "syscall.StringToUTF16": "syscall", - "syscall.StringToUTF16Ptr": "syscall", - "syscall.Symlink": "syscall", - "syscall.Sync": "syscall", - "syscall.SyncFileRange": "syscall", - "syscall.SysProcAttr": "syscall", - "syscall.SysProcIDMap": "syscall", - "syscall.Syscall": "syscall", - "syscall.Syscall12": "syscall", - "syscall.Syscall15": "syscall", - "syscall.Syscall6": "syscall", - "syscall.Syscall9": "syscall", - "syscall.Sysctl": "syscall", - "syscall.SysctlUint32": "syscall", - "syscall.Sysctlnode": "syscall", - "syscall.Sysinfo": "syscall", - "syscall.Sysinfo_t": "syscall", - "syscall.Systemtime": "syscall", - "syscall.TCGETS": "syscall", - "syscall.TCIFLUSH": "syscall", - "syscall.TCIOFLUSH": "syscall", - "syscall.TCOFLUSH": "syscall", - "syscall.TCPInfo": "syscall", - "syscall.TCPKeepalive": "syscall", - "syscall.TCP_CA_NAME_MAX": "syscall", - "syscall.TCP_CONGCTL": "syscall", - "syscall.TCP_CONGESTION": "syscall", - "syscall.TCP_CONNECTIONTIMEOUT": "syscall", - "syscall.TCP_CORK": "syscall", - "syscall.TCP_DEFER_ACCEPT": "syscall", - "syscall.TCP_INFO": "syscall", - "syscall.TCP_KEEPALIVE": "syscall", - "syscall.TCP_KEEPCNT": "syscall", - "syscall.TCP_KEEPIDLE": "syscall", - "syscall.TCP_KEEPINIT": "syscall", - "syscall.TCP_KEEPINTVL": "syscall", - "syscall.TCP_LINGER2": "syscall", - "syscall.TCP_MAXBURST": "syscall", - "syscall.TCP_MAXHLEN": "syscall", - "syscall.TCP_MAXOLEN": "syscall", - "syscall.TCP_MAXSEG": "syscall", - "syscall.TCP_MAXWIN": "syscall", - "syscall.TCP_MAX_SACK": "syscall", - "syscall.TCP_MAX_WINSHIFT": "syscall", - "syscall.TCP_MD5SIG": "syscall", - "syscall.TCP_MD5SIG_MAXKEYLEN": "syscall", - "syscall.TCP_MINMSS": "syscall", - "syscall.TCP_MINMSSOVERLOAD": "syscall", - "syscall.TCP_MSS": "syscall", - "syscall.TCP_NODELAY": "syscall", - "syscall.TCP_NOOPT": "syscall", - "syscall.TCP_NOPUSH": "syscall", - "syscall.TCP_NSTATES": "syscall", - "syscall.TCP_QUICKACK": "syscall", - "syscall.TCP_RXT_CONNDROPTIME": "syscall", - "syscall.TCP_RXT_FINDROP": "syscall", - "syscall.TCP_SACK_ENABLE": "syscall", - "syscall.TCP_SYNCNT": "syscall", - "syscall.TCP_VENDOR": "syscall", - "syscall.TCP_WINDOW_CLAMP": "syscall", - "syscall.TCSAFLUSH": "syscall", - "syscall.TCSETS": "syscall", - "syscall.TF_DISCONNECT": "syscall", - "syscall.TF_REUSE_SOCKET": "syscall", - "syscall.TF_USE_DEFAULT_WORKER": "syscall", - "syscall.TF_USE_KERNEL_APC": "syscall", - "syscall.TF_USE_SYSTEM_THREAD": "syscall", - "syscall.TF_WRITE_BEHIND": "syscall", - "syscall.TH32CS_INHERIT": "syscall", - "syscall.TH32CS_SNAPALL": "syscall", - "syscall.TH32CS_SNAPHEAPLIST": "syscall", - "syscall.TH32CS_SNAPMODULE": "syscall", - "syscall.TH32CS_SNAPMODULE32": "syscall", - "syscall.TH32CS_SNAPPROCESS": "syscall", - "syscall.TH32CS_SNAPTHREAD": "syscall", - "syscall.TIME_ZONE_ID_DAYLIGHT": "syscall", - "syscall.TIME_ZONE_ID_STANDARD": "syscall", - "syscall.TIME_ZONE_ID_UNKNOWN": "syscall", - "syscall.TIOCCBRK": "syscall", - "syscall.TIOCCDTR": "syscall", - "syscall.TIOCCONS": "syscall", - "syscall.TIOCDCDTIMESTAMP": "syscall", - "syscall.TIOCDRAIN": "syscall", - "syscall.TIOCDSIMICROCODE": "syscall", - "syscall.TIOCEXCL": "syscall", - "syscall.TIOCEXT": "syscall", - "syscall.TIOCFLAG_CDTRCTS": "syscall", - "syscall.TIOCFLAG_CLOCAL": "syscall", - "syscall.TIOCFLAG_CRTSCTS": "syscall", - "syscall.TIOCFLAG_MDMBUF": "syscall", - "syscall.TIOCFLAG_PPS": "syscall", - "syscall.TIOCFLAG_SOFTCAR": "syscall", - "syscall.TIOCFLUSH": "syscall", - "syscall.TIOCGDEV": "syscall", - "syscall.TIOCGDRAINWAIT": "syscall", - "syscall.TIOCGETA": "syscall", - "syscall.TIOCGETD": "syscall", - "syscall.TIOCGFLAGS": "syscall", - "syscall.TIOCGICOUNT": "syscall", - "syscall.TIOCGLCKTRMIOS": "syscall", - "syscall.TIOCGLINED": "syscall", - "syscall.TIOCGPGRP": "syscall", - "syscall.TIOCGPTN": "syscall", - "syscall.TIOCGQSIZE": "syscall", - "syscall.TIOCGRANTPT": "syscall", - "syscall.TIOCGRS485": "syscall", - "syscall.TIOCGSERIAL": "syscall", - "syscall.TIOCGSID": "syscall", - "syscall.TIOCGSIZE": "syscall", - "syscall.TIOCGSOFTCAR": "syscall", - "syscall.TIOCGTSTAMP": "syscall", - "syscall.TIOCGWINSZ": "syscall", - "syscall.TIOCINQ": "syscall", - "syscall.TIOCIXOFF": "syscall", - "syscall.TIOCIXON": "syscall", - "syscall.TIOCLINUX": "syscall", - "syscall.TIOCMBIC": "syscall", - "syscall.TIOCMBIS": "syscall", - "syscall.TIOCMGDTRWAIT": "syscall", - "syscall.TIOCMGET": "syscall", - "syscall.TIOCMIWAIT": "syscall", - "syscall.TIOCMODG": "syscall", - "syscall.TIOCMODS": "syscall", - "syscall.TIOCMSDTRWAIT": "syscall", - "syscall.TIOCMSET": "syscall", - "syscall.TIOCM_CAR": "syscall", - "syscall.TIOCM_CD": "syscall", - "syscall.TIOCM_CTS": "syscall", - "syscall.TIOCM_DCD": "syscall", - "syscall.TIOCM_DSR": "syscall", - "syscall.TIOCM_DTR": "syscall", - "syscall.TIOCM_LE": "syscall", - "syscall.TIOCM_RI": "syscall", - "syscall.TIOCM_RNG": "syscall", - "syscall.TIOCM_RTS": "syscall", - "syscall.TIOCM_SR": "syscall", - "syscall.TIOCM_ST": "syscall", - "syscall.TIOCNOTTY": "syscall", - "syscall.TIOCNXCL": "syscall", - "syscall.TIOCOUTQ": "syscall", - "syscall.TIOCPKT": "syscall", - "syscall.TIOCPKT_DATA": "syscall", - "syscall.TIOCPKT_DOSTOP": "syscall", - "syscall.TIOCPKT_FLUSHREAD": "syscall", - "syscall.TIOCPKT_FLUSHWRITE": "syscall", - "syscall.TIOCPKT_IOCTL": "syscall", - "syscall.TIOCPKT_NOSTOP": "syscall", - "syscall.TIOCPKT_START": "syscall", - "syscall.TIOCPKT_STOP": "syscall", - "syscall.TIOCPTMASTER": "syscall", - "syscall.TIOCPTMGET": "syscall", - "syscall.TIOCPTSNAME": "syscall", - "syscall.TIOCPTYGNAME": "syscall", - "syscall.TIOCPTYGRANT": "syscall", - "syscall.TIOCPTYUNLK": "syscall", - "syscall.TIOCRCVFRAME": "syscall", - "syscall.TIOCREMOTE": "syscall", - "syscall.TIOCSBRK": "syscall", - "syscall.TIOCSCONS": "syscall", - "syscall.TIOCSCTTY": "syscall", - "syscall.TIOCSDRAINWAIT": "syscall", - "syscall.TIOCSDTR": "syscall", - "syscall.TIOCSERCONFIG": "syscall", - "syscall.TIOCSERGETLSR": "syscall", - "syscall.TIOCSERGETMULTI": "syscall", - "syscall.TIOCSERGSTRUCT": "syscall", - "syscall.TIOCSERGWILD": "syscall", - "syscall.TIOCSERSETMULTI": "syscall", - "syscall.TIOCSERSWILD": "syscall", - "syscall.TIOCSER_TEMT": "syscall", - "syscall.TIOCSETA": "syscall", - "syscall.TIOCSETAF": "syscall", - "syscall.TIOCSETAW": "syscall", - "syscall.TIOCSETD": "syscall", - "syscall.TIOCSFLAGS": "syscall", - "syscall.TIOCSIG": "syscall", - "syscall.TIOCSLCKTRMIOS": "syscall", - "syscall.TIOCSLINED": "syscall", - "syscall.TIOCSPGRP": "syscall", - "syscall.TIOCSPTLCK": "syscall", - "syscall.TIOCSQSIZE": "syscall", - "syscall.TIOCSRS485": "syscall", - "syscall.TIOCSSERIAL": "syscall", - "syscall.TIOCSSIZE": "syscall", - "syscall.TIOCSSOFTCAR": "syscall", - "syscall.TIOCSTART": "syscall", - "syscall.TIOCSTAT": "syscall", - "syscall.TIOCSTI": "syscall", - "syscall.TIOCSTOP": "syscall", - "syscall.TIOCSTSTAMP": "syscall", - "syscall.TIOCSWINSZ": "syscall", - "syscall.TIOCTIMESTAMP": "syscall", - "syscall.TIOCUCNTL": "syscall", - "syscall.TIOCVHANGUP": "syscall", - "syscall.TIOCXMTFRAME": "syscall", - "syscall.TOKEN_ADJUST_DEFAULT": "syscall", - "syscall.TOKEN_ADJUST_GROUPS": "syscall", - "syscall.TOKEN_ADJUST_PRIVILEGES": "syscall", - "syscall.TOKEN_ALL_ACCESS": "syscall", - "syscall.TOKEN_ASSIGN_PRIMARY": "syscall", - "syscall.TOKEN_DUPLICATE": "syscall", - "syscall.TOKEN_EXECUTE": "syscall", - "syscall.TOKEN_IMPERSONATE": "syscall", - "syscall.TOKEN_QUERY": "syscall", - "syscall.TOKEN_QUERY_SOURCE": "syscall", - "syscall.TOKEN_READ": "syscall", - "syscall.TOKEN_WRITE": "syscall", - "syscall.TOSTOP": "syscall", - "syscall.TRUNCATE_EXISTING": "syscall", - "syscall.TUNATTACHFILTER": "syscall", - "syscall.TUNDETACHFILTER": "syscall", - "syscall.TUNGETFEATURES": "syscall", - "syscall.TUNGETIFF": "syscall", - "syscall.TUNGETSNDBUF": "syscall", - "syscall.TUNGETVNETHDRSZ": "syscall", - "syscall.TUNSETDEBUG": "syscall", - "syscall.TUNSETGROUP": "syscall", - "syscall.TUNSETIFF": "syscall", - "syscall.TUNSETLINK": "syscall", - "syscall.TUNSETNOCSUM": "syscall", - "syscall.TUNSETOFFLOAD": "syscall", - "syscall.TUNSETOWNER": "syscall", - "syscall.TUNSETPERSIST": "syscall", - "syscall.TUNSETSNDBUF": "syscall", - "syscall.TUNSETTXFILTER": "syscall", - "syscall.TUNSETVNETHDRSZ": "syscall", - "syscall.Tee": "syscall", - "syscall.TerminateProcess": "syscall", - "syscall.Termios": "syscall", - "syscall.Tgkill": "syscall", - "syscall.Time": "syscall", - "syscall.Time_t": "syscall", - "syscall.Times": "syscall", - "syscall.Timespec": "syscall", - "syscall.TimespecToNsec": "syscall", - "syscall.Timeval": "syscall", - "syscall.Timeval32": "syscall", - "syscall.TimevalToNsec": "syscall", - "syscall.Timex": "syscall", - "syscall.Timezoneinformation": "syscall", - "syscall.Tms": "syscall", - "syscall.Token": "syscall", - "syscall.TokenAccessInformation": "syscall", - "syscall.TokenAuditPolicy": "syscall", - "syscall.TokenDefaultDacl": "syscall", - "syscall.TokenElevation": "syscall", - "syscall.TokenElevationType": "syscall", - "syscall.TokenGroups": "syscall", - "syscall.TokenGroupsAndPrivileges": "syscall", - "syscall.TokenHasRestrictions": "syscall", - "syscall.TokenImpersonationLevel": "syscall", - "syscall.TokenIntegrityLevel": "syscall", - "syscall.TokenLinkedToken": "syscall", - "syscall.TokenLogonSid": "syscall", - "syscall.TokenMandatoryPolicy": "syscall", - "syscall.TokenOrigin": "syscall", - "syscall.TokenOwner": "syscall", - "syscall.TokenPrimaryGroup": "syscall", - "syscall.TokenPrivileges": "syscall", - "syscall.TokenRestrictedSids": "syscall", - "syscall.TokenSandBoxInert": "syscall", - "syscall.TokenSessionId": "syscall", - "syscall.TokenSessionReference": "syscall", - "syscall.TokenSource": "syscall", - "syscall.TokenStatistics": "syscall", - "syscall.TokenType": "syscall", - "syscall.TokenUIAccess": "syscall", - "syscall.TokenUser": "syscall", - "syscall.TokenVirtualizationAllowed": "syscall", - "syscall.TokenVirtualizationEnabled": "syscall", - "syscall.Tokenprimarygroup": "syscall", - "syscall.Tokenuser": "syscall", - "syscall.TranslateAccountName": "syscall", - "syscall.TranslateName": "syscall", - "syscall.TransmitFile": "syscall", - "syscall.TransmitFileBuffers": "syscall", - "syscall.Truncate": "syscall", - "syscall.USAGE_MATCH_TYPE_AND": "syscall", - "syscall.USAGE_MATCH_TYPE_OR": "syscall", - "syscall.UTF16FromString": "syscall", - "syscall.UTF16PtrFromString": "syscall", - "syscall.UTF16ToString": "syscall", - "syscall.Ucred": "syscall", - "syscall.Umask": "syscall", - "syscall.Uname": "syscall", - "syscall.Undelete": "syscall", - "syscall.UnixCredentials": "syscall", - "syscall.UnixRights": "syscall", - "syscall.Unlink": "syscall", - "syscall.Unlinkat": "syscall", - "syscall.UnmapViewOfFile": "syscall", - "syscall.Unmount": "syscall", - "syscall.Unsetenv": "syscall", - "syscall.Unshare": "syscall", - "syscall.UserInfo10": "syscall", - "syscall.Ustat": "syscall", - "syscall.Ustat_t": "syscall", - "syscall.Utimbuf": "syscall", - "syscall.Utime": "syscall", - "syscall.Utimes": "syscall", - "syscall.UtimesNano": "syscall", - "syscall.Utsname": "syscall", - "syscall.VDISCARD": "syscall", - "syscall.VDSUSP": "syscall", - "syscall.VEOF": "syscall", - "syscall.VEOL": "syscall", - "syscall.VEOL2": "syscall", - "syscall.VERASE": "syscall", - "syscall.VERASE2": "syscall", - "syscall.VINTR": "syscall", - "syscall.VKILL": "syscall", - "syscall.VLNEXT": "syscall", - "syscall.VMIN": "syscall", - "syscall.VQUIT": "syscall", - "syscall.VREPRINT": "syscall", - "syscall.VSTART": "syscall", - "syscall.VSTATUS": "syscall", - "syscall.VSTOP": "syscall", - "syscall.VSUSP": "syscall", - "syscall.VSWTC": "syscall", - "syscall.VT0": "syscall", - "syscall.VT1": "syscall", - "syscall.VTDLY": "syscall", - "syscall.VTIME": "syscall", - "syscall.VWERASE": "syscall", - "syscall.VirtualLock": "syscall", - "syscall.VirtualUnlock": "syscall", - "syscall.WAIT_ABANDONED": "syscall", - "syscall.WAIT_FAILED": "syscall", - "syscall.WAIT_OBJECT_0": "syscall", - "syscall.WAIT_TIMEOUT": "syscall", - "syscall.WALL": "syscall", - "syscall.WALLSIG": "syscall", - "syscall.WALTSIG": "syscall", - "syscall.WCLONE": "syscall", - "syscall.WCONTINUED": "syscall", - "syscall.WCOREFLAG": "syscall", - "syscall.WEXITED": "syscall", - "syscall.WLINUXCLONE": "syscall", - "syscall.WNOHANG": "syscall", - "syscall.WNOTHREAD": "syscall", - "syscall.WNOWAIT": "syscall", - "syscall.WNOZOMBIE": "syscall", - "syscall.WOPTSCHECKED": "syscall", - "syscall.WORDSIZE": "syscall", - "syscall.WSABuf": "syscall", - "syscall.WSACleanup": "syscall", - "syscall.WSADESCRIPTION_LEN": "syscall", - "syscall.WSAData": "syscall", - "syscall.WSAEACCES": "syscall", - "syscall.WSAECONNRESET": "syscall", - "syscall.WSAEnumProtocols": "syscall", - "syscall.WSAID_CONNECTEX": "syscall", - "syscall.WSAIoctl": "syscall", - "syscall.WSAPROTOCOL_LEN": "syscall", - "syscall.WSAProtocolChain": "syscall", - "syscall.WSAProtocolInfo": "syscall", - "syscall.WSARecv": "syscall", - "syscall.WSARecvFrom": "syscall", - "syscall.WSASYS_STATUS_LEN": "syscall", - "syscall.WSASend": "syscall", - "syscall.WSASendTo": "syscall", - "syscall.WSASendto": "syscall", - "syscall.WSAStartup": "syscall", - "syscall.WSTOPPED": "syscall", - "syscall.WTRAPPED": "syscall", - "syscall.WUNTRACED": "syscall", - "syscall.Wait4": "syscall", - "syscall.WaitForSingleObject": "syscall", - "syscall.WaitStatus": "syscall", - "syscall.Win32FileAttributeData": "syscall", - "syscall.Win32finddata": "syscall", - "syscall.Write": "syscall", - "syscall.WriteConsole": "syscall", - "syscall.WriteFile": "syscall", - "syscall.X509_ASN_ENCODING": "syscall", - "syscall.XCASE": "syscall", - "syscall.XP1_CONNECTIONLESS": "syscall", - "syscall.XP1_CONNECT_DATA": "syscall", - "syscall.XP1_DISCONNECT_DATA": "syscall", - "syscall.XP1_EXPEDITED_DATA": "syscall", - "syscall.XP1_GRACEFUL_CLOSE": "syscall", - "syscall.XP1_GUARANTEED_DELIVERY": "syscall", - "syscall.XP1_GUARANTEED_ORDER": "syscall", - "syscall.XP1_IFS_HANDLES": "syscall", - "syscall.XP1_MESSAGE_ORIENTED": "syscall", - "syscall.XP1_MULTIPOINT_CONTROL_PLANE": "syscall", - "syscall.XP1_MULTIPOINT_DATA_PLANE": "syscall", - "syscall.XP1_PARTIAL_MESSAGE": "syscall", - "syscall.XP1_PSEUDO_STREAM": "syscall", - "syscall.XP1_QOS_SUPPORTED": "syscall", - "syscall.XP1_SAN_SUPPORT_SDP": "syscall", - "syscall.XP1_SUPPORT_BROADCAST": "syscall", - "syscall.XP1_SUPPORT_MULTIPOINT": "syscall", - "syscall.XP1_UNI_RECV": "syscall", - "syscall.XP1_UNI_SEND": "syscall", - "syslog.Dial": "log/syslog", - "syslog.LOG_ALERT": "log/syslog", - "syslog.LOG_AUTH": "log/syslog", - "syslog.LOG_AUTHPRIV": "log/syslog", - "syslog.LOG_CRIT": "log/syslog", - "syslog.LOG_CRON": "log/syslog", - "syslog.LOG_DAEMON": "log/syslog", - "syslog.LOG_DEBUG": "log/syslog", - "syslog.LOG_EMERG": "log/syslog", - "syslog.LOG_ERR": "log/syslog", - "syslog.LOG_FTP": "log/syslog", - "syslog.LOG_INFO": "log/syslog", - "syslog.LOG_KERN": "log/syslog", - "syslog.LOG_LOCAL0": "log/syslog", - "syslog.LOG_LOCAL1": "log/syslog", - "syslog.LOG_LOCAL2": "log/syslog", - "syslog.LOG_LOCAL3": "log/syslog", - "syslog.LOG_LOCAL4": "log/syslog", - "syslog.LOG_LOCAL5": "log/syslog", - "syslog.LOG_LOCAL6": "log/syslog", - "syslog.LOG_LOCAL7": "log/syslog", - "syslog.LOG_LPR": "log/syslog", - "syslog.LOG_MAIL": "log/syslog", - "syslog.LOG_NEWS": "log/syslog", - "syslog.LOG_NOTICE": "log/syslog", - "syslog.LOG_SYSLOG": "log/syslog", - "syslog.LOG_USER": "log/syslog", - "syslog.LOG_UUCP": "log/syslog", - "syslog.LOG_WARNING": "log/syslog", - "syslog.New": "log/syslog", - "syslog.NewLogger": "log/syslog", - "syslog.Priority": "log/syslog", - "syslog.Writer": "log/syslog", - "tabwriter.AlignRight": "text/tabwriter", - "tabwriter.Debug": "text/tabwriter", - "tabwriter.DiscardEmptyColumns": "text/tabwriter", - "tabwriter.Escape": "text/tabwriter", - "tabwriter.FilterHTML": "text/tabwriter", - "tabwriter.NewWriter": "text/tabwriter", - "tabwriter.StripEscape": "text/tabwriter", - "tabwriter.TabIndent": "text/tabwriter", - "tabwriter.Writer": "text/tabwriter", - "tar.ErrFieldTooLong": "archive/tar", - "tar.ErrHeader": "archive/tar", - "tar.ErrWriteAfterClose": "archive/tar", - "tar.ErrWriteTooLong": "archive/tar", - "tar.FileInfoHeader": "archive/tar", - "tar.Header": "archive/tar", - "tar.NewReader": "archive/tar", - "tar.NewWriter": "archive/tar", - "tar.Reader": "archive/tar", - "tar.TypeBlock": "archive/tar", - "tar.TypeChar": "archive/tar", - "tar.TypeCont": "archive/tar", - "tar.TypeDir": "archive/tar", - "tar.TypeFifo": "archive/tar", - "tar.TypeGNULongLink": "archive/tar", - "tar.TypeGNULongName": "archive/tar", - "tar.TypeGNUSparse": "archive/tar", - "tar.TypeLink": "archive/tar", - "tar.TypeReg": "archive/tar", - "tar.TypeRegA": "archive/tar", - "tar.TypeSymlink": "archive/tar", - "tar.TypeXGlobalHeader": "archive/tar", - "tar.TypeXHeader": "archive/tar", - "tar.Writer": "archive/tar", - "template.CSS": "html/template", - "template.ErrAmbigContext": "html/template", - "template.ErrBadHTML": "html/template", - "template.ErrBranchEnd": "html/template", - "template.ErrEndContext": "html/template", - "template.ErrNoSuchTemplate": "html/template", - "template.ErrOutputContext": "html/template", - "template.ErrPartialCharset": "html/template", - "template.ErrPartialEscape": "html/template", - "template.ErrRangeLoopReentry": "html/template", - "template.ErrSlashAmbig": "html/template", - "template.Error": "html/template", - "template.ErrorCode": "html/template", - "template.ExecError": "text/template", - // "template.FuncMap" is ambiguous - "template.HTML": "html/template", - "template.HTMLAttr": "html/template", - // "template.HTMLEscape" is ambiguous - // "template.HTMLEscapeString" is ambiguous - // "template.HTMLEscaper" is ambiguous - // "template.IsTrue" is ambiguous - "template.JS": "html/template", - // "template.JSEscape" is ambiguous - // "template.JSEscapeString" is ambiguous - // "template.JSEscaper" is ambiguous - "template.JSStr": "html/template", - // "template.Must" is ambiguous - // "template.New" is ambiguous - "template.OK": "html/template", - // "template.ParseFiles" is ambiguous - // "template.ParseGlob" is ambiguous - // "template.Template" is ambiguous - "template.URL": "html/template", - // "template.URLQueryEscaper" is ambiguous - "testing.AllocsPerRun": "testing", - "testing.B": "testing", - "testing.Benchmark": "testing", - "testing.BenchmarkResult": "testing", - "testing.Cover": "testing", - "testing.CoverBlock": "testing", - "testing.CoverMode": "testing", - "testing.Coverage": "testing", - "testing.InternalBenchmark": "testing", - "testing.InternalExample": "testing", - "testing.InternalTest": "testing", - "testing.M": "testing", - "testing.Main": "testing", - "testing.MainStart": "testing", - "testing.PB": "testing", - "testing.RegisterCover": "testing", - "testing.RunBenchmarks": "testing", - "testing.RunExamples": "testing", - "testing.RunTests": "testing", - "testing.Short": "testing", - "testing.T": "testing", - "testing.Verbose": "testing", - "textproto.CanonicalMIMEHeaderKey": "net/textproto", - "textproto.Conn": "net/textproto", - "textproto.Dial": "net/textproto", - "textproto.Error": "net/textproto", - "textproto.MIMEHeader": "net/textproto", - "textproto.NewConn": "net/textproto", - "textproto.NewReader": "net/textproto", - "textproto.NewWriter": "net/textproto", - "textproto.Pipeline": "net/textproto", - "textproto.ProtocolError": "net/textproto", - "textproto.Reader": "net/textproto", - "textproto.TrimBytes": "net/textproto", - "textproto.TrimString": "net/textproto", - "textproto.Writer": "net/textproto", - "time.ANSIC": "time", - "time.After": "time", - "time.AfterFunc": "time", - "time.April": "time", - "time.August": "time", - "time.Date": "time", - "time.December": "time", - "time.Duration": "time", - "time.February": "time", - "time.FixedZone": "time", - "time.Friday": "time", - "time.Hour": "time", - "time.January": "time", - "time.July": "time", - "time.June": "time", - "time.Kitchen": "time", - "time.LoadLocation": "time", - "time.Local": "time", - "time.Location": "time", - "time.March": "time", - "time.May": "time", - "time.Microsecond": "time", - "time.Millisecond": "time", - "time.Minute": "time", - "time.Monday": "time", - "time.Month": "time", - "time.Nanosecond": "time", - "time.NewTicker": "time", - "time.NewTimer": "time", - "time.November": "time", - "time.Now": "time", - "time.October": "time", - "time.Parse": "time", - "time.ParseDuration": "time", - "time.ParseError": "time", - "time.ParseInLocation": "time", - "time.RFC1123": "time", - "time.RFC1123Z": "time", - "time.RFC3339": "time", - "time.RFC3339Nano": "time", - "time.RFC822": "time", - "time.RFC822Z": "time", - "time.RFC850": "time", - "time.RubyDate": "time", - "time.Saturday": "time", - "time.Second": "time", - "time.September": "time", - "time.Since": "time", - "time.Sleep": "time", - "time.Stamp": "time", - "time.StampMicro": "time", - "time.StampMilli": "time", - "time.StampNano": "time", - "time.Sunday": "time", - "time.Thursday": "time", - "time.Tick": "time", - "time.Ticker": "time", - "time.Time": "time", - "time.Timer": "time", - "time.Tuesday": "time", - "time.UTC": "time", - "time.Unix": "time", - "time.UnixDate": "time", - "time.Until": "time", - "time.Wednesday": "time", - "time.Weekday": "time", - "tls.Certificate": "crypto/tls", - "tls.CertificateRequestInfo": "crypto/tls", - "tls.Client": "crypto/tls", - "tls.ClientAuthType": "crypto/tls", - "tls.ClientHelloInfo": "crypto/tls", - "tls.ClientSessionCache": "crypto/tls", - "tls.ClientSessionState": "crypto/tls", - "tls.Config": "crypto/tls", - "tls.Conn": "crypto/tls", - "tls.ConnectionState": "crypto/tls", - "tls.CurveID": "crypto/tls", - "tls.CurveP256": "crypto/tls", - "tls.CurveP384": "crypto/tls", - "tls.CurveP521": "crypto/tls", - "tls.Dial": "crypto/tls", - "tls.DialWithDialer": "crypto/tls", - "tls.ECDSAWithP256AndSHA256": "crypto/tls", - "tls.ECDSAWithP384AndSHA384": "crypto/tls", - "tls.ECDSAWithP521AndSHA512": "crypto/tls", - "tls.Listen": "crypto/tls", - "tls.LoadX509KeyPair": "crypto/tls", - "tls.NewLRUClientSessionCache": "crypto/tls", - "tls.NewListener": "crypto/tls", - "tls.NoClientCert": "crypto/tls", - "tls.PKCS1WithSHA1": "crypto/tls", - "tls.PKCS1WithSHA256": "crypto/tls", - "tls.PKCS1WithSHA384": "crypto/tls", - "tls.PKCS1WithSHA512": "crypto/tls", - "tls.PSSWithSHA256": "crypto/tls", - "tls.PSSWithSHA384": "crypto/tls", - "tls.PSSWithSHA512": "crypto/tls", - "tls.RecordHeaderError": "crypto/tls", - "tls.RenegotiateFreelyAsClient": "crypto/tls", - "tls.RenegotiateNever": "crypto/tls", - "tls.RenegotiateOnceAsClient": "crypto/tls", - "tls.RenegotiationSupport": "crypto/tls", - "tls.RequestClientCert": "crypto/tls", - "tls.RequireAndVerifyClientCert": "crypto/tls", - "tls.RequireAnyClientCert": "crypto/tls", - "tls.Server": "crypto/tls", - "tls.SignatureScheme": "crypto/tls", - "tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": "crypto/tls", - "tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256": "crypto/tls", - "tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": "crypto/tls", - "tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA": "crypto/tls", - "tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384": "crypto/tls", - "tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305": "crypto/tls", - "tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA": "crypto/tls", - "tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA": "crypto/tls", - "tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA": "crypto/tls", - "tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256": "crypto/tls", - "tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256": "crypto/tls", - "tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA": "crypto/tls", - "tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384": "crypto/tls", - "tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305": "crypto/tls", - "tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA": "crypto/tls", - "tls.TLS_FALLBACK_SCSV": "crypto/tls", - "tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA": "crypto/tls", - "tls.TLS_RSA_WITH_AES_128_CBC_SHA": "crypto/tls", - "tls.TLS_RSA_WITH_AES_128_CBC_SHA256": "crypto/tls", - "tls.TLS_RSA_WITH_AES_128_GCM_SHA256": "crypto/tls", - "tls.TLS_RSA_WITH_AES_256_CBC_SHA": "crypto/tls", - "tls.TLS_RSA_WITH_AES_256_GCM_SHA384": "crypto/tls", - "tls.TLS_RSA_WITH_RC4_128_SHA": "crypto/tls", - "tls.VerifyClientCertIfGiven": "crypto/tls", - "tls.VersionSSL30": "crypto/tls", - "tls.VersionTLS10": "crypto/tls", - "tls.VersionTLS11": "crypto/tls", - "tls.VersionTLS12": "crypto/tls", - "tls.X25519": "crypto/tls", - "tls.X509KeyPair": "crypto/tls", - "token.ADD": "go/token", - "token.ADD_ASSIGN": "go/token", - "token.AND": "go/token", - "token.AND_ASSIGN": "go/token", - "token.AND_NOT": "go/token", - "token.AND_NOT_ASSIGN": "go/token", - "token.ARROW": "go/token", - "token.ASSIGN": "go/token", - "token.BREAK": "go/token", - "token.CASE": "go/token", - "token.CHAN": "go/token", - "token.CHAR": "go/token", - "token.COLON": "go/token", - "token.COMMA": "go/token", - "token.COMMENT": "go/token", - "token.CONST": "go/token", - "token.CONTINUE": "go/token", - "token.DEC": "go/token", - "token.DEFAULT": "go/token", - "token.DEFER": "go/token", - "token.DEFINE": "go/token", - "token.ELLIPSIS": "go/token", - "token.ELSE": "go/token", - "token.EOF": "go/token", - "token.EQL": "go/token", - "token.FALLTHROUGH": "go/token", - "token.FLOAT": "go/token", - "token.FOR": "go/token", - "token.FUNC": "go/token", - "token.File": "go/token", - "token.FileSet": "go/token", - "token.GEQ": "go/token", - "token.GO": "go/token", - "token.GOTO": "go/token", - "token.GTR": "go/token", - "token.HighestPrec": "go/token", - "token.IDENT": "go/token", - "token.IF": "go/token", - "token.ILLEGAL": "go/token", - "token.IMAG": "go/token", - "token.IMPORT": "go/token", - "token.INC": "go/token", - "token.INT": "go/token", - "token.INTERFACE": "go/token", - "token.LAND": "go/token", - "token.LBRACE": "go/token", - "token.LBRACK": "go/token", - "token.LEQ": "go/token", - "token.LOR": "go/token", - "token.LPAREN": "go/token", - "token.LSS": "go/token", - "token.Lookup": "go/token", - "token.LowestPrec": "go/token", - "token.MAP": "go/token", - "token.MUL": "go/token", - "token.MUL_ASSIGN": "go/token", - "token.NEQ": "go/token", - "token.NOT": "go/token", - "token.NewFileSet": "go/token", - "token.NoPos": "go/token", - "token.OR": "go/token", - "token.OR_ASSIGN": "go/token", - "token.PACKAGE": "go/token", - "token.PERIOD": "go/token", - "token.Pos": "go/token", - "token.Position": "go/token", - "token.QUO": "go/token", - "token.QUO_ASSIGN": "go/token", - "token.RANGE": "go/token", - "token.RBRACE": "go/token", - "token.RBRACK": "go/token", - "token.REM": "go/token", - "token.REM_ASSIGN": "go/token", - "token.RETURN": "go/token", - "token.RPAREN": "go/token", - "token.SELECT": "go/token", - "token.SEMICOLON": "go/token", - "token.SHL": "go/token", - "token.SHL_ASSIGN": "go/token", - "token.SHR": "go/token", - "token.SHR_ASSIGN": "go/token", - "token.STRING": "go/token", - "token.STRUCT": "go/token", - "token.SUB": "go/token", - "token.SUB_ASSIGN": "go/token", - "token.SWITCH": "go/token", - "token.TYPE": "go/token", - "token.Token": "go/token", - "token.UnaryPrec": "go/token", - "token.VAR": "go/token", - "token.XOR": "go/token", - "token.XOR_ASSIGN": "go/token", - "trace.Start": "runtime/trace", - "trace.Stop": "runtime/trace", - "types.Array": "go/types", - "types.AssertableTo": "go/types", - "types.AssignableTo": "go/types", - "types.Basic": "go/types", - "types.BasicInfo": "go/types", - "types.BasicKind": "go/types", - "types.Bool": "go/types", - "types.Builtin": "go/types", - "types.Byte": "go/types", - "types.Chan": "go/types", - "types.ChanDir": "go/types", - "types.Checker": "go/types", - "types.Comparable": "go/types", - "types.Complex128": "go/types", - "types.Complex64": "go/types", - "types.Config": "go/types", - "types.Const": "go/types", - "types.ConvertibleTo": "go/types", - "types.DefPredeclaredTestFuncs": "go/types", - "types.Default": "go/types", - "types.Error": "go/types", - "types.Eval": "go/types", - "types.ExprString": "go/types", - "types.FieldVal": "go/types", - "types.Float32": "go/types", - "types.Float64": "go/types", - "types.Func": "go/types", - "types.Id": "go/types", - "types.Identical": "go/types", - "types.IdenticalIgnoreTags": "go/types", - "types.Implements": "go/types", - "types.ImportMode": "go/types", - "types.Importer": "go/types", - "types.ImporterFrom": "go/types", - "types.Info": "go/types", - "types.Initializer": "go/types", - "types.Int": "go/types", - "types.Int16": "go/types", - "types.Int32": "go/types", - "types.Int64": "go/types", - "types.Int8": "go/types", - "types.Interface": "go/types", - "types.Invalid": "go/types", - "types.IsBoolean": "go/types", - "types.IsComplex": "go/types", - "types.IsConstType": "go/types", - "types.IsFloat": "go/types", - "types.IsInteger": "go/types", - "types.IsInterface": "go/types", - "types.IsNumeric": "go/types", - "types.IsOrdered": "go/types", - "types.IsString": "go/types", - "types.IsUnsigned": "go/types", - "types.IsUntyped": "go/types", - "types.Label": "go/types", - "types.LookupFieldOrMethod": "go/types", - "types.Map": "go/types", - "types.MethodExpr": "go/types", - "types.MethodSet": "go/types", - "types.MethodVal": "go/types", - "types.MissingMethod": "go/types", - "types.Named": "go/types", - "types.NewArray": "go/types", - "types.NewChan": "go/types", - "types.NewChecker": "go/types", - "types.NewConst": "go/types", - "types.NewField": "go/types", - "types.NewFunc": "go/types", - "types.NewInterface": "go/types", - "types.NewLabel": "go/types", - "types.NewMap": "go/types", - "types.NewMethodSet": "go/types", - "types.NewNamed": "go/types", - "types.NewPackage": "go/types", - "types.NewParam": "go/types", - "types.NewPkgName": "go/types", - "types.NewPointer": "go/types", - "types.NewScope": "go/types", - "types.NewSignature": "go/types", - "types.NewSlice": "go/types", - "types.NewStruct": "go/types", - "types.NewTuple": "go/types", - "types.NewTypeName": "go/types", - "types.NewVar": "go/types", - "types.Nil": "go/types", - "types.ObjectString": "go/types", - "types.Package": "go/types", - "types.PkgName": "go/types", - "types.Pointer": "go/types", - "types.Qualifier": "go/types", - "types.RecvOnly": "go/types", - "types.RelativeTo": "go/types", - "types.Rune": "go/types", - "types.Scope": "go/types", - "types.Selection": "go/types", - "types.SelectionKind": "go/types", - "types.SelectionString": "go/types", - "types.SendOnly": "go/types", - "types.SendRecv": "go/types", - "types.Signature": "go/types", - "types.Sizes": "go/types", - "types.Slice": "go/types", - "types.StdSizes": "go/types", - "types.String": "go/types", - "types.Struct": "go/types", - "types.Tuple": "go/types", - "types.Typ": "go/types", - "types.Type": "go/types", - "types.TypeAndValue": "go/types", - "types.TypeName": "go/types", - "types.TypeString": "go/types", - "types.Uint": "go/types", - "types.Uint16": "go/types", - "types.Uint32": "go/types", - "types.Uint64": "go/types", - "types.Uint8": "go/types", - "types.Uintptr": "go/types", - "types.Universe": "go/types", - "types.Unsafe": "go/types", - "types.UnsafePointer": "go/types", - "types.UntypedBool": "go/types", - "types.UntypedComplex": "go/types", - "types.UntypedFloat": "go/types", - "types.UntypedInt": "go/types", - "types.UntypedNil": "go/types", - "types.UntypedRune": "go/types", - "types.UntypedString": "go/types", - "types.Var": "go/types", - "types.WriteExpr": "go/types", - "types.WriteSignature": "go/types", - "types.WriteType": "go/types", - "unicode.ASCII_Hex_Digit": "unicode", - "unicode.Adlam": "unicode", - "unicode.Ahom": "unicode", - "unicode.Anatolian_Hieroglyphs": "unicode", - "unicode.Arabic": "unicode", - "unicode.Armenian": "unicode", - "unicode.Avestan": "unicode", - "unicode.AzeriCase": "unicode", - "unicode.Balinese": "unicode", - "unicode.Bamum": "unicode", - "unicode.Bassa_Vah": "unicode", - "unicode.Batak": "unicode", - "unicode.Bengali": "unicode", - "unicode.Bhaiksuki": "unicode", - "unicode.Bidi_Control": "unicode", - "unicode.Bopomofo": "unicode", - "unicode.Brahmi": "unicode", - "unicode.Braille": "unicode", - "unicode.Buginese": "unicode", - "unicode.Buhid": "unicode", - "unicode.C": "unicode", - "unicode.Canadian_Aboriginal": "unicode", - "unicode.Carian": "unicode", - "unicode.CaseRange": "unicode", - "unicode.CaseRanges": "unicode", - "unicode.Categories": "unicode", - "unicode.Caucasian_Albanian": "unicode", - "unicode.Cc": "unicode", - "unicode.Cf": "unicode", - "unicode.Chakma": "unicode", - "unicode.Cham": "unicode", - "unicode.Cherokee": "unicode", - "unicode.Co": "unicode", - "unicode.Common": "unicode", - "unicode.Coptic": "unicode", - "unicode.Cs": "unicode", - "unicode.Cuneiform": "unicode", - "unicode.Cypriot": "unicode", - "unicode.Cyrillic": "unicode", - "unicode.Dash": "unicode", - "unicode.Deprecated": "unicode", - "unicode.Deseret": "unicode", - "unicode.Devanagari": "unicode", - "unicode.Diacritic": "unicode", - "unicode.Digit": "unicode", - "unicode.Duployan": "unicode", - "unicode.Egyptian_Hieroglyphs": "unicode", - "unicode.Elbasan": "unicode", - "unicode.Ethiopic": "unicode", - "unicode.Extender": "unicode", - "unicode.FoldCategory": "unicode", - "unicode.FoldScript": "unicode", - "unicode.Georgian": "unicode", - "unicode.Glagolitic": "unicode", - "unicode.Gothic": "unicode", - "unicode.Grantha": "unicode", - "unicode.GraphicRanges": "unicode", - "unicode.Greek": "unicode", - "unicode.Gujarati": "unicode", - "unicode.Gurmukhi": "unicode", - "unicode.Han": "unicode", - "unicode.Hangul": "unicode", - "unicode.Hanunoo": "unicode", - "unicode.Hatran": "unicode", - "unicode.Hebrew": "unicode", - "unicode.Hex_Digit": "unicode", - "unicode.Hiragana": "unicode", - "unicode.Hyphen": "unicode", - "unicode.IDS_Binary_Operator": "unicode", - "unicode.IDS_Trinary_Operator": "unicode", - "unicode.Ideographic": "unicode", - "unicode.Imperial_Aramaic": "unicode", - "unicode.In": "unicode", - "unicode.Inherited": "unicode", - "unicode.Inscriptional_Pahlavi": "unicode", - "unicode.Inscriptional_Parthian": "unicode", - "unicode.Is": "unicode", - "unicode.IsControl": "unicode", - "unicode.IsDigit": "unicode", - "unicode.IsGraphic": "unicode", - "unicode.IsLetter": "unicode", - "unicode.IsLower": "unicode", - "unicode.IsMark": "unicode", - "unicode.IsNumber": "unicode", - "unicode.IsOneOf": "unicode", - "unicode.IsPrint": "unicode", - "unicode.IsPunct": "unicode", - "unicode.IsSpace": "unicode", - "unicode.IsSymbol": "unicode", - "unicode.IsTitle": "unicode", - "unicode.IsUpper": "unicode", - "unicode.Javanese": "unicode", - "unicode.Join_Control": "unicode", - "unicode.Kaithi": "unicode", - "unicode.Kannada": "unicode", - "unicode.Katakana": "unicode", - "unicode.Kayah_Li": "unicode", - "unicode.Kharoshthi": "unicode", - "unicode.Khmer": "unicode", - "unicode.Khojki": "unicode", - "unicode.Khudawadi": "unicode", - "unicode.L": "unicode", - "unicode.Lao": "unicode", - "unicode.Latin": "unicode", - "unicode.Lepcha": "unicode", - "unicode.Letter": "unicode", - "unicode.Limbu": "unicode", - "unicode.Linear_A": "unicode", - "unicode.Linear_B": "unicode", - "unicode.Lisu": "unicode", - "unicode.Ll": "unicode", - "unicode.Lm": "unicode", - "unicode.Lo": "unicode", - "unicode.Logical_Order_Exception": "unicode", - "unicode.Lower": "unicode", - "unicode.LowerCase": "unicode", - "unicode.Lt": "unicode", - "unicode.Lu": "unicode", - "unicode.Lycian": "unicode", - "unicode.Lydian": "unicode", - "unicode.M": "unicode", - "unicode.Mahajani": "unicode", - "unicode.Malayalam": "unicode", - "unicode.Mandaic": "unicode", - "unicode.Manichaean": "unicode", - "unicode.Marchen": "unicode", - "unicode.Mark": "unicode", - "unicode.MaxASCII": "unicode", - "unicode.MaxCase": "unicode", - "unicode.MaxLatin1": "unicode", - "unicode.MaxRune": "unicode", - "unicode.Mc": "unicode", - "unicode.Me": "unicode", - "unicode.Meetei_Mayek": "unicode", - "unicode.Mende_Kikakui": "unicode", - "unicode.Meroitic_Cursive": "unicode", - "unicode.Meroitic_Hieroglyphs": "unicode", - "unicode.Miao": "unicode", - "unicode.Mn": "unicode", - "unicode.Modi": "unicode", - "unicode.Mongolian": "unicode", - "unicode.Mro": "unicode", - "unicode.Multani": "unicode", - "unicode.Myanmar": "unicode", - "unicode.N": "unicode", - "unicode.Nabataean": "unicode", - "unicode.Nd": "unicode", - "unicode.New_Tai_Lue": "unicode", - "unicode.Newa": "unicode", - "unicode.Nko": "unicode", - "unicode.Nl": "unicode", - "unicode.No": "unicode", - "unicode.Noncharacter_Code_Point": "unicode", - "unicode.Number": "unicode", - "unicode.Ogham": "unicode", - "unicode.Ol_Chiki": "unicode", - "unicode.Old_Hungarian": "unicode", - "unicode.Old_Italic": "unicode", - "unicode.Old_North_Arabian": "unicode", - "unicode.Old_Permic": "unicode", - "unicode.Old_Persian": "unicode", - "unicode.Old_South_Arabian": "unicode", - "unicode.Old_Turkic": "unicode", - "unicode.Oriya": "unicode", - "unicode.Osage": "unicode", - "unicode.Osmanya": "unicode", - "unicode.Other": "unicode", - "unicode.Other_Alphabetic": "unicode", - "unicode.Other_Default_Ignorable_Code_Point": "unicode", - "unicode.Other_Grapheme_Extend": "unicode", - "unicode.Other_ID_Continue": "unicode", - "unicode.Other_ID_Start": "unicode", - "unicode.Other_Lowercase": "unicode", - "unicode.Other_Math": "unicode", - "unicode.Other_Uppercase": "unicode", - "unicode.P": "unicode", - "unicode.Pahawh_Hmong": "unicode", - "unicode.Palmyrene": "unicode", - "unicode.Pattern_Syntax": "unicode", - "unicode.Pattern_White_Space": "unicode", - "unicode.Pau_Cin_Hau": "unicode", - "unicode.Pc": "unicode", - "unicode.Pd": "unicode", - "unicode.Pe": "unicode", - "unicode.Pf": "unicode", - "unicode.Phags_Pa": "unicode", - "unicode.Phoenician": "unicode", - "unicode.Pi": "unicode", - "unicode.Po": "unicode", - "unicode.Prepended_Concatenation_Mark": "unicode", - "unicode.PrintRanges": "unicode", - "unicode.Properties": "unicode", - "unicode.Ps": "unicode", - "unicode.Psalter_Pahlavi": "unicode", - "unicode.Punct": "unicode", - "unicode.Quotation_Mark": "unicode", - "unicode.Radical": "unicode", - "unicode.Range16": "unicode", - "unicode.Range32": "unicode", - "unicode.RangeTable": "unicode", - "unicode.Rejang": "unicode", - "unicode.ReplacementChar": "unicode", - "unicode.Runic": "unicode", - "unicode.S": "unicode", - "unicode.STerm": "unicode", - "unicode.Samaritan": "unicode", - "unicode.Saurashtra": "unicode", - "unicode.Sc": "unicode", - "unicode.Scripts": "unicode", - "unicode.Sentence_Terminal": "unicode", - "unicode.Sharada": "unicode", - "unicode.Shavian": "unicode", - "unicode.Siddham": "unicode", - "unicode.SignWriting": "unicode", - "unicode.SimpleFold": "unicode", - "unicode.Sinhala": "unicode", - "unicode.Sk": "unicode", - "unicode.Sm": "unicode", - "unicode.So": "unicode", - "unicode.Soft_Dotted": "unicode", - "unicode.Sora_Sompeng": "unicode", - "unicode.Space": "unicode", - "unicode.SpecialCase": "unicode", - "unicode.Sundanese": "unicode", - "unicode.Syloti_Nagri": "unicode", - "unicode.Symbol": "unicode", - "unicode.Syriac": "unicode", - "unicode.Tagalog": "unicode", - "unicode.Tagbanwa": "unicode", - "unicode.Tai_Le": "unicode", - "unicode.Tai_Tham": "unicode", - "unicode.Tai_Viet": "unicode", - "unicode.Takri": "unicode", - "unicode.Tamil": "unicode", - "unicode.Tangut": "unicode", - "unicode.Telugu": "unicode", - "unicode.Terminal_Punctuation": "unicode", - "unicode.Thaana": "unicode", - "unicode.Thai": "unicode", - "unicode.Tibetan": "unicode", - "unicode.Tifinagh": "unicode", - "unicode.Tirhuta": "unicode", - "unicode.Title": "unicode", - "unicode.TitleCase": "unicode", - "unicode.To": "unicode", - "unicode.ToLower": "unicode", - "unicode.ToTitle": "unicode", - "unicode.ToUpper": "unicode", - "unicode.TurkishCase": "unicode", - "unicode.Ugaritic": "unicode", - "unicode.Unified_Ideograph": "unicode", - "unicode.Upper": "unicode", - "unicode.UpperCase": "unicode", - "unicode.UpperLower": "unicode", - "unicode.Vai": "unicode", - "unicode.Variation_Selector": "unicode", - "unicode.Version": "unicode", - "unicode.Warang_Citi": "unicode", - "unicode.White_Space": "unicode", - "unicode.Yi": "unicode", - "unicode.Z": "unicode", - "unicode.Zl": "unicode", - "unicode.Zp": "unicode", - "unicode.Zs": "unicode", - "url.Error": "net/url", - "url.EscapeError": "net/url", - "url.InvalidHostError": "net/url", - "url.Parse": "net/url", - "url.ParseQuery": "net/url", - "url.ParseRequestURI": "net/url", - "url.PathEscape": "net/url", - "url.PathUnescape": "net/url", - "url.QueryEscape": "net/url", - "url.QueryUnescape": "net/url", - "url.URL": "net/url", - "url.User": "net/url", - "url.UserPassword": "net/url", - "url.Userinfo": "net/url", - "url.Values": "net/url", - "user.Current": "os/user", - "user.Group": "os/user", - "user.Lookup": "os/user", - "user.LookupGroup": "os/user", - "user.LookupGroupId": "os/user", - "user.LookupId": "os/user", - "user.UnknownGroupError": "os/user", - "user.UnknownGroupIdError": "os/user", - "user.UnknownUserError": "os/user", - "user.UnknownUserIdError": "os/user", - "user.User": "os/user", - "utf16.Decode": "unicode/utf16", - "utf16.DecodeRune": "unicode/utf16", - "utf16.Encode": "unicode/utf16", - "utf16.EncodeRune": "unicode/utf16", - "utf16.IsSurrogate": "unicode/utf16", - "utf8.DecodeLastRune": "unicode/utf8", - "utf8.DecodeLastRuneInString": "unicode/utf8", - "utf8.DecodeRune": "unicode/utf8", - "utf8.DecodeRuneInString": "unicode/utf8", - "utf8.EncodeRune": "unicode/utf8", - "utf8.FullRune": "unicode/utf8", - "utf8.FullRuneInString": "unicode/utf8", - "utf8.MaxRune": "unicode/utf8", - "utf8.RuneCount": "unicode/utf8", - "utf8.RuneCountInString": "unicode/utf8", - "utf8.RuneError": "unicode/utf8", - "utf8.RuneLen": "unicode/utf8", - "utf8.RuneSelf": "unicode/utf8", - "utf8.RuneStart": "unicode/utf8", - "utf8.UTFMax": "unicode/utf8", - "utf8.Valid": "unicode/utf8", - "utf8.ValidRune": "unicode/utf8", - "utf8.ValidString": "unicode/utf8", - "x509.CANotAuthorizedForThisName": "crypto/x509", - "x509.CertPool": "crypto/x509", - "x509.Certificate": "crypto/x509", - "x509.CertificateInvalidError": "crypto/x509", - "x509.CertificateRequest": "crypto/x509", - "x509.ConstraintViolationError": "crypto/x509", - "x509.CreateCertificate": "crypto/x509", - "x509.CreateCertificateRequest": "crypto/x509", - "x509.DSA": "crypto/x509", - "x509.DSAWithSHA1": "crypto/x509", - "x509.DSAWithSHA256": "crypto/x509", - "x509.DecryptPEMBlock": "crypto/x509", - "x509.ECDSA": "crypto/x509", - "x509.ECDSAWithSHA1": "crypto/x509", - "x509.ECDSAWithSHA256": "crypto/x509", - "x509.ECDSAWithSHA384": "crypto/x509", - "x509.ECDSAWithSHA512": "crypto/x509", - "x509.EncryptPEMBlock": "crypto/x509", - "x509.ErrUnsupportedAlgorithm": "crypto/x509", - "x509.Expired": "crypto/x509", - "x509.ExtKeyUsage": "crypto/x509", - "x509.ExtKeyUsageAny": "crypto/x509", - "x509.ExtKeyUsageClientAuth": "crypto/x509", - "x509.ExtKeyUsageCodeSigning": "crypto/x509", - "x509.ExtKeyUsageEmailProtection": "crypto/x509", - "x509.ExtKeyUsageIPSECEndSystem": "crypto/x509", - "x509.ExtKeyUsageIPSECTunnel": "crypto/x509", - "x509.ExtKeyUsageIPSECUser": "crypto/x509", - "x509.ExtKeyUsageMicrosoftServerGatedCrypto": "crypto/x509", - "x509.ExtKeyUsageNetscapeServerGatedCrypto": "crypto/x509", - "x509.ExtKeyUsageOCSPSigning": "crypto/x509", - "x509.ExtKeyUsageServerAuth": "crypto/x509", - "x509.ExtKeyUsageTimeStamping": "crypto/x509", - "x509.HostnameError": "crypto/x509", - "x509.IncompatibleUsage": "crypto/x509", - "x509.IncorrectPasswordError": "crypto/x509", - "x509.InsecureAlgorithmError": "crypto/x509", - "x509.InvalidReason": "crypto/x509", - "x509.IsEncryptedPEMBlock": "crypto/x509", - "x509.KeyUsage": "crypto/x509", - "x509.KeyUsageCRLSign": "crypto/x509", - "x509.KeyUsageCertSign": "crypto/x509", - "x509.KeyUsageContentCommitment": "crypto/x509", - "x509.KeyUsageDataEncipherment": "crypto/x509", - "x509.KeyUsageDecipherOnly": "crypto/x509", - "x509.KeyUsageDigitalSignature": "crypto/x509", - "x509.KeyUsageEncipherOnly": "crypto/x509", - "x509.KeyUsageKeyAgreement": "crypto/x509", - "x509.KeyUsageKeyEncipherment": "crypto/x509", - "x509.MD2WithRSA": "crypto/x509", - "x509.MD5WithRSA": "crypto/x509", - "x509.MarshalECPrivateKey": "crypto/x509", - "x509.MarshalPKCS1PrivateKey": "crypto/x509", - "x509.MarshalPKIXPublicKey": "crypto/x509", - "x509.NameMismatch": "crypto/x509", - "x509.NewCertPool": "crypto/x509", - "x509.NotAuthorizedToSign": "crypto/x509", - "x509.PEMCipher": "crypto/x509", - "x509.PEMCipher3DES": "crypto/x509", - "x509.PEMCipherAES128": "crypto/x509", - "x509.PEMCipherAES192": "crypto/x509", - "x509.PEMCipherAES256": "crypto/x509", - "x509.PEMCipherDES": "crypto/x509", - "x509.ParseCRL": "crypto/x509", - "x509.ParseCertificate": "crypto/x509", - "x509.ParseCertificateRequest": "crypto/x509", - "x509.ParseCertificates": "crypto/x509", - "x509.ParseDERCRL": "crypto/x509", - "x509.ParseECPrivateKey": "crypto/x509", - "x509.ParsePKCS1PrivateKey": "crypto/x509", - "x509.ParsePKCS8PrivateKey": "crypto/x509", - "x509.ParsePKIXPublicKey": "crypto/x509", - "x509.PublicKeyAlgorithm": "crypto/x509", - "x509.RSA": "crypto/x509", - "x509.SHA1WithRSA": "crypto/x509", - "x509.SHA256WithRSA": "crypto/x509", - "x509.SHA256WithRSAPSS": "crypto/x509", - "x509.SHA384WithRSA": "crypto/x509", - "x509.SHA384WithRSAPSS": "crypto/x509", - "x509.SHA512WithRSA": "crypto/x509", - "x509.SHA512WithRSAPSS": "crypto/x509", - "x509.SignatureAlgorithm": "crypto/x509", - "x509.SystemCertPool": "crypto/x509", - "x509.SystemRootsError": "crypto/x509", - "x509.TooManyIntermediates": "crypto/x509", - "x509.UnhandledCriticalExtension": "crypto/x509", - "x509.UnknownAuthorityError": "crypto/x509", - "x509.UnknownPublicKeyAlgorithm": "crypto/x509", - "x509.UnknownSignatureAlgorithm": "crypto/x509", - "x509.VerifyOptions": "crypto/x509", - "xml.Attr": "encoding/xml", - "xml.CharData": "encoding/xml", - "xml.Comment": "encoding/xml", - "xml.CopyToken": "encoding/xml", - "xml.Decoder": "encoding/xml", - "xml.Directive": "encoding/xml", - "xml.Encoder": "encoding/xml", - "xml.EndElement": "encoding/xml", - "xml.Escape": "encoding/xml", - "xml.EscapeText": "encoding/xml", - "xml.HTMLAutoClose": "encoding/xml", - "xml.HTMLEntity": "encoding/xml", - "xml.Header": "encoding/xml", - "xml.Marshal": "encoding/xml", - "xml.MarshalIndent": "encoding/xml", - "xml.Marshaler": "encoding/xml", - "xml.MarshalerAttr": "encoding/xml", - "xml.Name": "encoding/xml", - "xml.NewDecoder": "encoding/xml", - "xml.NewEncoder": "encoding/xml", - "xml.ProcInst": "encoding/xml", - "xml.StartElement": "encoding/xml", - "xml.SyntaxError": "encoding/xml", - "xml.TagPathError": "encoding/xml", - "xml.Token": "encoding/xml", - "xml.Unmarshal": "encoding/xml", - "xml.UnmarshalError": "encoding/xml", - "xml.Unmarshaler": "encoding/xml", - "xml.UnmarshalerAttr": "encoding/xml", - "xml.UnsupportedTypeError": "encoding/xml", - "zip.Compressor": "archive/zip", - "zip.Decompressor": "archive/zip", - "zip.Deflate": "archive/zip", - "zip.ErrAlgorithm": "archive/zip", - "zip.ErrChecksum": "archive/zip", - "zip.ErrFormat": "archive/zip", - "zip.File": "archive/zip", - "zip.FileHeader": "archive/zip", - "zip.FileInfoHeader": "archive/zip", - "zip.NewReader": "archive/zip", - "zip.NewWriter": "archive/zip", - "zip.OpenReader": "archive/zip", - "zip.ReadCloser": "archive/zip", - "zip.Reader": "archive/zip", - "zip.RegisterCompressor": "archive/zip", - "zip.RegisterDecompressor": "archive/zip", - "zip.Store": "archive/zip", - "zip.Writer": "archive/zip", - "zlib.BestCompression": "compress/zlib", - "zlib.BestSpeed": "compress/zlib", - "zlib.DefaultCompression": "compress/zlib", - "zlib.ErrChecksum": "compress/zlib", - "zlib.ErrDictionary": "compress/zlib", - "zlib.ErrHeader": "compress/zlib", - "zlib.HuffmanOnly": "compress/zlib", - "zlib.NewReader": "compress/zlib", - "zlib.NewReaderDict": "compress/zlib", - "zlib.NewWriter": "compress/zlib", - "zlib.NewWriterLevel": "compress/zlib", - "zlib.NewWriterLevelDict": "compress/zlib", - "zlib.NoCompression": "compress/zlib", - "zlib.Resetter": "compress/zlib", - "zlib.Writer": "compress/zlib", - - "unsafe.Alignof": "unsafe", - "unsafe.ArbitraryType": "unsafe", - "unsafe.Offsetof": "unsafe", - "unsafe.Pointer": "unsafe", - "unsafe.Sizeof": "unsafe", +var stdlib = map[string]map[string]bool{ + "archive/tar": map[string]bool{ + "ErrFieldTooLong": true, + "ErrHeader": true, + "ErrWriteAfterClose": true, + "ErrWriteTooLong": true, + "FileInfoHeader": true, + "Format": true, + "FormatGNU": true, + "FormatPAX": true, + "FormatUSTAR": true, + "FormatUnknown": true, + "Header": true, + "NewReader": true, + "NewWriter": true, + "Reader": true, + "TypeBlock": true, + "TypeChar": true, + "TypeCont": true, + "TypeDir": true, + "TypeFifo": true, + "TypeGNULongLink": true, + "TypeGNULongName": true, + "TypeGNUSparse": true, + "TypeLink": true, + "TypeReg": true, + "TypeRegA": true, + "TypeSymlink": true, + "TypeXGlobalHeader": true, + "TypeXHeader": true, + "Writer": true, + }, + "archive/zip": map[string]bool{ + "Compressor": true, + "Decompressor": true, + "Deflate": true, + "ErrAlgorithm": true, + "ErrChecksum": true, + "ErrFormat": true, + "File": true, + "FileHeader": true, + "FileInfoHeader": true, + "NewReader": true, + "NewWriter": true, + "OpenReader": true, + "ReadCloser": true, + "Reader": true, + "RegisterCompressor": true, + "RegisterDecompressor": true, + "Store": true, + "Writer": true, + }, + "bufio": map[string]bool{ + "ErrAdvanceTooFar": true, + "ErrBufferFull": true, + "ErrFinalToken": true, + "ErrInvalidUnreadByte": true, + "ErrInvalidUnreadRune": true, + "ErrNegativeAdvance": true, + "ErrNegativeCount": true, + "ErrTooLong": true, + "MaxScanTokenSize": true, + "NewReadWriter": true, + "NewReader": true, + "NewReaderSize": true, + "NewScanner": true, + "NewWriter": true, + "NewWriterSize": true, + "ReadWriter": true, + "Reader": true, + "ScanBytes": true, + "ScanLines": true, + "ScanRunes": true, + "ScanWords": true, + "Scanner": true, + "SplitFunc": true, + "Writer": true, + }, + "bytes": map[string]bool{ + "Buffer": true, + "Compare": true, + "Contains": true, + "ContainsAny": true, + "ContainsRune": true, + "Count": true, + "Equal": true, + "EqualFold": true, + "ErrTooLarge": true, + "Fields": true, + "FieldsFunc": true, + "HasPrefix": true, + "HasSuffix": true, + "Index": true, + "IndexAny": true, + "IndexByte": true, + "IndexFunc": true, + "IndexRune": true, + "Join": true, + "LastIndex": true, + "LastIndexAny": true, + "LastIndexByte": true, + "LastIndexFunc": true, + "Map": true, + "MinRead": true, + "NewBuffer": true, + "NewBufferString": true, + "NewReader": true, + "Reader": true, + "Repeat": true, + "Replace": true, + "ReplaceAll": true, + "Runes": true, + "Split": true, + "SplitAfter": true, + "SplitAfterN": true, + "SplitN": true, + "Title": true, + "ToLower": true, + "ToLowerSpecial": true, + "ToTitle": true, + "ToTitleSpecial": true, + "ToUpper": true, + "ToUpperSpecial": true, + "Trim": true, + "TrimFunc": true, + "TrimLeft": true, + "TrimLeftFunc": true, + "TrimPrefix": true, + "TrimRight": true, + "TrimRightFunc": true, + "TrimSpace": true, + "TrimSuffix": true, + }, + "compress/bzip2": map[string]bool{ + "NewReader": true, + "StructuralError": true, + }, + "compress/flate": map[string]bool{ + "BestCompression": true, + "BestSpeed": true, + "CorruptInputError": true, + "DefaultCompression": true, + "HuffmanOnly": true, + "InternalError": true, + "NewReader": true, + "NewReaderDict": true, + "NewWriter": true, + "NewWriterDict": true, + "NoCompression": true, + "ReadError": true, + "Reader": true, + "Resetter": true, + "WriteError": true, + "Writer": true, + }, + "compress/gzip": map[string]bool{ + "BestCompression": true, + "BestSpeed": true, + "DefaultCompression": true, + "ErrChecksum": true, + "ErrHeader": true, + "Header": true, + "HuffmanOnly": true, + "NewReader": true, + "NewWriter": true, + "NewWriterLevel": true, + "NoCompression": true, + "Reader": true, + "Writer": true, + }, + "compress/lzw": map[string]bool{ + "LSB": true, + "MSB": true, + "NewReader": true, + "NewWriter": true, + "Order": true, + }, + "compress/zlib": map[string]bool{ + "BestCompression": true, + "BestSpeed": true, + "DefaultCompression": true, + "ErrChecksum": true, + "ErrDictionary": true, + "ErrHeader": true, + "HuffmanOnly": true, + "NewReader": true, + "NewReaderDict": true, + "NewWriter": true, + "NewWriterLevel": true, + "NewWriterLevelDict": true, + "NoCompression": true, + "Resetter": true, + "Writer": true, + }, + "container/heap": map[string]bool{ + "Fix": true, + "Init": true, + "Interface": true, + "Pop": true, + "Push": true, + "Remove": true, + }, + "container/list": map[string]bool{ + "Element": true, + "List": true, + "New": true, + }, + "container/ring": map[string]bool{ + "New": true, + "Ring": true, + }, + "context": map[string]bool{ + "Background": true, + "CancelFunc": true, + "Canceled": true, + "Context": true, + "DeadlineExceeded": true, + "TODO": true, + "WithCancel": true, + "WithDeadline": true, + "WithTimeout": true, + "WithValue": true, + }, + "crypto": map[string]bool{ + "BLAKE2b_256": true, + "BLAKE2b_384": true, + "BLAKE2b_512": true, + "BLAKE2s_256": true, + "Decrypter": true, + "DecrypterOpts": true, + "Hash": true, + "MD4": true, + "MD5": true, + "MD5SHA1": true, + "PrivateKey": true, + "PublicKey": true, + "RIPEMD160": true, + "RegisterHash": true, + "SHA1": true, + "SHA224": true, + "SHA256": true, + "SHA384": true, + "SHA3_224": true, + "SHA3_256": true, + "SHA3_384": true, + "SHA3_512": true, + "SHA512": true, + "SHA512_224": true, + "SHA512_256": true, + "Signer": true, + "SignerOpts": true, + }, + "crypto/aes": map[string]bool{ + "BlockSize": true, + "KeySizeError": true, + "NewCipher": true, + }, + "crypto/cipher": map[string]bool{ + "AEAD": true, + "Block": true, + "BlockMode": true, + "NewCBCDecrypter": true, + "NewCBCEncrypter": true, + "NewCFBDecrypter": true, + "NewCFBEncrypter": true, + "NewCTR": true, + "NewGCM": true, + "NewGCMWithNonceSize": true, + "NewGCMWithTagSize": true, + "NewOFB": true, + "Stream": true, + "StreamReader": true, + "StreamWriter": true, + }, + "crypto/des": map[string]bool{ + "BlockSize": true, + "KeySizeError": true, + "NewCipher": true, + "NewTripleDESCipher": true, + }, + "crypto/dsa": map[string]bool{ + "ErrInvalidPublicKey": true, + "GenerateKey": true, + "GenerateParameters": true, + "L1024N160": true, + "L2048N224": true, + "L2048N256": true, + "L3072N256": true, + "ParameterSizes": true, + "Parameters": true, + "PrivateKey": true, + "PublicKey": true, + "Sign": true, + "Verify": true, + }, + "crypto/ecdsa": map[string]bool{ + "GenerateKey": true, + "PrivateKey": true, + "PublicKey": true, + "Sign": true, + "Verify": true, + }, + "crypto/elliptic": map[string]bool{ + "Curve": true, + "CurveParams": true, + "GenerateKey": true, + "Marshal": true, + "P224": true, + "P256": true, + "P384": true, + "P521": true, + "Unmarshal": true, + }, + "crypto/hmac": map[string]bool{ + "Equal": true, + "New": true, + }, + "crypto/md5": map[string]bool{ + "BlockSize": true, + "New": true, + "Size": true, + "Sum": true, + }, + "crypto/rand": map[string]bool{ + "Int": true, + "Prime": true, + "Read": true, + "Reader": true, + }, + "crypto/rc4": map[string]bool{ + "Cipher": true, + "KeySizeError": true, + "NewCipher": true, + }, + "crypto/rsa": map[string]bool{ + "CRTValue": true, + "DecryptOAEP": true, + "DecryptPKCS1v15": true, + "DecryptPKCS1v15SessionKey": true, + "EncryptOAEP": true, + "EncryptPKCS1v15": true, + "ErrDecryption": true, + "ErrMessageTooLong": true, + "ErrVerification": true, + "GenerateKey": true, + "GenerateMultiPrimeKey": true, + "OAEPOptions": true, + "PKCS1v15DecryptOptions": true, + "PSSOptions": true, + "PSSSaltLengthAuto": true, + "PSSSaltLengthEqualsHash": true, + "PrecomputedValues": true, + "PrivateKey": true, + "PublicKey": true, + "SignPKCS1v15": true, + "SignPSS": true, + "VerifyPKCS1v15": true, + "VerifyPSS": true, + }, + "crypto/sha1": map[string]bool{ + "BlockSize": true, + "New": true, + "Size": true, + "Sum": true, + }, + "crypto/sha256": map[string]bool{ + "BlockSize": true, + "New": true, + "New224": true, + "Size": true, + "Size224": true, + "Sum224": true, + "Sum256": true, + }, + "crypto/sha512": map[string]bool{ + "BlockSize": true, + "New": true, + "New384": true, + "New512_224": true, + "New512_256": true, + "Size": true, + "Size224": true, + "Size256": true, + "Size384": true, + "Sum384": true, + "Sum512": true, + "Sum512_224": true, + "Sum512_256": true, + }, + "crypto/subtle": map[string]bool{ + "ConstantTimeByteEq": true, + "ConstantTimeCompare": true, + "ConstantTimeCopy": true, + "ConstantTimeEq": true, + "ConstantTimeLessOrEq": true, + "ConstantTimeSelect": true, + }, + "crypto/tls": map[string]bool{ + "Certificate": true, + "CertificateRequestInfo": true, + "Client": true, + "ClientAuthType": true, + "ClientHelloInfo": true, + "ClientSessionCache": true, + "ClientSessionState": true, + "Config": true, + "Conn": true, + "ConnectionState": true, + "CurveID": true, + "CurveP256": true, + "CurveP384": true, + "CurveP521": true, + "Dial": true, + "DialWithDialer": true, + "ECDSAWithP256AndSHA256": true, + "ECDSAWithP384AndSHA384": true, + "ECDSAWithP521AndSHA512": true, + "ECDSAWithSHA1": true, + "Listen": true, + "LoadX509KeyPair": true, + "NewLRUClientSessionCache": true, + "NewListener": true, + "NoClientCert": true, + "PKCS1WithSHA1": true, + "PKCS1WithSHA256": true, + "PKCS1WithSHA384": true, + "PKCS1WithSHA512": true, + "PSSWithSHA256": true, + "PSSWithSHA384": true, + "PSSWithSHA512": true, + "RecordHeaderError": true, + "RenegotiateFreelyAsClient": true, + "RenegotiateNever": true, + "RenegotiateOnceAsClient": true, + "RenegotiationSupport": true, + "RequestClientCert": true, + "RequireAndVerifyClientCert": true, + "RequireAnyClientCert": true, + "Server": true, + "SignatureScheme": true, + "TLS_AES_128_GCM_SHA256": true, + "TLS_AES_256_GCM_SHA384": true, + "TLS_CHACHA20_POLY1305_SHA256": true, + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": true, + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256": true, + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": true, + "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA": true, + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384": true, + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305": true, + "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA": true, + "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA": true, + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA": true, + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256": true, + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256": true, + "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA": true, + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384": true, + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305": true, + "TLS_ECDHE_RSA_WITH_RC4_128_SHA": true, + "TLS_FALLBACK_SCSV": true, + "TLS_RSA_WITH_3DES_EDE_CBC_SHA": true, + "TLS_RSA_WITH_AES_128_CBC_SHA": true, + "TLS_RSA_WITH_AES_128_CBC_SHA256": true, + "TLS_RSA_WITH_AES_128_GCM_SHA256": true, + "TLS_RSA_WITH_AES_256_CBC_SHA": true, + "TLS_RSA_WITH_AES_256_GCM_SHA384": true, + "TLS_RSA_WITH_RC4_128_SHA": true, + "VerifyClientCertIfGiven": true, + "VersionSSL30": true, + "VersionTLS10": true, + "VersionTLS11": true, + "VersionTLS12": true, + "VersionTLS13": true, + "X25519": true, + "X509KeyPair": true, + }, + "crypto/x509": map[string]bool{ + "CANotAuthorizedForExtKeyUsage": true, + "CANotAuthorizedForThisName": true, + "CertPool": true, + "Certificate": true, + "CertificateInvalidError": true, + "CertificateRequest": true, + "ConstraintViolationError": true, + "CreateCertificate": true, + "CreateCertificateRequest": true, + "DSA": true, + "DSAWithSHA1": true, + "DSAWithSHA256": true, + "DecryptPEMBlock": true, + "ECDSA": true, + "ECDSAWithSHA1": true, + "ECDSAWithSHA256": true, + "ECDSAWithSHA384": true, + "ECDSAWithSHA512": true, + "EncryptPEMBlock": true, + "ErrUnsupportedAlgorithm": true, + "Expired": true, + "ExtKeyUsage": true, + "ExtKeyUsageAny": true, + "ExtKeyUsageClientAuth": true, + "ExtKeyUsageCodeSigning": true, + "ExtKeyUsageEmailProtection": true, + "ExtKeyUsageIPSECEndSystem": true, + "ExtKeyUsageIPSECTunnel": true, + "ExtKeyUsageIPSECUser": true, + "ExtKeyUsageMicrosoftCommercialCodeSigning": true, + "ExtKeyUsageMicrosoftKernelCodeSigning": true, + "ExtKeyUsageMicrosoftServerGatedCrypto": true, + "ExtKeyUsageNetscapeServerGatedCrypto": true, + "ExtKeyUsageOCSPSigning": true, + "ExtKeyUsageServerAuth": true, + "ExtKeyUsageTimeStamping": true, + "HostnameError": true, + "IncompatibleUsage": true, + "IncorrectPasswordError": true, + "InsecureAlgorithmError": true, + "InvalidReason": true, + "IsEncryptedPEMBlock": true, + "KeyUsage": true, + "KeyUsageCRLSign": true, + "KeyUsageCertSign": true, + "KeyUsageContentCommitment": true, + "KeyUsageDataEncipherment": true, + "KeyUsageDecipherOnly": true, + "KeyUsageDigitalSignature": true, + "KeyUsageEncipherOnly": true, + "KeyUsageKeyAgreement": true, + "KeyUsageKeyEncipherment": true, + "MD2WithRSA": true, + "MD5WithRSA": true, + "MarshalECPrivateKey": true, + "MarshalPKCS1PrivateKey": true, + "MarshalPKCS1PublicKey": true, + "MarshalPKCS8PrivateKey": true, + "MarshalPKIXPublicKey": true, + "NameConstraintsWithoutSANs": true, + "NameMismatch": true, + "NewCertPool": true, + "NotAuthorizedToSign": true, + "PEMCipher": true, + "PEMCipher3DES": true, + "PEMCipherAES128": true, + "PEMCipherAES192": true, + "PEMCipherAES256": true, + "PEMCipherDES": true, + "ParseCRL": true, + "ParseCertificate": true, + "ParseCertificateRequest": true, + "ParseCertificates": true, + "ParseDERCRL": true, + "ParseECPrivateKey": true, + "ParsePKCS1PrivateKey": true, + "ParsePKCS1PublicKey": true, + "ParsePKCS8PrivateKey": true, + "ParsePKIXPublicKey": true, + "PublicKeyAlgorithm": true, + "RSA": true, + "SHA1WithRSA": true, + "SHA256WithRSA": true, + "SHA256WithRSAPSS": true, + "SHA384WithRSA": true, + "SHA384WithRSAPSS": true, + "SHA512WithRSA": true, + "SHA512WithRSAPSS": true, + "SignatureAlgorithm": true, + "SystemCertPool": true, + "SystemRootsError": true, + "TooManyConstraints": true, + "TooManyIntermediates": true, + "UnconstrainedName": true, + "UnhandledCriticalExtension": true, + "UnknownAuthorityError": true, + "UnknownPublicKeyAlgorithm": true, + "UnknownSignatureAlgorithm": true, + "VerifyOptions": true, + }, + "crypto/x509/pkix": map[string]bool{ + "AlgorithmIdentifier": true, + "AttributeTypeAndValue": true, + "AttributeTypeAndValueSET": true, + "CertificateList": true, + "Extension": true, + "Name": true, + "RDNSequence": true, + "RelativeDistinguishedNameSET": true, + "RevokedCertificate": true, + "TBSCertificateList": true, + }, + "database/sql": map[string]bool{ + "ColumnType": true, + "Conn": true, + "DB": true, + "DBStats": true, + "Drivers": true, + "ErrConnDone": true, + "ErrNoRows": true, + "ErrTxDone": true, + "IsolationLevel": true, + "LevelDefault": true, + "LevelLinearizable": true, + "LevelReadCommitted": true, + "LevelReadUncommitted": true, + "LevelRepeatableRead": true, + "LevelSerializable": true, + "LevelSnapshot": true, + "LevelWriteCommitted": true, + "Named": true, + "NamedArg": true, + "NullBool": true, + "NullFloat64": true, + "NullInt64": true, + "NullString": true, + "Open": true, + "OpenDB": true, + "Out": true, + "RawBytes": true, + "Register": true, + "Result": true, + "Row": true, + "Rows": true, + "Scanner": true, + "Stmt": true, + "Tx": true, + "TxOptions": true, + }, + "database/sql/driver": map[string]bool{ + "Bool": true, + "ColumnConverter": true, + "Conn": true, + "ConnBeginTx": true, + "ConnPrepareContext": true, + "Connector": true, + "DefaultParameterConverter": true, + "Driver": true, + "DriverContext": true, + "ErrBadConn": true, + "ErrRemoveArgument": true, + "ErrSkip": true, + "Execer": true, + "ExecerContext": true, + "Int32": true, + "IsScanValue": true, + "IsValue": true, + "IsolationLevel": true, + "NamedValue": true, + "NamedValueChecker": true, + "NotNull": true, + "Null": true, + "Pinger": true, + "Queryer": true, + "QueryerContext": true, + "Result": true, + "ResultNoRows": true, + "Rows": true, + "RowsAffected": true, + "RowsColumnTypeDatabaseTypeName": true, + "RowsColumnTypeLength": true, + "RowsColumnTypeNullable": true, + "RowsColumnTypePrecisionScale": true, + "RowsColumnTypeScanType": true, + "RowsNextResultSet": true, + "SessionResetter": true, + "Stmt": true, + "StmtExecContext": true, + "StmtQueryContext": true, + "String": true, + "Tx": true, + "TxOptions": true, + "Value": true, + "ValueConverter": true, + "Valuer": true, + }, + "debug/dwarf": map[string]bool{ + "AddrType": true, + "ArrayType": true, + "Attr": true, + "AttrAbstractOrigin": true, + "AttrAccessibility": true, + "AttrAddrClass": true, + "AttrAllocated": true, + "AttrArtificial": true, + "AttrAssociated": true, + "AttrBaseTypes": true, + "AttrBitOffset": true, + "AttrBitSize": true, + "AttrByteSize": true, + "AttrCallColumn": true, + "AttrCallFile": true, + "AttrCallLine": true, + "AttrCalling": true, + "AttrCommonRef": true, + "AttrCompDir": true, + "AttrConstValue": true, + "AttrContainingType": true, + "AttrCount": true, + "AttrDataLocation": true, + "AttrDataMemberLoc": true, + "AttrDeclColumn": true, + "AttrDeclFile": true, + "AttrDeclLine": true, + "AttrDeclaration": true, + "AttrDefaultValue": true, + "AttrDescription": true, + "AttrDiscr": true, + "AttrDiscrList": true, + "AttrDiscrValue": true, + "AttrEncoding": true, + "AttrEntrypc": true, + "AttrExtension": true, + "AttrExternal": true, + "AttrFrameBase": true, + "AttrFriend": true, + "AttrHighpc": true, + "AttrIdentifierCase": true, + "AttrImport": true, + "AttrInline": true, + "AttrIsOptional": true, + "AttrLanguage": true, + "AttrLocation": true, + "AttrLowerBound": true, + "AttrLowpc": true, + "AttrMacroInfo": true, + "AttrName": true, + "AttrNamelistItem": true, + "AttrOrdering": true, + "AttrPriority": true, + "AttrProducer": true, + "AttrPrototyped": true, + "AttrRanges": true, + "AttrReturnAddr": true, + "AttrSegment": true, + "AttrSibling": true, + "AttrSpecification": true, + "AttrStartScope": true, + "AttrStaticLink": true, + "AttrStmtList": true, + "AttrStride": true, + "AttrStrideSize": true, + "AttrStringLength": true, + "AttrTrampoline": true, + "AttrType": true, + "AttrUpperBound": true, + "AttrUseLocation": true, + "AttrUseUTF8": true, + "AttrVarParam": true, + "AttrVirtuality": true, + "AttrVisibility": true, + "AttrVtableElemLoc": true, + "BasicType": true, + "BoolType": true, + "CharType": true, + "Class": true, + "ClassAddress": true, + "ClassBlock": true, + "ClassConstant": true, + "ClassExprLoc": true, + "ClassFlag": true, + "ClassLinePtr": true, + "ClassLocListPtr": true, + "ClassMacPtr": true, + "ClassRangeListPtr": true, + "ClassReference": true, + "ClassReferenceAlt": true, + "ClassReferenceSig": true, + "ClassString": true, + "ClassStringAlt": true, + "ClassUnknown": true, + "CommonType": true, + "ComplexType": true, + "Data": true, + "DecodeError": true, + "DotDotDotType": true, + "Entry": true, + "EnumType": true, + "EnumValue": true, + "ErrUnknownPC": true, + "Field": true, + "FloatType": true, + "FuncType": true, + "IntType": true, + "LineEntry": true, + "LineFile": true, + "LineReader": true, + "LineReaderPos": true, + "New": true, + "Offset": true, + "PtrType": true, + "QualType": true, + "Reader": true, + "StructField": true, + "StructType": true, + "Tag": true, + "TagAccessDeclaration": true, + "TagArrayType": true, + "TagBaseType": true, + "TagCatchDwarfBlock": true, + "TagClassType": true, + "TagCommonDwarfBlock": true, + "TagCommonInclusion": true, + "TagCompileUnit": true, + "TagCondition": true, + "TagConstType": true, + "TagConstant": true, + "TagDwarfProcedure": true, + "TagEntryPoint": true, + "TagEnumerationType": true, + "TagEnumerator": true, + "TagFileType": true, + "TagFormalParameter": true, + "TagFriend": true, + "TagImportedDeclaration": true, + "TagImportedModule": true, + "TagImportedUnit": true, + "TagInheritance": true, + "TagInlinedSubroutine": true, + "TagInterfaceType": true, + "TagLabel": true, + "TagLexDwarfBlock": true, + "TagMember": true, + "TagModule": true, + "TagMutableType": true, + "TagNamelist": true, + "TagNamelistItem": true, + "TagNamespace": true, + "TagPackedType": true, + "TagPartialUnit": true, + "TagPointerType": true, + "TagPtrToMemberType": true, + "TagReferenceType": true, + "TagRestrictType": true, + "TagRvalueReferenceType": true, + "TagSetType": true, + "TagSharedType": true, + "TagStringType": true, + "TagStructType": true, + "TagSubprogram": true, + "TagSubrangeType": true, + "TagSubroutineType": true, + "TagTemplateAlias": true, + "TagTemplateTypeParameter": true, + "TagTemplateValueParameter": true, + "TagThrownType": true, + "TagTryDwarfBlock": true, + "TagTypeUnit": true, + "TagTypedef": true, + "TagUnionType": true, + "TagUnspecifiedParameters": true, + "TagUnspecifiedType": true, + "TagVariable": true, + "TagVariant": true, + "TagVariantPart": true, + "TagVolatileType": true, + "TagWithStmt": true, + "Type": true, + "TypedefType": true, + "UcharType": true, + "UintType": true, + "UnspecifiedType": true, + "VoidType": true, + }, + "debug/elf": map[string]bool{ + "ARM_MAGIC_TRAMP_NUMBER": true, + "COMPRESS_HIOS": true, + "COMPRESS_HIPROC": true, + "COMPRESS_LOOS": true, + "COMPRESS_LOPROC": true, + "COMPRESS_ZLIB": true, + "Chdr32": true, + "Chdr64": true, + "Class": true, + "CompressionType": true, + "DF_BIND_NOW": true, + "DF_ORIGIN": true, + "DF_STATIC_TLS": true, + "DF_SYMBOLIC": true, + "DF_TEXTREL": true, + "DT_BIND_NOW": true, + "DT_DEBUG": true, + "DT_ENCODING": true, + "DT_FINI": true, + "DT_FINI_ARRAY": true, + "DT_FINI_ARRAYSZ": true, + "DT_FLAGS": true, + "DT_HASH": true, + "DT_HIOS": true, + "DT_HIPROC": true, + "DT_INIT": true, + "DT_INIT_ARRAY": true, + "DT_INIT_ARRAYSZ": true, + "DT_JMPREL": true, + "DT_LOOS": true, + "DT_LOPROC": true, + "DT_NEEDED": true, + "DT_NULL": true, + "DT_PLTGOT": true, + "DT_PLTREL": true, + "DT_PLTRELSZ": true, + "DT_PREINIT_ARRAY": true, + "DT_PREINIT_ARRAYSZ": true, + "DT_REL": true, + "DT_RELA": true, + "DT_RELAENT": true, + "DT_RELASZ": true, + "DT_RELENT": true, + "DT_RELSZ": true, + "DT_RPATH": true, + "DT_RUNPATH": true, + "DT_SONAME": true, + "DT_STRSZ": true, + "DT_STRTAB": true, + "DT_SYMBOLIC": true, + "DT_SYMENT": true, + "DT_SYMTAB": true, + "DT_TEXTREL": true, + "DT_VERNEED": true, + "DT_VERNEEDNUM": true, + "DT_VERSYM": true, + "Data": true, + "Dyn32": true, + "Dyn64": true, + "DynFlag": true, + "DynTag": true, + "EI_ABIVERSION": true, + "EI_CLASS": true, + "EI_DATA": true, + "EI_NIDENT": true, + "EI_OSABI": true, + "EI_PAD": true, + "EI_VERSION": true, + "ELFCLASS32": true, + "ELFCLASS64": true, + "ELFCLASSNONE": true, + "ELFDATA2LSB": true, + "ELFDATA2MSB": true, + "ELFDATANONE": true, + "ELFMAG": true, + "ELFOSABI_86OPEN": true, + "ELFOSABI_AIX": true, + "ELFOSABI_ARM": true, + "ELFOSABI_AROS": true, + "ELFOSABI_CLOUDABI": true, + "ELFOSABI_FENIXOS": true, + "ELFOSABI_FREEBSD": true, + "ELFOSABI_HPUX": true, + "ELFOSABI_HURD": true, + "ELFOSABI_IRIX": true, + "ELFOSABI_LINUX": true, + "ELFOSABI_MODESTO": true, + "ELFOSABI_NETBSD": true, + "ELFOSABI_NONE": true, + "ELFOSABI_NSK": true, + "ELFOSABI_OPENBSD": true, + "ELFOSABI_OPENVMS": true, + "ELFOSABI_SOLARIS": true, + "ELFOSABI_STANDALONE": true, + "ELFOSABI_TRU64": true, + "EM_386": true, + "EM_486": true, + "EM_56800EX": true, + "EM_68HC05": true, + "EM_68HC08": true, + "EM_68HC11": true, + "EM_68HC12": true, + "EM_68HC16": true, + "EM_68K": true, + "EM_78KOR": true, + "EM_8051": true, + "EM_860": true, + "EM_88K": true, + "EM_960": true, + "EM_AARCH64": true, + "EM_ALPHA": true, + "EM_ALPHA_STD": true, + "EM_ALTERA_NIOS2": true, + "EM_AMDGPU": true, + "EM_ARC": true, + "EM_ARCA": true, + "EM_ARC_COMPACT": true, + "EM_ARC_COMPACT2": true, + "EM_ARM": true, + "EM_AVR": true, + "EM_AVR32": true, + "EM_BA1": true, + "EM_BA2": true, + "EM_BLACKFIN": true, + "EM_BPF": true, + "EM_C166": true, + "EM_CDP": true, + "EM_CE": true, + "EM_CLOUDSHIELD": true, + "EM_COGE": true, + "EM_COLDFIRE": true, + "EM_COOL": true, + "EM_COREA_1ST": true, + "EM_COREA_2ND": true, + "EM_CR": true, + "EM_CR16": true, + "EM_CRAYNV2": true, + "EM_CRIS": true, + "EM_CRX": true, + "EM_CSR_KALIMBA": true, + "EM_CUDA": true, + "EM_CYPRESS_M8C": true, + "EM_D10V": true, + "EM_D30V": true, + "EM_DSP24": true, + "EM_DSPIC30F": true, + "EM_DXP": true, + "EM_ECOG1": true, + "EM_ECOG16": true, + "EM_ECOG1X": true, + "EM_ECOG2": true, + "EM_ETPU": true, + "EM_EXCESS": true, + "EM_F2MC16": true, + "EM_FIREPATH": true, + "EM_FR20": true, + "EM_FR30": true, + "EM_FT32": true, + "EM_FX66": true, + "EM_H8S": true, + "EM_H8_300": true, + "EM_H8_300H": true, + "EM_H8_500": true, + "EM_HUANY": true, + "EM_IA_64": true, + "EM_INTEL205": true, + "EM_INTEL206": true, + "EM_INTEL207": true, + "EM_INTEL208": true, + "EM_INTEL209": true, + "EM_IP2K": true, + "EM_JAVELIN": true, + "EM_K10M": true, + "EM_KM32": true, + "EM_KMX16": true, + "EM_KMX32": true, + "EM_KMX8": true, + "EM_KVARC": true, + "EM_L10M": true, + "EM_LANAI": true, + "EM_LATTICEMICO32": true, + "EM_M16C": true, + "EM_M32": true, + "EM_M32C": true, + "EM_M32R": true, + "EM_MANIK": true, + "EM_MAX": true, + "EM_MAXQ30": true, + "EM_MCHP_PIC": true, + "EM_MCST_ELBRUS": true, + "EM_ME16": true, + "EM_METAG": true, + "EM_MICROBLAZE": true, + "EM_MIPS": true, + "EM_MIPS_RS3_LE": true, + "EM_MIPS_RS4_BE": true, + "EM_MIPS_X": true, + "EM_MMA": true, + "EM_MMDSP_PLUS": true, + "EM_MMIX": true, + "EM_MN10200": true, + "EM_MN10300": true, + "EM_MOXIE": true, + "EM_MSP430": true, + "EM_NCPU": true, + "EM_NDR1": true, + "EM_NDS32": true, + "EM_NONE": true, + "EM_NORC": true, + "EM_NS32K": true, + "EM_OPEN8": true, + "EM_OPENRISC": true, + "EM_PARISC": true, + "EM_PCP": true, + "EM_PDP10": true, + "EM_PDP11": true, + "EM_PDSP": true, + "EM_PJ": true, + "EM_PPC": true, + "EM_PPC64": true, + "EM_PRISM": true, + "EM_QDSP6": true, + "EM_R32C": true, + "EM_RCE": true, + "EM_RH32": true, + "EM_RISCV": true, + "EM_RL78": true, + "EM_RS08": true, + "EM_RX": true, + "EM_S370": true, + "EM_S390": true, + "EM_SCORE7": true, + "EM_SEP": true, + "EM_SE_C17": true, + "EM_SE_C33": true, + "EM_SH": true, + "EM_SHARC": true, + "EM_SLE9X": true, + "EM_SNP1K": true, + "EM_SPARC": true, + "EM_SPARC32PLUS": true, + "EM_SPARCV9": true, + "EM_ST100": true, + "EM_ST19": true, + "EM_ST200": true, + "EM_ST7": true, + "EM_ST9PLUS": true, + "EM_STARCORE": true, + "EM_STM8": true, + "EM_STXP7X": true, + "EM_SVX": true, + "EM_TILE64": true, + "EM_TILEGX": true, + "EM_TILEPRO": true, + "EM_TINYJ": true, + "EM_TI_ARP32": true, + "EM_TI_C2000": true, + "EM_TI_C5500": true, + "EM_TI_C6000": true, + "EM_TI_PRU": true, + "EM_TMM_GPP": true, + "EM_TPC": true, + "EM_TRICORE": true, + "EM_TRIMEDIA": true, + "EM_TSK3000": true, + "EM_UNICORE": true, + "EM_V800": true, + "EM_V850": true, + "EM_VAX": true, + "EM_VIDEOCORE": true, + "EM_VIDEOCORE3": true, + "EM_VIDEOCORE5": true, + "EM_VISIUM": true, + "EM_VPP500": true, + "EM_X86_64": true, + "EM_XCORE": true, + "EM_XGATE": true, + "EM_XIMO16": true, + "EM_XTENSA": true, + "EM_Z80": true, + "EM_ZSP": true, + "ET_CORE": true, + "ET_DYN": true, + "ET_EXEC": true, + "ET_HIOS": true, + "ET_HIPROC": true, + "ET_LOOS": true, + "ET_LOPROC": true, + "ET_NONE": true, + "ET_REL": true, + "EV_CURRENT": true, + "EV_NONE": true, + "ErrNoSymbols": true, + "File": true, + "FileHeader": true, + "FormatError": true, + "Header32": true, + "Header64": true, + "ImportedSymbol": true, + "Machine": true, + "NT_FPREGSET": true, + "NT_PRPSINFO": true, + "NT_PRSTATUS": true, + "NType": true, + "NewFile": true, + "OSABI": true, + "Open": true, + "PF_MASKOS": true, + "PF_MASKPROC": true, + "PF_R": true, + "PF_W": true, + "PF_X": true, + "PT_DYNAMIC": true, + "PT_HIOS": true, + "PT_HIPROC": true, + "PT_INTERP": true, + "PT_LOAD": true, + "PT_LOOS": true, + "PT_LOPROC": true, + "PT_NOTE": true, + "PT_NULL": true, + "PT_PHDR": true, + "PT_SHLIB": true, + "PT_TLS": true, + "Prog": true, + "Prog32": true, + "Prog64": true, + "ProgFlag": true, + "ProgHeader": true, + "ProgType": true, + "R_386": true, + "R_386_16": true, + "R_386_32": true, + "R_386_32PLT": true, + "R_386_8": true, + "R_386_COPY": true, + "R_386_GLOB_DAT": true, + "R_386_GOT32": true, + "R_386_GOT32X": true, + "R_386_GOTOFF": true, + "R_386_GOTPC": true, + "R_386_IRELATIVE": true, + "R_386_JMP_SLOT": true, + "R_386_NONE": true, + "R_386_PC16": true, + "R_386_PC32": true, + "R_386_PC8": true, + "R_386_PLT32": true, + "R_386_RELATIVE": true, + "R_386_SIZE32": true, + "R_386_TLS_DESC": true, + "R_386_TLS_DESC_CALL": true, + "R_386_TLS_DTPMOD32": true, + "R_386_TLS_DTPOFF32": true, + "R_386_TLS_GD": true, + "R_386_TLS_GD_32": true, + "R_386_TLS_GD_CALL": true, + "R_386_TLS_GD_POP": true, + "R_386_TLS_GD_PUSH": true, + "R_386_TLS_GOTDESC": true, + "R_386_TLS_GOTIE": true, + "R_386_TLS_IE": true, + "R_386_TLS_IE_32": true, + "R_386_TLS_LDM": true, + "R_386_TLS_LDM_32": true, + "R_386_TLS_LDM_CALL": true, + "R_386_TLS_LDM_POP": true, + "R_386_TLS_LDM_PUSH": true, + "R_386_TLS_LDO_32": true, + "R_386_TLS_LE": true, + "R_386_TLS_LE_32": true, + "R_386_TLS_TPOFF": true, + "R_386_TLS_TPOFF32": true, + "R_390": true, + "R_390_12": true, + "R_390_16": true, + "R_390_20": true, + "R_390_32": true, + "R_390_64": true, + "R_390_8": true, + "R_390_COPY": true, + "R_390_GLOB_DAT": true, + "R_390_GOT12": true, + "R_390_GOT16": true, + "R_390_GOT20": true, + "R_390_GOT32": true, + "R_390_GOT64": true, + "R_390_GOTENT": true, + "R_390_GOTOFF": true, + "R_390_GOTOFF16": true, + "R_390_GOTOFF64": true, + "R_390_GOTPC": true, + "R_390_GOTPCDBL": true, + "R_390_GOTPLT12": true, + "R_390_GOTPLT16": true, + "R_390_GOTPLT20": true, + "R_390_GOTPLT32": true, + "R_390_GOTPLT64": true, + "R_390_GOTPLTENT": true, + "R_390_GOTPLTOFF16": true, + "R_390_GOTPLTOFF32": true, + "R_390_GOTPLTOFF64": true, + "R_390_JMP_SLOT": true, + "R_390_NONE": true, + "R_390_PC16": true, + "R_390_PC16DBL": true, + "R_390_PC32": true, + "R_390_PC32DBL": true, + "R_390_PC64": true, + "R_390_PLT16DBL": true, + "R_390_PLT32": true, + "R_390_PLT32DBL": true, + "R_390_PLT64": true, + "R_390_RELATIVE": true, + "R_390_TLS_DTPMOD": true, + "R_390_TLS_DTPOFF": true, + "R_390_TLS_GD32": true, + "R_390_TLS_GD64": true, + "R_390_TLS_GDCALL": true, + "R_390_TLS_GOTIE12": true, + "R_390_TLS_GOTIE20": true, + "R_390_TLS_GOTIE32": true, + "R_390_TLS_GOTIE64": true, + "R_390_TLS_IE32": true, + "R_390_TLS_IE64": true, + "R_390_TLS_IEENT": true, + "R_390_TLS_LDCALL": true, + "R_390_TLS_LDM32": true, + "R_390_TLS_LDM64": true, + "R_390_TLS_LDO32": true, + "R_390_TLS_LDO64": true, + "R_390_TLS_LE32": true, + "R_390_TLS_LE64": true, + "R_390_TLS_LOAD": true, + "R_390_TLS_TPOFF": true, + "R_AARCH64": true, + "R_AARCH64_ABS16": true, + "R_AARCH64_ABS32": true, + "R_AARCH64_ABS64": true, + "R_AARCH64_ADD_ABS_LO12_NC": true, + "R_AARCH64_ADR_GOT_PAGE": true, + "R_AARCH64_ADR_PREL_LO21": true, + "R_AARCH64_ADR_PREL_PG_HI21": true, + "R_AARCH64_ADR_PREL_PG_HI21_NC": true, + "R_AARCH64_CALL26": true, + "R_AARCH64_CONDBR19": true, + "R_AARCH64_COPY": true, + "R_AARCH64_GLOB_DAT": true, + "R_AARCH64_GOT_LD_PREL19": true, + "R_AARCH64_IRELATIVE": true, + "R_AARCH64_JUMP26": true, + "R_AARCH64_JUMP_SLOT": true, + "R_AARCH64_LD64_GOTOFF_LO15": true, + "R_AARCH64_LD64_GOTPAGE_LO15": true, + "R_AARCH64_LD64_GOT_LO12_NC": true, + "R_AARCH64_LDST128_ABS_LO12_NC": true, + "R_AARCH64_LDST16_ABS_LO12_NC": true, + "R_AARCH64_LDST32_ABS_LO12_NC": true, + "R_AARCH64_LDST64_ABS_LO12_NC": true, + "R_AARCH64_LDST8_ABS_LO12_NC": true, + "R_AARCH64_LD_PREL_LO19": true, + "R_AARCH64_MOVW_SABS_G0": true, + "R_AARCH64_MOVW_SABS_G1": true, + "R_AARCH64_MOVW_SABS_G2": true, + "R_AARCH64_MOVW_UABS_G0": true, + "R_AARCH64_MOVW_UABS_G0_NC": true, + "R_AARCH64_MOVW_UABS_G1": true, + "R_AARCH64_MOVW_UABS_G1_NC": true, + "R_AARCH64_MOVW_UABS_G2": true, + "R_AARCH64_MOVW_UABS_G2_NC": true, + "R_AARCH64_MOVW_UABS_G3": true, + "R_AARCH64_NONE": true, + "R_AARCH64_NULL": true, + "R_AARCH64_P32_ABS16": true, + "R_AARCH64_P32_ABS32": true, + "R_AARCH64_P32_ADD_ABS_LO12_NC": true, + "R_AARCH64_P32_ADR_GOT_PAGE": true, + "R_AARCH64_P32_ADR_PREL_LO21": true, + "R_AARCH64_P32_ADR_PREL_PG_HI21": true, + "R_AARCH64_P32_CALL26": true, + "R_AARCH64_P32_CONDBR19": true, + "R_AARCH64_P32_COPY": true, + "R_AARCH64_P32_GLOB_DAT": true, + "R_AARCH64_P32_GOT_LD_PREL19": true, + "R_AARCH64_P32_IRELATIVE": true, + "R_AARCH64_P32_JUMP26": true, + "R_AARCH64_P32_JUMP_SLOT": true, + "R_AARCH64_P32_LD32_GOT_LO12_NC": true, + "R_AARCH64_P32_LDST128_ABS_LO12_NC": true, + "R_AARCH64_P32_LDST16_ABS_LO12_NC": true, + "R_AARCH64_P32_LDST32_ABS_LO12_NC": true, + "R_AARCH64_P32_LDST64_ABS_LO12_NC": true, + "R_AARCH64_P32_LDST8_ABS_LO12_NC": true, + "R_AARCH64_P32_LD_PREL_LO19": true, + "R_AARCH64_P32_MOVW_SABS_G0": true, + "R_AARCH64_P32_MOVW_UABS_G0": true, + "R_AARCH64_P32_MOVW_UABS_G0_NC": true, + "R_AARCH64_P32_MOVW_UABS_G1": true, + "R_AARCH64_P32_PREL16": true, + "R_AARCH64_P32_PREL32": true, + "R_AARCH64_P32_RELATIVE": true, + "R_AARCH64_P32_TLSDESC": true, + "R_AARCH64_P32_TLSDESC_ADD_LO12_NC": true, + "R_AARCH64_P32_TLSDESC_ADR_PAGE21": true, + "R_AARCH64_P32_TLSDESC_ADR_PREL21": true, + "R_AARCH64_P32_TLSDESC_CALL": true, + "R_AARCH64_P32_TLSDESC_LD32_LO12_NC": true, + "R_AARCH64_P32_TLSDESC_LD_PREL19": true, + "R_AARCH64_P32_TLSGD_ADD_LO12_NC": true, + "R_AARCH64_P32_TLSGD_ADR_PAGE21": true, + "R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21": true, + "R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC": true, + "R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19": true, + "R_AARCH64_P32_TLSLE_ADD_TPREL_HI12": true, + "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12": true, + "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC": true, + "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0": true, + "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC": true, + "R_AARCH64_P32_TLSLE_MOVW_TPREL_G1": true, + "R_AARCH64_P32_TLS_DTPMOD": true, + "R_AARCH64_P32_TLS_DTPREL": true, + "R_AARCH64_P32_TLS_TPREL": true, + "R_AARCH64_P32_TSTBR14": true, + "R_AARCH64_PREL16": true, + "R_AARCH64_PREL32": true, + "R_AARCH64_PREL64": true, + "R_AARCH64_RELATIVE": true, + "R_AARCH64_TLSDESC": true, + "R_AARCH64_TLSDESC_ADD": true, + "R_AARCH64_TLSDESC_ADD_LO12_NC": true, + "R_AARCH64_TLSDESC_ADR_PAGE21": true, + "R_AARCH64_TLSDESC_ADR_PREL21": true, + "R_AARCH64_TLSDESC_CALL": true, + "R_AARCH64_TLSDESC_LD64_LO12_NC": true, + "R_AARCH64_TLSDESC_LDR": true, + "R_AARCH64_TLSDESC_LD_PREL19": true, + "R_AARCH64_TLSDESC_OFF_G0_NC": true, + "R_AARCH64_TLSDESC_OFF_G1": true, + "R_AARCH64_TLSGD_ADD_LO12_NC": true, + "R_AARCH64_TLSGD_ADR_PAGE21": true, + "R_AARCH64_TLSGD_ADR_PREL21": true, + "R_AARCH64_TLSGD_MOVW_G0_NC": true, + "R_AARCH64_TLSGD_MOVW_G1": true, + "R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21": true, + "R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC": true, + "R_AARCH64_TLSIE_LD_GOTTPREL_PREL19": true, + "R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC": true, + "R_AARCH64_TLSIE_MOVW_GOTTPREL_G1": true, + "R_AARCH64_TLSLD_ADR_PAGE21": true, + "R_AARCH64_TLSLD_ADR_PREL21": true, + "R_AARCH64_TLSLD_LDST128_DTPREL_LO12": true, + "R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC": true, + "R_AARCH64_TLSLE_ADD_TPREL_HI12": true, + "R_AARCH64_TLSLE_ADD_TPREL_LO12": true, + "R_AARCH64_TLSLE_ADD_TPREL_LO12_NC": true, + "R_AARCH64_TLSLE_LDST128_TPREL_LO12": true, + "R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC": true, + "R_AARCH64_TLSLE_MOVW_TPREL_G0": true, + "R_AARCH64_TLSLE_MOVW_TPREL_G0_NC": true, + "R_AARCH64_TLSLE_MOVW_TPREL_G1": true, + "R_AARCH64_TLSLE_MOVW_TPREL_G1_NC": true, + "R_AARCH64_TLSLE_MOVW_TPREL_G2": true, + "R_AARCH64_TLS_DTPMOD64": true, + "R_AARCH64_TLS_DTPREL64": true, + "R_AARCH64_TLS_TPREL64": true, + "R_AARCH64_TSTBR14": true, + "R_ALPHA": true, + "R_ALPHA_BRADDR": true, + "R_ALPHA_COPY": true, + "R_ALPHA_GLOB_DAT": true, + "R_ALPHA_GPDISP": true, + "R_ALPHA_GPREL32": true, + "R_ALPHA_GPRELHIGH": true, + "R_ALPHA_GPRELLOW": true, + "R_ALPHA_GPVALUE": true, + "R_ALPHA_HINT": true, + "R_ALPHA_IMMED_BR_HI32": true, + "R_ALPHA_IMMED_GP_16": true, + "R_ALPHA_IMMED_GP_HI32": true, + "R_ALPHA_IMMED_LO32": true, + "R_ALPHA_IMMED_SCN_HI32": true, + "R_ALPHA_JMP_SLOT": true, + "R_ALPHA_LITERAL": true, + "R_ALPHA_LITUSE": true, + "R_ALPHA_NONE": true, + "R_ALPHA_OP_PRSHIFT": true, + "R_ALPHA_OP_PSUB": true, + "R_ALPHA_OP_PUSH": true, + "R_ALPHA_OP_STORE": true, + "R_ALPHA_REFLONG": true, + "R_ALPHA_REFQUAD": true, + "R_ALPHA_RELATIVE": true, + "R_ALPHA_SREL16": true, + "R_ALPHA_SREL32": true, + "R_ALPHA_SREL64": true, + "R_ARM": true, + "R_ARM_ABS12": true, + "R_ARM_ABS16": true, + "R_ARM_ABS32": true, + "R_ARM_ABS32_NOI": true, + "R_ARM_ABS8": true, + "R_ARM_ALU_PCREL_15_8": true, + "R_ARM_ALU_PCREL_23_15": true, + "R_ARM_ALU_PCREL_7_0": true, + "R_ARM_ALU_PC_G0": true, + "R_ARM_ALU_PC_G0_NC": true, + "R_ARM_ALU_PC_G1": true, + "R_ARM_ALU_PC_G1_NC": true, + "R_ARM_ALU_PC_G2": true, + "R_ARM_ALU_SBREL_19_12_NC": true, + "R_ARM_ALU_SBREL_27_20_CK": true, + "R_ARM_ALU_SB_G0": true, + "R_ARM_ALU_SB_G0_NC": true, + "R_ARM_ALU_SB_G1": true, + "R_ARM_ALU_SB_G1_NC": true, + "R_ARM_ALU_SB_G2": true, + "R_ARM_AMP_VCALL9": true, + "R_ARM_BASE_ABS": true, + "R_ARM_CALL": true, + "R_ARM_COPY": true, + "R_ARM_GLOB_DAT": true, + "R_ARM_GNU_VTENTRY": true, + "R_ARM_GNU_VTINHERIT": true, + "R_ARM_GOT32": true, + "R_ARM_GOTOFF": true, + "R_ARM_GOTOFF12": true, + "R_ARM_GOTPC": true, + "R_ARM_GOTRELAX": true, + "R_ARM_GOT_ABS": true, + "R_ARM_GOT_BREL12": true, + "R_ARM_GOT_PREL": true, + "R_ARM_IRELATIVE": true, + "R_ARM_JUMP24": true, + "R_ARM_JUMP_SLOT": true, + "R_ARM_LDC_PC_G0": true, + "R_ARM_LDC_PC_G1": true, + "R_ARM_LDC_PC_G2": true, + "R_ARM_LDC_SB_G0": true, + "R_ARM_LDC_SB_G1": true, + "R_ARM_LDC_SB_G2": true, + "R_ARM_LDRS_PC_G0": true, + "R_ARM_LDRS_PC_G1": true, + "R_ARM_LDRS_PC_G2": true, + "R_ARM_LDRS_SB_G0": true, + "R_ARM_LDRS_SB_G1": true, + "R_ARM_LDRS_SB_G2": true, + "R_ARM_LDR_PC_G1": true, + "R_ARM_LDR_PC_G2": true, + "R_ARM_LDR_SBREL_11_10_NC": true, + "R_ARM_LDR_SB_G0": true, + "R_ARM_LDR_SB_G1": true, + "R_ARM_LDR_SB_G2": true, + "R_ARM_ME_TOO": true, + "R_ARM_MOVT_ABS": true, + "R_ARM_MOVT_BREL": true, + "R_ARM_MOVT_PREL": true, + "R_ARM_MOVW_ABS_NC": true, + "R_ARM_MOVW_BREL": true, + "R_ARM_MOVW_BREL_NC": true, + "R_ARM_MOVW_PREL_NC": true, + "R_ARM_NONE": true, + "R_ARM_PC13": true, + "R_ARM_PC24": true, + "R_ARM_PLT32": true, + "R_ARM_PLT32_ABS": true, + "R_ARM_PREL31": true, + "R_ARM_PRIVATE_0": true, + "R_ARM_PRIVATE_1": true, + "R_ARM_PRIVATE_10": true, + "R_ARM_PRIVATE_11": true, + "R_ARM_PRIVATE_12": true, + "R_ARM_PRIVATE_13": true, + "R_ARM_PRIVATE_14": true, + "R_ARM_PRIVATE_15": true, + "R_ARM_PRIVATE_2": true, + "R_ARM_PRIVATE_3": true, + "R_ARM_PRIVATE_4": true, + "R_ARM_PRIVATE_5": true, + "R_ARM_PRIVATE_6": true, + "R_ARM_PRIVATE_7": true, + "R_ARM_PRIVATE_8": true, + "R_ARM_PRIVATE_9": true, + "R_ARM_RABS32": true, + "R_ARM_RBASE": true, + "R_ARM_REL32": true, + "R_ARM_REL32_NOI": true, + "R_ARM_RELATIVE": true, + "R_ARM_RPC24": true, + "R_ARM_RREL32": true, + "R_ARM_RSBREL32": true, + "R_ARM_RXPC25": true, + "R_ARM_SBREL31": true, + "R_ARM_SBREL32": true, + "R_ARM_SWI24": true, + "R_ARM_TARGET1": true, + "R_ARM_TARGET2": true, + "R_ARM_THM_ABS5": true, + "R_ARM_THM_ALU_ABS_G0_NC": true, + "R_ARM_THM_ALU_ABS_G1_NC": true, + "R_ARM_THM_ALU_ABS_G2_NC": true, + "R_ARM_THM_ALU_ABS_G3": true, + "R_ARM_THM_ALU_PREL_11_0": true, + "R_ARM_THM_GOT_BREL12": true, + "R_ARM_THM_JUMP11": true, + "R_ARM_THM_JUMP19": true, + "R_ARM_THM_JUMP24": true, + "R_ARM_THM_JUMP6": true, + "R_ARM_THM_JUMP8": true, + "R_ARM_THM_MOVT_ABS": true, + "R_ARM_THM_MOVT_BREL": true, + "R_ARM_THM_MOVT_PREL": true, + "R_ARM_THM_MOVW_ABS_NC": true, + "R_ARM_THM_MOVW_BREL": true, + "R_ARM_THM_MOVW_BREL_NC": true, + "R_ARM_THM_MOVW_PREL_NC": true, + "R_ARM_THM_PC12": true, + "R_ARM_THM_PC22": true, + "R_ARM_THM_PC8": true, + "R_ARM_THM_RPC22": true, + "R_ARM_THM_SWI8": true, + "R_ARM_THM_TLS_CALL": true, + "R_ARM_THM_TLS_DESCSEQ16": true, + "R_ARM_THM_TLS_DESCSEQ32": true, + "R_ARM_THM_XPC22": true, + "R_ARM_TLS_CALL": true, + "R_ARM_TLS_DESCSEQ": true, + "R_ARM_TLS_DTPMOD32": true, + "R_ARM_TLS_DTPOFF32": true, + "R_ARM_TLS_GD32": true, + "R_ARM_TLS_GOTDESC": true, + "R_ARM_TLS_IE12GP": true, + "R_ARM_TLS_IE32": true, + "R_ARM_TLS_LDM32": true, + "R_ARM_TLS_LDO12": true, + "R_ARM_TLS_LDO32": true, + "R_ARM_TLS_LE12": true, + "R_ARM_TLS_LE32": true, + "R_ARM_TLS_TPOFF32": true, + "R_ARM_V4BX": true, + "R_ARM_XPC25": true, + "R_INFO": true, + "R_INFO32": true, + "R_MIPS": true, + "R_MIPS_16": true, + "R_MIPS_26": true, + "R_MIPS_32": true, + "R_MIPS_64": true, + "R_MIPS_ADD_IMMEDIATE": true, + "R_MIPS_CALL16": true, + "R_MIPS_CALL_HI16": true, + "R_MIPS_CALL_LO16": true, + "R_MIPS_DELETE": true, + "R_MIPS_GOT16": true, + "R_MIPS_GOT_DISP": true, + "R_MIPS_GOT_HI16": true, + "R_MIPS_GOT_LO16": true, + "R_MIPS_GOT_OFST": true, + "R_MIPS_GOT_PAGE": true, + "R_MIPS_GPREL16": true, + "R_MIPS_GPREL32": true, + "R_MIPS_HI16": true, + "R_MIPS_HIGHER": true, + "R_MIPS_HIGHEST": true, + "R_MIPS_INSERT_A": true, + "R_MIPS_INSERT_B": true, + "R_MIPS_JALR": true, + "R_MIPS_LITERAL": true, + "R_MIPS_LO16": true, + "R_MIPS_NONE": true, + "R_MIPS_PC16": true, + "R_MIPS_PJUMP": true, + "R_MIPS_REL16": true, + "R_MIPS_REL32": true, + "R_MIPS_RELGOT": true, + "R_MIPS_SCN_DISP": true, + "R_MIPS_SHIFT5": true, + "R_MIPS_SHIFT6": true, + "R_MIPS_SUB": true, + "R_MIPS_TLS_DTPMOD32": true, + "R_MIPS_TLS_DTPMOD64": true, + "R_MIPS_TLS_DTPREL32": true, + "R_MIPS_TLS_DTPREL64": true, + "R_MIPS_TLS_DTPREL_HI16": true, + "R_MIPS_TLS_DTPREL_LO16": true, + "R_MIPS_TLS_GD": true, + "R_MIPS_TLS_GOTTPREL": true, + "R_MIPS_TLS_LDM": true, + "R_MIPS_TLS_TPREL32": true, + "R_MIPS_TLS_TPREL64": true, + "R_MIPS_TLS_TPREL_HI16": true, + "R_MIPS_TLS_TPREL_LO16": true, + "R_PPC": true, + "R_PPC64": true, + "R_PPC64_ADDR14": true, + "R_PPC64_ADDR14_BRNTAKEN": true, + "R_PPC64_ADDR14_BRTAKEN": true, + "R_PPC64_ADDR16": true, + "R_PPC64_ADDR16_DS": true, + "R_PPC64_ADDR16_HA": true, + "R_PPC64_ADDR16_HI": true, + "R_PPC64_ADDR16_HIGH": true, + "R_PPC64_ADDR16_HIGHA": true, + "R_PPC64_ADDR16_HIGHER": true, + "R_PPC64_ADDR16_HIGHERA": true, + "R_PPC64_ADDR16_HIGHEST": true, + "R_PPC64_ADDR16_HIGHESTA": true, + "R_PPC64_ADDR16_LO": true, + "R_PPC64_ADDR16_LO_DS": true, + "R_PPC64_ADDR24": true, + "R_PPC64_ADDR32": true, + "R_PPC64_ADDR64": true, + "R_PPC64_ADDR64_LOCAL": true, + "R_PPC64_DTPMOD64": true, + "R_PPC64_DTPREL16": true, + "R_PPC64_DTPREL16_DS": true, + "R_PPC64_DTPREL16_HA": true, + "R_PPC64_DTPREL16_HI": true, + "R_PPC64_DTPREL16_HIGH": true, + "R_PPC64_DTPREL16_HIGHA": true, + "R_PPC64_DTPREL16_HIGHER": true, + "R_PPC64_DTPREL16_HIGHERA": true, + "R_PPC64_DTPREL16_HIGHEST": true, + "R_PPC64_DTPREL16_HIGHESTA": true, + "R_PPC64_DTPREL16_LO": true, + "R_PPC64_DTPREL16_LO_DS": true, + "R_PPC64_DTPREL64": true, + "R_PPC64_ENTRY": true, + "R_PPC64_GOT16": true, + "R_PPC64_GOT16_DS": true, + "R_PPC64_GOT16_HA": true, + "R_PPC64_GOT16_HI": true, + "R_PPC64_GOT16_LO": true, + "R_PPC64_GOT16_LO_DS": true, + "R_PPC64_GOT_DTPREL16_DS": true, + "R_PPC64_GOT_DTPREL16_HA": true, + "R_PPC64_GOT_DTPREL16_HI": true, + "R_PPC64_GOT_DTPREL16_LO_DS": true, + "R_PPC64_GOT_TLSGD16": true, + "R_PPC64_GOT_TLSGD16_HA": true, + "R_PPC64_GOT_TLSGD16_HI": true, + "R_PPC64_GOT_TLSGD16_LO": true, + "R_PPC64_GOT_TLSLD16": true, + "R_PPC64_GOT_TLSLD16_HA": true, + "R_PPC64_GOT_TLSLD16_HI": true, + "R_PPC64_GOT_TLSLD16_LO": true, + "R_PPC64_GOT_TPREL16_DS": true, + "R_PPC64_GOT_TPREL16_HA": true, + "R_PPC64_GOT_TPREL16_HI": true, + "R_PPC64_GOT_TPREL16_LO_DS": true, + "R_PPC64_IRELATIVE": true, + "R_PPC64_JMP_IREL": true, + "R_PPC64_JMP_SLOT": true, + "R_PPC64_NONE": true, + "R_PPC64_PLT16_LO_DS": true, + "R_PPC64_PLTGOT16": true, + "R_PPC64_PLTGOT16_DS": true, + "R_PPC64_PLTGOT16_HA": true, + "R_PPC64_PLTGOT16_HI": true, + "R_PPC64_PLTGOT16_LO": true, + "R_PPC64_PLTGOT_LO_DS": true, + "R_PPC64_REL14": true, + "R_PPC64_REL14_BRNTAKEN": true, + "R_PPC64_REL14_BRTAKEN": true, + "R_PPC64_REL16": true, + "R_PPC64_REL16DX_HA": true, + "R_PPC64_REL16_HA": true, + "R_PPC64_REL16_HI": true, + "R_PPC64_REL16_LO": true, + "R_PPC64_REL24": true, + "R_PPC64_REL24_NOTOC": true, + "R_PPC64_REL32": true, + "R_PPC64_REL64": true, + "R_PPC64_SECTOFF_DS": true, + "R_PPC64_SECTOFF_LO_DS": true, + "R_PPC64_TLS": true, + "R_PPC64_TLSGD": true, + "R_PPC64_TLSLD": true, + "R_PPC64_TOC": true, + "R_PPC64_TOC16": true, + "R_PPC64_TOC16_DS": true, + "R_PPC64_TOC16_HA": true, + "R_PPC64_TOC16_HI": true, + "R_PPC64_TOC16_LO": true, + "R_PPC64_TOC16_LO_DS": true, + "R_PPC64_TOCSAVE": true, + "R_PPC64_TPREL16": true, + "R_PPC64_TPREL16_DS": true, + "R_PPC64_TPREL16_HA": true, + "R_PPC64_TPREL16_HI": true, + "R_PPC64_TPREL16_HIGH": true, + "R_PPC64_TPREL16_HIGHA": true, + "R_PPC64_TPREL16_HIGHER": true, + "R_PPC64_TPREL16_HIGHERA": true, + "R_PPC64_TPREL16_HIGHEST": true, + "R_PPC64_TPREL16_HIGHESTA": true, + "R_PPC64_TPREL16_LO": true, + "R_PPC64_TPREL16_LO_DS": true, + "R_PPC64_TPREL64": true, + "R_PPC_ADDR14": true, + "R_PPC_ADDR14_BRNTAKEN": true, + "R_PPC_ADDR14_BRTAKEN": true, + "R_PPC_ADDR16": true, + "R_PPC_ADDR16_HA": true, + "R_PPC_ADDR16_HI": true, + "R_PPC_ADDR16_LO": true, + "R_PPC_ADDR24": true, + "R_PPC_ADDR32": true, + "R_PPC_COPY": true, + "R_PPC_DTPMOD32": true, + "R_PPC_DTPREL16": true, + "R_PPC_DTPREL16_HA": true, + "R_PPC_DTPREL16_HI": true, + "R_PPC_DTPREL16_LO": true, + "R_PPC_DTPREL32": true, + "R_PPC_EMB_BIT_FLD": true, + "R_PPC_EMB_MRKREF": true, + "R_PPC_EMB_NADDR16": true, + "R_PPC_EMB_NADDR16_HA": true, + "R_PPC_EMB_NADDR16_HI": true, + "R_PPC_EMB_NADDR16_LO": true, + "R_PPC_EMB_NADDR32": true, + "R_PPC_EMB_RELSDA": true, + "R_PPC_EMB_RELSEC16": true, + "R_PPC_EMB_RELST_HA": true, + "R_PPC_EMB_RELST_HI": true, + "R_PPC_EMB_RELST_LO": true, + "R_PPC_EMB_SDA21": true, + "R_PPC_EMB_SDA2I16": true, + "R_PPC_EMB_SDA2REL": true, + "R_PPC_EMB_SDAI16": true, + "R_PPC_GLOB_DAT": true, + "R_PPC_GOT16": true, + "R_PPC_GOT16_HA": true, + "R_PPC_GOT16_HI": true, + "R_PPC_GOT16_LO": true, + "R_PPC_GOT_TLSGD16": true, + "R_PPC_GOT_TLSGD16_HA": true, + "R_PPC_GOT_TLSGD16_HI": true, + "R_PPC_GOT_TLSGD16_LO": true, + "R_PPC_GOT_TLSLD16": true, + "R_PPC_GOT_TLSLD16_HA": true, + "R_PPC_GOT_TLSLD16_HI": true, + "R_PPC_GOT_TLSLD16_LO": true, + "R_PPC_GOT_TPREL16": true, + "R_PPC_GOT_TPREL16_HA": true, + "R_PPC_GOT_TPREL16_HI": true, + "R_PPC_GOT_TPREL16_LO": true, + "R_PPC_JMP_SLOT": true, + "R_PPC_LOCAL24PC": true, + "R_PPC_NONE": true, + "R_PPC_PLT16_HA": true, + "R_PPC_PLT16_HI": true, + "R_PPC_PLT16_LO": true, + "R_PPC_PLT32": true, + "R_PPC_PLTREL24": true, + "R_PPC_PLTREL32": true, + "R_PPC_REL14": true, + "R_PPC_REL14_BRNTAKEN": true, + "R_PPC_REL14_BRTAKEN": true, + "R_PPC_REL24": true, + "R_PPC_REL32": true, + "R_PPC_RELATIVE": true, + "R_PPC_SDAREL16": true, + "R_PPC_SECTOFF": true, + "R_PPC_SECTOFF_HA": true, + "R_PPC_SECTOFF_HI": true, + "R_PPC_SECTOFF_LO": true, + "R_PPC_TLS": true, + "R_PPC_TPREL16": true, + "R_PPC_TPREL16_HA": true, + "R_PPC_TPREL16_HI": true, + "R_PPC_TPREL16_LO": true, + "R_PPC_TPREL32": true, + "R_PPC_UADDR16": true, + "R_PPC_UADDR32": true, + "R_RISCV": true, + "R_RISCV_32": true, + "R_RISCV_32_PCREL": true, + "R_RISCV_64": true, + "R_RISCV_ADD16": true, + "R_RISCV_ADD32": true, + "R_RISCV_ADD64": true, + "R_RISCV_ADD8": true, + "R_RISCV_ALIGN": true, + "R_RISCV_BRANCH": true, + "R_RISCV_CALL": true, + "R_RISCV_CALL_PLT": true, + "R_RISCV_COPY": true, + "R_RISCV_GNU_VTENTRY": true, + "R_RISCV_GNU_VTINHERIT": true, + "R_RISCV_GOT_HI20": true, + "R_RISCV_GPREL_I": true, + "R_RISCV_GPREL_S": true, + "R_RISCV_HI20": true, + "R_RISCV_JAL": true, + "R_RISCV_JUMP_SLOT": true, + "R_RISCV_LO12_I": true, + "R_RISCV_LO12_S": true, + "R_RISCV_NONE": true, + "R_RISCV_PCREL_HI20": true, + "R_RISCV_PCREL_LO12_I": true, + "R_RISCV_PCREL_LO12_S": true, + "R_RISCV_RELATIVE": true, + "R_RISCV_RELAX": true, + "R_RISCV_RVC_BRANCH": true, + "R_RISCV_RVC_JUMP": true, + "R_RISCV_RVC_LUI": true, + "R_RISCV_SET16": true, + "R_RISCV_SET32": true, + "R_RISCV_SET6": true, + "R_RISCV_SET8": true, + "R_RISCV_SUB16": true, + "R_RISCV_SUB32": true, + "R_RISCV_SUB6": true, + "R_RISCV_SUB64": true, + "R_RISCV_SUB8": true, + "R_RISCV_TLS_DTPMOD32": true, + "R_RISCV_TLS_DTPMOD64": true, + "R_RISCV_TLS_DTPREL32": true, + "R_RISCV_TLS_DTPREL64": true, + "R_RISCV_TLS_GD_HI20": true, + "R_RISCV_TLS_GOT_HI20": true, + "R_RISCV_TLS_TPREL32": true, + "R_RISCV_TLS_TPREL64": true, + "R_RISCV_TPREL_ADD": true, + "R_RISCV_TPREL_HI20": true, + "R_RISCV_TPREL_I": true, + "R_RISCV_TPREL_LO12_I": true, + "R_RISCV_TPREL_LO12_S": true, + "R_RISCV_TPREL_S": true, + "R_SPARC": true, + "R_SPARC_10": true, + "R_SPARC_11": true, + "R_SPARC_13": true, + "R_SPARC_16": true, + "R_SPARC_22": true, + "R_SPARC_32": true, + "R_SPARC_5": true, + "R_SPARC_6": true, + "R_SPARC_64": true, + "R_SPARC_7": true, + "R_SPARC_8": true, + "R_SPARC_COPY": true, + "R_SPARC_DISP16": true, + "R_SPARC_DISP32": true, + "R_SPARC_DISP64": true, + "R_SPARC_DISP8": true, + "R_SPARC_GLOB_DAT": true, + "R_SPARC_GLOB_JMP": true, + "R_SPARC_GOT10": true, + "R_SPARC_GOT13": true, + "R_SPARC_GOT22": true, + "R_SPARC_H44": true, + "R_SPARC_HH22": true, + "R_SPARC_HI22": true, + "R_SPARC_HIPLT22": true, + "R_SPARC_HIX22": true, + "R_SPARC_HM10": true, + "R_SPARC_JMP_SLOT": true, + "R_SPARC_L44": true, + "R_SPARC_LM22": true, + "R_SPARC_LO10": true, + "R_SPARC_LOPLT10": true, + "R_SPARC_LOX10": true, + "R_SPARC_M44": true, + "R_SPARC_NONE": true, + "R_SPARC_OLO10": true, + "R_SPARC_PC10": true, + "R_SPARC_PC22": true, + "R_SPARC_PCPLT10": true, + "R_SPARC_PCPLT22": true, + "R_SPARC_PCPLT32": true, + "R_SPARC_PC_HH22": true, + "R_SPARC_PC_HM10": true, + "R_SPARC_PC_LM22": true, + "R_SPARC_PLT32": true, + "R_SPARC_PLT64": true, + "R_SPARC_REGISTER": true, + "R_SPARC_RELATIVE": true, + "R_SPARC_UA16": true, + "R_SPARC_UA32": true, + "R_SPARC_UA64": true, + "R_SPARC_WDISP16": true, + "R_SPARC_WDISP19": true, + "R_SPARC_WDISP22": true, + "R_SPARC_WDISP30": true, + "R_SPARC_WPLT30": true, + "R_SYM32": true, + "R_SYM64": true, + "R_TYPE32": true, + "R_TYPE64": true, + "R_X86_64": true, + "R_X86_64_16": true, + "R_X86_64_32": true, + "R_X86_64_32S": true, + "R_X86_64_64": true, + "R_X86_64_8": true, + "R_X86_64_COPY": true, + "R_X86_64_DTPMOD64": true, + "R_X86_64_DTPOFF32": true, + "R_X86_64_DTPOFF64": true, + "R_X86_64_GLOB_DAT": true, + "R_X86_64_GOT32": true, + "R_X86_64_GOT64": true, + "R_X86_64_GOTOFF64": true, + "R_X86_64_GOTPC32": true, + "R_X86_64_GOTPC32_TLSDESC": true, + "R_X86_64_GOTPC64": true, + "R_X86_64_GOTPCREL": true, + "R_X86_64_GOTPCREL64": true, + "R_X86_64_GOTPCRELX": true, + "R_X86_64_GOTPLT64": true, + "R_X86_64_GOTTPOFF": true, + "R_X86_64_IRELATIVE": true, + "R_X86_64_JMP_SLOT": true, + "R_X86_64_NONE": true, + "R_X86_64_PC16": true, + "R_X86_64_PC32": true, + "R_X86_64_PC32_BND": true, + "R_X86_64_PC64": true, + "R_X86_64_PC8": true, + "R_X86_64_PLT32": true, + "R_X86_64_PLT32_BND": true, + "R_X86_64_PLTOFF64": true, + "R_X86_64_RELATIVE": true, + "R_X86_64_RELATIVE64": true, + "R_X86_64_REX_GOTPCRELX": true, + "R_X86_64_SIZE32": true, + "R_X86_64_SIZE64": true, + "R_X86_64_TLSDESC": true, + "R_X86_64_TLSDESC_CALL": true, + "R_X86_64_TLSGD": true, + "R_X86_64_TLSLD": true, + "R_X86_64_TPOFF32": true, + "R_X86_64_TPOFF64": true, + "Rel32": true, + "Rel64": true, + "Rela32": true, + "Rela64": true, + "SHF_ALLOC": true, + "SHF_COMPRESSED": true, + "SHF_EXECINSTR": true, + "SHF_GROUP": true, + "SHF_INFO_LINK": true, + "SHF_LINK_ORDER": true, + "SHF_MASKOS": true, + "SHF_MASKPROC": true, + "SHF_MERGE": true, + "SHF_OS_NONCONFORMING": true, + "SHF_STRINGS": true, + "SHF_TLS": true, + "SHF_WRITE": true, + "SHN_ABS": true, + "SHN_COMMON": true, + "SHN_HIOS": true, + "SHN_HIPROC": true, + "SHN_HIRESERVE": true, + "SHN_LOOS": true, + "SHN_LOPROC": true, + "SHN_LORESERVE": true, + "SHN_UNDEF": true, + "SHN_XINDEX": true, + "SHT_DYNAMIC": true, + "SHT_DYNSYM": true, + "SHT_FINI_ARRAY": true, + "SHT_GNU_ATTRIBUTES": true, + "SHT_GNU_HASH": true, + "SHT_GNU_LIBLIST": true, + "SHT_GNU_VERDEF": true, + "SHT_GNU_VERNEED": true, + "SHT_GNU_VERSYM": true, + "SHT_GROUP": true, + "SHT_HASH": true, + "SHT_HIOS": true, + "SHT_HIPROC": true, + "SHT_HIUSER": true, + "SHT_INIT_ARRAY": true, + "SHT_LOOS": true, + "SHT_LOPROC": true, + "SHT_LOUSER": true, + "SHT_NOBITS": true, + "SHT_NOTE": true, + "SHT_NULL": true, + "SHT_PREINIT_ARRAY": true, + "SHT_PROGBITS": true, + "SHT_REL": true, + "SHT_RELA": true, + "SHT_SHLIB": true, + "SHT_STRTAB": true, + "SHT_SYMTAB": true, + "SHT_SYMTAB_SHNDX": true, + "STB_GLOBAL": true, + "STB_HIOS": true, + "STB_HIPROC": true, + "STB_LOCAL": true, + "STB_LOOS": true, + "STB_LOPROC": true, + "STB_WEAK": true, + "STT_COMMON": true, + "STT_FILE": true, + "STT_FUNC": true, + "STT_HIOS": true, + "STT_HIPROC": true, + "STT_LOOS": true, + "STT_LOPROC": true, + "STT_NOTYPE": true, + "STT_OBJECT": true, + "STT_SECTION": true, + "STT_TLS": true, + "STV_DEFAULT": true, + "STV_HIDDEN": true, + "STV_INTERNAL": true, + "STV_PROTECTED": true, + "ST_BIND": true, + "ST_INFO": true, + "ST_TYPE": true, + "ST_VISIBILITY": true, + "Section": true, + "Section32": true, + "Section64": true, + "SectionFlag": true, + "SectionHeader": true, + "SectionIndex": true, + "SectionType": true, + "Sym32": true, + "Sym32Size": true, + "Sym64": true, + "Sym64Size": true, + "SymBind": true, + "SymType": true, + "SymVis": true, + "Symbol": true, + "Type": true, + "Version": true, + }, + "debug/gosym": map[string]bool{ + "DecodingError": true, + "Func": true, + "LineTable": true, + "NewLineTable": true, + "NewTable": true, + "Obj": true, + "Sym": true, + "Table": true, + "UnknownFileError": true, + "UnknownLineError": true, + }, + "debug/macho": map[string]bool{ + "ARM64_RELOC_ADDEND": true, + "ARM64_RELOC_BRANCH26": true, + "ARM64_RELOC_GOT_LOAD_PAGE21": true, + "ARM64_RELOC_GOT_LOAD_PAGEOFF12": true, + "ARM64_RELOC_PAGE21": true, + "ARM64_RELOC_PAGEOFF12": true, + "ARM64_RELOC_POINTER_TO_GOT": true, + "ARM64_RELOC_SUBTRACTOR": true, + "ARM64_RELOC_TLVP_LOAD_PAGE21": true, + "ARM64_RELOC_TLVP_LOAD_PAGEOFF12": true, + "ARM64_RELOC_UNSIGNED": true, + "ARM_RELOC_BR24": true, + "ARM_RELOC_HALF": true, + "ARM_RELOC_HALF_SECTDIFF": true, + "ARM_RELOC_LOCAL_SECTDIFF": true, + "ARM_RELOC_PAIR": true, + "ARM_RELOC_PB_LA_PTR": true, + "ARM_RELOC_SECTDIFF": true, + "ARM_RELOC_VANILLA": true, + "ARM_THUMB_32BIT_BRANCH": true, + "ARM_THUMB_RELOC_BR22": true, + "Cpu": true, + "Cpu386": true, + "CpuAmd64": true, + "CpuArm": true, + "CpuArm64": true, + "CpuPpc": true, + "CpuPpc64": true, + "Dylib": true, + "DylibCmd": true, + "Dysymtab": true, + "DysymtabCmd": true, + "ErrNotFat": true, + "FatArch": true, + "FatArchHeader": true, + "FatFile": true, + "File": true, + "FileHeader": true, + "FlagAllModsBound": true, + "FlagAllowStackExecution": true, + "FlagAppExtensionSafe": true, + "FlagBindAtLoad": true, + "FlagBindsToWeak": true, + "FlagCanonical": true, + "FlagDeadStrippableDylib": true, + "FlagDyldLink": true, + "FlagForceFlat": true, + "FlagHasTLVDescriptors": true, + "FlagIncrLink": true, + "FlagLazyInit": true, + "FlagNoFixPrebinding": true, + "FlagNoHeapExecution": true, + "FlagNoMultiDefs": true, + "FlagNoReexportedDylibs": true, + "FlagNoUndefs": true, + "FlagPIE": true, + "FlagPrebindable": true, + "FlagPrebound": true, + "FlagRootSafe": true, + "FlagSetuidSafe": true, + "FlagSplitSegs": true, + "FlagSubsectionsViaSymbols": true, + "FlagTwoLevel": true, + "FlagWeakDefines": true, + "FormatError": true, + "GENERIC_RELOC_LOCAL_SECTDIFF": true, + "GENERIC_RELOC_PAIR": true, + "GENERIC_RELOC_PB_LA_PTR": true, + "GENERIC_RELOC_SECTDIFF": true, + "GENERIC_RELOC_TLV": true, + "GENERIC_RELOC_VANILLA": true, + "Load": true, + "LoadBytes": true, + "LoadCmd": true, + "LoadCmdDylib": true, + "LoadCmdDylinker": true, + "LoadCmdDysymtab": true, + "LoadCmdRpath": true, + "LoadCmdSegment": true, + "LoadCmdSegment64": true, + "LoadCmdSymtab": true, + "LoadCmdThread": true, + "LoadCmdUnixThread": true, + "Magic32": true, + "Magic64": true, + "MagicFat": true, + "NewFatFile": true, + "NewFile": true, + "Nlist32": true, + "Nlist64": true, + "Open": true, + "OpenFat": true, + "Regs386": true, + "RegsAMD64": true, + "Reloc": true, + "RelocTypeARM": true, + "RelocTypeARM64": true, + "RelocTypeGeneric": true, + "RelocTypeX86_64": true, + "Rpath": true, + "RpathCmd": true, + "Section": true, + "Section32": true, + "Section64": true, + "SectionHeader": true, + "Segment": true, + "Segment32": true, + "Segment64": true, + "SegmentHeader": true, + "Symbol": true, + "Symtab": true, + "SymtabCmd": true, + "Thread": true, + "Type": true, + "TypeBundle": true, + "TypeDylib": true, + "TypeExec": true, + "TypeObj": true, + "X86_64_RELOC_BRANCH": true, + "X86_64_RELOC_GOT": true, + "X86_64_RELOC_GOT_LOAD": true, + "X86_64_RELOC_SIGNED": true, + "X86_64_RELOC_SIGNED_1": true, + "X86_64_RELOC_SIGNED_2": true, + "X86_64_RELOC_SIGNED_4": true, + "X86_64_RELOC_SUBTRACTOR": true, + "X86_64_RELOC_TLV": true, + "X86_64_RELOC_UNSIGNED": true, + }, + "debug/pe": map[string]bool{ + "COFFSymbol": true, + "COFFSymbolSize": true, + "DataDirectory": true, + "File": true, + "FileHeader": true, + "FormatError": true, + "IMAGE_DIRECTORY_ENTRY_ARCHITECTURE": true, + "IMAGE_DIRECTORY_ENTRY_BASERELOC": true, + "IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT": true, + "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR": true, + "IMAGE_DIRECTORY_ENTRY_DEBUG": true, + "IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT": true, + "IMAGE_DIRECTORY_ENTRY_EXCEPTION": true, + "IMAGE_DIRECTORY_ENTRY_EXPORT": true, + "IMAGE_DIRECTORY_ENTRY_GLOBALPTR": true, + "IMAGE_DIRECTORY_ENTRY_IAT": true, + "IMAGE_DIRECTORY_ENTRY_IMPORT": true, + "IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG": true, + "IMAGE_DIRECTORY_ENTRY_RESOURCE": true, + "IMAGE_DIRECTORY_ENTRY_SECURITY": true, + "IMAGE_DIRECTORY_ENTRY_TLS": true, + "IMAGE_FILE_MACHINE_AM33": true, + "IMAGE_FILE_MACHINE_AMD64": true, + "IMAGE_FILE_MACHINE_ARM": true, + "IMAGE_FILE_MACHINE_ARM64": true, + "IMAGE_FILE_MACHINE_ARMNT": true, + "IMAGE_FILE_MACHINE_EBC": true, + "IMAGE_FILE_MACHINE_I386": true, + "IMAGE_FILE_MACHINE_IA64": true, + "IMAGE_FILE_MACHINE_M32R": true, + "IMAGE_FILE_MACHINE_MIPS16": true, + "IMAGE_FILE_MACHINE_MIPSFPU": true, + "IMAGE_FILE_MACHINE_MIPSFPU16": true, + "IMAGE_FILE_MACHINE_POWERPC": true, + "IMAGE_FILE_MACHINE_POWERPCFP": true, + "IMAGE_FILE_MACHINE_R4000": true, + "IMAGE_FILE_MACHINE_SH3": true, + "IMAGE_FILE_MACHINE_SH3DSP": true, + "IMAGE_FILE_MACHINE_SH4": true, + "IMAGE_FILE_MACHINE_SH5": true, + "IMAGE_FILE_MACHINE_THUMB": true, + "IMAGE_FILE_MACHINE_UNKNOWN": true, + "IMAGE_FILE_MACHINE_WCEMIPSV2": true, + "ImportDirectory": true, + "NewFile": true, + "Open": true, + "OptionalHeader32": true, + "OptionalHeader64": true, + "Reloc": true, + "Section": true, + "SectionHeader": true, + "SectionHeader32": true, + "StringTable": true, + "Symbol": true, + }, + "debug/plan9obj": map[string]bool{ + "File": true, + "FileHeader": true, + "Magic386": true, + "Magic64": true, + "MagicAMD64": true, + "MagicARM": true, + "NewFile": true, + "Open": true, + "Section": true, + "SectionHeader": true, + "Sym": true, + }, + "encoding": map[string]bool{ + "BinaryMarshaler": true, + "BinaryUnmarshaler": true, + "TextMarshaler": true, + "TextUnmarshaler": true, + }, + "encoding/ascii85": map[string]bool{ + "CorruptInputError": true, + "Decode": true, + "Encode": true, + "MaxEncodedLen": true, + "NewDecoder": true, + "NewEncoder": true, + }, + "encoding/asn1": map[string]bool{ + "BitString": true, + "ClassApplication": true, + "ClassContextSpecific": true, + "ClassPrivate": true, + "ClassUniversal": true, + "Enumerated": true, + "Flag": true, + "Marshal": true, + "MarshalWithParams": true, + "NullBytes": true, + "NullRawValue": true, + "ObjectIdentifier": true, + "RawContent": true, + "RawValue": true, + "StructuralError": true, + "SyntaxError": true, + "TagBitString": true, + "TagBoolean": true, + "TagEnum": true, + "TagGeneralString": true, + "TagGeneralizedTime": true, + "TagIA5String": true, + "TagInteger": true, + "TagNull": true, + "TagNumericString": true, + "TagOID": true, + "TagOctetString": true, + "TagPrintableString": true, + "TagSequence": true, + "TagSet": true, + "TagT61String": true, + "TagUTCTime": true, + "TagUTF8String": true, + "Unmarshal": true, + "UnmarshalWithParams": true, + }, + "encoding/base32": map[string]bool{ + "CorruptInputError": true, + "Encoding": true, + "HexEncoding": true, + "NewDecoder": true, + "NewEncoder": true, + "NewEncoding": true, + "NoPadding": true, + "StdEncoding": true, + "StdPadding": true, + }, + "encoding/base64": map[string]bool{ + "CorruptInputError": true, + "Encoding": true, + "NewDecoder": true, + "NewEncoder": true, + "NewEncoding": true, + "NoPadding": true, + "RawStdEncoding": true, + "RawURLEncoding": true, + "StdEncoding": true, + "StdPadding": true, + "URLEncoding": true, + }, + "encoding/binary": map[string]bool{ + "BigEndian": true, + "ByteOrder": true, + "LittleEndian": true, + "MaxVarintLen16": true, + "MaxVarintLen32": true, + "MaxVarintLen64": true, + "PutUvarint": true, + "PutVarint": true, + "Read": true, + "ReadUvarint": true, + "ReadVarint": true, + "Size": true, + "Uvarint": true, + "Varint": true, + "Write": true, + }, + "encoding/csv": map[string]bool{ + "ErrBareQuote": true, + "ErrFieldCount": true, + "ErrQuote": true, + "ErrTrailingComma": true, + "NewReader": true, + "NewWriter": true, + "ParseError": true, + "Reader": true, + "Writer": true, + }, + "encoding/gob": map[string]bool{ + "CommonType": true, + "Decoder": true, + "Encoder": true, + "GobDecoder": true, + "GobEncoder": true, + "NewDecoder": true, + "NewEncoder": true, + "Register": true, + "RegisterName": true, + }, + "encoding/hex": map[string]bool{ + "Decode": true, + "DecodeString": true, + "DecodedLen": true, + "Dump": true, + "Dumper": true, + "Encode": true, + "EncodeToString": true, + "EncodedLen": true, + "ErrLength": true, + "InvalidByteError": true, + "NewDecoder": true, + "NewEncoder": true, + }, + "encoding/json": map[string]bool{ + "Compact": true, + "Decoder": true, + "Delim": true, + "Encoder": true, + "HTMLEscape": true, + "Indent": true, + "InvalidUTF8Error": true, + "InvalidUnmarshalError": true, + "Marshal": true, + "MarshalIndent": true, + "Marshaler": true, + "MarshalerError": true, + "NewDecoder": true, + "NewEncoder": true, + "Number": true, + "RawMessage": true, + "SyntaxError": true, + "Token": true, + "Unmarshal": true, + "UnmarshalFieldError": true, + "UnmarshalTypeError": true, + "Unmarshaler": true, + "UnsupportedTypeError": true, + "UnsupportedValueError": true, + "Valid": true, + }, + "encoding/pem": map[string]bool{ + "Block": true, + "Decode": true, + "Encode": true, + "EncodeToMemory": true, + }, + "encoding/xml": map[string]bool{ + "Attr": true, + "CharData": true, + "Comment": true, + "CopyToken": true, + "Decoder": true, + "Directive": true, + "Encoder": true, + "EndElement": true, + "Escape": true, + "EscapeText": true, + "HTMLAutoClose": true, + "HTMLEntity": true, + "Header": true, + "Marshal": true, + "MarshalIndent": true, + "Marshaler": true, + "MarshalerAttr": true, + "Name": true, + "NewDecoder": true, + "NewEncoder": true, + "NewTokenDecoder": true, + "ProcInst": true, + "StartElement": true, + "SyntaxError": true, + "TagPathError": true, + "Token": true, + "TokenReader": true, + "Unmarshal": true, + "UnmarshalError": true, + "Unmarshaler": true, + "UnmarshalerAttr": true, + "UnsupportedTypeError": true, + }, + "errors": map[string]bool{ + "New": true, + }, + "expvar": map[string]bool{ + "Do": true, + "Float": true, + "Func": true, + "Get": true, + "Handler": true, + "Int": true, + "KeyValue": true, + "Map": true, + "NewFloat": true, + "NewInt": true, + "NewMap": true, + "NewString": true, + "Publish": true, + "String": true, + "Var": true, + }, + "flag": map[string]bool{ + "Arg": true, + "Args": true, + "Bool": true, + "BoolVar": true, + "CommandLine": true, + "ContinueOnError": true, + "Duration": true, + "DurationVar": true, + "ErrHelp": true, + "ErrorHandling": true, + "ExitOnError": true, + "Flag": true, + "FlagSet": true, + "Float64": true, + "Float64Var": true, + "Getter": true, + "Int": true, + "Int64": true, + "Int64Var": true, + "IntVar": true, + "Lookup": true, + "NArg": true, + "NFlag": true, + "NewFlagSet": true, + "PanicOnError": true, + "Parse": true, + "Parsed": true, + "PrintDefaults": true, + "Set": true, + "String": true, + "StringVar": true, + "Uint": true, + "Uint64": true, + "Uint64Var": true, + "UintVar": true, + "UnquoteUsage": true, + "Usage": true, + "Value": true, + "Var": true, + "Visit": true, + "VisitAll": true, + }, + "fmt": map[string]bool{ + "Errorf": true, + "Formatter": true, + "Fprint": true, + "Fprintf": true, + "Fprintln": true, + "Fscan": true, + "Fscanf": true, + "Fscanln": true, + "GoStringer": true, + "Print": true, + "Printf": true, + "Println": true, + "Scan": true, + "ScanState": true, + "Scanf": true, + "Scanln": true, + "Scanner": true, + "Sprint": true, + "Sprintf": true, + "Sprintln": true, + "Sscan": true, + "Sscanf": true, + "Sscanln": true, + "State": true, + "Stringer": true, + }, + "go/ast": map[string]bool{ + "ArrayType": true, + "AssignStmt": true, + "Bad": true, + "BadDecl": true, + "BadExpr": true, + "BadStmt": true, + "BasicLit": true, + "BinaryExpr": true, + "BlockStmt": true, + "BranchStmt": true, + "CallExpr": true, + "CaseClause": true, + "ChanDir": true, + "ChanType": true, + "CommClause": true, + "Comment": true, + "CommentGroup": true, + "CommentMap": true, + "CompositeLit": true, + "Con": true, + "DeclStmt": true, + "DeferStmt": true, + "Ellipsis": true, + "EmptyStmt": true, + "ExprStmt": true, + "Field": true, + "FieldFilter": true, + "FieldList": true, + "File": true, + "FileExports": true, + "Filter": true, + "FilterDecl": true, + "FilterFile": true, + "FilterFuncDuplicates": true, + "FilterImportDuplicates": true, + "FilterPackage": true, + "FilterUnassociatedComments": true, + "ForStmt": true, + "Fprint": true, + "Fun": true, + "FuncDecl": true, + "FuncLit": true, + "FuncType": true, + "GenDecl": true, + "GoStmt": true, + "Ident": true, + "IfStmt": true, + "ImportSpec": true, + "Importer": true, + "IncDecStmt": true, + "IndexExpr": true, + "Inspect": true, + "InterfaceType": true, + "IsExported": true, + "KeyValueExpr": true, + "LabeledStmt": true, + "Lbl": true, + "MapType": true, + "MergeMode": true, + "MergePackageFiles": true, + "NewCommentMap": true, + "NewIdent": true, + "NewObj": true, + "NewPackage": true, + "NewScope": true, + "Node": true, + "NotNilFilter": true, + "ObjKind": true, + "Object": true, + "Package": true, + "PackageExports": true, + "ParenExpr": true, + "Pkg": true, + "Print": true, + "RECV": true, + "RangeStmt": true, + "ReturnStmt": true, + "SEND": true, + "Scope": true, + "SelectStmt": true, + "SelectorExpr": true, + "SendStmt": true, + "SliceExpr": true, + "SortImports": true, + "StarExpr": true, + "StructType": true, + "SwitchStmt": true, + "Typ": true, + "TypeAssertExpr": true, + "TypeSpec": true, + "TypeSwitchStmt": true, + "UnaryExpr": true, + "ValueSpec": true, + "Var": true, + "Visitor": true, + "Walk": true, + }, + "go/build": map[string]bool{ + "AllowBinary": true, + "ArchChar": true, + "Context": true, + "Default": true, + "FindOnly": true, + "IgnoreVendor": true, + "Import": true, + "ImportComment": true, + "ImportDir": true, + "ImportMode": true, + "IsLocalImport": true, + "MultiplePackageError": true, + "NoGoError": true, + "Package": true, + "ToolDir": true, + }, + "go/constant": map[string]bool{ + "BinaryOp": true, + "BitLen": true, + "Bool": true, + "BoolVal": true, + "Bytes": true, + "Compare": true, + "Complex": true, + "Denom": true, + "Float": true, + "Float32Val": true, + "Float64Val": true, + "Imag": true, + "Int": true, + "Int64Val": true, + "Kind": true, + "MakeBool": true, + "MakeFloat64": true, + "MakeFromBytes": true, + "MakeFromLiteral": true, + "MakeImag": true, + "MakeInt64": true, + "MakeString": true, + "MakeUint64": true, + "MakeUnknown": true, + "Num": true, + "Real": true, + "Shift": true, + "Sign": true, + "String": true, + "StringVal": true, + "ToComplex": true, + "ToFloat": true, + "ToInt": true, + "Uint64Val": true, + "UnaryOp": true, + "Unknown": true, + }, + "go/doc": map[string]bool{ + "AllDecls": true, + "AllMethods": true, + "Example": true, + "Examples": true, + "Filter": true, + "Func": true, + "IllegalPrefixes": true, + "IsPredeclared": true, + "Mode": true, + "New": true, + "Note": true, + "Package": true, + "PreserveAST": true, + "Synopsis": true, + "ToHTML": true, + "ToText": true, + "Type": true, + "Value": true, + }, + "go/format": map[string]bool{ + "Node": true, + "Source": true, + }, + "go/importer": map[string]bool{ + "Default": true, + "For": true, + "ForCompiler": true, + "Lookup": true, + }, + "go/parser": map[string]bool{ + "AllErrors": true, + "DeclarationErrors": true, + "ImportsOnly": true, + "Mode": true, + "PackageClauseOnly": true, + "ParseComments": true, + "ParseDir": true, + "ParseExpr": true, + "ParseExprFrom": true, + "ParseFile": true, + "SpuriousErrors": true, + "Trace": true, + }, + "go/printer": map[string]bool{ + "CommentedNode": true, + "Config": true, + "Fprint": true, + "Mode": true, + "RawFormat": true, + "SourcePos": true, + "TabIndent": true, + "UseSpaces": true, + }, + "go/scanner": map[string]bool{ + "Error": true, + "ErrorHandler": true, + "ErrorList": true, + "Mode": true, + "PrintError": true, + "ScanComments": true, + "Scanner": true, + }, + "go/token": map[string]bool{ + "ADD": true, + "ADD_ASSIGN": true, + "AND": true, + "AND_ASSIGN": true, + "AND_NOT": true, + "AND_NOT_ASSIGN": true, + "ARROW": true, + "ASSIGN": true, + "BREAK": true, + "CASE": true, + "CHAN": true, + "CHAR": true, + "COLON": true, + "COMMA": true, + "COMMENT": true, + "CONST": true, + "CONTINUE": true, + "DEC": true, + "DEFAULT": true, + "DEFER": true, + "DEFINE": true, + "ELLIPSIS": true, + "ELSE": true, + "EOF": true, + "EQL": true, + "FALLTHROUGH": true, + "FLOAT": true, + "FOR": true, + "FUNC": true, + "File": true, + "FileSet": true, + "GEQ": true, + "GO": true, + "GOTO": true, + "GTR": true, + "HighestPrec": true, + "IDENT": true, + "IF": true, + "ILLEGAL": true, + "IMAG": true, + "IMPORT": true, + "INC": true, + "INT": true, + "INTERFACE": true, + "LAND": true, + "LBRACE": true, + "LBRACK": true, + "LEQ": true, + "LOR": true, + "LPAREN": true, + "LSS": true, + "Lookup": true, + "LowestPrec": true, + "MAP": true, + "MUL": true, + "MUL_ASSIGN": true, + "NEQ": true, + "NOT": true, + "NewFileSet": true, + "NoPos": true, + "OR": true, + "OR_ASSIGN": true, + "PACKAGE": true, + "PERIOD": true, + "Pos": true, + "Position": true, + "QUO": true, + "QUO_ASSIGN": true, + "RANGE": true, + "RBRACE": true, + "RBRACK": true, + "REM": true, + "REM_ASSIGN": true, + "RETURN": true, + "RPAREN": true, + "SELECT": true, + "SEMICOLON": true, + "SHL": true, + "SHL_ASSIGN": true, + "SHR": true, + "SHR_ASSIGN": true, + "STRING": true, + "STRUCT": true, + "SUB": true, + "SUB_ASSIGN": true, + "SWITCH": true, + "TYPE": true, + "Token": true, + "UnaryPrec": true, + "VAR": true, + "XOR": true, + "XOR_ASSIGN": true, + }, + "go/types": map[string]bool{ + "Array": true, + "AssertableTo": true, + "AssignableTo": true, + "Basic": true, + "BasicInfo": true, + "BasicKind": true, + "Bool": true, + "Builtin": true, + "Byte": true, + "Chan": true, + "ChanDir": true, + "Checker": true, + "Comparable": true, + "Complex128": true, + "Complex64": true, + "Config": true, + "Const": true, + "ConvertibleTo": true, + "DefPredeclaredTestFuncs": true, + "Default": true, + "Error": true, + "Eval": true, + "ExprString": true, + "FieldVal": true, + "Float32": true, + "Float64": true, + "Func": true, + "Id": true, + "Identical": true, + "IdenticalIgnoreTags": true, + "Implements": true, + "ImportMode": true, + "Importer": true, + "ImporterFrom": true, + "Info": true, + "Initializer": true, + "Int": true, + "Int16": true, + "Int32": true, + "Int64": true, + "Int8": true, + "Interface": true, + "Invalid": true, + "IsBoolean": true, + "IsComplex": true, + "IsConstType": true, + "IsFloat": true, + "IsInteger": true, + "IsInterface": true, + "IsNumeric": true, + "IsOrdered": true, + "IsString": true, + "IsUnsigned": true, + "IsUntyped": true, + "Label": true, + "LookupFieldOrMethod": true, + "Map": true, + "MethodExpr": true, + "MethodSet": true, + "MethodVal": true, + "MissingMethod": true, + "Named": true, + "NewArray": true, + "NewChan": true, + "NewChecker": true, + "NewConst": true, + "NewField": true, + "NewFunc": true, + "NewInterface": true, + "NewInterfaceType": true, + "NewLabel": true, + "NewMap": true, + "NewMethodSet": true, + "NewNamed": true, + "NewPackage": true, + "NewParam": true, + "NewPkgName": true, + "NewPointer": true, + "NewScope": true, + "NewSignature": true, + "NewSlice": true, + "NewStruct": true, + "NewTuple": true, + "NewTypeName": true, + "NewVar": true, + "Nil": true, + "ObjectString": true, + "Package": true, + "PkgName": true, + "Pointer": true, + "Qualifier": true, + "RecvOnly": true, + "RelativeTo": true, + "Rune": true, + "Scope": true, + "Selection": true, + "SelectionKind": true, + "SelectionString": true, + "SendOnly": true, + "SendRecv": true, + "Signature": true, + "Sizes": true, + "SizesFor": true, + "Slice": true, + "StdSizes": true, + "String": true, + "Struct": true, + "Tuple": true, + "Typ": true, + "Type": true, + "TypeAndValue": true, + "TypeName": true, + "TypeString": true, + "Uint": true, + "Uint16": true, + "Uint32": true, + "Uint64": true, + "Uint8": true, + "Uintptr": true, + "Universe": true, + "Unsafe": true, + "UnsafePointer": true, + "UntypedBool": true, + "UntypedComplex": true, + "UntypedFloat": true, + "UntypedInt": true, + "UntypedNil": true, + "UntypedRune": true, + "UntypedString": true, + "Var": true, + "WriteExpr": true, + "WriteSignature": true, + "WriteType": true, + }, + "hash": map[string]bool{ + "Hash": true, + "Hash32": true, + "Hash64": true, + }, + "hash/adler32": map[string]bool{ + "Checksum": true, + "New": true, + "Size": true, + }, + "hash/crc32": map[string]bool{ + "Castagnoli": true, + "Checksum": true, + "ChecksumIEEE": true, + "IEEE": true, + "IEEETable": true, + "Koopman": true, + "MakeTable": true, + "New": true, + "NewIEEE": true, + "Size": true, + "Table": true, + "Update": true, + }, + "hash/crc64": map[string]bool{ + "Checksum": true, + "ECMA": true, + "ISO": true, + "MakeTable": true, + "New": true, + "Size": true, + "Table": true, + "Update": true, + }, + "hash/fnv": map[string]bool{ + "New128": true, + "New128a": true, + "New32": true, + "New32a": true, + "New64": true, + "New64a": true, + }, + "html": map[string]bool{ + "EscapeString": true, + "UnescapeString": true, + }, + "html/template": map[string]bool{ + "CSS": true, + "ErrAmbigContext": true, + "ErrBadHTML": true, + "ErrBranchEnd": true, + "ErrEndContext": true, + "ErrNoSuchTemplate": true, + "ErrOutputContext": true, + "ErrPartialCharset": true, + "ErrPartialEscape": true, + "ErrPredefinedEscaper": true, + "ErrRangeLoopReentry": true, + "ErrSlashAmbig": true, + "Error": true, + "ErrorCode": true, + "FuncMap": true, + "HTML": true, + "HTMLAttr": true, + "HTMLEscape": true, + "HTMLEscapeString": true, + "HTMLEscaper": true, + "IsTrue": true, + "JS": true, + "JSEscape": true, + "JSEscapeString": true, + "JSEscaper": true, + "JSStr": true, + "Must": true, + "New": true, + "OK": true, + "ParseFiles": true, + "ParseGlob": true, + "Srcset": true, + "Template": true, + "URL": true, + "URLQueryEscaper": true, + }, + "image": map[string]bool{ + "Alpha": true, + "Alpha16": true, + "Black": true, + "CMYK": true, + "Config": true, + "Decode": true, + "DecodeConfig": true, + "ErrFormat": true, + "Gray": true, + "Gray16": true, + "Image": true, + "NRGBA": true, + "NRGBA64": true, + "NYCbCrA": true, + "NewAlpha": true, + "NewAlpha16": true, + "NewCMYK": true, + "NewGray": true, + "NewGray16": true, + "NewNRGBA": true, + "NewNRGBA64": true, + "NewNYCbCrA": true, + "NewPaletted": true, + "NewRGBA": true, + "NewRGBA64": true, + "NewUniform": true, + "NewYCbCr": true, + "Opaque": true, + "Paletted": true, + "PalettedImage": true, + "Point": true, + "Pt": true, + "RGBA": true, + "RGBA64": true, + "Rect": true, + "Rectangle": true, + "RegisterFormat": true, + "Transparent": true, + "Uniform": true, + "White": true, + "YCbCr": true, + "YCbCrSubsampleRatio": true, + "YCbCrSubsampleRatio410": true, + "YCbCrSubsampleRatio411": true, + "YCbCrSubsampleRatio420": true, + "YCbCrSubsampleRatio422": true, + "YCbCrSubsampleRatio440": true, + "YCbCrSubsampleRatio444": true, + "ZP": true, + "ZR": true, + }, + "image/color": map[string]bool{ + "Alpha": true, + "Alpha16": true, + "Alpha16Model": true, + "AlphaModel": true, + "Black": true, + "CMYK": true, + "CMYKModel": true, + "CMYKToRGB": true, + "Color": true, + "Gray": true, + "Gray16": true, + "Gray16Model": true, + "GrayModel": true, + "Model": true, + "ModelFunc": true, + "NRGBA": true, + "NRGBA64": true, + "NRGBA64Model": true, + "NRGBAModel": true, + "NYCbCrA": true, + "NYCbCrAModel": true, + "Opaque": true, + "Palette": true, + "RGBA": true, + "RGBA64": true, + "RGBA64Model": true, + "RGBAModel": true, + "RGBToCMYK": true, + "RGBToYCbCr": true, + "Transparent": true, + "White": true, + "YCbCr": true, + "YCbCrModel": true, + "YCbCrToRGB": true, + }, + "image/color/palette": map[string]bool{ + "Plan9": true, + "WebSafe": true, + }, + "image/draw": map[string]bool{ + "Draw": true, + "DrawMask": true, + "Drawer": true, + "FloydSteinberg": true, + "Image": true, + "Op": true, + "Over": true, + "Quantizer": true, + "Src": true, + }, + "image/gif": map[string]bool{ + "Decode": true, + "DecodeAll": true, + "DecodeConfig": true, + "DisposalBackground": true, + "DisposalNone": true, + "DisposalPrevious": true, + "Encode": true, + "EncodeAll": true, + "GIF": true, + "Options": true, + }, + "image/jpeg": map[string]bool{ + "Decode": true, + "DecodeConfig": true, + "DefaultQuality": true, + "Encode": true, + "FormatError": true, + "Options": true, + "Reader": true, + "UnsupportedError": true, + }, + "image/png": map[string]bool{ + "BestCompression": true, + "BestSpeed": true, + "CompressionLevel": true, + "Decode": true, + "DecodeConfig": true, + "DefaultCompression": true, + "Encode": true, + "Encoder": true, + "EncoderBuffer": true, + "EncoderBufferPool": true, + "FormatError": true, + "NoCompression": true, + "UnsupportedError": true, + }, + "index/suffixarray": map[string]bool{ + "Index": true, + "New": true, + }, + "io": map[string]bool{ + "ByteReader": true, + "ByteScanner": true, + "ByteWriter": true, + "Closer": true, + "Copy": true, + "CopyBuffer": true, + "CopyN": true, + "EOF": true, + "ErrClosedPipe": true, + "ErrNoProgress": true, + "ErrShortBuffer": true, + "ErrShortWrite": true, + "ErrUnexpectedEOF": true, + "LimitReader": true, + "LimitedReader": true, + "MultiReader": true, + "MultiWriter": true, + "NewSectionReader": true, + "Pipe": true, + "PipeReader": true, + "PipeWriter": true, + "ReadAtLeast": true, + "ReadCloser": true, + "ReadFull": true, + "ReadSeeker": true, + "ReadWriteCloser": true, + "ReadWriteSeeker": true, + "ReadWriter": true, + "Reader": true, + "ReaderAt": true, + "ReaderFrom": true, + "RuneReader": true, + "RuneScanner": true, + "SectionReader": true, + "SeekCurrent": true, + "SeekEnd": true, + "SeekStart": true, + "Seeker": true, + "StringWriter": true, + "TeeReader": true, + "WriteCloser": true, + "WriteSeeker": true, + "WriteString": true, + "Writer": true, + "WriterAt": true, + "WriterTo": true, + }, + "io/ioutil": map[string]bool{ + "Discard": true, + "NopCloser": true, + "ReadAll": true, + "ReadDir": true, + "ReadFile": true, + "TempDir": true, + "TempFile": true, + "WriteFile": true, + }, + "log": map[string]bool{ + "Fatal": true, + "Fatalf": true, + "Fatalln": true, + "Flags": true, + "LUTC": true, + "Ldate": true, + "Llongfile": true, + "Lmicroseconds": true, + "Logger": true, + "Lshortfile": true, + "LstdFlags": true, + "Ltime": true, + "New": true, + "Output": true, + "Panic": true, + "Panicf": true, + "Panicln": true, + "Prefix": true, + "Print": true, + "Printf": true, + "Println": true, + "SetFlags": true, + "SetOutput": true, + "SetPrefix": true, + }, + "log/syslog": map[string]bool{ + "Dial": true, + "LOG_ALERT": true, + "LOG_AUTH": true, + "LOG_AUTHPRIV": true, + "LOG_CRIT": true, + "LOG_CRON": true, + "LOG_DAEMON": true, + "LOG_DEBUG": true, + "LOG_EMERG": true, + "LOG_ERR": true, + "LOG_FTP": true, + "LOG_INFO": true, + "LOG_KERN": true, + "LOG_LOCAL0": true, + "LOG_LOCAL1": true, + "LOG_LOCAL2": true, + "LOG_LOCAL3": true, + "LOG_LOCAL4": true, + "LOG_LOCAL5": true, + "LOG_LOCAL6": true, + "LOG_LOCAL7": true, + "LOG_LPR": true, + "LOG_MAIL": true, + "LOG_NEWS": true, + "LOG_NOTICE": true, + "LOG_SYSLOG": true, + "LOG_USER": true, + "LOG_UUCP": true, + "LOG_WARNING": true, + "New": true, + "NewLogger": true, + "Priority": true, + "Writer": true, + }, + "math": map[string]bool{ + "Abs": true, + "Acos": true, + "Acosh": true, + "Asin": true, + "Asinh": true, + "Atan": true, + "Atan2": true, + "Atanh": true, + "Cbrt": true, + "Ceil": true, + "Copysign": true, + "Cos": true, + "Cosh": true, + "Dim": true, + "E": true, + "Erf": true, + "Erfc": true, + "Erfcinv": true, + "Erfinv": true, + "Exp": true, + "Exp2": true, + "Expm1": true, + "Float32bits": true, + "Float32frombits": true, + "Float64bits": true, + "Float64frombits": true, + "Floor": true, + "Frexp": true, + "Gamma": true, + "Hypot": true, + "Ilogb": true, + "Inf": true, + "IsInf": true, + "IsNaN": true, + "J0": true, + "J1": true, + "Jn": true, + "Ldexp": true, + "Lgamma": true, + "Ln10": true, + "Ln2": true, + "Log": true, + "Log10": true, + "Log10E": true, + "Log1p": true, + "Log2": true, + "Log2E": true, + "Logb": true, + "Max": true, + "MaxFloat32": true, + "MaxFloat64": true, + "MaxInt16": true, + "MaxInt32": true, + "MaxInt64": true, + "MaxInt8": true, + "MaxUint16": true, + "MaxUint32": true, + "MaxUint64": true, + "MaxUint8": true, + "Min": true, + "MinInt16": true, + "MinInt32": true, + "MinInt64": true, + "MinInt8": true, + "Mod": true, + "Modf": true, + "NaN": true, + "Nextafter": true, + "Nextafter32": true, + "Phi": true, + "Pi": true, + "Pow": true, + "Pow10": true, + "Remainder": true, + "Round": true, + "RoundToEven": true, + "Signbit": true, + "Sin": true, + "Sincos": true, + "Sinh": true, + "SmallestNonzeroFloat32": true, + "SmallestNonzeroFloat64": true, + "Sqrt": true, + "Sqrt2": true, + "SqrtE": true, + "SqrtPhi": true, + "SqrtPi": true, + "Tan": true, + "Tanh": true, + "Trunc": true, + "Y0": true, + "Y1": true, + "Yn": true, + }, + "math/big": map[string]bool{ + "Above": true, + "Accuracy": true, + "AwayFromZero": true, + "Below": true, + "ErrNaN": true, + "Exact": true, + "Float": true, + "Int": true, + "Jacobi": true, + "MaxBase": true, + "MaxExp": true, + "MaxPrec": true, + "MinExp": true, + "NewFloat": true, + "NewInt": true, + "NewRat": true, + "ParseFloat": true, + "Rat": true, + "RoundingMode": true, + "ToNearestAway": true, + "ToNearestEven": true, + "ToNegativeInf": true, + "ToPositiveInf": true, + "ToZero": true, + "Word": true, + }, + "math/bits": map[string]bool{ + "Add": true, + "Add32": true, + "Add64": true, + "Div": true, + "Div32": true, + "Div64": true, + "LeadingZeros": true, + "LeadingZeros16": true, + "LeadingZeros32": true, + "LeadingZeros64": true, + "LeadingZeros8": true, + "Len": true, + "Len16": true, + "Len32": true, + "Len64": true, + "Len8": true, + "Mul": true, + "Mul32": true, + "Mul64": true, + "OnesCount": true, + "OnesCount16": true, + "OnesCount32": true, + "OnesCount64": true, + "OnesCount8": true, + "Reverse": true, + "Reverse16": true, + "Reverse32": true, + "Reverse64": true, + "Reverse8": true, + "ReverseBytes": true, + "ReverseBytes16": true, + "ReverseBytes32": true, + "ReverseBytes64": true, + "RotateLeft": true, + "RotateLeft16": true, + "RotateLeft32": true, + "RotateLeft64": true, + "RotateLeft8": true, + "Sub": true, + "Sub32": true, + "Sub64": true, + "TrailingZeros": true, + "TrailingZeros16": true, + "TrailingZeros32": true, + "TrailingZeros64": true, + "TrailingZeros8": true, + "UintSize": true, + }, + "math/cmplx": map[string]bool{ + "Abs": true, + "Acos": true, + "Acosh": true, + "Asin": true, + "Asinh": true, + "Atan": true, + "Atanh": true, + "Conj": true, + "Cos": true, + "Cosh": true, + "Cot": true, + "Exp": true, + "Inf": true, + "IsInf": true, + "IsNaN": true, + "Log": true, + "Log10": true, + "NaN": true, + "Phase": true, + "Polar": true, + "Pow": true, + "Rect": true, + "Sin": true, + "Sinh": true, + "Sqrt": true, + "Tan": true, + "Tanh": true, + }, + "math/rand": map[string]bool{ + "ExpFloat64": true, + "Float32": true, + "Float64": true, + "Int": true, + "Int31": true, + "Int31n": true, + "Int63": true, + "Int63n": true, + "Intn": true, + "New": true, + "NewSource": true, + "NewZipf": true, + "NormFloat64": true, + "Perm": true, + "Rand": true, + "Read": true, + "Seed": true, + "Shuffle": true, + "Source": true, + "Source64": true, + "Uint32": true, + "Uint64": true, + "Zipf": true, + }, + "mime": map[string]bool{ + "AddExtensionType": true, + "BEncoding": true, + "ErrInvalidMediaParameter": true, + "ExtensionsByType": true, + "FormatMediaType": true, + "ParseMediaType": true, + "QEncoding": true, + "TypeByExtension": true, + "WordDecoder": true, + "WordEncoder": true, + }, + "mime/multipart": map[string]bool{ + "ErrMessageTooLarge": true, + "File": true, + "FileHeader": true, + "Form": true, + "NewReader": true, + "NewWriter": true, + "Part": true, + "Reader": true, + "Writer": true, + }, + "mime/quotedprintable": map[string]bool{ + "NewReader": true, + "NewWriter": true, + "Reader": true, + "Writer": true, + }, + "net": map[string]bool{ + "Addr": true, + "AddrError": true, + "Buffers": true, + "CIDRMask": true, + "Conn": true, + "DNSConfigError": true, + "DNSError": true, + "DefaultResolver": true, + "Dial": true, + "DialIP": true, + "DialTCP": true, + "DialTimeout": true, + "DialUDP": true, + "DialUnix": true, + "Dialer": true, + "ErrWriteToConnected": true, + "Error": true, + "FileConn": true, + "FileListener": true, + "FilePacketConn": true, + "FlagBroadcast": true, + "FlagLoopback": true, + "FlagMulticast": true, + "FlagPointToPoint": true, + "FlagUp": true, + "Flags": true, + "HardwareAddr": true, + "IP": true, + "IPAddr": true, + "IPConn": true, + "IPMask": true, + "IPNet": true, + "IPv4": true, + "IPv4Mask": true, + "IPv4allrouter": true, + "IPv4allsys": true, + "IPv4bcast": true, + "IPv4len": true, + "IPv4zero": true, + "IPv6interfacelocalallnodes": true, + "IPv6len": true, + "IPv6linklocalallnodes": true, + "IPv6linklocalallrouters": true, + "IPv6loopback": true, + "IPv6unspecified": true, + "IPv6zero": true, + "Interface": true, + "InterfaceAddrs": true, + "InterfaceByIndex": true, + "InterfaceByName": true, + "Interfaces": true, + "InvalidAddrError": true, + "JoinHostPort": true, + "Listen": true, + "ListenConfig": true, + "ListenIP": true, + "ListenMulticastUDP": true, + "ListenPacket": true, + "ListenTCP": true, + "ListenUDP": true, + "ListenUnix": true, + "ListenUnixgram": true, + "Listener": true, + "LookupAddr": true, + "LookupCNAME": true, + "LookupHost": true, + "LookupIP": true, + "LookupMX": true, + "LookupNS": true, + "LookupPort": true, + "LookupSRV": true, + "LookupTXT": true, + "MX": true, + "NS": true, + "OpError": true, + "PacketConn": true, + "ParseCIDR": true, + "ParseError": true, + "ParseIP": true, + "ParseMAC": true, + "Pipe": true, + "ResolveIPAddr": true, + "ResolveTCPAddr": true, + "ResolveUDPAddr": true, + "ResolveUnixAddr": true, + "Resolver": true, + "SRV": true, + "SplitHostPort": true, + "TCPAddr": true, + "TCPConn": true, + "TCPListener": true, + "UDPAddr": true, + "UDPConn": true, + "UnixAddr": true, + "UnixConn": true, + "UnixListener": true, + "UnknownNetworkError": true, + }, + "net/http": map[string]bool{ + "CanonicalHeaderKey": true, + "Client": true, + "CloseNotifier": true, + "ConnState": true, + "Cookie": true, + "CookieJar": true, + "DefaultClient": true, + "DefaultMaxHeaderBytes": true, + "DefaultMaxIdleConnsPerHost": true, + "DefaultServeMux": true, + "DefaultTransport": true, + "DetectContentType": true, + "Dir": true, + "ErrAbortHandler": true, + "ErrBodyNotAllowed": true, + "ErrBodyReadAfterClose": true, + "ErrContentLength": true, + "ErrHandlerTimeout": true, + "ErrHeaderTooLong": true, + "ErrHijacked": true, + "ErrLineTooLong": true, + "ErrMissingBoundary": true, + "ErrMissingContentLength": true, + "ErrMissingFile": true, + "ErrNoCookie": true, + "ErrNoLocation": true, + "ErrNotMultipart": true, + "ErrNotSupported": true, + "ErrServerClosed": true, + "ErrShortBody": true, + "ErrSkipAltProtocol": true, + "ErrUnexpectedTrailer": true, + "ErrUseLastResponse": true, + "ErrWriteAfterFlush": true, + "Error": true, + "File": true, + "FileServer": true, + "FileSystem": true, + "Flusher": true, + "Get": true, + "Handle": true, + "HandleFunc": true, + "Handler": true, + "HandlerFunc": true, + "Head": true, + "Header": true, + "Hijacker": true, + "ListenAndServe": true, + "ListenAndServeTLS": true, + "LocalAddrContextKey": true, + "MaxBytesReader": true, + "MethodConnect": true, + "MethodDelete": true, + "MethodGet": true, + "MethodHead": true, + "MethodOptions": true, + "MethodPatch": true, + "MethodPost": true, + "MethodPut": true, + "MethodTrace": true, + "NewFileTransport": true, + "NewRequest": true, + "NewServeMux": true, + "NoBody": true, + "NotFound": true, + "NotFoundHandler": true, + "ParseHTTPVersion": true, + "ParseTime": true, + "Post": true, + "PostForm": true, + "ProtocolError": true, + "ProxyFromEnvironment": true, + "ProxyURL": true, + "PushOptions": true, + "Pusher": true, + "ReadRequest": true, + "ReadResponse": true, + "Redirect": true, + "RedirectHandler": true, + "Request": true, + "Response": true, + "ResponseWriter": true, + "RoundTripper": true, + "SameSite": true, + "SameSiteDefaultMode": true, + "SameSiteLaxMode": true, + "SameSiteStrictMode": true, + "Serve": true, + "ServeContent": true, + "ServeFile": true, + "ServeMux": true, + "ServeTLS": true, + "Server": true, + "ServerContextKey": true, + "SetCookie": true, + "StateActive": true, + "StateClosed": true, + "StateHijacked": true, + "StateIdle": true, + "StateNew": true, + "StatusAccepted": true, + "StatusAlreadyReported": true, + "StatusBadGateway": true, + "StatusBadRequest": true, + "StatusConflict": true, + "StatusContinue": true, + "StatusCreated": true, + "StatusExpectationFailed": true, + "StatusFailedDependency": true, + "StatusForbidden": true, + "StatusFound": true, + "StatusGatewayTimeout": true, + "StatusGone": true, + "StatusHTTPVersionNotSupported": true, + "StatusIMUsed": true, + "StatusInsufficientStorage": true, + "StatusInternalServerError": true, + "StatusLengthRequired": true, + "StatusLocked": true, + "StatusLoopDetected": true, + "StatusMethodNotAllowed": true, + "StatusMisdirectedRequest": true, + "StatusMovedPermanently": true, + "StatusMultiStatus": true, + "StatusMultipleChoices": true, + "StatusNetworkAuthenticationRequired": true, + "StatusNoContent": true, + "StatusNonAuthoritativeInfo": true, + "StatusNotAcceptable": true, + "StatusNotExtended": true, + "StatusNotFound": true, + "StatusNotImplemented": true, + "StatusNotModified": true, + "StatusOK": true, + "StatusPartialContent": true, + "StatusPaymentRequired": true, + "StatusPermanentRedirect": true, + "StatusPreconditionFailed": true, + "StatusPreconditionRequired": true, + "StatusProcessing": true, + "StatusProxyAuthRequired": true, + "StatusRequestEntityTooLarge": true, + "StatusRequestHeaderFieldsTooLarge": true, + "StatusRequestTimeout": true, + "StatusRequestURITooLong": true, + "StatusRequestedRangeNotSatisfiable": true, + "StatusResetContent": true, + "StatusSeeOther": true, + "StatusServiceUnavailable": true, + "StatusSwitchingProtocols": true, + "StatusTeapot": true, + "StatusTemporaryRedirect": true, + "StatusText": true, + "StatusTooEarly": true, + "StatusTooManyRequests": true, + "StatusUnauthorized": true, + "StatusUnavailableForLegalReasons": true, + "StatusUnprocessableEntity": true, + "StatusUnsupportedMediaType": true, + "StatusUpgradeRequired": true, + "StatusUseProxy": true, + "StatusVariantAlsoNegotiates": true, + "StripPrefix": true, + "TimeFormat": true, + "TimeoutHandler": true, + "TrailerPrefix": true, + "Transport": true, + }, + "net/http/cgi": map[string]bool{ + "Handler": true, + "Request": true, + "RequestFromMap": true, + "Serve": true, + }, + "net/http/cookiejar": map[string]bool{ + "Jar": true, + "New": true, + "Options": true, + "PublicSuffixList": true, + }, + "net/http/fcgi": map[string]bool{ + "ErrConnClosed": true, + "ErrRequestAborted": true, + "ProcessEnv": true, + "Serve": true, + }, + "net/http/httptest": map[string]bool{ + "DefaultRemoteAddr": true, + "NewRecorder": true, + "NewRequest": true, + "NewServer": true, + "NewTLSServer": true, + "NewUnstartedServer": true, + "ResponseRecorder": true, + "Server": true, + }, + "net/http/httptrace": map[string]bool{ + "ClientTrace": true, + "ContextClientTrace": true, + "DNSDoneInfo": true, + "DNSStartInfo": true, + "GotConnInfo": true, + "WithClientTrace": true, + "WroteRequestInfo": true, + }, + "net/http/httputil": map[string]bool{ + "BufferPool": true, + "ClientConn": true, + "DumpRequest": true, + "DumpRequestOut": true, + "DumpResponse": true, + "ErrClosed": true, + "ErrLineTooLong": true, + "ErrPersistEOF": true, + "ErrPipeline": true, + "NewChunkedReader": true, + "NewChunkedWriter": true, + "NewClientConn": true, + "NewProxyClientConn": true, + "NewServerConn": true, + "NewSingleHostReverseProxy": true, + "ReverseProxy": true, + "ServerConn": true, + }, + "net/http/pprof": map[string]bool{ + "Cmdline": true, + "Handler": true, + "Index": true, + "Profile": true, + "Symbol": true, + "Trace": true, + }, + "net/mail": map[string]bool{ + "Address": true, + "AddressParser": true, + "ErrHeaderNotPresent": true, + "Header": true, + "Message": true, + "ParseAddress": true, + "ParseAddressList": true, + "ParseDate": true, + "ReadMessage": true, + }, + "net/rpc": map[string]bool{ + "Accept": true, + "Call": true, + "Client": true, + "ClientCodec": true, + "DefaultDebugPath": true, + "DefaultRPCPath": true, + "DefaultServer": true, + "Dial": true, + "DialHTTP": true, + "DialHTTPPath": true, + "ErrShutdown": true, + "HandleHTTP": true, + "NewClient": true, + "NewClientWithCodec": true, + "NewServer": true, + "Register": true, + "RegisterName": true, + "Request": true, + "Response": true, + "ServeCodec": true, + "ServeConn": true, + "ServeRequest": true, + "Server": true, + "ServerCodec": true, + "ServerError": true, + }, + "net/rpc/jsonrpc": map[string]bool{ + "Dial": true, + "NewClient": true, + "NewClientCodec": true, + "NewServerCodec": true, + "ServeConn": true, + }, + "net/smtp": map[string]bool{ + "Auth": true, + "CRAMMD5Auth": true, + "Client": true, + "Dial": true, + "NewClient": true, + "PlainAuth": true, + "SendMail": true, + "ServerInfo": true, + }, + "net/textproto": map[string]bool{ + "CanonicalMIMEHeaderKey": true, + "Conn": true, + "Dial": true, + "Error": true, + "MIMEHeader": true, + "NewConn": true, + "NewReader": true, + "NewWriter": true, + "Pipeline": true, + "ProtocolError": true, + "Reader": true, + "TrimBytes": true, + "TrimString": true, + "Writer": true, + }, + "net/url": map[string]bool{ + "Error": true, + "EscapeError": true, + "InvalidHostError": true, + "Parse": true, + "ParseQuery": true, + "ParseRequestURI": true, + "PathEscape": true, + "PathUnescape": true, + "QueryEscape": true, + "QueryUnescape": true, + "URL": true, + "User": true, + "UserPassword": true, + "Userinfo": true, + "Values": true, + }, + "os": map[string]bool{ + "Args": true, + "Chdir": true, + "Chmod": true, + "Chown": true, + "Chtimes": true, + "Clearenv": true, + "Create": true, + "DevNull": true, + "Environ": true, + "ErrClosed": true, + "ErrExist": true, + "ErrInvalid": true, + "ErrNoDeadline": true, + "ErrNotExist": true, + "ErrPermission": true, + "Executable": true, + "Exit": true, + "Expand": true, + "ExpandEnv": true, + "File": true, + "FileInfo": true, + "FileMode": true, + "FindProcess": true, + "Getegid": true, + "Getenv": true, + "Geteuid": true, + "Getgid": true, + "Getgroups": true, + "Getpagesize": true, + "Getpid": true, + "Getppid": true, + "Getuid": true, + "Getwd": true, + "Hostname": true, + "Interrupt": true, + "IsExist": true, + "IsNotExist": true, + "IsPathSeparator": true, + "IsPermission": true, + "IsTimeout": true, + "Kill": true, + "Lchown": true, + "Link": true, + "LinkError": true, + "LookupEnv": true, + "Lstat": true, + "Mkdir": true, + "MkdirAll": true, + "ModeAppend": true, + "ModeCharDevice": true, + "ModeDevice": true, + "ModeDir": true, + "ModeExclusive": true, + "ModeIrregular": true, + "ModeNamedPipe": true, + "ModePerm": true, + "ModeSetgid": true, + "ModeSetuid": true, + "ModeSocket": true, + "ModeSticky": true, + "ModeSymlink": true, + "ModeTemporary": true, + "ModeType": true, + "NewFile": true, + "NewSyscallError": true, + "O_APPEND": true, + "O_CREATE": true, + "O_EXCL": true, + "O_RDONLY": true, + "O_RDWR": true, + "O_SYNC": true, + "O_TRUNC": true, + "O_WRONLY": true, + "Open": true, + "OpenFile": true, + "PathError": true, + "PathListSeparator": true, + "PathSeparator": true, + "Pipe": true, + "ProcAttr": true, + "Process": true, + "ProcessState": true, + "Readlink": true, + "Remove": true, + "RemoveAll": true, + "Rename": true, + "SEEK_CUR": true, + "SEEK_END": true, + "SEEK_SET": true, + "SameFile": true, + "Setenv": true, + "Signal": true, + "StartProcess": true, + "Stat": true, + "Stderr": true, + "Stdin": true, + "Stdout": true, + "Symlink": true, + "SyscallError": true, + "TempDir": true, + "Truncate": true, + "Unsetenv": true, + "UserCacheDir": true, + "UserHomeDir": true, + }, + "os/exec": map[string]bool{ + "Cmd": true, + "Command": true, + "CommandContext": true, + "ErrNotFound": true, + "Error": true, + "ExitError": true, + "LookPath": true, + }, + "os/signal": map[string]bool{ + "Ignore": true, + "Ignored": true, + "Notify": true, + "Reset": true, + "Stop": true, + }, + "os/user": map[string]bool{ + "Current": true, + "Group": true, + "Lookup": true, + "LookupGroup": true, + "LookupGroupId": true, + "LookupId": true, + "UnknownGroupError": true, + "UnknownGroupIdError": true, + "UnknownUserError": true, + "UnknownUserIdError": true, + "User": true, + }, + "path": map[string]bool{ + "Base": true, + "Clean": true, + "Dir": true, + "ErrBadPattern": true, + "Ext": true, + "IsAbs": true, + "Join": true, + "Match": true, + "Split": true, + }, + "path/filepath": map[string]bool{ + "Abs": true, + "Base": true, + "Clean": true, + "Dir": true, + "ErrBadPattern": true, + "EvalSymlinks": true, + "Ext": true, + "FromSlash": true, + "Glob": true, + "HasPrefix": true, + "IsAbs": true, + "Join": true, + "ListSeparator": true, + "Match": true, + "Rel": true, + "Separator": true, + "SkipDir": true, + "Split": true, + "SplitList": true, + "ToSlash": true, + "VolumeName": true, + "Walk": true, + "WalkFunc": true, + }, + "plugin": map[string]bool{ + "Open": true, + "Plugin": true, + "Symbol": true, + }, + "reflect": map[string]bool{ + "Append": true, + "AppendSlice": true, + "Array": true, + "ArrayOf": true, + "Bool": true, + "BothDir": true, + "Chan": true, + "ChanDir": true, + "ChanOf": true, + "Complex128": true, + "Complex64": true, + "Copy": true, + "DeepEqual": true, + "Float32": true, + "Float64": true, + "Func": true, + "FuncOf": true, + "Indirect": true, + "Int": true, + "Int16": true, + "Int32": true, + "Int64": true, + "Int8": true, + "Interface": true, + "Invalid": true, + "Kind": true, + "MakeChan": true, + "MakeFunc": true, + "MakeMap": true, + "MakeMapWithSize": true, + "MakeSlice": true, + "Map": true, + "MapIter": true, + "MapOf": true, + "Method": true, + "New": true, + "NewAt": true, + "Ptr": true, + "PtrTo": true, + "RecvDir": true, + "Select": true, + "SelectCase": true, + "SelectDefault": true, + "SelectDir": true, + "SelectRecv": true, + "SelectSend": true, + "SendDir": true, + "Slice": true, + "SliceHeader": true, + "SliceOf": true, + "String": true, + "StringHeader": true, + "Struct": true, + "StructField": true, + "StructOf": true, + "StructTag": true, + "Swapper": true, + "TypeOf": true, + "Uint": true, + "Uint16": true, + "Uint32": true, + "Uint64": true, + "Uint8": true, + "Uintptr": true, + "UnsafePointer": true, + "Value": true, + "ValueError": true, + "ValueOf": true, + "Zero": true, + }, + "regexp": map[string]bool{ + "Compile": true, + "CompilePOSIX": true, + "Match": true, + "MatchReader": true, + "MatchString": true, + "MustCompile": true, + "MustCompilePOSIX": true, + "QuoteMeta": true, + "Regexp": true, + }, + "regexp/syntax": map[string]bool{ + "ClassNL": true, + "Compile": true, + "DotNL": true, + "EmptyBeginLine": true, + "EmptyBeginText": true, + "EmptyEndLine": true, + "EmptyEndText": true, + "EmptyNoWordBoundary": true, + "EmptyOp": true, + "EmptyOpContext": true, + "EmptyWordBoundary": true, + "ErrInternalError": true, + "ErrInvalidCharClass": true, + "ErrInvalidCharRange": true, + "ErrInvalidEscape": true, + "ErrInvalidNamedCapture": true, + "ErrInvalidPerlOp": true, + "ErrInvalidRepeatOp": true, + "ErrInvalidRepeatSize": true, + "ErrInvalidUTF8": true, + "ErrMissingBracket": true, + "ErrMissingParen": true, + "ErrMissingRepeatArgument": true, + "ErrTrailingBackslash": true, + "ErrUnexpectedParen": true, + "Error": true, + "ErrorCode": true, + "Flags": true, + "FoldCase": true, + "Inst": true, + "InstAlt": true, + "InstAltMatch": true, + "InstCapture": true, + "InstEmptyWidth": true, + "InstFail": true, + "InstMatch": true, + "InstNop": true, + "InstOp": true, + "InstRune": true, + "InstRune1": true, + "InstRuneAny": true, + "InstRuneAnyNotNL": true, + "IsWordChar": true, + "Literal": true, + "MatchNL": true, + "NonGreedy": true, + "OneLine": true, + "Op": true, + "OpAlternate": true, + "OpAnyChar": true, + "OpAnyCharNotNL": true, + "OpBeginLine": true, + "OpBeginText": true, + "OpCapture": true, + "OpCharClass": true, + "OpConcat": true, + "OpEmptyMatch": true, + "OpEndLine": true, + "OpEndText": true, + "OpLiteral": true, + "OpNoMatch": true, + "OpNoWordBoundary": true, + "OpPlus": true, + "OpQuest": true, + "OpRepeat": true, + "OpStar": true, + "OpWordBoundary": true, + "POSIX": true, + "Parse": true, + "Perl": true, + "PerlX": true, + "Prog": true, + "Regexp": true, + "Simple": true, + "UnicodeGroups": true, + "WasDollar": true, + }, + "runtime": map[string]bool{ + "BlockProfile": true, + "BlockProfileRecord": true, + "Breakpoint": true, + "CPUProfile": true, + "Caller": true, + "Callers": true, + "CallersFrames": true, + "Compiler": true, + "Error": true, + "Frame": true, + "Frames": true, + "Func": true, + "FuncForPC": true, + "GC": true, + "GOARCH": true, + "GOMAXPROCS": true, + "GOOS": true, + "GOROOT": true, + "Goexit": true, + "GoroutineProfile": true, + "Gosched": true, + "KeepAlive": true, + "LockOSThread": true, + "MemProfile": true, + "MemProfileRate": true, + "MemProfileRecord": true, + "MemStats": true, + "MutexProfile": true, + "NumCPU": true, + "NumCgoCall": true, + "NumGoroutine": true, + "ReadMemStats": true, + "ReadTrace": true, + "SetBlockProfileRate": true, + "SetCPUProfileRate": true, + "SetCgoTraceback": true, + "SetFinalizer": true, + "SetMutexProfileFraction": true, + "Stack": true, + "StackRecord": true, + "StartTrace": true, + "StopTrace": true, + "ThreadCreateProfile": true, + "TypeAssertionError": true, + "UnlockOSThread": true, + "Version": true, + }, + "runtime/debug": map[string]bool{ + "BuildInfo": true, + "FreeOSMemory": true, + "GCStats": true, + "Module": true, + "PrintStack": true, + "ReadBuildInfo": true, + "ReadGCStats": true, + "SetGCPercent": true, + "SetMaxStack": true, + "SetMaxThreads": true, + "SetPanicOnFault": true, + "SetTraceback": true, + "Stack": true, + "WriteHeapDump": true, + }, + "runtime/pprof": map[string]bool{ + "Do": true, + "ForLabels": true, + "Label": true, + "LabelSet": true, + "Labels": true, + "Lookup": true, + "NewProfile": true, + "Profile": true, + "Profiles": true, + "SetGoroutineLabels": true, + "StartCPUProfile": true, + "StopCPUProfile": true, + "WithLabels": true, + "WriteHeapProfile": true, + }, + "runtime/trace": map[string]bool{ + "IsEnabled": true, + "Log": true, + "Logf": true, + "NewTask": true, + "Region": true, + "Start": true, + "StartRegion": true, + "Stop": true, + "Task": true, + "WithRegion": true, + }, + "sort": map[string]bool{ + "Float64Slice": true, + "Float64s": true, + "Float64sAreSorted": true, + "IntSlice": true, + "Interface": true, + "Ints": true, + "IntsAreSorted": true, + "IsSorted": true, + "Reverse": true, + "Search": true, + "SearchFloat64s": true, + "SearchInts": true, + "SearchStrings": true, + "Slice": true, + "SliceIsSorted": true, + "SliceStable": true, + "Sort": true, + "Stable": true, + "StringSlice": true, + "Strings": true, + "StringsAreSorted": true, + }, + "strconv": map[string]bool{ + "AppendBool": true, + "AppendFloat": true, + "AppendInt": true, + "AppendQuote": true, + "AppendQuoteRune": true, + "AppendQuoteRuneToASCII": true, + "AppendQuoteRuneToGraphic": true, + "AppendQuoteToASCII": true, + "AppendQuoteToGraphic": true, + "AppendUint": true, + "Atoi": true, + "CanBackquote": true, + "ErrRange": true, + "ErrSyntax": true, + "FormatBool": true, + "FormatFloat": true, + "FormatInt": true, + "FormatUint": true, + "IntSize": true, + "IsGraphic": true, + "IsPrint": true, + "Itoa": true, + "NumError": true, + "ParseBool": true, + "ParseFloat": true, + "ParseInt": true, + "ParseUint": true, + "Quote": true, + "QuoteRune": true, + "QuoteRuneToASCII": true, + "QuoteRuneToGraphic": true, + "QuoteToASCII": true, + "QuoteToGraphic": true, + "Unquote": true, + "UnquoteChar": true, + }, + "strings": map[string]bool{ + "Builder": true, + "Compare": true, + "Contains": true, + "ContainsAny": true, + "ContainsRune": true, + "Count": true, + "EqualFold": true, + "Fields": true, + "FieldsFunc": true, + "HasPrefix": true, + "HasSuffix": true, + "Index": true, + "IndexAny": true, + "IndexByte": true, + "IndexFunc": true, + "IndexRune": true, + "Join": true, + "LastIndex": true, + "LastIndexAny": true, + "LastIndexByte": true, + "LastIndexFunc": true, + "Map": true, + "NewReader": true, + "NewReplacer": true, + "Reader": true, + "Repeat": true, + "Replace": true, + "ReplaceAll": true, + "Replacer": true, + "Split": true, + "SplitAfter": true, + "SplitAfterN": true, + "SplitN": true, + "Title": true, + "ToLower": true, + "ToLowerSpecial": true, + "ToTitle": true, + "ToTitleSpecial": true, + "ToUpper": true, + "ToUpperSpecial": true, + "Trim": true, + "TrimFunc": true, + "TrimLeft": true, + "TrimLeftFunc": true, + "TrimPrefix": true, + "TrimRight": true, + "TrimRightFunc": true, + "TrimSpace": true, + "TrimSuffix": true, + }, + "sync": map[string]bool{ + "Cond": true, + "Locker": true, + "Map": true, + "Mutex": true, + "NewCond": true, + "Once": true, + "Pool": true, + "RWMutex": true, + "WaitGroup": true, + }, + "sync/atomic": map[string]bool{ + "AddInt32": true, + "AddInt64": true, + "AddUint32": true, + "AddUint64": true, + "AddUintptr": true, + "CompareAndSwapInt32": true, + "CompareAndSwapInt64": true, + "CompareAndSwapPointer": true, + "CompareAndSwapUint32": true, + "CompareAndSwapUint64": true, + "CompareAndSwapUintptr": true, + "LoadInt32": true, + "LoadInt64": true, + "LoadPointer": true, + "LoadUint32": true, + "LoadUint64": true, + "LoadUintptr": true, + "StoreInt32": true, + "StoreInt64": true, + "StorePointer": true, + "StoreUint32": true, + "StoreUint64": true, + "StoreUintptr": true, + "SwapInt32": true, + "SwapInt64": true, + "SwapPointer": true, + "SwapUint32": true, + "SwapUint64": true, + "SwapUintptr": true, + "Value": true, + }, + "syscall": map[string]bool{ + "AF_ALG": true, + "AF_APPLETALK": true, + "AF_ARP": true, + "AF_ASH": true, + "AF_ATM": true, + "AF_ATMPVC": true, + "AF_ATMSVC": true, + "AF_AX25": true, + "AF_BLUETOOTH": true, + "AF_BRIDGE": true, + "AF_CAIF": true, + "AF_CAN": true, + "AF_CCITT": true, + "AF_CHAOS": true, + "AF_CNT": true, + "AF_COIP": true, + "AF_DATAKIT": true, + "AF_DECnet": true, + "AF_DLI": true, + "AF_E164": true, + "AF_ECMA": true, + "AF_ECONET": true, + "AF_ENCAP": true, + "AF_FILE": true, + "AF_HYLINK": true, + "AF_IEEE80211": true, + "AF_IEEE802154": true, + "AF_IMPLINK": true, + "AF_INET": true, + "AF_INET6": true, + "AF_INET6_SDP": true, + "AF_INET_SDP": true, + "AF_IPX": true, + "AF_IRDA": true, + "AF_ISDN": true, + "AF_ISO": true, + "AF_IUCV": true, + "AF_KEY": true, + "AF_LAT": true, + "AF_LINK": true, + "AF_LLC": true, + "AF_LOCAL": true, + "AF_MAX": true, + "AF_MPLS": true, + "AF_NATM": true, + "AF_NDRV": true, + "AF_NETBEUI": true, + "AF_NETBIOS": true, + "AF_NETGRAPH": true, + "AF_NETLINK": true, + "AF_NETROM": true, + "AF_NS": true, + "AF_OROUTE": true, + "AF_OSI": true, + "AF_PACKET": true, + "AF_PHONET": true, + "AF_PPP": true, + "AF_PPPOX": true, + "AF_PUP": true, + "AF_RDS": true, + "AF_RESERVED_36": true, + "AF_ROSE": true, + "AF_ROUTE": true, + "AF_RXRPC": true, + "AF_SCLUSTER": true, + "AF_SECURITY": true, + "AF_SIP": true, + "AF_SLOW": true, + "AF_SNA": true, + "AF_SYSTEM": true, + "AF_TIPC": true, + "AF_UNIX": true, + "AF_UNSPEC": true, + "AF_VENDOR00": true, + "AF_VENDOR01": true, + "AF_VENDOR02": true, + "AF_VENDOR03": true, + "AF_VENDOR04": true, + "AF_VENDOR05": true, + "AF_VENDOR06": true, + "AF_VENDOR07": true, + "AF_VENDOR08": true, + "AF_VENDOR09": true, + "AF_VENDOR10": true, + "AF_VENDOR11": true, + "AF_VENDOR12": true, + "AF_VENDOR13": true, + "AF_VENDOR14": true, + "AF_VENDOR15": true, + "AF_VENDOR16": true, + "AF_VENDOR17": true, + "AF_VENDOR18": true, + "AF_VENDOR19": true, + "AF_VENDOR20": true, + "AF_VENDOR21": true, + "AF_VENDOR22": true, + "AF_VENDOR23": true, + "AF_VENDOR24": true, + "AF_VENDOR25": true, + "AF_VENDOR26": true, + "AF_VENDOR27": true, + "AF_VENDOR28": true, + "AF_VENDOR29": true, + "AF_VENDOR30": true, + "AF_VENDOR31": true, + "AF_VENDOR32": true, + "AF_VENDOR33": true, + "AF_VENDOR34": true, + "AF_VENDOR35": true, + "AF_VENDOR36": true, + "AF_VENDOR37": true, + "AF_VENDOR38": true, + "AF_VENDOR39": true, + "AF_VENDOR40": true, + "AF_VENDOR41": true, + "AF_VENDOR42": true, + "AF_VENDOR43": true, + "AF_VENDOR44": true, + "AF_VENDOR45": true, + "AF_VENDOR46": true, + "AF_VENDOR47": true, + "AF_WANPIPE": true, + "AF_X25": true, + "AI_CANONNAME": true, + "AI_NUMERICHOST": true, + "AI_PASSIVE": true, + "APPLICATION_ERROR": true, + "ARPHRD_ADAPT": true, + "ARPHRD_APPLETLK": true, + "ARPHRD_ARCNET": true, + "ARPHRD_ASH": true, + "ARPHRD_ATM": true, + "ARPHRD_AX25": true, + "ARPHRD_BIF": true, + "ARPHRD_CHAOS": true, + "ARPHRD_CISCO": true, + "ARPHRD_CSLIP": true, + "ARPHRD_CSLIP6": true, + "ARPHRD_DDCMP": true, + "ARPHRD_DLCI": true, + "ARPHRD_ECONET": true, + "ARPHRD_EETHER": true, + "ARPHRD_ETHER": true, + "ARPHRD_EUI64": true, + "ARPHRD_FCAL": true, + "ARPHRD_FCFABRIC": true, + "ARPHRD_FCPL": true, + "ARPHRD_FCPP": true, + "ARPHRD_FDDI": true, + "ARPHRD_FRAD": true, + "ARPHRD_FRELAY": true, + "ARPHRD_HDLC": true, + "ARPHRD_HIPPI": true, + "ARPHRD_HWX25": true, + "ARPHRD_IEEE1394": true, + "ARPHRD_IEEE802": true, + "ARPHRD_IEEE80211": true, + "ARPHRD_IEEE80211_PRISM": true, + "ARPHRD_IEEE80211_RADIOTAP": true, + "ARPHRD_IEEE802154": true, + "ARPHRD_IEEE802154_PHY": true, + "ARPHRD_IEEE802_TR": true, + "ARPHRD_INFINIBAND": true, + "ARPHRD_IPDDP": true, + "ARPHRD_IPGRE": true, + "ARPHRD_IRDA": true, + "ARPHRD_LAPB": true, + "ARPHRD_LOCALTLK": true, + "ARPHRD_LOOPBACK": true, + "ARPHRD_METRICOM": true, + "ARPHRD_NETROM": true, + "ARPHRD_NONE": true, + "ARPHRD_PIMREG": true, + "ARPHRD_PPP": true, + "ARPHRD_PRONET": true, + "ARPHRD_RAWHDLC": true, + "ARPHRD_ROSE": true, + "ARPHRD_RSRVD": true, + "ARPHRD_SIT": true, + "ARPHRD_SKIP": true, + "ARPHRD_SLIP": true, + "ARPHRD_SLIP6": true, + "ARPHRD_STRIP": true, + "ARPHRD_TUNNEL": true, + "ARPHRD_TUNNEL6": true, + "ARPHRD_VOID": true, + "ARPHRD_X25": true, + "AUTHTYPE_CLIENT": true, + "AUTHTYPE_SERVER": true, + "Accept": true, + "Accept4": true, + "AcceptEx": true, + "Access": true, + "Acct": true, + "AddrinfoW": true, + "Adjtime": true, + "Adjtimex": true, + "AttachLsf": true, + "B0": true, + "B1000000": true, + "B110": true, + "B115200": true, + "B1152000": true, + "B1200": true, + "B134": true, + "B14400": true, + "B150": true, + "B1500000": true, + "B1800": true, + "B19200": true, + "B200": true, + "B2000000": true, + "B230400": true, + "B2400": true, + "B2500000": true, + "B28800": true, + "B300": true, + "B3000000": true, + "B3500000": true, + "B38400": true, + "B4000000": true, + "B460800": true, + "B4800": true, + "B50": true, + "B500000": true, + "B57600": true, + "B576000": true, + "B600": true, + "B7200": true, + "B75": true, + "B76800": true, + "B921600": true, + "B9600": true, + "BASE_PROTOCOL": true, + "BIOCFEEDBACK": true, + "BIOCFLUSH": true, + "BIOCGBLEN": true, + "BIOCGDIRECTION": true, + "BIOCGDIRFILT": true, + "BIOCGDLT": true, + "BIOCGDLTLIST": true, + "BIOCGETBUFMODE": true, + "BIOCGETIF": true, + "BIOCGETZMAX": true, + "BIOCGFEEDBACK": true, + "BIOCGFILDROP": true, + "BIOCGHDRCMPLT": true, + "BIOCGRSIG": true, + "BIOCGRTIMEOUT": true, + "BIOCGSEESENT": true, + "BIOCGSTATS": true, + "BIOCGSTATSOLD": true, + "BIOCGTSTAMP": true, + "BIOCIMMEDIATE": true, + "BIOCLOCK": true, + "BIOCPROMISC": true, + "BIOCROTZBUF": true, + "BIOCSBLEN": true, + "BIOCSDIRECTION": true, + "BIOCSDIRFILT": true, + "BIOCSDLT": true, + "BIOCSETBUFMODE": true, + "BIOCSETF": true, + "BIOCSETFNR": true, + "BIOCSETIF": true, + "BIOCSETWF": true, + "BIOCSETZBUF": true, + "BIOCSFEEDBACK": true, + "BIOCSFILDROP": true, + "BIOCSHDRCMPLT": true, + "BIOCSRSIG": true, + "BIOCSRTIMEOUT": true, + "BIOCSSEESENT": true, + "BIOCSTCPF": true, + "BIOCSTSTAMP": true, + "BIOCSUDPF": true, + "BIOCVERSION": true, + "BPF_A": true, + "BPF_ABS": true, + "BPF_ADD": true, + "BPF_ALIGNMENT": true, + "BPF_ALIGNMENT32": true, + "BPF_ALU": true, + "BPF_AND": true, + "BPF_B": true, + "BPF_BUFMODE_BUFFER": true, + "BPF_BUFMODE_ZBUF": true, + "BPF_DFLTBUFSIZE": true, + "BPF_DIRECTION_IN": true, + "BPF_DIRECTION_OUT": true, + "BPF_DIV": true, + "BPF_H": true, + "BPF_IMM": true, + "BPF_IND": true, + "BPF_JA": true, + "BPF_JEQ": true, + "BPF_JGE": true, + "BPF_JGT": true, + "BPF_JMP": true, + "BPF_JSET": true, + "BPF_K": true, + "BPF_LD": true, + "BPF_LDX": true, + "BPF_LEN": true, + "BPF_LSH": true, + "BPF_MAJOR_VERSION": true, + "BPF_MAXBUFSIZE": true, + "BPF_MAXINSNS": true, + "BPF_MEM": true, + "BPF_MEMWORDS": true, + "BPF_MINBUFSIZE": true, + "BPF_MINOR_VERSION": true, + "BPF_MISC": true, + "BPF_MSH": true, + "BPF_MUL": true, + "BPF_NEG": true, + "BPF_OR": true, + "BPF_RELEASE": true, + "BPF_RET": true, + "BPF_RSH": true, + "BPF_ST": true, + "BPF_STX": true, + "BPF_SUB": true, + "BPF_TAX": true, + "BPF_TXA": true, + "BPF_T_BINTIME": true, + "BPF_T_BINTIME_FAST": true, + "BPF_T_BINTIME_MONOTONIC": true, + "BPF_T_BINTIME_MONOTONIC_FAST": true, + "BPF_T_FAST": true, + "BPF_T_FLAG_MASK": true, + "BPF_T_FORMAT_MASK": true, + "BPF_T_MICROTIME": true, + "BPF_T_MICROTIME_FAST": true, + "BPF_T_MICROTIME_MONOTONIC": true, + "BPF_T_MICROTIME_MONOTONIC_FAST": true, + "BPF_T_MONOTONIC": true, + "BPF_T_MONOTONIC_FAST": true, + "BPF_T_NANOTIME": true, + "BPF_T_NANOTIME_FAST": true, + "BPF_T_NANOTIME_MONOTONIC": true, + "BPF_T_NANOTIME_MONOTONIC_FAST": true, + "BPF_T_NONE": true, + "BPF_T_NORMAL": true, + "BPF_W": true, + "BPF_X": true, + "BRKINT": true, + "Bind": true, + "BindToDevice": true, + "BpfBuflen": true, + "BpfDatalink": true, + "BpfHdr": true, + "BpfHeadercmpl": true, + "BpfInsn": true, + "BpfInterface": true, + "BpfJump": true, + "BpfProgram": true, + "BpfStat": true, + "BpfStats": true, + "BpfStmt": true, + "BpfTimeout": true, + "BpfTimeval": true, + "BpfVersion": true, + "BpfZbuf": true, + "BpfZbufHeader": true, + "ByHandleFileInformation": true, + "BytePtrFromString": true, + "ByteSliceFromString": true, + "CCR0_FLUSH": true, + "CERT_CHAIN_POLICY_AUTHENTICODE": true, + "CERT_CHAIN_POLICY_AUTHENTICODE_TS": true, + "CERT_CHAIN_POLICY_BASE": true, + "CERT_CHAIN_POLICY_BASIC_CONSTRAINTS": true, + "CERT_CHAIN_POLICY_EV": true, + "CERT_CHAIN_POLICY_MICROSOFT_ROOT": true, + "CERT_CHAIN_POLICY_NT_AUTH": true, + "CERT_CHAIN_POLICY_SSL": true, + "CERT_E_CN_NO_MATCH": true, + "CERT_E_EXPIRED": true, + "CERT_E_PURPOSE": true, + "CERT_E_ROLE": true, + "CERT_E_UNTRUSTEDROOT": true, + "CERT_STORE_ADD_ALWAYS": true, + "CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG": true, + "CERT_STORE_PROV_MEMORY": true, + "CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT": true, + "CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT": true, + "CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT": true, + "CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT": true, + "CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT": true, + "CERT_TRUST_INVALID_BASIC_CONSTRAINTS": true, + "CERT_TRUST_INVALID_EXTENSION": true, + "CERT_TRUST_INVALID_NAME_CONSTRAINTS": true, + "CERT_TRUST_INVALID_POLICY_CONSTRAINTS": true, + "CERT_TRUST_IS_CYCLIC": true, + "CERT_TRUST_IS_EXPLICIT_DISTRUST": true, + "CERT_TRUST_IS_NOT_SIGNATURE_VALID": true, + "CERT_TRUST_IS_NOT_TIME_VALID": true, + "CERT_TRUST_IS_NOT_VALID_FOR_USAGE": true, + "CERT_TRUST_IS_OFFLINE_REVOCATION": true, + "CERT_TRUST_IS_REVOKED": true, + "CERT_TRUST_IS_UNTRUSTED_ROOT": true, + "CERT_TRUST_NO_ERROR": true, + "CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY": true, + "CERT_TRUST_REVOCATION_STATUS_UNKNOWN": true, + "CFLUSH": true, + "CLOCAL": true, + "CLONE_CHILD_CLEARTID": true, + "CLONE_CHILD_SETTID": true, + "CLONE_CSIGNAL": true, + "CLONE_DETACHED": true, + "CLONE_FILES": true, + "CLONE_FS": true, + "CLONE_IO": true, + "CLONE_NEWIPC": true, + "CLONE_NEWNET": true, + "CLONE_NEWNS": true, + "CLONE_NEWPID": true, + "CLONE_NEWUSER": true, + "CLONE_NEWUTS": true, + "CLONE_PARENT": true, + "CLONE_PARENT_SETTID": true, + "CLONE_PID": true, + "CLONE_PTRACE": true, + "CLONE_SETTLS": true, + "CLONE_SIGHAND": true, + "CLONE_SYSVSEM": true, + "CLONE_THREAD": true, + "CLONE_UNTRACED": true, + "CLONE_VFORK": true, + "CLONE_VM": true, + "CPUID_CFLUSH": true, + "CREAD": true, + "CREATE_ALWAYS": true, + "CREATE_NEW": true, + "CREATE_NEW_PROCESS_GROUP": true, + "CREATE_UNICODE_ENVIRONMENT": true, + "CRYPT_DEFAULT_CONTAINER_OPTIONAL": true, + "CRYPT_DELETEKEYSET": true, + "CRYPT_MACHINE_KEYSET": true, + "CRYPT_NEWKEYSET": true, + "CRYPT_SILENT": true, + "CRYPT_VERIFYCONTEXT": true, + "CS5": true, + "CS6": true, + "CS7": true, + "CS8": true, + "CSIZE": true, + "CSTART": true, + "CSTATUS": true, + "CSTOP": true, + "CSTOPB": true, + "CSUSP": true, + "CTL_MAXNAME": true, + "CTL_NET": true, + "CTL_QUERY": true, + "CTRL_BREAK_EVENT": true, + "CTRL_C_EVENT": true, + "CancelIo": true, + "CancelIoEx": true, + "CertAddCertificateContextToStore": true, + "CertChainContext": true, + "CertChainElement": true, + "CertChainPara": true, + "CertChainPolicyPara": true, + "CertChainPolicyStatus": true, + "CertCloseStore": true, + "CertContext": true, + "CertCreateCertificateContext": true, + "CertEnhKeyUsage": true, + "CertEnumCertificatesInStore": true, + "CertFreeCertificateChain": true, + "CertFreeCertificateContext": true, + "CertGetCertificateChain": true, + "CertInfo": true, + "CertOpenStore": true, + "CertOpenSystemStore": true, + "CertRevocationCrlInfo": true, + "CertRevocationInfo": true, + "CertSimpleChain": true, + "CertTrustListInfo": true, + "CertTrustStatus": true, + "CertUsageMatch": true, + "CertVerifyCertificateChainPolicy": true, + "Chdir": true, + "CheckBpfVersion": true, + "Chflags": true, + "Chmod": true, + "Chown": true, + "Chroot": true, + "Clearenv": true, + "Close": true, + "CloseHandle": true, + "CloseOnExec": true, + "Closesocket": true, + "CmsgLen": true, + "CmsgSpace": true, + "Cmsghdr": true, + "CommandLineToArgv": true, + "ComputerName": true, + "Conn": true, + "Connect": true, + "ConnectEx": true, + "ConvertSidToStringSid": true, + "ConvertStringSidToSid": true, + "CopySid": true, + "Creat": true, + "CreateDirectory": true, + "CreateFile": true, + "CreateFileMapping": true, + "CreateHardLink": true, + "CreateIoCompletionPort": true, + "CreatePipe": true, + "CreateProcess": true, + "CreateProcessAsUser": true, + "CreateSymbolicLink": true, + "CreateToolhelp32Snapshot": true, + "Credential": true, + "CryptAcquireContext": true, + "CryptGenRandom": true, + "CryptReleaseContext": true, + "DIOCBSFLUSH": true, + "DIOCOSFPFLUSH": true, + "DLL": true, + "DLLError": true, + "DLT_A429": true, + "DLT_A653_ICM": true, + "DLT_AIRONET_HEADER": true, + "DLT_AOS": true, + "DLT_APPLE_IP_OVER_IEEE1394": true, + "DLT_ARCNET": true, + "DLT_ARCNET_LINUX": true, + "DLT_ATM_CLIP": true, + "DLT_ATM_RFC1483": true, + "DLT_AURORA": true, + "DLT_AX25": true, + "DLT_AX25_KISS": true, + "DLT_BACNET_MS_TP": true, + "DLT_BLUETOOTH_HCI_H4": true, + "DLT_BLUETOOTH_HCI_H4_WITH_PHDR": true, + "DLT_CAN20B": true, + "DLT_CAN_SOCKETCAN": true, + "DLT_CHAOS": true, + "DLT_CHDLC": true, + "DLT_CISCO_IOS": true, + "DLT_C_HDLC": true, + "DLT_C_HDLC_WITH_DIR": true, + "DLT_DBUS": true, + "DLT_DECT": true, + "DLT_DOCSIS": true, + "DLT_DVB_CI": true, + "DLT_ECONET": true, + "DLT_EN10MB": true, + "DLT_EN3MB": true, + "DLT_ENC": true, + "DLT_ERF": true, + "DLT_ERF_ETH": true, + "DLT_ERF_POS": true, + "DLT_FC_2": true, + "DLT_FC_2_WITH_FRAME_DELIMS": true, + "DLT_FDDI": true, + "DLT_FLEXRAY": true, + "DLT_FRELAY": true, + "DLT_FRELAY_WITH_DIR": true, + "DLT_GCOM_SERIAL": true, + "DLT_GCOM_T1E1": true, + "DLT_GPF_F": true, + "DLT_GPF_T": true, + "DLT_GPRS_LLC": true, + "DLT_GSMTAP_ABIS": true, + "DLT_GSMTAP_UM": true, + "DLT_HDLC": true, + "DLT_HHDLC": true, + "DLT_HIPPI": true, + "DLT_IBM_SN": true, + "DLT_IBM_SP": true, + "DLT_IEEE802": true, + "DLT_IEEE802_11": true, + "DLT_IEEE802_11_RADIO": true, + "DLT_IEEE802_11_RADIO_AVS": true, + "DLT_IEEE802_15_4": true, + "DLT_IEEE802_15_4_LINUX": true, + "DLT_IEEE802_15_4_NOFCS": true, + "DLT_IEEE802_15_4_NONASK_PHY": true, + "DLT_IEEE802_16_MAC_CPS": true, + "DLT_IEEE802_16_MAC_CPS_RADIO": true, + "DLT_IPFILTER": true, + "DLT_IPMB": true, + "DLT_IPMB_LINUX": true, + "DLT_IPNET": true, + "DLT_IPOIB": true, + "DLT_IPV4": true, + "DLT_IPV6": true, + "DLT_IP_OVER_FC": true, + "DLT_JUNIPER_ATM1": true, + "DLT_JUNIPER_ATM2": true, + "DLT_JUNIPER_ATM_CEMIC": true, + "DLT_JUNIPER_CHDLC": true, + "DLT_JUNIPER_ES": true, + "DLT_JUNIPER_ETHER": true, + "DLT_JUNIPER_FIBRECHANNEL": true, + "DLT_JUNIPER_FRELAY": true, + "DLT_JUNIPER_GGSN": true, + "DLT_JUNIPER_ISM": true, + "DLT_JUNIPER_MFR": true, + "DLT_JUNIPER_MLFR": true, + "DLT_JUNIPER_MLPPP": true, + "DLT_JUNIPER_MONITOR": true, + "DLT_JUNIPER_PIC_PEER": true, + "DLT_JUNIPER_PPP": true, + "DLT_JUNIPER_PPPOE": true, + "DLT_JUNIPER_PPPOE_ATM": true, + "DLT_JUNIPER_SERVICES": true, + "DLT_JUNIPER_SRX_E2E": true, + "DLT_JUNIPER_ST": true, + "DLT_JUNIPER_VP": true, + "DLT_JUNIPER_VS": true, + "DLT_LAPB_WITH_DIR": true, + "DLT_LAPD": true, + "DLT_LIN": true, + "DLT_LINUX_EVDEV": true, + "DLT_LINUX_IRDA": true, + "DLT_LINUX_LAPD": true, + "DLT_LINUX_PPP_WITHDIRECTION": true, + "DLT_LINUX_SLL": true, + "DLT_LOOP": true, + "DLT_LTALK": true, + "DLT_MATCHING_MAX": true, + "DLT_MATCHING_MIN": true, + "DLT_MFR": true, + "DLT_MOST": true, + "DLT_MPEG_2_TS": true, + "DLT_MPLS": true, + "DLT_MTP2": true, + "DLT_MTP2_WITH_PHDR": true, + "DLT_MTP3": true, + "DLT_MUX27010": true, + "DLT_NETANALYZER": true, + "DLT_NETANALYZER_TRANSPARENT": true, + "DLT_NFC_LLCP": true, + "DLT_NFLOG": true, + "DLT_NG40": true, + "DLT_NULL": true, + "DLT_PCI_EXP": true, + "DLT_PFLOG": true, + "DLT_PFSYNC": true, + "DLT_PPI": true, + "DLT_PPP": true, + "DLT_PPP_BSDOS": true, + "DLT_PPP_ETHER": true, + "DLT_PPP_PPPD": true, + "DLT_PPP_SERIAL": true, + "DLT_PPP_WITH_DIR": true, + "DLT_PPP_WITH_DIRECTION": true, + "DLT_PRISM_HEADER": true, + "DLT_PRONET": true, + "DLT_RAIF1": true, + "DLT_RAW": true, + "DLT_RAWAF_MASK": true, + "DLT_RIO": true, + "DLT_SCCP": true, + "DLT_SITA": true, + "DLT_SLIP": true, + "DLT_SLIP_BSDOS": true, + "DLT_STANAG_5066_D_PDU": true, + "DLT_SUNATM": true, + "DLT_SYMANTEC_FIREWALL": true, + "DLT_TZSP": true, + "DLT_USB": true, + "DLT_USB_LINUX": true, + "DLT_USB_LINUX_MMAPPED": true, + "DLT_USER0": true, + "DLT_USER1": true, + "DLT_USER10": true, + "DLT_USER11": true, + "DLT_USER12": true, + "DLT_USER13": true, + "DLT_USER14": true, + "DLT_USER15": true, + "DLT_USER2": true, + "DLT_USER3": true, + "DLT_USER4": true, + "DLT_USER5": true, + "DLT_USER6": true, + "DLT_USER7": true, + "DLT_USER8": true, + "DLT_USER9": true, + "DLT_WIHART": true, + "DLT_X2E_SERIAL": true, + "DLT_X2E_XORAYA": true, + "DNSMXData": true, + "DNSPTRData": true, + "DNSRecord": true, + "DNSSRVData": true, + "DNSTXTData": true, + "DNS_INFO_NO_RECORDS": true, + "DNS_TYPE_A": true, + "DNS_TYPE_A6": true, + "DNS_TYPE_AAAA": true, + "DNS_TYPE_ADDRS": true, + "DNS_TYPE_AFSDB": true, + "DNS_TYPE_ALL": true, + "DNS_TYPE_ANY": true, + "DNS_TYPE_ATMA": true, + "DNS_TYPE_AXFR": true, + "DNS_TYPE_CERT": true, + "DNS_TYPE_CNAME": true, + "DNS_TYPE_DHCID": true, + "DNS_TYPE_DNAME": true, + "DNS_TYPE_DNSKEY": true, + "DNS_TYPE_DS": true, + "DNS_TYPE_EID": true, + "DNS_TYPE_GID": true, + "DNS_TYPE_GPOS": true, + "DNS_TYPE_HINFO": true, + "DNS_TYPE_ISDN": true, + "DNS_TYPE_IXFR": true, + "DNS_TYPE_KEY": true, + "DNS_TYPE_KX": true, + "DNS_TYPE_LOC": true, + "DNS_TYPE_MAILA": true, + "DNS_TYPE_MAILB": true, + "DNS_TYPE_MB": true, + "DNS_TYPE_MD": true, + "DNS_TYPE_MF": true, + "DNS_TYPE_MG": true, + "DNS_TYPE_MINFO": true, + "DNS_TYPE_MR": true, + "DNS_TYPE_MX": true, + "DNS_TYPE_NAPTR": true, + "DNS_TYPE_NBSTAT": true, + "DNS_TYPE_NIMLOC": true, + "DNS_TYPE_NS": true, + "DNS_TYPE_NSAP": true, + "DNS_TYPE_NSAPPTR": true, + "DNS_TYPE_NSEC": true, + "DNS_TYPE_NULL": true, + "DNS_TYPE_NXT": true, + "DNS_TYPE_OPT": true, + "DNS_TYPE_PTR": true, + "DNS_TYPE_PX": true, + "DNS_TYPE_RP": true, + "DNS_TYPE_RRSIG": true, + "DNS_TYPE_RT": true, + "DNS_TYPE_SIG": true, + "DNS_TYPE_SINK": true, + "DNS_TYPE_SOA": true, + "DNS_TYPE_SRV": true, + "DNS_TYPE_TEXT": true, + "DNS_TYPE_TKEY": true, + "DNS_TYPE_TSIG": true, + "DNS_TYPE_UID": true, + "DNS_TYPE_UINFO": true, + "DNS_TYPE_UNSPEC": true, + "DNS_TYPE_WINS": true, + "DNS_TYPE_WINSR": true, + "DNS_TYPE_WKS": true, + "DNS_TYPE_X25": true, + "DT_BLK": true, + "DT_CHR": true, + "DT_DIR": true, + "DT_FIFO": true, + "DT_LNK": true, + "DT_REG": true, + "DT_SOCK": true, + "DT_UNKNOWN": true, + "DT_WHT": true, + "DUPLICATE_CLOSE_SOURCE": true, + "DUPLICATE_SAME_ACCESS": true, + "DeleteFile": true, + "DetachLsf": true, + "DeviceIoControl": true, + "Dirent": true, + "DnsNameCompare": true, + "DnsQuery": true, + "DnsRecordListFree": true, + "DnsSectionAdditional": true, + "DnsSectionAnswer": true, + "DnsSectionAuthority": true, + "DnsSectionQuestion": true, + "Dup": true, + "Dup2": true, + "Dup3": true, + "DuplicateHandle": true, + "E2BIG": true, + "EACCES": true, + "EADDRINUSE": true, + "EADDRNOTAVAIL": true, + "EADV": true, + "EAFNOSUPPORT": true, + "EAGAIN": true, + "EALREADY": true, + "EAUTH": true, + "EBADARCH": true, + "EBADE": true, + "EBADEXEC": true, + "EBADF": true, + "EBADFD": true, + "EBADMACHO": true, + "EBADMSG": true, + "EBADR": true, + "EBADRPC": true, + "EBADRQC": true, + "EBADSLT": true, + "EBFONT": true, + "EBUSY": true, + "ECANCELED": true, + "ECAPMODE": true, + "ECHILD": true, + "ECHO": true, + "ECHOCTL": true, + "ECHOE": true, + "ECHOK": true, + "ECHOKE": true, + "ECHONL": true, + "ECHOPRT": true, + "ECHRNG": true, + "ECOMM": true, + "ECONNABORTED": true, + "ECONNREFUSED": true, + "ECONNRESET": true, + "EDEADLK": true, + "EDEADLOCK": true, + "EDESTADDRREQ": true, + "EDEVERR": true, + "EDOM": true, + "EDOOFUS": true, + "EDOTDOT": true, + "EDQUOT": true, + "EEXIST": true, + "EFAULT": true, + "EFBIG": true, + "EFER_LMA": true, + "EFER_LME": true, + "EFER_NXE": true, + "EFER_SCE": true, + "EFTYPE": true, + "EHOSTDOWN": true, + "EHOSTUNREACH": true, + "EHWPOISON": true, + "EIDRM": true, + "EILSEQ": true, + "EINPROGRESS": true, + "EINTR": true, + "EINVAL": true, + "EIO": true, + "EIPSEC": true, + "EISCONN": true, + "EISDIR": true, + "EISNAM": true, + "EKEYEXPIRED": true, + "EKEYREJECTED": true, + "EKEYREVOKED": true, + "EL2HLT": true, + "EL2NSYNC": true, + "EL3HLT": true, + "EL3RST": true, + "ELAST": true, + "ELF_NGREG": true, + "ELF_PRARGSZ": true, + "ELIBACC": true, + "ELIBBAD": true, + "ELIBEXEC": true, + "ELIBMAX": true, + "ELIBSCN": true, + "ELNRNG": true, + "ELOOP": true, + "EMEDIUMTYPE": true, + "EMFILE": true, + "EMLINK": true, + "EMSGSIZE": true, + "EMT_TAGOVF": true, + "EMULTIHOP": true, + "EMUL_ENABLED": true, + "EMUL_LINUX": true, + "EMUL_LINUX32": true, + "EMUL_MAXID": true, + "EMUL_NATIVE": true, + "ENAMETOOLONG": true, + "ENAVAIL": true, + "ENDRUNDISC": true, + "ENEEDAUTH": true, + "ENETDOWN": true, + "ENETRESET": true, + "ENETUNREACH": true, + "ENFILE": true, + "ENOANO": true, + "ENOATTR": true, + "ENOBUFS": true, + "ENOCSI": true, + "ENODATA": true, + "ENODEV": true, + "ENOENT": true, + "ENOEXEC": true, + "ENOKEY": true, + "ENOLCK": true, + "ENOLINK": true, + "ENOMEDIUM": true, + "ENOMEM": true, + "ENOMSG": true, + "ENONET": true, + "ENOPKG": true, + "ENOPOLICY": true, + "ENOPROTOOPT": true, + "ENOSPC": true, + "ENOSR": true, + "ENOSTR": true, + "ENOSYS": true, + "ENOTBLK": true, + "ENOTCAPABLE": true, + "ENOTCONN": true, + "ENOTDIR": true, + "ENOTEMPTY": true, + "ENOTNAM": true, + "ENOTRECOVERABLE": true, + "ENOTSOCK": true, + "ENOTSUP": true, + "ENOTTY": true, + "ENOTUNIQ": true, + "ENXIO": true, + "EN_SW_CTL_INF": true, + "EN_SW_CTL_PREC": true, + "EN_SW_CTL_ROUND": true, + "EN_SW_DATACHAIN": true, + "EN_SW_DENORM": true, + "EN_SW_INVOP": true, + "EN_SW_OVERFLOW": true, + "EN_SW_PRECLOSS": true, + "EN_SW_UNDERFLOW": true, + "EN_SW_ZERODIV": true, + "EOPNOTSUPP": true, + "EOVERFLOW": true, + "EOWNERDEAD": true, + "EPERM": true, + "EPFNOSUPPORT": true, + "EPIPE": true, + "EPOLLERR": true, + "EPOLLET": true, + "EPOLLHUP": true, + "EPOLLIN": true, + "EPOLLMSG": true, + "EPOLLONESHOT": true, + "EPOLLOUT": true, + "EPOLLPRI": true, + "EPOLLRDBAND": true, + "EPOLLRDHUP": true, + "EPOLLRDNORM": true, + "EPOLLWRBAND": true, + "EPOLLWRNORM": true, + "EPOLL_CLOEXEC": true, + "EPOLL_CTL_ADD": true, + "EPOLL_CTL_DEL": true, + "EPOLL_CTL_MOD": true, + "EPOLL_NONBLOCK": true, + "EPROCLIM": true, + "EPROCUNAVAIL": true, + "EPROGMISMATCH": true, + "EPROGUNAVAIL": true, + "EPROTO": true, + "EPROTONOSUPPORT": true, + "EPROTOTYPE": true, + "EPWROFF": true, + "ERANGE": true, + "EREMCHG": true, + "EREMOTE": true, + "EREMOTEIO": true, + "ERESTART": true, + "ERFKILL": true, + "EROFS": true, + "ERPCMISMATCH": true, + "ERROR_ACCESS_DENIED": true, + "ERROR_ALREADY_EXISTS": true, + "ERROR_BROKEN_PIPE": true, + "ERROR_BUFFER_OVERFLOW": true, + "ERROR_DIR_NOT_EMPTY": true, + "ERROR_ENVVAR_NOT_FOUND": true, + "ERROR_FILE_EXISTS": true, + "ERROR_FILE_NOT_FOUND": true, + "ERROR_HANDLE_EOF": true, + "ERROR_INSUFFICIENT_BUFFER": true, + "ERROR_IO_PENDING": true, + "ERROR_MOD_NOT_FOUND": true, + "ERROR_MORE_DATA": true, + "ERROR_NETNAME_DELETED": true, + "ERROR_NOT_FOUND": true, + "ERROR_NO_MORE_FILES": true, + "ERROR_OPERATION_ABORTED": true, + "ERROR_PATH_NOT_FOUND": true, + "ERROR_PRIVILEGE_NOT_HELD": true, + "ERROR_PROC_NOT_FOUND": true, + "ESHLIBVERS": true, + "ESHUTDOWN": true, + "ESOCKTNOSUPPORT": true, + "ESPIPE": true, + "ESRCH": true, + "ESRMNT": true, + "ESTALE": true, + "ESTRPIPE": true, + "ETHERCAP_JUMBO_MTU": true, + "ETHERCAP_VLAN_HWTAGGING": true, + "ETHERCAP_VLAN_MTU": true, + "ETHERMIN": true, + "ETHERMTU": true, + "ETHERMTU_JUMBO": true, + "ETHERTYPE_8023": true, + "ETHERTYPE_AARP": true, + "ETHERTYPE_ACCTON": true, + "ETHERTYPE_AEONIC": true, + "ETHERTYPE_ALPHA": true, + "ETHERTYPE_AMBER": true, + "ETHERTYPE_AMOEBA": true, + "ETHERTYPE_AOE": true, + "ETHERTYPE_APOLLO": true, + "ETHERTYPE_APOLLODOMAIN": true, + "ETHERTYPE_APPLETALK": true, + "ETHERTYPE_APPLITEK": true, + "ETHERTYPE_ARGONAUT": true, + "ETHERTYPE_ARP": true, + "ETHERTYPE_AT": true, + "ETHERTYPE_ATALK": true, + "ETHERTYPE_ATOMIC": true, + "ETHERTYPE_ATT": true, + "ETHERTYPE_ATTSTANFORD": true, + "ETHERTYPE_AUTOPHON": true, + "ETHERTYPE_AXIS": true, + "ETHERTYPE_BCLOOP": true, + "ETHERTYPE_BOFL": true, + "ETHERTYPE_CABLETRON": true, + "ETHERTYPE_CHAOS": true, + "ETHERTYPE_COMDESIGN": true, + "ETHERTYPE_COMPUGRAPHIC": true, + "ETHERTYPE_COUNTERPOINT": true, + "ETHERTYPE_CRONUS": true, + "ETHERTYPE_CRONUSVLN": true, + "ETHERTYPE_DCA": true, + "ETHERTYPE_DDE": true, + "ETHERTYPE_DEBNI": true, + "ETHERTYPE_DECAM": true, + "ETHERTYPE_DECCUST": true, + "ETHERTYPE_DECDIAG": true, + "ETHERTYPE_DECDNS": true, + "ETHERTYPE_DECDTS": true, + "ETHERTYPE_DECEXPER": true, + "ETHERTYPE_DECLAST": true, + "ETHERTYPE_DECLTM": true, + "ETHERTYPE_DECMUMPS": true, + "ETHERTYPE_DECNETBIOS": true, + "ETHERTYPE_DELTACON": true, + "ETHERTYPE_DIDDLE": true, + "ETHERTYPE_DLOG1": true, + "ETHERTYPE_DLOG2": true, + "ETHERTYPE_DN": true, + "ETHERTYPE_DOGFIGHT": true, + "ETHERTYPE_DSMD": true, + "ETHERTYPE_ECMA": true, + "ETHERTYPE_ENCRYPT": true, + "ETHERTYPE_ES": true, + "ETHERTYPE_EXCELAN": true, + "ETHERTYPE_EXPERDATA": true, + "ETHERTYPE_FLIP": true, + "ETHERTYPE_FLOWCONTROL": true, + "ETHERTYPE_FRARP": true, + "ETHERTYPE_GENDYN": true, + "ETHERTYPE_HAYES": true, + "ETHERTYPE_HIPPI_FP": true, + "ETHERTYPE_HITACHI": true, + "ETHERTYPE_HP": true, + "ETHERTYPE_IEEEPUP": true, + "ETHERTYPE_IEEEPUPAT": true, + "ETHERTYPE_IMLBL": true, + "ETHERTYPE_IMLBLDIAG": true, + "ETHERTYPE_IP": true, + "ETHERTYPE_IPAS": true, + "ETHERTYPE_IPV6": true, + "ETHERTYPE_IPX": true, + "ETHERTYPE_IPXNEW": true, + "ETHERTYPE_KALPANA": true, + "ETHERTYPE_LANBRIDGE": true, + "ETHERTYPE_LANPROBE": true, + "ETHERTYPE_LAT": true, + "ETHERTYPE_LBACK": true, + "ETHERTYPE_LITTLE": true, + "ETHERTYPE_LLDP": true, + "ETHERTYPE_LOGICRAFT": true, + "ETHERTYPE_LOOPBACK": true, + "ETHERTYPE_MATRA": true, + "ETHERTYPE_MAX": true, + "ETHERTYPE_MERIT": true, + "ETHERTYPE_MICP": true, + "ETHERTYPE_MOPDL": true, + "ETHERTYPE_MOPRC": true, + "ETHERTYPE_MOTOROLA": true, + "ETHERTYPE_MPLS": true, + "ETHERTYPE_MPLS_MCAST": true, + "ETHERTYPE_MUMPS": true, + "ETHERTYPE_NBPCC": true, + "ETHERTYPE_NBPCLAIM": true, + "ETHERTYPE_NBPCLREQ": true, + "ETHERTYPE_NBPCLRSP": true, + "ETHERTYPE_NBPCREQ": true, + "ETHERTYPE_NBPCRSP": true, + "ETHERTYPE_NBPDG": true, + "ETHERTYPE_NBPDGB": true, + "ETHERTYPE_NBPDLTE": true, + "ETHERTYPE_NBPRAR": true, + "ETHERTYPE_NBPRAS": true, + "ETHERTYPE_NBPRST": true, + "ETHERTYPE_NBPSCD": true, + "ETHERTYPE_NBPVCD": true, + "ETHERTYPE_NBS": true, + "ETHERTYPE_NCD": true, + "ETHERTYPE_NESTAR": true, + "ETHERTYPE_NETBEUI": true, + "ETHERTYPE_NOVELL": true, + "ETHERTYPE_NS": true, + "ETHERTYPE_NSAT": true, + "ETHERTYPE_NSCOMPAT": true, + "ETHERTYPE_NTRAILER": true, + "ETHERTYPE_OS9": true, + "ETHERTYPE_OS9NET": true, + "ETHERTYPE_PACER": true, + "ETHERTYPE_PAE": true, + "ETHERTYPE_PCS": true, + "ETHERTYPE_PLANNING": true, + "ETHERTYPE_PPP": true, + "ETHERTYPE_PPPOE": true, + "ETHERTYPE_PPPOEDISC": true, + "ETHERTYPE_PRIMENTS": true, + "ETHERTYPE_PUP": true, + "ETHERTYPE_PUPAT": true, + "ETHERTYPE_QINQ": true, + "ETHERTYPE_RACAL": true, + "ETHERTYPE_RATIONAL": true, + "ETHERTYPE_RAWFR": true, + "ETHERTYPE_RCL": true, + "ETHERTYPE_RDP": true, + "ETHERTYPE_RETIX": true, + "ETHERTYPE_REVARP": true, + "ETHERTYPE_SCA": true, + "ETHERTYPE_SECTRA": true, + "ETHERTYPE_SECUREDATA": true, + "ETHERTYPE_SGITW": true, + "ETHERTYPE_SG_BOUNCE": true, + "ETHERTYPE_SG_DIAG": true, + "ETHERTYPE_SG_NETGAMES": true, + "ETHERTYPE_SG_RESV": true, + "ETHERTYPE_SIMNET": true, + "ETHERTYPE_SLOW": true, + "ETHERTYPE_SLOWPROTOCOLS": true, + "ETHERTYPE_SNA": true, + "ETHERTYPE_SNMP": true, + "ETHERTYPE_SONIX": true, + "ETHERTYPE_SPIDER": true, + "ETHERTYPE_SPRITE": true, + "ETHERTYPE_STP": true, + "ETHERTYPE_TALARIS": true, + "ETHERTYPE_TALARISMC": true, + "ETHERTYPE_TCPCOMP": true, + "ETHERTYPE_TCPSM": true, + "ETHERTYPE_TEC": true, + "ETHERTYPE_TIGAN": true, + "ETHERTYPE_TRAIL": true, + "ETHERTYPE_TRANSETHER": true, + "ETHERTYPE_TYMSHARE": true, + "ETHERTYPE_UBBST": true, + "ETHERTYPE_UBDEBUG": true, + "ETHERTYPE_UBDIAGLOOP": true, + "ETHERTYPE_UBDL": true, + "ETHERTYPE_UBNIU": true, + "ETHERTYPE_UBNMC": true, + "ETHERTYPE_VALID": true, + "ETHERTYPE_VARIAN": true, + "ETHERTYPE_VAXELN": true, + "ETHERTYPE_VEECO": true, + "ETHERTYPE_VEXP": true, + "ETHERTYPE_VGLAB": true, + "ETHERTYPE_VINES": true, + "ETHERTYPE_VINESECHO": true, + "ETHERTYPE_VINESLOOP": true, + "ETHERTYPE_VITAL": true, + "ETHERTYPE_VLAN": true, + "ETHERTYPE_VLTLMAN": true, + "ETHERTYPE_VPROD": true, + "ETHERTYPE_VURESERVED": true, + "ETHERTYPE_WATERLOO": true, + "ETHERTYPE_WELLFLEET": true, + "ETHERTYPE_X25": true, + "ETHERTYPE_X75": true, + "ETHERTYPE_XNSSM": true, + "ETHERTYPE_XTP": true, + "ETHER_ADDR_LEN": true, + "ETHER_ALIGN": true, + "ETHER_CRC_LEN": true, + "ETHER_CRC_POLY_BE": true, + "ETHER_CRC_POLY_LE": true, + "ETHER_HDR_LEN": true, + "ETHER_MAX_DIX_LEN": true, + "ETHER_MAX_LEN": true, + "ETHER_MAX_LEN_JUMBO": true, + "ETHER_MIN_LEN": true, + "ETHER_PPPOE_ENCAP_LEN": true, + "ETHER_TYPE_LEN": true, + "ETHER_VLAN_ENCAP_LEN": true, + "ETH_P_1588": true, + "ETH_P_8021Q": true, + "ETH_P_802_2": true, + "ETH_P_802_3": true, + "ETH_P_AARP": true, + "ETH_P_ALL": true, + "ETH_P_AOE": true, + "ETH_P_ARCNET": true, + "ETH_P_ARP": true, + "ETH_P_ATALK": true, + "ETH_P_ATMFATE": true, + "ETH_P_ATMMPOA": true, + "ETH_P_AX25": true, + "ETH_P_BPQ": true, + "ETH_P_CAIF": true, + "ETH_P_CAN": true, + "ETH_P_CONTROL": true, + "ETH_P_CUST": true, + "ETH_P_DDCMP": true, + "ETH_P_DEC": true, + "ETH_P_DIAG": true, + "ETH_P_DNA_DL": true, + "ETH_P_DNA_RC": true, + "ETH_P_DNA_RT": true, + "ETH_P_DSA": true, + "ETH_P_ECONET": true, + "ETH_P_EDSA": true, + "ETH_P_FCOE": true, + "ETH_P_FIP": true, + "ETH_P_HDLC": true, + "ETH_P_IEEE802154": true, + "ETH_P_IEEEPUP": true, + "ETH_P_IEEEPUPAT": true, + "ETH_P_IP": true, + "ETH_P_IPV6": true, + "ETH_P_IPX": true, + "ETH_P_IRDA": true, + "ETH_P_LAT": true, + "ETH_P_LINK_CTL": true, + "ETH_P_LOCALTALK": true, + "ETH_P_LOOP": true, + "ETH_P_MOBITEX": true, + "ETH_P_MPLS_MC": true, + "ETH_P_MPLS_UC": true, + "ETH_P_PAE": true, + "ETH_P_PAUSE": true, + "ETH_P_PHONET": true, + "ETH_P_PPPTALK": true, + "ETH_P_PPP_DISC": true, + "ETH_P_PPP_MP": true, + "ETH_P_PPP_SES": true, + "ETH_P_PUP": true, + "ETH_P_PUPAT": true, + "ETH_P_RARP": true, + "ETH_P_SCA": true, + "ETH_P_SLOW": true, + "ETH_P_SNAP": true, + "ETH_P_TEB": true, + "ETH_P_TIPC": true, + "ETH_P_TRAILER": true, + "ETH_P_TR_802_2": true, + "ETH_P_WAN_PPP": true, + "ETH_P_WCCP": true, + "ETH_P_X25": true, + "ETIME": true, + "ETIMEDOUT": true, + "ETOOMANYREFS": true, + "ETXTBSY": true, + "EUCLEAN": true, + "EUNATCH": true, + "EUSERS": true, + "EVFILT_AIO": true, + "EVFILT_FS": true, + "EVFILT_LIO": true, + "EVFILT_MACHPORT": true, + "EVFILT_PROC": true, + "EVFILT_READ": true, + "EVFILT_SIGNAL": true, + "EVFILT_SYSCOUNT": true, + "EVFILT_THREADMARKER": true, + "EVFILT_TIMER": true, + "EVFILT_USER": true, + "EVFILT_VM": true, + "EVFILT_VNODE": true, + "EVFILT_WRITE": true, + "EV_ADD": true, + "EV_CLEAR": true, + "EV_DELETE": true, + "EV_DISABLE": true, + "EV_DISPATCH": true, + "EV_DROP": true, + "EV_ENABLE": true, + "EV_EOF": true, + "EV_ERROR": true, + "EV_FLAG0": true, + "EV_FLAG1": true, + "EV_ONESHOT": true, + "EV_OOBAND": true, + "EV_POLL": true, + "EV_RECEIPT": true, + "EV_SYSFLAGS": true, + "EWINDOWS": true, + "EWOULDBLOCK": true, + "EXDEV": true, + "EXFULL": true, + "EXTA": true, + "EXTB": true, + "EXTPROC": true, + "Environ": true, + "EpollCreate": true, + "EpollCreate1": true, + "EpollCtl": true, + "EpollEvent": true, + "EpollWait": true, + "Errno": true, + "EscapeArg": true, + "Exchangedata": true, + "Exec": true, + "Exit": true, + "ExitProcess": true, + "FD_CLOEXEC": true, + "FD_SETSIZE": true, + "FILE_ACTION_ADDED": true, + "FILE_ACTION_MODIFIED": true, + "FILE_ACTION_REMOVED": true, + "FILE_ACTION_RENAMED_NEW_NAME": true, + "FILE_ACTION_RENAMED_OLD_NAME": true, + "FILE_APPEND_DATA": true, + "FILE_ATTRIBUTE_ARCHIVE": true, + "FILE_ATTRIBUTE_DIRECTORY": true, + "FILE_ATTRIBUTE_HIDDEN": true, + "FILE_ATTRIBUTE_NORMAL": true, + "FILE_ATTRIBUTE_READONLY": true, + "FILE_ATTRIBUTE_REPARSE_POINT": true, + "FILE_ATTRIBUTE_SYSTEM": true, + "FILE_BEGIN": true, + "FILE_CURRENT": true, + "FILE_END": true, + "FILE_FLAG_BACKUP_SEMANTICS": true, + "FILE_FLAG_OPEN_REPARSE_POINT": true, + "FILE_FLAG_OVERLAPPED": true, + "FILE_LIST_DIRECTORY": true, + "FILE_MAP_COPY": true, + "FILE_MAP_EXECUTE": true, + "FILE_MAP_READ": true, + "FILE_MAP_WRITE": true, + "FILE_NOTIFY_CHANGE_ATTRIBUTES": true, + "FILE_NOTIFY_CHANGE_CREATION": true, + "FILE_NOTIFY_CHANGE_DIR_NAME": true, + "FILE_NOTIFY_CHANGE_FILE_NAME": true, + "FILE_NOTIFY_CHANGE_LAST_ACCESS": true, + "FILE_NOTIFY_CHANGE_LAST_WRITE": true, + "FILE_NOTIFY_CHANGE_SIZE": true, + "FILE_SHARE_DELETE": true, + "FILE_SHARE_READ": true, + "FILE_SHARE_WRITE": true, + "FILE_SKIP_COMPLETION_PORT_ON_SUCCESS": true, + "FILE_SKIP_SET_EVENT_ON_HANDLE": true, + "FILE_TYPE_CHAR": true, + "FILE_TYPE_DISK": true, + "FILE_TYPE_PIPE": true, + "FILE_TYPE_REMOTE": true, + "FILE_TYPE_UNKNOWN": true, + "FILE_WRITE_ATTRIBUTES": true, + "FLUSHO": true, + "FORMAT_MESSAGE_ALLOCATE_BUFFER": true, + "FORMAT_MESSAGE_ARGUMENT_ARRAY": true, + "FORMAT_MESSAGE_FROM_HMODULE": true, + "FORMAT_MESSAGE_FROM_STRING": true, + "FORMAT_MESSAGE_FROM_SYSTEM": true, + "FORMAT_MESSAGE_IGNORE_INSERTS": true, + "FORMAT_MESSAGE_MAX_WIDTH_MASK": true, + "FSCTL_GET_REPARSE_POINT": true, + "F_ADDFILESIGS": true, + "F_ADDSIGS": true, + "F_ALLOCATEALL": true, + "F_ALLOCATECONTIG": true, + "F_CANCEL": true, + "F_CHKCLEAN": true, + "F_CLOSEM": true, + "F_DUP2FD": true, + "F_DUP2FD_CLOEXEC": true, + "F_DUPFD": true, + "F_DUPFD_CLOEXEC": true, + "F_EXLCK": true, + "F_FLUSH_DATA": true, + "F_FREEZE_FS": true, + "F_FSCTL": true, + "F_FSDIRMASK": true, + "F_FSIN": true, + "F_FSINOUT": true, + "F_FSOUT": true, + "F_FSPRIV": true, + "F_FSVOID": true, + "F_FULLFSYNC": true, + "F_GETFD": true, + "F_GETFL": true, + "F_GETLEASE": true, + "F_GETLK": true, + "F_GETLK64": true, + "F_GETLKPID": true, + "F_GETNOSIGPIPE": true, + "F_GETOWN": true, + "F_GETOWN_EX": true, + "F_GETPATH": true, + "F_GETPATH_MTMINFO": true, + "F_GETPIPE_SZ": true, + "F_GETPROTECTIONCLASS": true, + "F_GETSIG": true, + "F_GLOBAL_NOCACHE": true, + "F_LOCK": true, + "F_LOG2PHYS": true, + "F_LOG2PHYS_EXT": true, + "F_MARKDEPENDENCY": true, + "F_MAXFD": true, + "F_NOCACHE": true, + "F_NODIRECT": true, + "F_NOTIFY": true, + "F_OGETLK": true, + "F_OK": true, + "F_OSETLK": true, + "F_OSETLKW": true, + "F_PARAM_MASK": true, + "F_PARAM_MAX": true, + "F_PATHPKG_CHECK": true, + "F_PEOFPOSMODE": true, + "F_PREALLOCATE": true, + "F_RDADVISE": true, + "F_RDAHEAD": true, + "F_RDLCK": true, + "F_READAHEAD": true, + "F_READBOOTSTRAP": true, + "F_SETBACKINGSTORE": true, + "F_SETFD": true, + "F_SETFL": true, + "F_SETLEASE": true, + "F_SETLK": true, + "F_SETLK64": true, + "F_SETLKW": true, + "F_SETLKW64": true, + "F_SETLK_REMOTE": true, + "F_SETNOSIGPIPE": true, + "F_SETOWN": true, + "F_SETOWN_EX": true, + "F_SETPIPE_SZ": true, + "F_SETPROTECTIONCLASS": true, + "F_SETSIG": true, + "F_SETSIZE": true, + "F_SHLCK": true, + "F_TEST": true, + "F_THAW_FS": true, + "F_TLOCK": true, + "F_ULOCK": true, + "F_UNLCK": true, + "F_UNLCKSYS": true, + "F_VOLPOSMODE": true, + "F_WRITEBOOTSTRAP": true, + "F_WRLCK": true, + "Faccessat": true, + "Fallocate": true, + "Fbootstraptransfer_t": true, + "Fchdir": true, + "Fchflags": true, + "Fchmod": true, + "Fchmodat": true, + "Fchown": true, + "Fchownat": true, + "FcntlFlock": true, + "FdSet": true, + "Fdatasync": true, + "FileNotifyInformation": true, + "Filetime": true, + "FindClose": true, + "FindFirstFile": true, + "FindNextFile": true, + "Flock": true, + "Flock_t": true, + "FlushBpf": true, + "FlushFileBuffers": true, + "FlushViewOfFile": true, + "ForkExec": true, + "ForkLock": true, + "FormatMessage": true, + "Fpathconf": true, + "FreeAddrInfoW": true, + "FreeEnvironmentStrings": true, + "FreeLibrary": true, + "Fsid": true, + "Fstat": true, + "Fstatat": true, + "Fstatfs": true, + "Fstore_t": true, + "Fsync": true, + "Ftruncate": true, + "FullPath": true, + "Futimes": true, + "Futimesat": true, + "GENERIC_ALL": true, + "GENERIC_EXECUTE": true, + "GENERIC_READ": true, + "GENERIC_WRITE": true, + "GUID": true, + "GetAcceptExSockaddrs": true, + "GetAdaptersInfo": true, + "GetAddrInfoW": true, + "GetCommandLine": true, + "GetComputerName": true, + "GetConsoleMode": true, + "GetCurrentDirectory": true, + "GetCurrentProcess": true, + "GetEnvironmentStrings": true, + "GetEnvironmentVariable": true, + "GetExitCodeProcess": true, + "GetFileAttributes": true, + "GetFileAttributesEx": true, + "GetFileExInfoStandard": true, + "GetFileExMaxInfoLevel": true, + "GetFileInformationByHandle": true, + "GetFileType": true, + "GetFullPathName": true, + "GetHostByName": true, + "GetIfEntry": true, + "GetLastError": true, + "GetLengthSid": true, + "GetLongPathName": true, + "GetProcAddress": true, + "GetProcessTimes": true, + "GetProtoByName": true, + "GetQueuedCompletionStatus": true, + "GetServByName": true, + "GetShortPathName": true, + "GetStartupInfo": true, + "GetStdHandle": true, + "GetSystemTimeAsFileTime": true, + "GetTempPath": true, + "GetTimeZoneInformation": true, + "GetTokenInformation": true, + "GetUserNameEx": true, + "GetUserProfileDirectory": true, + "GetVersion": true, + "Getcwd": true, + "Getdents": true, + "Getdirentries": true, + "Getdtablesize": true, + "Getegid": true, + "Getenv": true, + "Geteuid": true, + "Getfsstat": true, + "Getgid": true, + "Getgroups": true, + "Getpagesize": true, + "Getpeername": true, + "Getpgid": true, + "Getpgrp": true, + "Getpid": true, + "Getppid": true, + "Getpriority": true, + "Getrlimit": true, + "Getrusage": true, + "Getsid": true, + "Getsockname": true, + "Getsockopt": true, + "GetsockoptByte": true, + "GetsockoptICMPv6Filter": true, + "GetsockoptIPMreq": true, + "GetsockoptIPMreqn": true, + "GetsockoptIPv6MTUInfo": true, + "GetsockoptIPv6Mreq": true, + "GetsockoptInet4Addr": true, + "GetsockoptInt": true, + "GetsockoptUcred": true, + "Gettid": true, + "Gettimeofday": true, + "Getuid": true, + "Getwd": true, + "Getxattr": true, + "HANDLE_FLAG_INHERIT": true, + "HKEY_CLASSES_ROOT": true, + "HKEY_CURRENT_CONFIG": true, + "HKEY_CURRENT_USER": true, + "HKEY_DYN_DATA": true, + "HKEY_LOCAL_MACHINE": true, + "HKEY_PERFORMANCE_DATA": true, + "HKEY_USERS": true, + "HUPCL": true, + "Handle": true, + "Hostent": true, + "ICANON": true, + "ICMP6_FILTER": true, + "ICMPV6_FILTER": true, + "ICMPv6Filter": true, + "ICRNL": true, + "IEXTEN": true, + "IFAN_ARRIVAL": true, + "IFAN_DEPARTURE": true, + "IFA_ADDRESS": true, + "IFA_ANYCAST": true, + "IFA_BROADCAST": true, + "IFA_CACHEINFO": true, + "IFA_F_DADFAILED": true, + "IFA_F_DEPRECATED": true, + "IFA_F_HOMEADDRESS": true, + "IFA_F_NODAD": true, + "IFA_F_OPTIMISTIC": true, + "IFA_F_PERMANENT": true, + "IFA_F_SECONDARY": true, + "IFA_F_TEMPORARY": true, + "IFA_F_TENTATIVE": true, + "IFA_LABEL": true, + "IFA_LOCAL": true, + "IFA_MAX": true, + "IFA_MULTICAST": true, + "IFA_ROUTE": true, + "IFA_UNSPEC": true, + "IFF_ALLMULTI": true, + "IFF_ALTPHYS": true, + "IFF_AUTOMEDIA": true, + "IFF_BROADCAST": true, + "IFF_CANTCHANGE": true, + "IFF_CANTCONFIG": true, + "IFF_DEBUG": true, + "IFF_DRV_OACTIVE": true, + "IFF_DRV_RUNNING": true, + "IFF_DYING": true, + "IFF_DYNAMIC": true, + "IFF_LINK0": true, + "IFF_LINK1": true, + "IFF_LINK2": true, + "IFF_LOOPBACK": true, + "IFF_MASTER": true, + "IFF_MONITOR": true, + "IFF_MULTICAST": true, + "IFF_NOARP": true, + "IFF_NOTRAILERS": true, + "IFF_NO_PI": true, + "IFF_OACTIVE": true, + "IFF_ONE_QUEUE": true, + "IFF_POINTOPOINT": true, + "IFF_POINTTOPOINT": true, + "IFF_PORTSEL": true, + "IFF_PPROMISC": true, + "IFF_PROMISC": true, + "IFF_RENAMING": true, + "IFF_RUNNING": true, + "IFF_SIMPLEX": true, + "IFF_SLAVE": true, + "IFF_SMART": true, + "IFF_STATICARP": true, + "IFF_TAP": true, + "IFF_TUN": true, + "IFF_TUN_EXCL": true, + "IFF_UP": true, + "IFF_VNET_HDR": true, + "IFLA_ADDRESS": true, + "IFLA_BROADCAST": true, + "IFLA_COST": true, + "IFLA_IFALIAS": true, + "IFLA_IFNAME": true, + "IFLA_LINK": true, + "IFLA_LINKINFO": true, + "IFLA_LINKMODE": true, + "IFLA_MAP": true, + "IFLA_MASTER": true, + "IFLA_MAX": true, + "IFLA_MTU": true, + "IFLA_NET_NS_PID": true, + "IFLA_OPERSTATE": true, + "IFLA_PRIORITY": true, + "IFLA_PROTINFO": true, + "IFLA_QDISC": true, + "IFLA_STATS": true, + "IFLA_TXQLEN": true, + "IFLA_UNSPEC": true, + "IFLA_WEIGHT": true, + "IFLA_WIRELESS": true, + "IFNAMSIZ": true, + "IFT_1822": true, + "IFT_A12MPPSWITCH": true, + "IFT_AAL2": true, + "IFT_AAL5": true, + "IFT_ADSL": true, + "IFT_AFLANE8023": true, + "IFT_AFLANE8025": true, + "IFT_ARAP": true, + "IFT_ARCNET": true, + "IFT_ARCNETPLUS": true, + "IFT_ASYNC": true, + "IFT_ATM": true, + "IFT_ATMDXI": true, + "IFT_ATMFUNI": true, + "IFT_ATMIMA": true, + "IFT_ATMLOGICAL": true, + "IFT_ATMRADIO": true, + "IFT_ATMSUBINTERFACE": true, + "IFT_ATMVCIENDPT": true, + "IFT_ATMVIRTUAL": true, + "IFT_BGPPOLICYACCOUNTING": true, + "IFT_BLUETOOTH": true, + "IFT_BRIDGE": true, + "IFT_BSC": true, + "IFT_CARP": true, + "IFT_CCTEMUL": true, + "IFT_CELLULAR": true, + "IFT_CEPT": true, + "IFT_CES": true, + "IFT_CHANNEL": true, + "IFT_CNR": true, + "IFT_COFFEE": true, + "IFT_COMPOSITELINK": true, + "IFT_DCN": true, + "IFT_DIGITALPOWERLINE": true, + "IFT_DIGITALWRAPPEROVERHEADCHANNEL": true, + "IFT_DLSW": true, + "IFT_DOCSCABLEDOWNSTREAM": true, + "IFT_DOCSCABLEMACLAYER": true, + "IFT_DOCSCABLEUPSTREAM": true, + "IFT_DOCSCABLEUPSTREAMCHANNEL": true, + "IFT_DS0": true, + "IFT_DS0BUNDLE": true, + "IFT_DS1FDL": true, + "IFT_DS3": true, + "IFT_DTM": true, + "IFT_DUMMY": true, + "IFT_DVBASILN": true, + "IFT_DVBASIOUT": true, + "IFT_DVBRCCDOWNSTREAM": true, + "IFT_DVBRCCMACLAYER": true, + "IFT_DVBRCCUPSTREAM": true, + "IFT_ECONET": true, + "IFT_ENC": true, + "IFT_EON": true, + "IFT_EPLRS": true, + "IFT_ESCON": true, + "IFT_ETHER": true, + "IFT_FAITH": true, + "IFT_FAST": true, + "IFT_FASTETHER": true, + "IFT_FASTETHERFX": true, + "IFT_FDDI": true, + "IFT_FIBRECHANNEL": true, + "IFT_FRAMERELAYINTERCONNECT": true, + "IFT_FRAMERELAYMPI": true, + "IFT_FRDLCIENDPT": true, + "IFT_FRELAY": true, + "IFT_FRELAYDCE": true, + "IFT_FRF16MFRBUNDLE": true, + "IFT_FRFORWARD": true, + "IFT_G703AT2MB": true, + "IFT_G703AT64K": true, + "IFT_GIF": true, + "IFT_GIGABITETHERNET": true, + "IFT_GR303IDT": true, + "IFT_GR303RDT": true, + "IFT_H323GATEKEEPER": true, + "IFT_H323PROXY": true, + "IFT_HDH1822": true, + "IFT_HDLC": true, + "IFT_HDSL2": true, + "IFT_HIPERLAN2": true, + "IFT_HIPPI": true, + "IFT_HIPPIINTERFACE": true, + "IFT_HOSTPAD": true, + "IFT_HSSI": true, + "IFT_HY": true, + "IFT_IBM370PARCHAN": true, + "IFT_IDSL": true, + "IFT_IEEE1394": true, + "IFT_IEEE80211": true, + "IFT_IEEE80212": true, + "IFT_IEEE8023ADLAG": true, + "IFT_IFGSN": true, + "IFT_IMT": true, + "IFT_INFINIBAND": true, + "IFT_INTERLEAVE": true, + "IFT_IP": true, + "IFT_IPFORWARD": true, + "IFT_IPOVERATM": true, + "IFT_IPOVERCDLC": true, + "IFT_IPOVERCLAW": true, + "IFT_IPSWITCH": true, + "IFT_IPXIP": true, + "IFT_ISDN": true, + "IFT_ISDNBASIC": true, + "IFT_ISDNPRIMARY": true, + "IFT_ISDNS": true, + "IFT_ISDNU": true, + "IFT_ISO88022LLC": true, + "IFT_ISO88023": true, + "IFT_ISO88024": true, + "IFT_ISO88025": true, + "IFT_ISO88025CRFPINT": true, + "IFT_ISO88025DTR": true, + "IFT_ISO88025FIBER": true, + "IFT_ISO88026": true, + "IFT_ISUP": true, + "IFT_L2VLAN": true, + "IFT_L3IPVLAN": true, + "IFT_L3IPXVLAN": true, + "IFT_LAPB": true, + "IFT_LAPD": true, + "IFT_LAPF": true, + "IFT_LINEGROUP": true, + "IFT_LOCALTALK": true, + "IFT_LOOP": true, + "IFT_MEDIAMAILOVERIP": true, + "IFT_MFSIGLINK": true, + "IFT_MIOX25": true, + "IFT_MODEM": true, + "IFT_MPC": true, + "IFT_MPLS": true, + "IFT_MPLSTUNNEL": true, + "IFT_MSDSL": true, + "IFT_MVL": true, + "IFT_MYRINET": true, + "IFT_NFAS": true, + "IFT_NSIP": true, + "IFT_OPTICALCHANNEL": true, + "IFT_OPTICALTRANSPORT": true, + "IFT_OTHER": true, + "IFT_P10": true, + "IFT_P80": true, + "IFT_PARA": true, + "IFT_PDP": true, + "IFT_PFLOG": true, + "IFT_PFLOW": true, + "IFT_PFSYNC": true, + "IFT_PLC": true, + "IFT_PON155": true, + "IFT_PON622": true, + "IFT_POS": true, + "IFT_PPP": true, + "IFT_PPPMULTILINKBUNDLE": true, + "IFT_PROPATM": true, + "IFT_PROPBWAP2MP": true, + "IFT_PROPCNLS": true, + "IFT_PROPDOCSWIRELESSDOWNSTREAM": true, + "IFT_PROPDOCSWIRELESSMACLAYER": true, + "IFT_PROPDOCSWIRELESSUPSTREAM": true, + "IFT_PROPMUX": true, + "IFT_PROPVIRTUAL": true, + "IFT_PROPWIRELESSP2P": true, + "IFT_PTPSERIAL": true, + "IFT_PVC": true, + "IFT_Q2931": true, + "IFT_QLLC": true, + "IFT_RADIOMAC": true, + "IFT_RADSL": true, + "IFT_REACHDSL": true, + "IFT_RFC1483": true, + "IFT_RS232": true, + "IFT_RSRB": true, + "IFT_SDLC": true, + "IFT_SDSL": true, + "IFT_SHDSL": true, + "IFT_SIP": true, + "IFT_SIPSIG": true, + "IFT_SIPTG": true, + "IFT_SLIP": true, + "IFT_SMDSDXI": true, + "IFT_SMDSICIP": true, + "IFT_SONET": true, + "IFT_SONETOVERHEADCHANNEL": true, + "IFT_SONETPATH": true, + "IFT_SONETVT": true, + "IFT_SRP": true, + "IFT_SS7SIGLINK": true, + "IFT_STACKTOSTACK": true, + "IFT_STARLAN": true, + "IFT_STF": true, + "IFT_T1": true, + "IFT_TDLC": true, + "IFT_TELINK": true, + "IFT_TERMPAD": true, + "IFT_TR008": true, + "IFT_TRANSPHDLC": true, + "IFT_TUNNEL": true, + "IFT_ULTRA": true, + "IFT_USB": true, + "IFT_V11": true, + "IFT_V35": true, + "IFT_V36": true, + "IFT_V37": true, + "IFT_VDSL": true, + "IFT_VIRTUALIPADDRESS": true, + "IFT_VIRTUALTG": true, + "IFT_VOICEDID": true, + "IFT_VOICEEM": true, + "IFT_VOICEEMFGD": true, + "IFT_VOICEENCAP": true, + "IFT_VOICEFGDEANA": true, + "IFT_VOICEFXO": true, + "IFT_VOICEFXS": true, + "IFT_VOICEOVERATM": true, + "IFT_VOICEOVERCABLE": true, + "IFT_VOICEOVERFRAMERELAY": true, + "IFT_VOICEOVERIP": true, + "IFT_X213": true, + "IFT_X25": true, + "IFT_X25DDN": true, + "IFT_X25HUNTGROUP": true, + "IFT_X25MLP": true, + "IFT_X25PLE": true, + "IFT_XETHER": true, + "IGNBRK": true, + "IGNCR": true, + "IGNORE": true, + "IGNPAR": true, + "IMAXBEL": true, + "INFINITE": true, + "INLCR": true, + "INPCK": true, + "INVALID_FILE_ATTRIBUTES": true, + "IN_ACCESS": true, + "IN_ALL_EVENTS": true, + "IN_ATTRIB": true, + "IN_CLASSA_HOST": true, + "IN_CLASSA_MAX": true, + "IN_CLASSA_NET": true, + "IN_CLASSA_NSHIFT": true, + "IN_CLASSB_HOST": true, + "IN_CLASSB_MAX": true, + "IN_CLASSB_NET": true, + "IN_CLASSB_NSHIFT": true, + "IN_CLASSC_HOST": true, + "IN_CLASSC_NET": true, + "IN_CLASSC_NSHIFT": true, + "IN_CLASSD_HOST": true, + "IN_CLASSD_NET": true, + "IN_CLASSD_NSHIFT": true, + "IN_CLOEXEC": true, + "IN_CLOSE": true, + "IN_CLOSE_NOWRITE": true, + "IN_CLOSE_WRITE": true, + "IN_CREATE": true, + "IN_DELETE": true, + "IN_DELETE_SELF": true, + "IN_DONT_FOLLOW": true, + "IN_EXCL_UNLINK": true, + "IN_IGNORED": true, + "IN_ISDIR": true, + "IN_LINKLOCALNETNUM": true, + "IN_LOOPBACKNET": true, + "IN_MASK_ADD": true, + "IN_MODIFY": true, + "IN_MOVE": true, + "IN_MOVED_FROM": true, + "IN_MOVED_TO": true, + "IN_MOVE_SELF": true, + "IN_NONBLOCK": true, + "IN_ONESHOT": true, + "IN_ONLYDIR": true, + "IN_OPEN": true, + "IN_Q_OVERFLOW": true, + "IN_RFC3021_HOST": true, + "IN_RFC3021_MASK": true, + "IN_RFC3021_NET": true, + "IN_RFC3021_NSHIFT": true, + "IN_UNMOUNT": true, + "IOC_IN": true, + "IOC_INOUT": true, + "IOC_OUT": true, + "IOC_VENDOR": true, + "IOC_WS2": true, + "IO_REPARSE_TAG_SYMLINK": true, + "IPMreq": true, + "IPMreqn": true, + "IPPROTO_3PC": true, + "IPPROTO_ADFS": true, + "IPPROTO_AH": true, + "IPPROTO_AHIP": true, + "IPPROTO_APES": true, + "IPPROTO_ARGUS": true, + "IPPROTO_AX25": true, + "IPPROTO_BHA": true, + "IPPROTO_BLT": true, + "IPPROTO_BRSATMON": true, + "IPPROTO_CARP": true, + "IPPROTO_CFTP": true, + "IPPROTO_CHAOS": true, + "IPPROTO_CMTP": true, + "IPPROTO_COMP": true, + "IPPROTO_CPHB": true, + "IPPROTO_CPNX": true, + "IPPROTO_DCCP": true, + "IPPROTO_DDP": true, + "IPPROTO_DGP": true, + "IPPROTO_DIVERT": true, + "IPPROTO_DIVERT_INIT": true, + "IPPROTO_DIVERT_RESP": true, + "IPPROTO_DONE": true, + "IPPROTO_DSTOPTS": true, + "IPPROTO_EGP": true, + "IPPROTO_EMCON": true, + "IPPROTO_ENCAP": true, + "IPPROTO_EON": true, + "IPPROTO_ESP": true, + "IPPROTO_ETHERIP": true, + "IPPROTO_FRAGMENT": true, + "IPPROTO_GGP": true, + "IPPROTO_GMTP": true, + "IPPROTO_GRE": true, + "IPPROTO_HELLO": true, + "IPPROTO_HMP": true, + "IPPROTO_HOPOPTS": true, + "IPPROTO_ICMP": true, + "IPPROTO_ICMPV6": true, + "IPPROTO_IDP": true, + "IPPROTO_IDPR": true, + "IPPROTO_IDRP": true, + "IPPROTO_IGMP": true, + "IPPROTO_IGP": true, + "IPPROTO_IGRP": true, + "IPPROTO_IL": true, + "IPPROTO_INLSP": true, + "IPPROTO_INP": true, + "IPPROTO_IP": true, + "IPPROTO_IPCOMP": true, + "IPPROTO_IPCV": true, + "IPPROTO_IPEIP": true, + "IPPROTO_IPIP": true, + "IPPROTO_IPPC": true, + "IPPROTO_IPV4": true, + "IPPROTO_IPV6": true, + "IPPROTO_IPV6_ICMP": true, + "IPPROTO_IRTP": true, + "IPPROTO_KRYPTOLAN": true, + "IPPROTO_LARP": true, + "IPPROTO_LEAF1": true, + "IPPROTO_LEAF2": true, + "IPPROTO_MAX": true, + "IPPROTO_MAXID": true, + "IPPROTO_MEAS": true, + "IPPROTO_MH": true, + "IPPROTO_MHRP": true, + "IPPROTO_MICP": true, + "IPPROTO_MOBILE": true, + "IPPROTO_MPLS": true, + "IPPROTO_MTP": true, + "IPPROTO_MUX": true, + "IPPROTO_ND": true, + "IPPROTO_NHRP": true, + "IPPROTO_NONE": true, + "IPPROTO_NSP": true, + "IPPROTO_NVPII": true, + "IPPROTO_OLD_DIVERT": true, + "IPPROTO_OSPFIGP": true, + "IPPROTO_PFSYNC": true, + "IPPROTO_PGM": true, + "IPPROTO_PIGP": true, + "IPPROTO_PIM": true, + "IPPROTO_PRM": true, + "IPPROTO_PUP": true, + "IPPROTO_PVP": true, + "IPPROTO_RAW": true, + "IPPROTO_RCCMON": true, + "IPPROTO_RDP": true, + "IPPROTO_ROUTING": true, + "IPPROTO_RSVP": true, + "IPPROTO_RVD": true, + "IPPROTO_SATEXPAK": true, + "IPPROTO_SATMON": true, + "IPPROTO_SCCSP": true, + "IPPROTO_SCTP": true, + "IPPROTO_SDRP": true, + "IPPROTO_SEND": true, + "IPPROTO_SEP": true, + "IPPROTO_SKIP": true, + "IPPROTO_SPACER": true, + "IPPROTO_SRPC": true, + "IPPROTO_ST": true, + "IPPROTO_SVMTP": true, + "IPPROTO_SWIPE": true, + "IPPROTO_TCF": true, + "IPPROTO_TCP": true, + "IPPROTO_TLSP": true, + "IPPROTO_TP": true, + "IPPROTO_TPXX": true, + "IPPROTO_TRUNK1": true, + "IPPROTO_TRUNK2": true, + "IPPROTO_TTP": true, + "IPPROTO_UDP": true, + "IPPROTO_UDPLITE": true, + "IPPROTO_VINES": true, + "IPPROTO_VISA": true, + "IPPROTO_VMTP": true, + "IPPROTO_VRRP": true, + "IPPROTO_WBEXPAK": true, + "IPPROTO_WBMON": true, + "IPPROTO_WSN": true, + "IPPROTO_XNET": true, + "IPPROTO_XTP": true, + "IPV6_2292DSTOPTS": true, + "IPV6_2292HOPLIMIT": true, + "IPV6_2292HOPOPTS": true, + "IPV6_2292NEXTHOP": true, + "IPV6_2292PKTINFO": true, + "IPV6_2292PKTOPTIONS": true, + "IPV6_2292RTHDR": true, + "IPV6_ADDRFORM": true, + "IPV6_ADD_MEMBERSHIP": true, + "IPV6_AUTHHDR": true, + "IPV6_AUTH_LEVEL": true, + "IPV6_AUTOFLOWLABEL": true, + "IPV6_BINDANY": true, + "IPV6_BINDV6ONLY": true, + "IPV6_BOUND_IF": true, + "IPV6_CHECKSUM": true, + "IPV6_DEFAULT_MULTICAST_HOPS": true, + "IPV6_DEFAULT_MULTICAST_LOOP": true, + "IPV6_DEFHLIM": true, + "IPV6_DONTFRAG": true, + "IPV6_DROP_MEMBERSHIP": true, + "IPV6_DSTOPTS": true, + "IPV6_ESP_NETWORK_LEVEL": true, + "IPV6_ESP_TRANS_LEVEL": true, + "IPV6_FAITH": true, + "IPV6_FLOWINFO_MASK": true, + "IPV6_FLOWLABEL_MASK": true, + "IPV6_FRAGTTL": true, + "IPV6_FW_ADD": true, + "IPV6_FW_DEL": true, + "IPV6_FW_FLUSH": true, + "IPV6_FW_GET": true, + "IPV6_FW_ZERO": true, + "IPV6_HLIMDEC": true, + "IPV6_HOPLIMIT": true, + "IPV6_HOPOPTS": true, + "IPV6_IPCOMP_LEVEL": true, + "IPV6_IPSEC_POLICY": true, + "IPV6_JOIN_ANYCAST": true, + "IPV6_JOIN_GROUP": true, + "IPV6_LEAVE_ANYCAST": true, + "IPV6_LEAVE_GROUP": true, + "IPV6_MAXHLIM": true, + "IPV6_MAXOPTHDR": true, + "IPV6_MAXPACKET": true, + "IPV6_MAX_GROUP_SRC_FILTER": true, + "IPV6_MAX_MEMBERSHIPS": true, + "IPV6_MAX_SOCK_SRC_FILTER": true, + "IPV6_MIN_MEMBERSHIPS": true, + "IPV6_MMTU": true, + "IPV6_MSFILTER": true, + "IPV6_MTU": true, + "IPV6_MTU_DISCOVER": true, + "IPV6_MULTICAST_HOPS": true, + "IPV6_MULTICAST_IF": true, + "IPV6_MULTICAST_LOOP": true, + "IPV6_NEXTHOP": true, + "IPV6_OPTIONS": true, + "IPV6_PATHMTU": true, + "IPV6_PIPEX": true, + "IPV6_PKTINFO": true, + "IPV6_PMTUDISC_DO": true, + "IPV6_PMTUDISC_DONT": true, + "IPV6_PMTUDISC_PROBE": true, + "IPV6_PMTUDISC_WANT": true, + "IPV6_PORTRANGE": true, + "IPV6_PORTRANGE_DEFAULT": true, + "IPV6_PORTRANGE_HIGH": true, + "IPV6_PORTRANGE_LOW": true, + "IPV6_PREFER_TEMPADDR": true, + "IPV6_RECVDSTOPTS": true, + "IPV6_RECVDSTPORT": true, + "IPV6_RECVERR": true, + "IPV6_RECVHOPLIMIT": true, + "IPV6_RECVHOPOPTS": true, + "IPV6_RECVPATHMTU": true, + "IPV6_RECVPKTINFO": true, + "IPV6_RECVRTHDR": true, + "IPV6_RECVTCLASS": true, + "IPV6_ROUTER_ALERT": true, + "IPV6_RTABLE": true, + "IPV6_RTHDR": true, + "IPV6_RTHDRDSTOPTS": true, + "IPV6_RTHDR_LOOSE": true, + "IPV6_RTHDR_STRICT": true, + "IPV6_RTHDR_TYPE_0": true, + "IPV6_RXDSTOPTS": true, + "IPV6_RXHOPOPTS": true, + "IPV6_SOCKOPT_RESERVED1": true, + "IPV6_TCLASS": true, + "IPV6_UNICAST_HOPS": true, + "IPV6_USE_MIN_MTU": true, + "IPV6_V6ONLY": true, + "IPV6_VERSION": true, + "IPV6_VERSION_MASK": true, + "IPV6_XFRM_POLICY": true, + "IP_ADD_MEMBERSHIP": true, + "IP_ADD_SOURCE_MEMBERSHIP": true, + "IP_AUTH_LEVEL": true, + "IP_BINDANY": true, + "IP_BLOCK_SOURCE": true, + "IP_BOUND_IF": true, + "IP_DEFAULT_MULTICAST_LOOP": true, + "IP_DEFAULT_MULTICAST_TTL": true, + "IP_DF": true, + "IP_DIVERTFL": true, + "IP_DONTFRAG": true, + "IP_DROP_MEMBERSHIP": true, + "IP_DROP_SOURCE_MEMBERSHIP": true, + "IP_DUMMYNET3": true, + "IP_DUMMYNET_CONFIGURE": true, + "IP_DUMMYNET_DEL": true, + "IP_DUMMYNET_FLUSH": true, + "IP_DUMMYNET_GET": true, + "IP_EF": true, + "IP_ERRORMTU": true, + "IP_ESP_NETWORK_LEVEL": true, + "IP_ESP_TRANS_LEVEL": true, + "IP_FAITH": true, + "IP_FREEBIND": true, + "IP_FW3": true, + "IP_FW_ADD": true, + "IP_FW_DEL": true, + "IP_FW_FLUSH": true, + "IP_FW_GET": true, + "IP_FW_NAT_CFG": true, + "IP_FW_NAT_DEL": true, + "IP_FW_NAT_GET_CONFIG": true, + "IP_FW_NAT_GET_LOG": true, + "IP_FW_RESETLOG": true, + "IP_FW_TABLE_ADD": true, + "IP_FW_TABLE_DEL": true, + "IP_FW_TABLE_FLUSH": true, + "IP_FW_TABLE_GETSIZE": true, + "IP_FW_TABLE_LIST": true, + "IP_FW_ZERO": true, + "IP_HDRINCL": true, + "IP_IPCOMP_LEVEL": true, + "IP_IPSECFLOWINFO": true, + "IP_IPSEC_LOCAL_AUTH": true, + "IP_IPSEC_LOCAL_CRED": true, + "IP_IPSEC_LOCAL_ID": true, + "IP_IPSEC_POLICY": true, + "IP_IPSEC_REMOTE_AUTH": true, + "IP_IPSEC_REMOTE_CRED": true, + "IP_IPSEC_REMOTE_ID": true, + "IP_MAXPACKET": true, + "IP_MAX_GROUP_SRC_FILTER": true, + "IP_MAX_MEMBERSHIPS": true, + "IP_MAX_SOCK_MUTE_FILTER": true, + "IP_MAX_SOCK_SRC_FILTER": true, + "IP_MAX_SOURCE_FILTER": true, + "IP_MF": true, + "IP_MINFRAGSIZE": true, + "IP_MINTTL": true, + "IP_MIN_MEMBERSHIPS": true, + "IP_MSFILTER": true, + "IP_MSS": true, + "IP_MTU": true, + "IP_MTU_DISCOVER": true, + "IP_MULTICAST_IF": true, + "IP_MULTICAST_IFINDEX": true, + "IP_MULTICAST_LOOP": true, + "IP_MULTICAST_TTL": true, + "IP_MULTICAST_VIF": true, + "IP_NAT__XXX": true, + "IP_OFFMASK": true, + "IP_OLD_FW_ADD": true, + "IP_OLD_FW_DEL": true, + "IP_OLD_FW_FLUSH": true, + "IP_OLD_FW_GET": true, + "IP_OLD_FW_RESETLOG": true, + "IP_OLD_FW_ZERO": true, + "IP_ONESBCAST": true, + "IP_OPTIONS": true, + "IP_ORIGDSTADDR": true, + "IP_PASSSEC": true, + "IP_PIPEX": true, + "IP_PKTINFO": true, + "IP_PKTOPTIONS": true, + "IP_PMTUDISC": true, + "IP_PMTUDISC_DO": true, + "IP_PMTUDISC_DONT": true, + "IP_PMTUDISC_PROBE": true, + "IP_PMTUDISC_WANT": true, + "IP_PORTRANGE": true, + "IP_PORTRANGE_DEFAULT": true, + "IP_PORTRANGE_HIGH": true, + "IP_PORTRANGE_LOW": true, + "IP_RECVDSTADDR": true, + "IP_RECVDSTPORT": true, + "IP_RECVERR": true, + "IP_RECVIF": true, + "IP_RECVOPTS": true, + "IP_RECVORIGDSTADDR": true, + "IP_RECVPKTINFO": true, + "IP_RECVRETOPTS": true, + "IP_RECVRTABLE": true, + "IP_RECVTOS": true, + "IP_RECVTTL": true, + "IP_RETOPTS": true, + "IP_RF": true, + "IP_ROUTER_ALERT": true, + "IP_RSVP_OFF": true, + "IP_RSVP_ON": true, + "IP_RSVP_VIF_OFF": true, + "IP_RSVP_VIF_ON": true, + "IP_RTABLE": true, + "IP_SENDSRCADDR": true, + "IP_STRIPHDR": true, + "IP_TOS": true, + "IP_TRAFFIC_MGT_BACKGROUND": true, + "IP_TRANSPARENT": true, + "IP_TTL": true, + "IP_UNBLOCK_SOURCE": true, + "IP_XFRM_POLICY": true, + "IPv6MTUInfo": true, + "IPv6Mreq": true, + "ISIG": true, + "ISTRIP": true, + "IUCLC": true, + "IUTF8": true, + "IXANY": true, + "IXOFF": true, + "IXON": true, + "IfAddrmsg": true, + "IfAnnounceMsghdr": true, + "IfData": true, + "IfInfomsg": true, + "IfMsghdr": true, + "IfaMsghdr": true, + "IfmaMsghdr": true, + "IfmaMsghdr2": true, + "ImplementsGetwd": true, + "Inet4Pktinfo": true, + "Inet6Pktinfo": true, + "InotifyAddWatch": true, + "InotifyEvent": true, + "InotifyInit": true, + "InotifyInit1": true, + "InotifyRmWatch": true, + "InterfaceAddrMessage": true, + "InterfaceAnnounceMessage": true, + "InterfaceInfo": true, + "InterfaceMessage": true, + "InterfaceMulticastAddrMessage": true, + "InvalidHandle": true, + "Ioperm": true, + "Iopl": true, + "Iovec": true, + "IpAdapterInfo": true, + "IpAddrString": true, + "IpAddressString": true, + "IpMaskString": true, + "Issetugid": true, + "KEY_ALL_ACCESS": true, + "KEY_CREATE_LINK": true, + "KEY_CREATE_SUB_KEY": true, + "KEY_ENUMERATE_SUB_KEYS": true, + "KEY_EXECUTE": true, + "KEY_NOTIFY": true, + "KEY_QUERY_VALUE": true, + "KEY_READ": true, + "KEY_SET_VALUE": true, + "KEY_WOW64_32KEY": true, + "KEY_WOW64_64KEY": true, + "KEY_WRITE": true, + "Kevent": true, + "Kevent_t": true, + "Kill": true, + "Klogctl": true, + "Kqueue": true, + "LANG_ENGLISH": true, + "LAYERED_PROTOCOL": true, + "LCNT_OVERLOAD_FLUSH": true, + "LINUX_REBOOT_CMD_CAD_OFF": true, + "LINUX_REBOOT_CMD_CAD_ON": true, + "LINUX_REBOOT_CMD_HALT": true, + "LINUX_REBOOT_CMD_KEXEC": true, + "LINUX_REBOOT_CMD_POWER_OFF": true, + "LINUX_REBOOT_CMD_RESTART": true, + "LINUX_REBOOT_CMD_RESTART2": true, + "LINUX_REBOOT_CMD_SW_SUSPEND": true, + "LINUX_REBOOT_MAGIC1": true, + "LINUX_REBOOT_MAGIC2": true, + "LOCK_EX": true, + "LOCK_NB": true, + "LOCK_SH": true, + "LOCK_UN": true, + "LazyDLL": true, + "LazyProc": true, + "Lchown": true, + "Linger": true, + "Link": true, + "Listen": true, + "Listxattr": true, + "LoadCancelIoEx": true, + "LoadConnectEx": true, + "LoadCreateSymbolicLink": true, + "LoadDLL": true, + "LoadGetAddrInfo": true, + "LoadLibrary": true, + "LoadSetFileCompletionNotificationModes": true, + "LocalFree": true, + "Log2phys_t": true, + "LookupAccountName": true, + "LookupAccountSid": true, + "LookupSID": true, + "LsfJump": true, + "LsfSocket": true, + "LsfStmt": true, + "Lstat": true, + "MADV_AUTOSYNC": true, + "MADV_CAN_REUSE": true, + "MADV_CORE": true, + "MADV_DOFORK": true, + "MADV_DONTFORK": true, + "MADV_DONTNEED": true, + "MADV_FREE": true, + "MADV_FREE_REUSABLE": true, + "MADV_FREE_REUSE": true, + "MADV_HUGEPAGE": true, + "MADV_HWPOISON": true, + "MADV_MERGEABLE": true, + "MADV_NOCORE": true, + "MADV_NOHUGEPAGE": true, + "MADV_NORMAL": true, + "MADV_NOSYNC": true, + "MADV_PROTECT": true, + "MADV_RANDOM": true, + "MADV_REMOVE": true, + "MADV_SEQUENTIAL": true, + "MADV_SPACEAVAIL": true, + "MADV_UNMERGEABLE": true, + "MADV_WILLNEED": true, + "MADV_ZERO_WIRED_PAGES": true, + "MAP_32BIT": true, + "MAP_ALIGNED_SUPER": true, + "MAP_ALIGNMENT_16MB": true, + "MAP_ALIGNMENT_1TB": true, + "MAP_ALIGNMENT_256TB": true, + "MAP_ALIGNMENT_4GB": true, + "MAP_ALIGNMENT_64KB": true, + "MAP_ALIGNMENT_64PB": true, + "MAP_ALIGNMENT_MASK": true, + "MAP_ALIGNMENT_SHIFT": true, + "MAP_ANON": true, + "MAP_ANONYMOUS": true, + "MAP_COPY": true, + "MAP_DENYWRITE": true, + "MAP_EXECUTABLE": true, + "MAP_FILE": true, + "MAP_FIXED": true, + "MAP_FLAGMASK": true, + "MAP_GROWSDOWN": true, + "MAP_HASSEMAPHORE": true, + "MAP_HUGETLB": true, + "MAP_INHERIT": true, + "MAP_INHERIT_COPY": true, + "MAP_INHERIT_DEFAULT": true, + "MAP_INHERIT_DONATE_COPY": true, + "MAP_INHERIT_NONE": true, + "MAP_INHERIT_SHARE": true, + "MAP_JIT": true, + "MAP_LOCKED": true, + "MAP_NOCACHE": true, + "MAP_NOCORE": true, + "MAP_NOEXTEND": true, + "MAP_NONBLOCK": true, + "MAP_NORESERVE": true, + "MAP_NOSYNC": true, + "MAP_POPULATE": true, + "MAP_PREFAULT_READ": true, + "MAP_PRIVATE": true, + "MAP_RENAME": true, + "MAP_RESERVED0080": true, + "MAP_RESERVED0100": true, + "MAP_SHARED": true, + "MAP_STACK": true, + "MAP_TRYFIXED": true, + "MAP_TYPE": true, + "MAP_WIRED": true, + "MAXIMUM_REPARSE_DATA_BUFFER_SIZE": true, + "MAXLEN_IFDESCR": true, + "MAXLEN_PHYSADDR": true, + "MAX_ADAPTER_ADDRESS_LENGTH": true, + "MAX_ADAPTER_DESCRIPTION_LENGTH": true, + "MAX_ADAPTER_NAME_LENGTH": true, + "MAX_COMPUTERNAME_LENGTH": true, + "MAX_INTERFACE_NAME_LEN": true, + "MAX_LONG_PATH": true, + "MAX_PATH": true, + "MAX_PROTOCOL_CHAIN": true, + "MCL_CURRENT": true, + "MCL_FUTURE": true, + "MNT_DETACH": true, + "MNT_EXPIRE": true, + "MNT_FORCE": true, + "MSG_BCAST": true, + "MSG_CMSG_CLOEXEC": true, + "MSG_COMPAT": true, + "MSG_CONFIRM": true, + "MSG_CONTROLMBUF": true, + "MSG_CTRUNC": true, + "MSG_DONTROUTE": true, + "MSG_DONTWAIT": true, + "MSG_EOF": true, + "MSG_EOR": true, + "MSG_ERRQUEUE": true, + "MSG_FASTOPEN": true, + "MSG_FIN": true, + "MSG_FLUSH": true, + "MSG_HAVEMORE": true, + "MSG_HOLD": true, + "MSG_IOVUSRSPACE": true, + "MSG_LENUSRSPACE": true, + "MSG_MCAST": true, + "MSG_MORE": true, + "MSG_NAMEMBUF": true, + "MSG_NBIO": true, + "MSG_NEEDSA": true, + "MSG_NOSIGNAL": true, + "MSG_NOTIFICATION": true, + "MSG_OOB": true, + "MSG_PEEK": true, + "MSG_PROXY": true, + "MSG_RCVMORE": true, + "MSG_RST": true, + "MSG_SEND": true, + "MSG_SYN": true, + "MSG_TRUNC": true, + "MSG_TRYHARD": true, + "MSG_USERFLAGS": true, + "MSG_WAITALL": true, + "MSG_WAITFORONE": true, + "MSG_WAITSTREAM": true, + "MS_ACTIVE": true, + "MS_ASYNC": true, + "MS_BIND": true, + "MS_DEACTIVATE": true, + "MS_DIRSYNC": true, + "MS_INVALIDATE": true, + "MS_I_VERSION": true, + "MS_KERNMOUNT": true, + "MS_KILLPAGES": true, + "MS_MANDLOCK": true, + "MS_MGC_MSK": true, + "MS_MGC_VAL": true, + "MS_MOVE": true, + "MS_NOATIME": true, + "MS_NODEV": true, + "MS_NODIRATIME": true, + "MS_NOEXEC": true, + "MS_NOSUID": true, + "MS_NOUSER": true, + "MS_POSIXACL": true, + "MS_PRIVATE": true, + "MS_RDONLY": true, + "MS_REC": true, + "MS_RELATIME": true, + "MS_REMOUNT": true, + "MS_RMT_MASK": true, + "MS_SHARED": true, + "MS_SILENT": true, + "MS_SLAVE": true, + "MS_STRICTATIME": true, + "MS_SYNC": true, + "MS_SYNCHRONOUS": true, + "MS_UNBINDABLE": true, + "Madvise": true, + "MapViewOfFile": true, + "MaxTokenInfoClass": true, + "Mclpool": true, + "MibIfRow": true, + "Mkdir": true, + "Mkdirat": true, + "Mkfifo": true, + "Mknod": true, + "Mknodat": true, + "Mlock": true, + "Mlockall": true, + "Mmap": true, + "Mount": true, + "MoveFile": true, + "Mprotect": true, + "Msghdr": true, + "Munlock": true, + "Munlockall": true, + "Munmap": true, + "MustLoadDLL": true, + "NAME_MAX": true, + "NETLINK_ADD_MEMBERSHIP": true, + "NETLINK_AUDIT": true, + "NETLINK_BROADCAST_ERROR": true, + "NETLINK_CONNECTOR": true, + "NETLINK_DNRTMSG": true, + "NETLINK_DROP_MEMBERSHIP": true, + "NETLINK_ECRYPTFS": true, + "NETLINK_FIB_LOOKUP": true, + "NETLINK_FIREWALL": true, + "NETLINK_GENERIC": true, + "NETLINK_INET_DIAG": true, + "NETLINK_IP6_FW": true, + "NETLINK_ISCSI": true, + "NETLINK_KOBJECT_UEVENT": true, + "NETLINK_NETFILTER": true, + "NETLINK_NFLOG": true, + "NETLINK_NO_ENOBUFS": true, + "NETLINK_PKTINFO": true, + "NETLINK_RDMA": true, + "NETLINK_ROUTE": true, + "NETLINK_SCSITRANSPORT": true, + "NETLINK_SELINUX": true, + "NETLINK_UNUSED": true, + "NETLINK_USERSOCK": true, + "NETLINK_XFRM": true, + "NET_RT_DUMP": true, + "NET_RT_DUMP2": true, + "NET_RT_FLAGS": true, + "NET_RT_IFLIST": true, + "NET_RT_IFLIST2": true, + "NET_RT_IFLISTL": true, + "NET_RT_IFMALIST": true, + "NET_RT_MAXID": true, + "NET_RT_OIFLIST": true, + "NET_RT_OOIFLIST": true, + "NET_RT_STAT": true, + "NET_RT_STATS": true, + "NET_RT_TABLE": true, + "NET_RT_TRASH": true, + "NLA_ALIGNTO": true, + "NLA_F_NESTED": true, + "NLA_F_NET_BYTEORDER": true, + "NLA_HDRLEN": true, + "NLMSG_ALIGNTO": true, + "NLMSG_DONE": true, + "NLMSG_ERROR": true, + "NLMSG_HDRLEN": true, + "NLMSG_MIN_TYPE": true, + "NLMSG_NOOP": true, + "NLMSG_OVERRUN": true, + "NLM_F_ACK": true, + "NLM_F_APPEND": true, + "NLM_F_ATOMIC": true, + "NLM_F_CREATE": true, + "NLM_F_DUMP": true, + "NLM_F_ECHO": true, + "NLM_F_EXCL": true, + "NLM_F_MATCH": true, + "NLM_F_MULTI": true, + "NLM_F_REPLACE": true, + "NLM_F_REQUEST": true, + "NLM_F_ROOT": true, + "NOFLSH": true, + "NOTE_ABSOLUTE": true, + "NOTE_ATTRIB": true, + "NOTE_CHILD": true, + "NOTE_DELETE": true, + "NOTE_EOF": true, + "NOTE_EXEC": true, + "NOTE_EXIT": true, + "NOTE_EXITSTATUS": true, + "NOTE_EXTEND": true, + "NOTE_FFAND": true, + "NOTE_FFCOPY": true, + "NOTE_FFCTRLMASK": true, + "NOTE_FFLAGSMASK": true, + "NOTE_FFNOP": true, + "NOTE_FFOR": true, + "NOTE_FORK": true, + "NOTE_LINK": true, + "NOTE_LOWAT": true, + "NOTE_NONE": true, + "NOTE_NSECONDS": true, + "NOTE_PCTRLMASK": true, + "NOTE_PDATAMASK": true, + "NOTE_REAP": true, + "NOTE_RENAME": true, + "NOTE_RESOURCEEND": true, + "NOTE_REVOKE": true, + "NOTE_SECONDS": true, + "NOTE_SIGNAL": true, + "NOTE_TRACK": true, + "NOTE_TRACKERR": true, + "NOTE_TRIGGER": true, + "NOTE_TRUNCATE": true, + "NOTE_USECONDS": true, + "NOTE_VM_ERROR": true, + "NOTE_VM_PRESSURE": true, + "NOTE_VM_PRESSURE_SUDDEN_TERMINATE": true, + "NOTE_VM_PRESSURE_TERMINATE": true, + "NOTE_WRITE": true, + "NameCanonical": true, + "NameCanonicalEx": true, + "NameDisplay": true, + "NameDnsDomain": true, + "NameFullyQualifiedDN": true, + "NameSamCompatible": true, + "NameServicePrincipal": true, + "NameUniqueId": true, + "NameUnknown": true, + "NameUserPrincipal": true, + "Nanosleep": true, + "NetApiBufferFree": true, + "NetGetJoinInformation": true, + "NetSetupDomainName": true, + "NetSetupUnjoined": true, + "NetSetupUnknownStatus": true, + "NetSetupWorkgroupName": true, + "NetUserGetInfo": true, + "NetlinkMessage": true, + "NetlinkRIB": true, + "NetlinkRouteAttr": true, + "NetlinkRouteRequest": true, + "NewCallback": true, + "NewCallbackCDecl": true, + "NewLazyDLL": true, + "NlAttr": true, + "NlMsgerr": true, + "NlMsghdr": true, + "NsecToFiletime": true, + "NsecToTimespec": true, + "NsecToTimeval": true, + "Ntohs": true, + "OCRNL": true, + "OFDEL": true, + "OFILL": true, + "OFIOGETBMAP": true, + "OID_PKIX_KP_SERVER_AUTH": true, + "OID_SERVER_GATED_CRYPTO": true, + "OID_SGC_NETSCAPE": true, + "OLCUC": true, + "ONLCR": true, + "ONLRET": true, + "ONOCR": true, + "ONOEOT": true, + "OPEN_ALWAYS": true, + "OPEN_EXISTING": true, + "OPOST": true, + "O_ACCMODE": true, + "O_ALERT": true, + "O_ALT_IO": true, + "O_APPEND": true, + "O_ASYNC": true, + "O_CLOEXEC": true, + "O_CREAT": true, + "O_DIRECT": true, + "O_DIRECTORY": true, + "O_DSYNC": true, + "O_EVTONLY": true, + "O_EXCL": true, + "O_EXEC": true, + "O_EXLOCK": true, + "O_FSYNC": true, + "O_LARGEFILE": true, + "O_NDELAY": true, + "O_NOATIME": true, + "O_NOCTTY": true, + "O_NOFOLLOW": true, + "O_NONBLOCK": true, + "O_NOSIGPIPE": true, + "O_POPUP": true, + "O_RDONLY": true, + "O_RDWR": true, + "O_RSYNC": true, + "O_SHLOCK": true, + "O_SYMLINK": true, + "O_SYNC": true, + "O_TRUNC": true, + "O_TTY_INIT": true, + "O_WRONLY": true, + "Open": true, + "OpenCurrentProcessToken": true, + "OpenProcess": true, + "OpenProcessToken": true, + "Openat": true, + "Overlapped": true, + "PACKET_ADD_MEMBERSHIP": true, + "PACKET_BROADCAST": true, + "PACKET_DROP_MEMBERSHIP": true, + "PACKET_FASTROUTE": true, + "PACKET_HOST": true, + "PACKET_LOOPBACK": true, + "PACKET_MR_ALLMULTI": true, + "PACKET_MR_MULTICAST": true, + "PACKET_MR_PROMISC": true, + "PACKET_MULTICAST": true, + "PACKET_OTHERHOST": true, + "PACKET_OUTGOING": true, + "PACKET_RECV_OUTPUT": true, + "PACKET_RX_RING": true, + "PACKET_STATISTICS": true, + "PAGE_EXECUTE_READ": true, + "PAGE_EXECUTE_READWRITE": true, + "PAGE_EXECUTE_WRITECOPY": true, + "PAGE_READONLY": true, + "PAGE_READWRITE": true, + "PAGE_WRITECOPY": true, + "PARENB": true, + "PARMRK": true, + "PARODD": true, + "PENDIN": true, + "PFL_HIDDEN": true, + "PFL_MATCHES_PROTOCOL_ZERO": true, + "PFL_MULTIPLE_PROTO_ENTRIES": true, + "PFL_NETWORKDIRECT_PROVIDER": true, + "PFL_RECOMMENDED_PROTO_ENTRY": true, + "PF_FLUSH": true, + "PKCS_7_ASN_ENCODING": true, + "PMC5_PIPELINE_FLUSH": true, + "PRIO_PGRP": true, + "PRIO_PROCESS": true, + "PRIO_USER": true, + "PRI_IOFLUSH": true, + "PROCESS_QUERY_INFORMATION": true, + "PROCESS_TERMINATE": true, + "PROT_EXEC": true, + "PROT_GROWSDOWN": true, + "PROT_GROWSUP": true, + "PROT_NONE": true, + "PROT_READ": true, + "PROT_WRITE": true, + "PROV_DH_SCHANNEL": true, + "PROV_DSS": true, + "PROV_DSS_DH": true, + "PROV_EC_ECDSA_FULL": true, + "PROV_EC_ECDSA_SIG": true, + "PROV_EC_ECNRA_FULL": true, + "PROV_EC_ECNRA_SIG": true, + "PROV_FORTEZZA": true, + "PROV_INTEL_SEC": true, + "PROV_MS_EXCHANGE": true, + "PROV_REPLACE_OWF": true, + "PROV_RNG": true, + "PROV_RSA_AES": true, + "PROV_RSA_FULL": true, + "PROV_RSA_SCHANNEL": true, + "PROV_RSA_SIG": true, + "PROV_SPYRUS_LYNKS": true, + "PROV_SSL": true, + "PR_CAPBSET_DROP": true, + "PR_CAPBSET_READ": true, + "PR_CLEAR_SECCOMP_FILTER": true, + "PR_ENDIAN_BIG": true, + "PR_ENDIAN_LITTLE": true, + "PR_ENDIAN_PPC_LITTLE": true, + "PR_FPEMU_NOPRINT": true, + "PR_FPEMU_SIGFPE": true, + "PR_FP_EXC_ASYNC": true, + "PR_FP_EXC_DISABLED": true, + "PR_FP_EXC_DIV": true, + "PR_FP_EXC_INV": true, + "PR_FP_EXC_NONRECOV": true, + "PR_FP_EXC_OVF": true, + "PR_FP_EXC_PRECISE": true, + "PR_FP_EXC_RES": true, + "PR_FP_EXC_SW_ENABLE": true, + "PR_FP_EXC_UND": true, + "PR_GET_DUMPABLE": true, + "PR_GET_ENDIAN": true, + "PR_GET_FPEMU": true, + "PR_GET_FPEXC": true, + "PR_GET_KEEPCAPS": true, + "PR_GET_NAME": true, + "PR_GET_PDEATHSIG": true, + "PR_GET_SECCOMP": true, + "PR_GET_SECCOMP_FILTER": true, + "PR_GET_SECUREBITS": true, + "PR_GET_TIMERSLACK": true, + "PR_GET_TIMING": true, + "PR_GET_TSC": true, + "PR_GET_UNALIGN": true, + "PR_MCE_KILL": true, + "PR_MCE_KILL_CLEAR": true, + "PR_MCE_KILL_DEFAULT": true, + "PR_MCE_KILL_EARLY": true, + "PR_MCE_KILL_GET": true, + "PR_MCE_KILL_LATE": true, + "PR_MCE_KILL_SET": true, + "PR_SECCOMP_FILTER_EVENT": true, + "PR_SECCOMP_FILTER_SYSCALL": true, + "PR_SET_DUMPABLE": true, + "PR_SET_ENDIAN": true, + "PR_SET_FPEMU": true, + "PR_SET_FPEXC": true, + "PR_SET_KEEPCAPS": true, + "PR_SET_NAME": true, + "PR_SET_PDEATHSIG": true, + "PR_SET_PTRACER": true, + "PR_SET_SECCOMP": true, + "PR_SET_SECCOMP_FILTER": true, + "PR_SET_SECUREBITS": true, + "PR_SET_TIMERSLACK": true, + "PR_SET_TIMING": true, + "PR_SET_TSC": true, + "PR_SET_UNALIGN": true, + "PR_TASK_PERF_EVENTS_DISABLE": true, + "PR_TASK_PERF_EVENTS_ENABLE": true, + "PR_TIMING_STATISTICAL": true, + "PR_TIMING_TIMESTAMP": true, + "PR_TSC_ENABLE": true, + "PR_TSC_SIGSEGV": true, + "PR_UNALIGN_NOPRINT": true, + "PR_UNALIGN_SIGBUS": true, + "PTRACE_ARCH_PRCTL": true, + "PTRACE_ATTACH": true, + "PTRACE_CONT": true, + "PTRACE_DETACH": true, + "PTRACE_EVENT_CLONE": true, + "PTRACE_EVENT_EXEC": true, + "PTRACE_EVENT_EXIT": true, + "PTRACE_EVENT_FORK": true, + "PTRACE_EVENT_VFORK": true, + "PTRACE_EVENT_VFORK_DONE": true, + "PTRACE_GETCRUNCHREGS": true, + "PTRACE_GETEVENTMSG": true, + "PTRACE_GETFPREGS": true, + "PTRACE_GETFPXREGS": true, + "PTRACE_GETHBPREGS": true, + "PTRACE_GETREGS": true, + "PTRACE_GETREGSET": true, + "PTRACE_GETSIGINFO": true, + "PTRACE_GETVFPREGS": true, + "PTRACE_GETWMMXREGS": true, + "PTRACE_GET_THREAD_AREA": true, + "PTRACE_KILL": true, + "PTRACE_OLDSETOPTIONS": true, + "PTRACE_O_MASK": true, + "PTRACE_O_TRACECLONE": true, + "PTRACE_O_TRACEEXEC": true, + "PTRACE_O_TRACEEXIT": true, + "PTRACE_O_TRACEFORK": true, + "PTRACE_O_TRACESYSGOOD": true, + "PTRACE_O_TRACEVFORK": true, + "PTRACE_O_TRACEVFORKDONE": true, + "PTRACE_PEEKDATA": true, + "PTRACE_PEEKTEXT": true, + "PTRACE_PEEKUSR": true, + "PTRACE_POKEDATA": true, + "PTRACE_POKETEXT": true, + "PTRACE_POKEUSR": true, + "PTRACE_SETCRUNCHREGS": true, + "PTRACE_SETFPREGS": true, + "PTRACE_SETFPXREGS": true, + "PTRACE_SETHBPREGS": true, + "PTRACE_SETOPTIONS": true, + "PTRACE_SETREGS": true, + "PTRACE_SETREGSET": true, + "PTRACE_SETSIGINFO": true, + "PTRACE_SETVFPREGS": true, + "PTRACE_SETWMMXREGS": true, + "PTRACE_SET_SYSCALL": true, + "PTRACE_SET_THREAD_AREA": true, + "PTRACE_SINGLEBLOCK": true, + "PTRACE_SINGLESTEP": true, + "PTRACE_SYSCALL": true, + "PTRACE_SYSEMU": true, + "PTRACE_SYSEMU_SINGLESTEP": true, + "PTRACE_TRACEME": true, + "PT_ATTACH": true, + "PT_ATTACHEXC": true, + "PT_CONTINUE": true, + "PT_DATA_ADDR": true, + "PT_DENY_ATTACH": true, + "PT_DETACH": true, + "PT_FIRSTMACH": true, + "PT_FORCEQUOTA": true, + "PT_KILL": true, + "PT_MASK": true, + "PT_READ_D": true, + "PT_READ_I": true, + "PT_READ_U": true, + "PT_SIGEXC": true, + "PT_STEP": true, + "PT_TEXT_ADDR": true, + "PT_TEXT_END_ADDR": true, + "PT_THUPDATE": true, + "PT_TRACE_ME": true, + "PT_WRITE_D": true, + "PT_WRITE_I": true, + "PT_WRITE_U": true, + "ParseDirent": true, + "ParseNetlinkMessage": true, + "ParseNetlinkRouteAttr": true, + "ParseRoutingMessage": true, + "ParseRoutingSockaddr": true, + "ParseSocketControlMessage": true, + "ParseUnixCredentials": true, + "ParseUnixRights": true, + "PathMax": true, + "Pathconf": true, + "Pause": true, + "Pipe": true, + "Pipe2": true, + "PivotRoot": true, + "Pointer": true, + "PostQueuedCompletionStatus": true, + "Pread": true, + "Proc": true, + "ProcAttr": true, + "Process32First": true, + "Process32Next": true, + "ProcessEntry32": true, + "ProcessInformation": true, + "Protoent": true, + "PtraceAttach": true, + "PtraceCont": true, + "PtraceDetach": true, + "PtraceGetEventMsg": true, + "PtraceGetRegs": true, + "PtracePeekData": true, + "PtracePeekText": true, + "PtracePokeData": true, + "PtracePokeText": true, + "PtraceRegs": true, + "PtraceSetOptions": true, + "PtraceSetRegs": true, + "PtraceSingleStep": true, + "PtraceSyscall": true, + "Pwrite": true, + "REG_BINARY": true, + "REG_DWORD": true, + "REG_DWORD_BIG_ENDIAN": true, + "REG_DWORD_LITTLE_ENDIAN": true, + "REG_EXPAND_SZ": true, + "REG_FULL_RESOURCE_DESCRIPTOR": true, + "REG_LINK": true, + "REG_MULTI_SZ": true, + "REG_NONE": true, + "REG_QWORD": true, + "REG_QWORD_LITTLE_ENDIAN": true, + "REG_RESOURCE_LIST": true, + "REG_RESOURCE_REQUIREMENTS_LIST": true, + "REG_SZ": true, + "RLIMIT_AS": true, + "RLIMIT_CORE": true, + "RLIMIT_CPU": true, + "RLIMIT_DATA": true, + "RLIMIT_FSIZE": true, + "RLIMIT_NOFILE": true, + "RLIMIT_STACK": true, + "RLIM_INFINITY": true, + "RTAX_ADVMSS": true, + "RTAX_AUTHOR": true, + "RTAX_BRD": true, + "RTAX_CWND": true, + "RTAX_DST": true, + "RTAX_FEATURES": true, + "RTAX_FEATURE_ALLFRAG": true, + "RTAX_FEATURE_ECN": true, + "RTAX_FEATURE_SACK": true, + "RTAX_FEATURE_TIMESTAMP": true, + "RTAX_GATEWAY": true, + "RTAX_GENMASK": true, + "RTAX_HOPLIMIT": true, + "RTAX_IFA": true, + "RTAX_IFP": true, + "RTAX_INITCWND": true, + "RTAX_INITRWND": true, + "RTAX_LABEL": true, + "RTAX_LOCK": true, + "RTAX_MAX": true, + "RTAX_MTU": true, + "RTAX_NETMASK": true, + "RTAX_REORDERING": true, + "RTAX_RTO_MIN": true, + "RTAX_RTT": true, + "RTAX_RTTVAR": true, + "RTAX_SRC": true, + "RTAX_SRCMASK": true, + "RTAX_SSTHRESH": true, + "RTAX_TAG": true, + "RTAX_UNSPEC": true, + "RTAX_WINDOW": true, + "RTA_ALIGNTO": true, + "RTA_AUTHOR": true, + "RTA_BRD": true, + "RTA_CACHEINFO": true, + "RTA_DST": true, + "RTA_FLOW": true, + "RTA_GATEWAY": true, + "RTA_GENMASK": true, + "RTA_IFA": true, + "RTA_IFP": true, + "RTA_IIF": true, + "RTA_LABEL": true, + "RTA_MAX": true, + "RTA_METRICS": true, + "RTA_MULTIPATH": true, + "RTA_NETMASK": true, + "RTA_OIF": true, + "RTA_PREFSRC": true, + "RTA_PRIORITY": true, + "RTA_SRC": true, + "RTA_SRCMASK": true, + "RTA_TABLE": true, + "RTA_TAG": true, + "RTA_UNSPEC": true, + "RTCF_DIRECTSRC": true, + "RTCF_DOREDIRECT": true, + "RTCF_LOG": true, + "RTCF_MASQ": true, + "RTCF_NAT": true, + "RTCF_VALVE": true, + "RTF_ADDRCLASSMASK": true, + "RTF_ADDRCONF": true, + "RTF_ALLONLINK": true, + "RTF_ANNOUNCE": true, + "RTF_BLACKHOLE": true, + "RTF_BROADCAST": true, + "RTF_CACHE": true, + "RTF_CLONED": true, + "RTF_CLONING": true, + "RTF_CONDEMNED": true, + "RTF_DEFAULT": true, + "RTF_DELCLONE": true, + "RTF_DONE": true, + "RTF_DYNAMIC": true, + "RTF_FLOW": true, + "RTF_FMASK": true, + "RTF_GATEWAY": true, + "RTF_GWFLAG_COMPAT": true, + "RTF_HOST": true, + "RTF_IFREF": true, + "RTF_IFSCOPE": true, + "RTF_INTERFACE": true, + "RTF_IRTT": true, + "RTF_LINKRT": true, + "RTF_LLDATA": true, + "RTF_LLINFO": true, + "RTF_LOCAL": true, + "RTF_MASK": true, + "RTF_MODIFIED": true, + "RTF_MPATH": true, + "RTF_MPLS": true, + "RTF_MSS": true, + "RTF_MTU": true, + "RTF_MULTICAST": true, + "RTF_NAT": true, + "RTF_NOFORWARD": true, + "RTF_NONEXTHOP": true, + "RTF_NOPMTUDISC": true, + "RTF_PERMANENT_ARP": true, + "RTF_PINNED": true, + "RTF_POLICY": true, + "RTF_PRCLONING": true, + "RTF_PROTO1": true, + "RTF_PROTO2": true, + "RTF_PROTO3": true, + "RTF_REINSTATE": true, + "RTF_REJECT": true, + "RTF_RNH_LOCKED": true, + "RTF_SOURCE": true, + "RTF_SRC": true, + "RTF_STATIC": true, + "RTF_STICKY": true, + "RTF_THROW": true, + "RTF_TUNNEL": true, + "RTF_UP": true, + "RTF_USETRAILERS": true, + "RTF_WASCLONED": true, + "RTF_WINDOW": true, + "RTF_XRESOLVE": true, + "RTM_ADD": true, + "RTM_BASE": true, + "RTM_CHANGE": true, + "RTM_CHGADDR": true, + "RTM_DELACTION": true, + "RTM_DELADDR": true, + "RTM_DELADDRLABEL": true, + "RTM_DELETE": true, + "RTM_DELLINK": true, + "RTM_DELMADDR": true, + "RTM_DELNEIGH": true, + "RTM_DELQDISC": true, + "RTM_DELROUTE": true, + "RTM_DELRULE": true, + "RTM_DELTCLASS": true, + "RTM_DELTFILTER": true, + "RTM_DESYNC": true, + "RTM_F_CLONED": true, + "RTM_F_EQUALIZE": true, + "RTM_F_NOTIFY": true, + "RTM_F_PREFIX": true, + "RTM_GET": true, + "RTM_GET2": true, + "RTM_GETACTION": true, + "RTM_GETADDR": true, + "RTM_GETADDRLABEL": true, + "RTM_GETANYCAST": true, + "RTM_GETDCB": true, + "RTM_GETLINK": true, + "RTM_GETMULTICAST": true, + "RTM_GETNEIGH": true, + "RTM_GETNEIGHTBL": true, + "RTM_GETQDISC": true, + "RTM_GETROUTE": true, + "RTM_GETRULE": true, + "RTM_GETTCLASS": true, + "RTM_GETTFILTER": true, + "RTM_IEEE80211": true, + "RTM_IFANNOUNCE": true, + "RTM_IFINFO": true, + "RTM_IFINFO2": true, + "RTM_LLINFO_UPD": true, + "RTM_LOCK": true, + "RTM_LOSING": true, + "RTM_MAX": true, + "RTM_MAXSIZE": true, + "RTM_MISS": true, + "RTM_NEWACTION": true, + "RTM_NEWADDR": true, + "RTM_NEWADDRLABEL": true, + "RTM_NEWLINK": true, + "RTM_NEWMADDR": true, + "RTM_NEWMADDR2": true, + "RTM_NEWNDUSEROPT": true, + "RTM_NEWNEIGH": true, + "RTM_NEWNEIGHTBL": true, + "RTM_NEWPREFIX": true, + "RTM_NEWQDISC": true, + "RTM_NEWROUTE": true, + "RTM_NEWRULE": true, + "RTM_NEWTCLASS": true, + "RTM_NEWTFILTER": true, + "RTM_NR_FAMILIES": true, + "RTM_NR_MSGTYPES": true, + "RTM_OIFINFO": true, + "RTM_OLDADD": true, + "RTM_OLDDEL": true, + "RTM_OOIFINFO": true, + "RTM_REDIRECT": true, + "RTM_RESOLVE": true, + "RTM_RTTUNIT": true, + "RTM_SETDCB": true, + "RTM_SETGATE": true, + "RTM_SETLINK": true, + "RTM_SETNEIGHTBL": true, + "RTM_VERSION": true, + "RTNH_ALIGNTO": true, + "RTNH_F_DEAD": true, + "RTNH_F_ONLINK": true, + "RTNH_F_PERVASIVE": true, + "RTNLGRP_IPV4_IFADDR": true, + "RTNLGRP_IPV4_MROUTE": true, + "RTNLGRP_IPV4_ROUTE": true, + "RTNLGRP_IPV4_RULE": true, + "RTNLGRP_IPV6_IFADDR": true, + "RTNLGRP_IPV6_IFINFO": true, + "RTNLGRP_IPV6_MROUTE": true, + "RTNLGRP_IPV6_PREFIX": true, + "RTNLGRP_IPV6_ROUTE": true, + "RTNLGRP_IPV6_RULE": true, + "RTNLGRP_LINK": true, + "RTNLGRP_ND_USEROPT": true, + "RTNLGRP_NEIGH": true, + "RTNLGRP_NONE": true, + "RTNLGRP_NOTIFY": true, + "RTNLGRP_TC": true, + "RTN_ANYCAST": true, + "RTN_BLACKHOLE": true, + "RTN_BROADCAST": true, + "RTN_LOCAL": true, + "RTN_MAX": true, + "RTN_MULTICAST": true, + "RTN_NAT": true, + "RTN_PROHIBIT": true, + "RTN_THROW": true, + "RTN_UNICAST": true, + "RTN_UNREACHABLE": true, + "RTN_UNSPEC": true, + "RTN_XRESOLVE": true, + "RTPROT_BIRD": true, + "RTPROT_BOOT": true, + "RTPROT_DHCP": true, + "RTPROT_DNROUTED": true, + "RTPROT_GATED": true, + "RTPROT_KERNEL": true, + "RTPROT_MRT": true, + "RTPROT_NTK": true, + "RTPROT_RA": true, + "RTPROT_REDIRECT": true, + "RTPROT_STATIC": true, + "RTPROT_UNSPEC": true, + "RTPROT_XORP": true, + "RTPROT_ZEBRA": true, + "RTV_EXPIRE": true, + "RTV_HOPCOUNT": true, + "RTV_MTU": true, + "RTV_RPIPE": true, + "RTV_RTT": true, + "RTV_RTTVAR": true, + "RTV_SPIPE": true, + "RTV_SSTHRESH": true, + "RTV_WEIGHT": true, + "RT_CACHING_CONTEXT": true, + "RT_CLASS_DEFAULT": true, + "RT_CLASS_LOCAL": true, + "RT_CLASS_MAIN": true, + "RT_CLASS_MAX": true, + "RT_CLASS_UNSPEC": true, + "RT_DEFAULT_FIB": true, + "RT_NORTREF": true, + "RT_SCOPE_HOST": true, + "RT_SCOPE_LINK": true, + "RT_SCOPE_NOWHERE": true, + "RT_SCOPE_SITE": true, + "RT_SCOPE_UNIVERSE": true, + "RT_TABLEID_MAX": true, + "RT_TABLE_COMPAT": true, + "RT_TABLE_DEFAULT": true, + "RT_TABLE_LOCAL": true, + "RT_TABLE_MAIN": true, + "RT_TABLE_MAX": true, + "RT_TABLE_UNSPEC": true, + "RUSAGE_CHILDREN": true, + "RUSAGE_SELF": true, + "RUSAGE_THREAD": true, + "Radvisory_t": true, + "RawConn": true, + "RawSockaddr": true, + "RawSockaddrAny": true, + "RawSockaddrDatalink": true, + "RawSockaddrInet4": true, + "RawSockaddrInet6": true, + "RawSockaddrLinklayer": true, + "RawSockaddrNetlink": true, + "RawSockaddrUnix": true, + "RawSyscall": true, + "RawSyscall6": true, + "Read": true, + "ReadConsole": true, + "ReadDirectoryChanges": true, + "ReadDirent": true, + "ReadFile": true, + "Readlink": true, + "Reboot": true, + "Recvfrom": true, + "Recvmsg": true, + "RegCloseKey": true, + "RegEnumKeyEx": true, + "RegOpenKeyEx": true, + "RegQueryInfoKey": true, + "RegQueryValueEx": true, + "RemoveDirectory": true, + "Removexattr": true, + "Rename": true, + "Renameat": true, + "Revoke": true, + "Rlimit": true, + "Rmdir": true, + "RouteMessage": true, + "RouteRIB": true, + "RtAttr": true, + "RtGenmsg": true, + "RtMetrics": true, + "RtMsg": true, + "RtMsghdr": true, + "RtNexthop": true, + "Rusage": true, + "SCM_BINTIME": true, + "SCM_CREDENTIALS": true, + "SCM_CREDS": true, + "SCM_RIGHTS": true, + "SCM_TIMESTAMP": true, + "SCM_TIMESTAMPING": true, + "SCM_TIMESTAMPNS": true, + "SCM_TIMESTAMP_MONOTONIC": true, + "SHUT_RD": true, + "SHUT_RDWR": true, + "SHUT_WR": true, + "SID": true, + "SIDAndAttributes": true, + "SIGABRT": true, + "SIGALRM": true, + "SIGBUS": true, + "SIGCHLD": true, + "SIGCLD": true, + "SIGCONT": true, + "SIGEMT": true, + "SIGFPE": true, + "SIGHUP": true, + "SIGILL": true, + "SIGINFO": true, + "SIGINT": true, + "SIGIO": true, + "SIGIOT": true, + "SIGKILL": true, + "SIGLIBRT": true, + "SIGLWP": true, + "SIGPIPE": true, + "SIGPOLL": true, + "SIGPROF": true, + "SIGPWR": true, + "SIGQUIT": true, + "SIGSEGV": true, + "SIGSTKFLT": true, + "SIGSTOP": true, + "SIGSYS": true, + "SIGTERM": true, + "SIGTHR": true, + "SIGTRAP": true, + "SIGTSTP": true, + "SIGTTIN": true, + "SIGTTOU": true, + "SIGUNUSED": true, + "SIGURG": true, + "SIGUSR1": true, + "SIGUSR2": true, + "SIGVTALRM": true, + "SIGWINCH": true, + "SIGXCPU": true, + "SIGXFSZ": true, + "SIOCADDDLCI": true, + "SIOCADDMULTI": true, + "SIOCADDRT": true, + "SIOCAIFADDR": true, + "SIOCAIFGROUP": true, + "SIOCALIFADDR": true, + "SIOCARPIPLL": true, + "SIOCATMARK": true, + "SIOCAUTOADDR": true, + "SIOCAUTONETMASK": true, + "SIOCBRDGADD": true, + "SIOCBRDGADDS": true, + "SIOCBRDGARL": true, + "SIOCBRDGDADDR": true, + "SIOCBRDGDEL": true, + "SIOCBRDGDELS": true, + "SIOCBRDGFLUSH": true, + "SIOCBRDGFRL": true, + "SIOCBRDGGCACHE": true, + "SIOCBRDGGFD": true, + "SIOCBRDGGHT": true, + "SIOCBRDGGIFFLGS": true, + "SIOCBRDGGMA": true, + "SIOCBRDGGPARAM": true, + "SIOCBRDGGPRI": true, + "SIOCBRDGGRL": true, + "SIOCBRDGGSIFS": true, + "SIOCBRDGGTO": true, + "SIOCBRDGIFS": true, + "SIOCBRDGRTS": true, + "SIOCBRDGSADDR": true, + "SIOCBRDGSCACHE": true, + "SIOCBRDGSFD": true, + "SIOCBRDGSHT": true, + "SIOCBRDGSIFCOST": true, + "SIOCBRDGSIFFLGS": true, + "SIOCBRDGSIFPRIO": true, + "SIOCBRDGSMA": true, + "SIOCBRDGSPRI": true, + "SIOCBRDGSPROTO": true, + "SIOCBRDGSTO": true, + "SIOCBRDGSTXHC": true, + "SIOCDARP": true, + "SIOCDELDLCI": true, + "SIOCDELMULTI": true, + "SIOCDELRT": true, + "SIOCDEVPRIVATE": true, + "SIOCDIFADDR": true, + "SIOCDIFGROUP": true, + "SIOCDIFPHYADDR": true, + "SIOCDLIFADDR": true, + "SIOCDRARP": true, + "SIOCGARP": true, + "SIOCGDRVSPEC": true, + "SIOCGETKALIVE": true, + "SIOCGETLABEL": true, + "SIOCGETPFLOW": true, + "SIOCGETPFSYNC": true, + "SIOCGETSGCNT": true, + "SIOCGETVIFCNT": true, + "SIOCGETVLAN": true, + "SIOCGHIWAT": true, + "SIOCGIFADDR": true, + "SIOCGIFADDRPREF": true, + "SIOCGIFALIAS": true, + "SIOCGIFALTMTU": true, + "SIOCGIFASYNCMAP": true, + "SIOCGIFBOND": true, + "SIOCGIFBR": true, + "SIOCGIFBRDADDR": true, + "SIOCGIFCAP": true, + "SIOCGIFCONF": true, + "SIOCGIFCOUNT": true, + "SIOCGIFDATA": true, + "SIOCGIFDESCR": true, + "SIOCGIFDEVMTU": true, + "SIOCGIFDLT": true, + "SIOCGIFDSTADDR": true, + "SIOCGIFENCAP": true, + "SIOCGIFFIB": true, + "SIOCGIFFLAGS": true, + "SIOCGIFGATTR": true, + "SIOCGIFGENERIC": true, + "SIOCGIFGMEMB": true, + "SIOCGIFGROUP": true, + "SIOCGIFHARDMTU": true, + "SIOCGIFHWADDR": true, + "SIOCGIFINDEX": true, + "SIOCGIFKPI": true, + "SIOCGIFMAC": true, + "SIOCGIFMAP": true, + "SIOCGIFMEDIA": true, + "SIOCGIFMEM": true, + "SIOCGIFMETRIC": true, + "SIOCGIFMTU": true, + "SIOCGIFNAME": true, + "SIOCGIFNETMASK": true, + "SIOCGIFPDSTADDR": true, + "SIOCGIFPFLAGS": true, + "SIOCGIFPHYS": true, + "SIOCGIFPRIORITY": true, + "SIOCGIFPSRCADDR": true, + "SIOCGIFRDOMAIN": true, + "SIOCGIFRTLABEL": true, + "SIOCGIFSLAVE": true, + "SIOCGIFSTATUS": true, + "SIOCGIFTIMESLOT": true, + "SIOCGIFTXQLEN": true, + "SIOCGIFVLAN": true, + "SIOCGIFWAKEFLAGS": true, + "SIOCGIFXFLAGS": true, + "SIOCGLIFADDR": true, + "SIOCGLIFPHYADDR": true, + "SIOCGLIFPHYRTABLE": true, + "SIOCGLIFPHYTTL": true, + "SIOCGLINKSTR": true, + "SIOCGLOWAT": true, + "SIOCGPGRP": true, + "SIOCGPRIVATE_0": true, + "SIOCGPRIVATE_1": true, + "SIOCGRARP": true, + "SIOCGSPPPPARAMS": true, + "SIOCGSTAMP": true, + "SIOCGSTAMPNS": true, + "SIOCGVH": true, + "SIOCGVNETID": true, + "SIOCIFCREATE": true, + "SIOCIFCREATE2": true, + "SIOCIFDESTROY": true, + "SIOCIFGCLONERS": true, + "SIOCINITIFADDR": true, + "SIOCPROTOPRIVATE": true, + "SIOCRSLVMULTI": true, + "SIOCRTMSG": true, + "SIOCSARP": true, + "SIOCSDRVSPEC": true, + "SIOCSETKALIVE": true, + "SIOCSETLABEL": true, + "SIOCSETPFLOW": true, + "SIOCSETPFSYNC": true, + "SIOCSETVLAN": true, + "SIOCSHIWAT": true, + "SIOCSIFADDR": true, + "SIOCSIFADDRPREF": true, + "SIOCSIFALTMTU": true, + "SIOCSIFASYNCMAP": true, + "SIOCSIFBOND": true, + "SIOCSIFBR": true, + "SIOCSIFBRDADDR": true, + "SIOCSIFCAP": true, + "SIOCSIFDESCR": true, + "SIOCSIFDSTADDR": true, + "SIOCSIFENCAP": true, + "SIOCSIFFIB": true, + "SIOCSIFFLAGS": true, + "SIOCSIFGATTR": true, + "SIOCSIFGENERIC": true, + "SIOCSIFHWADDR": true, + "SIOCSIFHWBROADCAST": true, + "SIOCSIFKPI": true, + "SIOCSIFLINK": true, + "SIOCSIFLLADDR": true, + "SIOCSIFMAC": true, + "SIOCSIFMAP": true, + "SIOCSIFMEDIA": true, + "SIOCSIFMEM": true, + "SIOCSIFMETRIC": true, + "SIOCSIFMTU": true, + "SIOCSIFNAME": true, + "SIOCSIFNETMASK": true, + "SIOCSIFPFLAGS": true, + "SIOCSIFPHYADDR": true, + "SIOCSIFPHYS": true, + "SIOCSIFPRIORITY": true, + "SIOCSIFRDOMAIN": true, + "SIOCSIFRTLABEL": true, + "SIOCSIFRVNET": true, + "SIOCSIFSLAVE": true, + "SIOCSIFTIMESLOT": true, + "SIOCSIFTXQLEN": true, + "SIOCSIFVLAN": true, + "SIOCSIFVNET": true, + "SIOCSIFXFLAGS": true, + "SIOCSLIFPHYADDR": true, + "SIOCSLIFPHYRTABLE": true, + "SIOCSLIFPHYTTL": true, + "SIOCSLINKSTR": true, + "SIOCSLOWAT": true, + "SIOCSPGRP": true, + "SIOCSRARP": true, + "SIOCSSPPPPARAMS": true, + "SIOCSVH": true, + "SIOCSVNETID": true, + "SIOCZIFDATA": true, + "SIO_GET_EXTENSION_FUNCTION_POINTER": true, + "SIO_GET_INTERFACE_LIST": true, + "SIO_KEEPALIVE_VALS": true, + "SIO_UDP_CONNRESET": true, + "SOCK_CLOEXEC": true, + "SOCK_DCCP": true, + "SOCK_DGRAM": true, + "SOCK_FLAGS_MASK": true, + "SOCK_MAXADDRLEN": true, + "SOCK_NONBLOCK": true, + "SOCK_NOSIGPIPE": true, + "SOCK_PACKET": true, + "SOCK_RAW": true, + "SOCK_RDM": true, + "SOCK_SEQPACKET": true, + "SOCK_STREAM": true, + "SOL_AAL": true, + "SOL_ATM": true, + "SOL_DECNET": true, + "SOL_ICMPV6": true, + "SOL_IP": true, + "SOL_IPV6": true, + "SOL_IRDA": true, + "SOL_PACKET": true, + "SOL_RAW": true, + "SOL_SOCKET": true, + "SOL_TCP": true, + "SOL_X25": true, + "SOMAXCONN": true, + "SO_ACCEPTCONN": true, + "SO_ACCEPTFILTER": true, + "SO_ATTACH_FILTER": true, + "SO_BINDANY": true, + "SO_BINDTODEVICE": true, + "SO_BINTIME": true, + "SO_BROADCAST": true, + "SO_BSDCOMPAT": true, + "SO_DEBUG": true, + "SO_DETACH_FILTER": true, + "SO_DOMAIN": true, + "SO_DONTROUTE": true, + "SO_DONTTRUNC": true, + "SO_ERROR": true, + "SO_KEEPALIVE": true, + "SO_LABEL": true, + "SO_LINGER": true, + "SO_LINGER_SEC": true, + "SO_LISTENINCQLEN": true, + "SO_LISTENQLEN": true, + "SO_LISTENQLIMIT": true, + "SO_MARK": true, + "SO_NETPROC": true, + "SO_NKE": true, + "SO_NOADDRERR": true, + "SO_NOHEADER": true, + "SO_NOSIGPIPE": true, + "SO_NOTIFYCONFLICT": true, + "SO_NO_CHECK": true, + "SO_NO_DDP": true, + "SO_NO_OFFLOAD": true, + "SO_NP_EXTENSIONS": true, + "SO_NREAD": true, + "SO_NWRITE": true, + "SO_OOBINLINE": true, + "SO_OVERFLOWED": true, + "SO_PASSCRED": true, + "SO_PASSSEC": true, + "SO_PEERCRED": true, + "SO_PEERLABEL": true, + "SO_PEERNAME": true, + "SO_PEERSEC": true, + "SO_PRIORITY": true, + "SO_PROTOCOL": true, + "SO_PROTOTYPE": true, + "SO_RANDOMPORT": true, + "SO_RCVBUF": true, + "SO_RCVBUFFORCE": true, + "SO_RCVLOWAT": true, + "SO_RCVTIMEO": true, + "SO_RESTRICTIONS": true, + "SO_RESTRICT_DENYIN": true, + "SO_RESTRICT_DENYOUT": true, + "SO_RESTRICT_DENYSET": true, + "SO_REUSEADDR": true, + "SO_REUSEPORT": true, + "SO_REUSESHAREUID": true, + "SO_RTABLE": true, + "SO_RXQ_OVFL": true, + "SO_SECURITY_AUTHENTICATION": true, + "SO_SECURITY_ENCRYPTION_NETWORK": true, + "SO_SECURITY_ENCRYPTION_TRANSPORT": true, + "SO_SETFIB": true, + "SO_SNDBUF": true, + "SO_SNDBUFFORCE": true, + "SO_SNDLOWAT": true, + "SO_SNDTIMEO": true, + "SO_SPLICE": true, + "SO_TIMESTAMP": true, + "SO_TIMESTAMPING": true, + "SO_TIMESTAMPNS": true, + "SO_TIMESTAMP_MONOTONIC": true, + "SO_TYPE": true, + "SO_UPCALLCLOSEWAIT": true, + "SO_UPDATE_ACCEPT_CONTEXT": true, + "SO_UPDATE_CONNECT_CONTEXT": true, + "SO_USELOOPBACK": true, + "SO_USER_COOKIE": true, + "SO_VENDOR": true, + "SO_WANTMORE": true, + "SO_WANTOOBFLAG": true, + "SSLExtraCertChainPolicyPara": true, + "STANDARD_RIGHTS_ALL": true, + "STANDARD_RIGHTS_EXECUTE": true, + "STANDARD_RIGHTS_READ": true, + "STANDARD_RIGHTS_REQUIRED": true, + "STANDARD_RIGHTS_WRITE": true, + "STARTF_USESHOWWINDOW": true, + "STARTF_USESTDHANDLES": true, + "STD_ERROR_HANDLE": true, + "STD_INPUT_HANDLE": true, + "STD_OUTPUT_HANDLE": true, + "SUBLANG_ENGLISH_US": true, + "SW_FORCEMINIMIZE": true, + "SW_HIDE": true, + "SW_MAXIMIZE": true, + "SW_MINIMIZE": true, + "SW_NORMAL": true, + "SW_RESTORE": true, + "SW_SHOW": true, + "SW_SHOWDEFAULT": true, + "SW_SHOWMAXIMIZED": true, + "SW_SHOWMINIMIZED": true, + "SW_SHOWMINNOACTIVE": true, + "SW_SHOWNA": true, + "SW_SHOWNOACTIVATE": true, + "SW_SHOWNORMAL": true, + "SYMBOLIC_LINK_FLAG_DIRECTORY": true, + "SYNCHRONIZE": true, + "SYSCTL_VERSION": true, + "SYSCTL_VERS_0": true, + "SYSCTL_VERS_1": true, + "SYSCTL_VERS_MASK": true, + "SYS_ABORT2": true, + "SYS_ACCEPT": true, + "SYS_ACCEPT4": true, + "SYS_ACCEPT_NOCANCEL": true, + "SYS_ACCESS": true, + "SYS_ACCESS_EXTENDED": true, + "SYS_ACCT": true, + "SYS_ADD_KEY": true, + "SYS_ADD_PROFIL": true, + "SYS_ADJFREQ": true, + "SYS_ADJTIME": true, + "SYS_ADJTIMEX": true, + "SYS_AFS_SYSCALL": true, + "SYS_AIO_CANCEL": true, + "SYS_AIO_ERROR": true, + "SYS_AIO_FSYNC": true, + "SYS_AIO_READ": true, + "SYS_AIO_RETURN": true, + "SYS_AIO_SUSPEND": true, + "SYS_AIO_SUSPEND_NOCANCEL": true, + "SYS_AIO_WRITE": true, + "SYS_ALARM": true, + "SYS_ARCH_PRCTL": true, + "SYS_ARM_FADVISE64_64": true, + "SYS_ARM_SYNC_FILE_RANGE": true, + "SYS_ATGETMSG": true, + "SYS_ATPGETREQ": true, + "SYS_ATPGETRSP": true, + "SYS_ATPSNDREQ": true, + "SYS_ATPSNDRSP": true, + "SYS_ATPUTMSG": true, + "SYS_ATSOCKET": true, + "SYS_AUDIT": true, + "SYS_AUDITCTL": true, + "SYS_AUDITON": true, + "SYS_AUDIT_SESSION_JOIN": true, + "SYS_AUDIT_SESSION_PORT": true, + "SYS_AUDIT_SESSION_SELF": true, + "SYS_BDFLUSH": true, + "SYS_BIND": true, + "SYS_BINDAT": true, + "SYS_BREAK": true, + "SYS_BRK": true, + "SYS_BSDTHREAD_CREATE": true, + "SYS_BSDTHREAD_REGISTER": true, + "SYS_BSDTHREAD_TERMINATE": true, + "SYS_CAPGET": true, + "SYS_CAPSET": true, + "SYS_CAP_ENTER": true, + "SYS_CAP_FCNTLS_GET": true, + "SYS_CAP_FCNTLS_LIMIT": true, + "SYS_CAP_GETMODE": true, + "SYS_CAP_GETRIGHTS": true, + "SYS_CAP_IOCTLS_GET": true, + "SYS_CAP_IOCTLS_LIMIT": true, + "SYS_CAP_NEW": true, + "SYS_CAP_RIGHTS_GET": true, + "SYS_CAP_RIGHTS_LIMIT": true, + "SYS_CHDIR": true, + "SYS_CHFLAGS": true, + "SYS_CHFLAGSAT": true, + "SYS_CHMOD": true, + "SYS_CHMOD_EXTENDED": true, + "SYS_CHOWN": true, + "SYS_CHOWN32": true, + "SYS_CHROOT": true, + "SYS_CHUD": true, + "SYS_CLOCK_ADJTIME": true, + "SYS_CLOCK_GETCPUCLOCKID2": true, + "SYS_CLOCK_GETRES": true, + "SYS_CLOCK_GETTIME": true, + "SYS_CLOCK_NANOSLEEP": true, + "SYS_CLOCK_SETTIME": true, + "SYS_CLONE": true, + "SYS_CLOSE": true, + "SYS_CLOSEFROM": true, + "SYS_CLOSE_NOCANCEL": true, + "SYS_CONNECT": true, + "SYS_CONNECTAT": true, + "SYS_CONNECT_NOCANCEL": true, + "SYS_COPYFILE": true, + "SYS_CPUSET": true, + "SYS_CPUSET_GETAFFINITY": true, + "SYS_CPUSET_GETID": true, + "SYS_CPUSET_SETAFFINITY": true, + "SYS_CPUSET_SETID": true, + "SYS_CREAT": true, + "SYS_CREATE_MODULE": true, + "SYS_CSOPS": true, + "SYS_DELETE": true, + "SYS_DELETE_MODULE": true, + "SYS_DUP": true, + "SYS_DUP2": true, + "SYS_DUP3": true, + "SYS_EACCESS": true, + "SYS_EPOLL_CREATE": true, + "SYS_EPOLL_CREATE1": true, + "SYS_EPOLL_CTL": true, + "SYS_EPOLL_CTL_OLD": true, + "SYS_EPOLL_PWAIT": true, + "SYS_EPOLL_WAIT": true, + "SYS_EPOLL_WAIT_OLD": true, + "SYS_EVENTFD": true, + "SYS_EVENTFD2": true, + "SYS_EXCHANGEDATA": true, + "SYS_EXECVE": true, + "SYS_EXIT": true, + "SYS_EXIT_GROUP": true, + "SYS_EXTATTRCTL": true, + "SYS_EXTATTR_DELETE_FD": true, + "SYS_EXTATTR_DELETE_FILE": true, + "SYS_EXTATTR_DELETE_LINK": true, + "SYS_EXTATTR_GET_FD": true, + "SYS_EXTATTR_GET_FILE": true, + "SYS_EXTATTR_GET_LINK": true, + "SYS_EXTATTR_LIST_FD": true, + "SYS_EXTATTR_LIST_FILE": true, + "SYS_EXTATTR_LIST_LINK": true, + "SYS_EXTATTR_SET_FD": true, + "SYS_EXTATTR_SET_FILE": true, + "SYS_EXTATTR_SET_LINK": true, + "SYS_FACCESSAT": true, + "SYS_FADVISE64": true, + "SYS_FADVISE64_64": true, + "SYS_FALLOCATE": true, + "SYS_FANOTIFY_INIT": true, + "SYS_FANOTIFY_MARK": true, + "SYS_FCHDIR": true, + "SYS_FCHFLAGS": true, + "SYS_FCHMOD": true, + "SYS_FCHMODAT": true, + "SYS_FCHMOD_EXTENDED": true, + "SYS_FCHOWN": true, + "SYS_FCHOWN32": true, + "SYS_FCHOWNAT": true, + "SYS_FCHROOT": true, + "SYS_FCNTL": true, + "SYS_FCNTL64": true, + "SYS_FCNTL_NOCANCEL": true, + "SYS_FDATASYNC": true, + "SYS_FEXECVE": true, + "SYS_FFCLOCK_GETCOUNTER": true, + "SYS_FFCLOCK_GETESTIMATE": true, + "SYS_FFCLOCK_SETESTIMATE": true, + "SYS_FFSCTL": true, + "SYS_FGETATTRLIST": true, + "SYS_FGETXATTR": true, + "SYS_FHOPEN": true, + "SYS_FHSTAT": true, + "SYS_FHSTATFS": true, + "SYS_FILEPORT_MAKEFD": true, + "SYS_FILEPORT_MAKEPORT": true, + "SYS_FKTRACE": true, + "SYS_FLISTXATTR": true, + "SYS_FLOCK": true, + "SYS_FORK": true, + "SYS_FPATHCONF": true, + "SYS_FREEBSD6_FTRUNCATE": true, + "SYS_FREEBSD6_LSEEK": true, + "SYS_FREEBSD6_MMAP": true, + "SYS_FREEBSD6_PREAD": true, + "SYS_FREEBSD6_PWRITE": true, + "SYS_FREEBSD6_TRUNCATE": true, + "SYS_FREMOVEXATTR": true, + "SYS_FSCTL": true, + "SYS_FSETATTRLIST": true, + "SYS_FSETXATTR": true, + "SYS_FSGETPATH": true, + "SYS_FSTAT": true, + "SYS_FSTAT64": true, + "SYS_FSTAT64_EXTENDED": true, + "SYS_FSTATAT": true, + "SYS_FSTATAT64": true, + "SYS_FSTATFS": true, + "SYS_FSTATFS64": true, + "SYS_FSTATV": true, + "SYS_FSTATVFS1": true, + "SYS_FSTAT_EXTENDED": true, + "SYS_FSYNC": true, + "SYS_FSYNC_NOCANCEL": true, + "SYS_FSYNC_RANGE": true, + "SYS_FTIME": true, + "SYS_FTRUNCATE": true, + "SYS_FTRUNCATE64": true, + "SYS_FUTEX": true, + "SYS_FUTIMENS": true, + "SYS_FUTIMES": true, + "SYS_FUTIMESAT": true, + "SYS_GETATTRLIST": true, + "SYS_GETAUDIT": true, + "SYS_GETAUDIT_ADDR": true, + "SYS_GETAUID": true, + "SYS_GETCONTEXT": true, + "SYS_GETCPU": true, + "SYS_GETCWD": true, + "SYS_GETDENTS": true, + "SYS_GETDENTS64": true, + "SYS_GETDIRENTRIES": true, + "SYS_GETDIRENTRIES64": true, + "SYS_GETDIRENTRIESATTR": true, + "SYS_GETDTABLECOUNT": true, + "SYS_GETDTABLESIZE": true, + "SYS_GETEGID": true, + "SYS_GETEGID32": true, + "SYS_GETEUID": true, + "SYS_GETEUID32": true, + "SYS_GETFH": true, + "SYS_GETFSSTAT": true, + "SYS_GETFSSTAT64": true, + "SYS_GETGID": true, + "SYS_GETGID32": true, + "SYS_GETGROUPS": true, + "SYS_GETGROUPS32": true, + "SYS_GETHOSTUUID": true, + "SYS_GETITIMER": true, + "SYS_GETLCID": true, + "SYS_GETLOGIN": true, + "SYS_GETLOGINCLASS": true, + "SYS_GETPEERNAME": true, + "SYS_GETPGID": true, + "SYS_GETPGRP": true, + "SYS_GETPID": true, + "SYS_GETPMSG": true, + "SYS_GETPPID": true, + "SYS_GETPRIORITY": true, + "SYS_GETRESGID": true, + "SYS_GETRESGID32": true, + "SYS_GETRESUID": true, + "SYS_GETRESUID32": true, + "SYS_GETRLIMIT": true, + "SYS_GETRTABLE": true, + "SYS_GETRUSAGE": true, + "SYS_GETSGROUPS": true, + "SYS_GETSID": true, + "SYS_GETSOCKNAME": true, + "SYS_GETSOCKOPT": true, + "SYS_GETTHRID": true, + "SYS_GETTID": true, + "SYS_GETTIMEOFDAY": true, + "SYS_GETUID": true, + "SYS_GETUID32": true, + "SYS_GETVFSSTAT": true, + "SYS_GETWGROUPS": true, + "SYS_GETXATTR": true, + "SYS_GET_KERNEL_SYMS": true, + "SYS_GET_MEMPOLICY": true, + "SYS_GET_ROBUST_LIST": true, + "SYS_GET_THREAD_AREA": true, + "SYS_GTTY": true, + "SYS_IDENTITYSVC": true, + "SYS_IDLE": true, + "SYS_INITGROUPS": true, + "SYS_INIT_MODULE": true, + "SYS_INOTIFY_ADD_WATCH": true, + "SYS_INOTIFY_INIT": true, + "SYS_INOTIFY_INIT1": true, + "SYS_INOTIFY_RM_WATCH": true, + "SYS_IOCTL": true, + "SYS_IOPERM": true, + "SYS_IOPL": true, + "SYS_IOPOLICYSYS": true, + "SYS_IOPRIO_GET": true, + "SYS_IOPRIO_SET": true, + "SYS_IO_CANCEL": true, + "SYS_IO_DESTROY": true, + "SYS_IO_GETEVENTS": true, + "SYS_IO_SETUP": true, + "SYS_IO_SUBMIT": true, + "SYS_IPC": true, + "SYS_ISSETUGID": true, + "SYS_JAIL": true, + "SYS_JAIL_ATTACH": true, + "SYS_JAIL_GET": true, + "SYS_JAIL_REMOVE": true, + "SYS_JAIL_SET": true, + "SYS_KDEBUG_TRACE": true, + "SYS_KENV": true, + "SYS_KEVENT": true, + "SYS_KEVENT64": true, + "SYS_KEXEC_LOAD": true, + "SYS_KEYCTL": true, + "SYS_KILL": true, + "SYS_KLDFIND": true, + "SYS_KLDFIRSTMOD": true, + "SYS_KLDLOAD": true, + "SYS_KLDNEXT": true, + "SYS_KLDSTAT": true, + "SYS_KLDSYM": true, + "SYS_KLDUNLOAD": true, + "SYS_KLDUNLOADF": true, + "SYS_KQUEUE": true, + "SYS_KQUEUE1": true, + "SYS_KTIMER_CREATE": true, + "SYS_KTIMER_DELETE": true, + "SYS_KTIMER_GETOVERRUN": true, + "SYS_KTIMER_GETTIME": true, + "SYS_KTIMER_SETTIME": true, + "SYS_KTRACE": true, + "SYS_LCHFLAGS": true, + "SYS_LCHMOD": true, + "SYS_LCHOWN": true, + "SYS_LCHOWN32": true, + "SYS_LGETFH": true, + "SYS_LGETXATTR": true, + "SYS_LINK": true, + "SYS_LINKAT": true, + "SYS_LIO_LISTIO": true, + "SYS_LISTEN": true, + "SYS_LISTXATTR": true, + "SYS_LLISTXATTR": true, + "SYS_LOCK": true, + "SYS_LOOKUP_DCOOKIE": true, + "SYS_LPATHCONF": true, + "SYS_LREMOVEXATTR": true, + "SYS_LSEEK": true, + "SYS_LSETXATTR": true, + "SYS_LSTAT": true, + "SYS_LSTAT64": true, + "SYS_LSTAT64_EXTENDED": true, + "SYS_LSTATV": true, + "SYS_LSTAT_EXTENDED": true, + "SYS_LUTIMES": true, + "SYS_MAC_SYSCALL": true, + "SYS_MADVISE": true, + "SYS_MADVISE1": true, + "SYS_MAXSYSCALL": true, + "SYS_MBIND": true, + "SYS_MIGRATE_PAGES": true, + "SYS_MINCORE": true, + "SYS_MINHERIT": true, + "SYS_MKCOMPLEX": true, + "SYS_MKDIR": true, + "SYS_MKDIRAT": true, + "SYS_MKDIR_EXTENDED": true, + "SYS_MKFIFO": true, + "SYS_MKFIFOAT": true, + "SYS_MKFIFO_EXTENDED": true, + "SYS_MKNOD": true, + "SYS_MKNODAT": true, + "SYS_MLOCK": true, + "SYS_MLOCKALL": true, + "SYS_MMAP": true, + "SYS_MMAP2": true, + "SYS_MODCTL": true, + "SYS_MODFIND": true, + "SYS_MODFNEXT": true, + "SYS_MODIFY_LDT": true, + "SYS_MODNEXT": true, + "SYS_MODSTAT": true, + "SYS_MODWATCH": true, + "SYS_MOUNT": true, + "SYS_MOVE_PAGES": true, + "SYS_MPROTECT": true, + "SYS_MPX": true, + "SYS_MQUERY": true, + "SYS_MQ_GETSETATTR": true, + "SYS_MQ_NOTIFY": true, + "SYS_MQ_OPEN": true, + "SYS_MQ_TIMEDRECEIVE": true, + "SYS_MQ_TIMEDSEND": true, + "SYS_MQ_UNLINK": true, + "SYS_MREMAP": true, + "SYS_MSGCTL": true, + "SYS_MSGGET": true, + "SYS_MSGRCV": true, + "SYS_MSGRCV_NOCANCEL": true, + "SYS_MSGSND": true, + "SYS_MSGSND_NOCANCEL": true, + "SYS_MSGSYS": true, + "SYS_MSYNC": true, + "SYS_MSYNC_NOCANCEL": true, + "SYS_MUNLOCK": true, + "SYS_MUNLOCKALL": true, + "SYS_MUNMAP": true, + "SYS_NAME_TO_HANDLE_AT": true, + "SYS_NANOSLEEP": true, + "SYS_NEWFSTATAT": true, + "SYS_NFSCLNT": true, + "SYS_NFSSERVCTL": true, + "SYS_NFSSVC": true, + "SYS_NFSTAT": true, + "SYS_NICE": true, + "SYS_NLSTAT": true, + "SYS_NMOUNT": true, + "SYS_NSTAT": true, + "SYS_NTP_ADJTIME": true, + "SYS_NTP_GETTIME": true, + "SYS_OABI_SYSCALL_BASE": true, + "SYS_OBREAK": true, + "SYS_OLDFSTAT": true, + "SYS_OLDLSTAT": true, + "SYS_OLDOLDUNAME": true, + "SYS_OLDSTAT": true, + "SYS_OLDUNAME": true, + "SYS_OPEN": true, + "SYS_OPENAT": true, + "SYS_OPENBSD_POLL": true, + "SYS_OPEN_BY_HANDLE_AT": true, + "SYS_OPEN_EXTENDED": true, + "SYS_OPEN_NOCANCEL": true, + "SYS_OVADVISE": true, + "SYS_PACCEPT": true, + "SYS_PATHCONF": true, + "SYS_PAUSE": true, + "SYS_PCICONFIG_IOBASE": true, + "SYS_PCICONFIG_READ": true, + "SYS_PCICONFIG_WRITE": true, + "SYS_PDFORK": true, + "SYS_PDGETPID": true, + "SYS_PDKILL": true, + "SYS_PERF_EVENT_OPEN": true, + "SYS_PERSONALITY": true, + "SYS_PID_HIBERNATE": true, + "SYS_PID_RESUME": true, + "SYS_PID_SHUTDOWN_SOCKETS": true, + "SYS_PID_SUSPEND": true, + "SYS_PIPE": true, + "SYS_PIPE2": true, + "SYS_PIVOT_ROOT": true, + "SYS_PMC_CONTROL": true, + "SYS_PMC_GET_INFO": true, + "SYS_POLL": true, + "SYS_POLLTS": true, + "SYS_POLL_NOCANCEL": true, + "SYS_POSIX_FADVISE": true, + "SYS_POSIX_FALLOCATE": true, + "SYS_POSIX_OPENPT": true, + "SYS_POSIX_SPAWN": true, + "SYS_PPOLL": true, + "SYS_PRCTL": true, + "SYS_PREAD": true, + "SYS_PREAD64": true, + "SYS_PREADV": true, + "SYS_PREAD_NOCANCEL": true, + "SYS_PRLIMIT64": true, + "SYS_PROCCTL": true, + "SYS_PROCESS_POLICY": true, + "SYS_PROCESS_VM_READV": true, + "SYS_PROCESS_VM_WRITEV": true, + "SYS_PROC_INFO": true, + "SYS_PROF": true, + "SYS_PROFIL": true, + "SYS_PSELECT": true, + "SYS_PSELECT6": true, + "SYS_PSET_ASSIGN": true, + "SYS_PSET_CREATE": true, + "SYS_PSET_DESTROY": true, + "SYS_PSYNCH_CVBROAD": true, + "SYS_PSYNCH_CVCLRPREPOST": true, + "SYS_PSYNCH_CVSIGNAL": true, + "SYS_PSYNCH_CVWAIT": true, + "SYS_PSYNCH_MUTEXDROP": true, + "SYS_PSYNCH_MUTEXWAIT": true, + "SYS_PSYNCH_RW_DOWNGRADE": true, + "SYS_PSYNCH_RW_LONGRDLOCK": true, + "SYS_PSYNCH_RW_RDLOCK": true, + "SYS_PSYNCH_RW_UNLOCK": true, + "SYS_PSYNCH_RW_UNLOCK2": true, + "SYS_PSYNCH_RW_UPGRADE": true, + "SYS_PSYNCH_RW_WRLOCK": true, + "SYS_PSYNCH_RW_YIELDWRLOCK": true, + "SYS_PTRACE": true, + "SYS_PUTPMSG": true, + "SYS_PWRITE": true, + "SYS_PWRITE64": true, + "SYS_PWRITEV": true, + "SYS_PWRITE_NOCANCEL": true, + "SYS_QUERY_MODULE": true, + "SYS_QUOTACTL": true, + "SYS_RASCTL": true, + "SYS_RCTL_ADD_RULE": true, + "SYS_RCTL_GET_LIMITS": true, + "SYS_RCTL_GET_RACCT": true, + "SYS_RCTL_GET_RULES": true, + "SYS_RCTL_REMOVE_RULE": true, + "SYS_READ": true, + "SYS_READAHEAD": true, + "SYS_READDIR": true, + "SYS_READLINK": true, + "SYS_READLINKAT": true, + "SYS_READV": true, + "SYS_READV_NOCANCEL": true, + "SYS_READ_NOCANCEL": true, + "SYS_REBOOT": true, + "SYS_RECV": true, + "SYS_RECVFROM": true, + "SYS_RECVFROM_NOCANCEL": true, + "SYS_RECVMMSG": true, + "SYS_RECVMSG": true, + "SYS_RECVMSG_NOCANCEL": true, + "SYS_REMAP_FILE_PAGES": true, + "SYS_REMOVEXATTR": true, + "SYS_RENAME": true, + "SYS_RENAMEAT": true, + "SYS_REQUEST_KEY": true, + "SYS_RESTART_SYSCALL": true, + "SYS_REVOKE": true, + "SYS_RFORK": true, + "SYS_RMDIR": true, + "SYS_RTPRIO": true, + "SYS_RTPRIO_THREAD": true, + "SYS_RT_SIGACTION": true, + "SYS_RT_SIGPENDING": true, + "SYS_RT_SIGPROCMASK": true, + "SYS_RT_SIGQUEUEINFO": true, + "SYS_RT_SIGRETURN": true, + "SYS_RT_SIGSUSPEND": true, + "SYS_RT_SIGTIMEDWAIT": true, + "SYS_RT_TGSIGQUEUEINFO": true, + "SYS_SBRK": true, + "SYS_SCHED_GETAFFINITY": true, + "SYS_SCHED_GETPARAM": true, + "SYS_SCHED_GETSCHEDULER": true, + "SYS_SCHED_GET_PRIORITY_MAX": true, + "SYS_SCHED_GET_PRIORITY_MIN": true, + "SYS_SCHED_RR_GET_INTERVAL": true, + "SYS_SCHED_SETAFFINITY": true, + "SYS_SCHED_SETPARAM": true, + "SYS_SCHED_SETSCHEDULER": true, + "SYS_SCHED_YIELD": true, + "SYS_SCTP_GENERIC_RECVMSG": true, + "SYS_SCTP_GENERIC_SENDMSG": true, + "SYS_SCTP_GENERIC_SENDMSG_IOV": true, + "SYS_SCTP_PEELOFF": true, + "SYS_SEARCHFS": true, + "SYS_SECURITY": true, + "SYS_SELECT": true, + "SYS_SELECT_NOCANCEL": true, + "SYS_SEMCONFIG": true, + "SYS_SEMCTL": true, + "SYS_SEMGET": true, + "SYS_SEMOP": true, + "SYS_SEMSYS": true, + "SYS_SEMTIMEDOP": true, + "SYS_SEM_CLOSE": true, + "SYS_SEM_DESTROY": true, + "SYS_SEM_GETVALUE": true, + "SYS_SEM_INIT": true, + "SYS_SEM_OPEN": true, + "SYS_SEM_POST": true, + "SYS_SEM_TRYWAIT": true, + "SYS_SEM_UNLINK": true, + "SYS_SEM_WAIT": true, + "SYS_SEM_WAIT_NOCANCEL": true, + "SYS_SEND": true, + "SYS_SENDFILE": true, + "SYS_SENDFILE64": true, + "SYS_SENDMMSG": true, + "SYS_SENDMSG": true, + "SYS_SENDMSG_NOCANCEL": true, + "SYS_SENDTO": true, + "SYS_SENDTO_NOCANCEL": true, + "SYS_SETATTRLIST": true, + "SYS_SETAUDIT": true, + "SYS_SETAUDIT_ADDR": true, + "SYS_SETAUID": true, + "SYS_SETCONTEXT": true, + "SYS_SETDOMAINNAME": true, + "SYS_SETEGID": true, + "SYS_SETEUID": true, + "SYS_SETFIB": true, + "SYS_SETFSGID": true, + "SYS_SETFSGID32": true, + "SYS_SETFSUID": true, + "SYS_SETFSUID32": true, + "SYS_SETGID": true, + "SYS_SETGID32": true, + "SYS_SETGROUPS": true, + "SYS_SETGROUPS32": true, + "SYS_SETHOSTNAME": true, + "SYS_SETITIMER": true, + "SYS_SETLCID": true, + "SYS_SETLOGIN": true, + "SYS_SETLOGINCLASS": true, + "SYS_SETNS": true, + "SYS_SETPGID": true, + "SYS_SETPRIORITY": true, + "SYS_SETPRIVEXEC": true, + "SYS_SETREGID": true, + "SYS_SETREGID32": true, + "SYS_SETRESGID": true, + "SYS_SETRESGID32": true, + "SYS_SETRESUID": true, + "SYS_SETRESUID32": true, + "SYS_SETREUID": true, + "SYS_SETREUID32": true, + "SYS_SETRLIMIT": true, + "SYS_SETRTABLE": true, + "SYS_SETSGROUPS": true, + "SYS_SETSID": true, + "SYS_SETSOCKOPT": true, + "SYS_SETTID": true, + "SYS_SETTID_WITH_PID": true, + "SYS_SETTIMEOFDAY": true, + "SYS_SETUID": true, + "SYS_SETUID32": true, + "SYS_SETWGROUPS": true, + "SYS_SETXATTR": true, + "SYS_SET_MEMPOLICY": true, + "SYS_SET_ROBUST_LIST": true, + "SYS_SET_THREAD_AREA": true, + "SYS_SET_TID_ADDRESS": true, + "SYS_SGETMASK": true, + "SYS_SHARED_REGION_CHECK_NP": true, + "SYS_SHARED_REGION_MAP_AND_SLIDE_NP": true, + "SYS_SHMAT": true, + "SYS_SHMCTL": true, + "SYS_SHMDT": true, + "SYS_SHMGET": true, + "SYS_SHMSYS": true, + "SYS_SHM_OPEN": true, + "SYS_SHM_UNLINK": true, + "SYS_SHUTDOWN": true, + "SYS_SIGACTION": true, + "SYS_SIGALTSTACK": true, + "SYS_SIGNAL": true, + "SYS_SIGNALFD": true, + "SYS_SIGNALFD4": true, + "SYS_SIGPENDING": true, + "SYS_SIGPROCMASK": true, + "SYS_SIGQUEUE": true, + "SYS_SIGQUEUEINFO": true, + "SYS_SIGRETURN": true, + "SYS_SIGSUSPEND": true, + "SYS_SIGSUSPEND_NOCANCEL": true, + "SYS_SIGTIMEDWAIT": true, + "SYS_SIGWAIT": true, + "SYS_SIGWAITINFO": true, + "SYS_SOCKET": true, + "SYS_SOCKETCALL": true, + "SYS_SOCKETPAIR": true, + "SYS_SPLICE": true, + "SYS_SSETMASK": true, + "SYS_SSTK": true, + "SYS_STACK_SNAPSHOT": true, + "SYS_STAT": true, + "SYS_STAT64": true, + "SYS_STAT64_EXTENDED": true, + "SYS_STATFS": true, + "SYS_STATFS64": true, + "SYS_STATV": true, + "SYS_STATVFS1": true, + "SYS_STAT_EXTENDED": true, + "SYS_STIME": true, + "SYS_STTY": true, + "SYS_SWAPCONTEXT": true, + "SYS_SWAPCTL": true, + "SYS_SWAPOFF": true, + "SYS_SWAPON": true, + "SYS_SYMLINK": true, + "SYS_SYMLINKAT": true, + "SYS_SYNC": true, + "SYS_SYNCFS": true, + "SYS_SYNC_FILE_RANGE": true, + "SYS_SYSARCH": true, + "SYS_SYSCALL": true, + "SYS_SYSCALL_BASE": true, + "SYS_SYSFS": true, + "SYS_SYSINFO": true, + "SYS_SYSLOG": true, + "SYS_TEE": true, + "SYS_TGKILL": true, + "SYS_THREAD_SELFID": true, + "SYS_THR_CREATE": true, + "SYS_THR_EXIT": true, + "SYS_THR_KILL": true, + "SYS_THR_KILL2": true, + "SYS_THR_NEW": true, + "SYS_THR_SELF": true, + "SYS_THR_SET_NAME": true, + "SYS_THR_SUSPEND": true, + "SYS_THR_WAKE": true, + "SYS_TIME": true, + "SYS_TIMERFD_CREATE": true, + "SYS_TIMERFD_GETTIME": true, + "SYS_TIMERFD_SETTIME": true, + "SYS_TIMER_CREATE": true, + "SYS_TIMER_DELETE": true, + "SYS_TIMER_GETOVERRUN": true, + "SYS_TIMER_GETTIME": true, + "SYS_TIMER_SETTIME": true, + "SYS_TIMES": true, + "SYS_TKILL": true, + "SYS_TRUNCATE": true, + "SYS_TRUNCATE64": true, + "SYS_TUXCALL": true, + "SYS_UGETRLIMIT": true, + "SYS_ULIMIT": true, + "SYS_UMASK": true, + "SYS_UMASK_EXTENDED": true, + "SYS_UMOUNT": true, + "SYS_UMOUNT2": true, + "SYS_UNAME": true, + "SYS_UNDELETE": true, + "SYS_UNLINK": true, + "SYS_UNLINKAT": true, + "SYS_UNMOUNT": true, + "SYS_UNSHARE": true, + "SYS_USELIB": true, + "SYS_USTAT": true, + "SYS_UTIME": true, + "SYS_UTIMENSAT": true, + "SYS_UTIMES": true, + "SYS_UTRACE": true, + "SYS_UUIDGEN": true, + "SYS_VADVISE": true, + "SYS_VFORK": true, + "SYS_VHANGUP": true, + "SYS_VM86": true, + "SYS_VM86OLD": true, + "SYS_VMSPLICE": true, + "SYS_VM_PRESSURE_MONITOR": true, + "SYS_VSERVER": true, + "SYS_WAIT4": true, + "SYS_WAIT4_NOCANCEL": true, + "SYS_WAIT6": true, + "SYS_WAITEVENT": true, + "SYS_WAITID": true, + "SYS_WAITID_NOCANCEL": true, + "SYS_WAITPID": true, + "SYS_WATCHEVENT": true, + "SYS_WORKQ_KERNRETURN": true, + "SYS_WORKQ_OPEN": true, + "SYS_WRITE": true, + "SYS_WRITEV": true, + "SYS_WRITEV_NOCANCEL": true, + "SYS_WRITE_NOCANCEL": true, + "SYS_YIELD": true, + "SYS__LLSEEK": true, + "SYS__LWP_CONTINUE": true, + "SYS__LWP_CREATE": true, + "SYS__LWP_CTL": true, + "SYS__LWP_DETACH": true, + "SYS__LWP_EXIT": true, + "SYS__LWP_GETNAME": true, + "SYS__LWP_GETPRIVATE": true, + "SYS__LWP_KILL": true, + "SYS__LWP_PARK": true, + "SYS__LWP_SELF": true, + "SYS__LWP_SETNAME": true, + "SYS__LWP_SETPRIVATE": true, + "SYS__LWP_SUSPEND": true, + "SYS__LWP_UNPARK": true, + "SYS__LWP_UNPARK_ALL": true, + "SYS__LWP_WAIT": true, + "SYS__LWP_WAKEUP": true, + "SYS__NEWSELECT": true, + "SYS__PSET_BIND": true, + "SYS__SCHED_GETAFFINITY": true, + "SYS__SCHED_GETPARAM": true, + "SYS__SCHED_SETAFFINITY": true, + "SYS__SCHED_SETPARAM": true, + "SYS__SYSCTL": true, + "SYS__UMTX_LOCK": true, + "SYS__UMTX_OP": true, + "SYS__UMTX_UNLOCK": true, + "SYS___ACL_ACLCHECK_FD": true, + "SYS___ACL_ACLCHECK_FILE": true, + "SYS___ACL_ACLCHECK_LINK": true, + "SYS___ACL_DELETE_FD": true, + "SYS___ACL_DELETE_FILE": true, + "SYS___ACL_DELETE_LINK": true, + "SYS___ACL_GET_FD": true, + "SYS___ACL_GET_FILE": true, + "SYS___ACL_GET_LINK": true, + "SYS___ACL_SET_FD": true, + "SYS___ACL_SET_FILE": true, + "SYS___ACL_SET_LINK": true, + "SYS___CLONE": true, + "SYS___DISABLE_THREADSIGNAL": true, + "SYS___GETCWD": true, + "SYS___GETLOGIN": true, + "SYS___GET_TCB": true, + "SYS___MAC_EXECVE": true, + "SYS___MAC_GETFSSTAT": true, + "SYS___MAC_GET_FD": true, + "SYS___MAC_GET_FILE": true, + "SYS___MAC_GET_LCID": true, + "SYS___MAC_GET_LCTX": true, + "SYS___MAC_GET_LINK": true, + "SYS___MAC_GET_MOUNT": true, + "SYS___MAC_GET_PID": true, + "SYS___MAC_GET_PROC": true, + "SYS___MAC_MOUNT": true, + "SYS___MAC_SET_FD": true, + "SYS___MAC_SET_FILE": true, + "SYS___MAC_SET_LCTX": true, + "SYS___MAC_SET_LINK": true, + "SYS___MAC_SET_PROC": true, + "SYS___MAC_SYSCALL": true, + "SYS___OLD_SEMWAIT_SIGNAL": true, + "SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL": true, + "SYS___POSIX_CHOWN": true, + "SYS___POSIX_FCHOWN": true, + "SYS___POSIX_LCHOWN": true, + "SYS___POSIX_RENAME": true, + "SYS___PTHREAD_CANCELED": true, + "SYS___PTHREAD_CHDIR": true, + "SYS___PTHREAD_FCHDIR": true, + "SYS___PTHREAD_KILL": true, + "SYS___PTHREAD_MARKCANCEL": true, + "SYS___PTHREAD_SIGMASK": true, + "SYS___QUOTACTL": true, + "SYS___SEMCTL": true, + "SYS___SEMWAIT_SIGNAL": true, + "SYS___SEMWAIT_SIGNAL_NOCANCEL": true, + "SYS___SETLOGIN": true, + "SYS___SETUGID": true, + "SYS___SET_TCB": true, + "SYS___SIGACTION_SIGTRAMP": true, + "SYS___SIGTIMEDWAIT": true, + "SYS___SIGWAIT": true, + "SYS___SIGWAIT_NOCANCEL": true, + "SYS___SYSCTL": true, + "SYS___TFORK": true, + "SYS___THREXIT": true, + "SYS___THRSIGDIVERT": true, + "SYS___THRSLEEP": true, + "SYS___THRWAKEUP": true, + "S_ARCH1": true, + "S_ARCH2": true, + "S_BLKSIZE": true, + "S_IEXEC": true, + "S_IFBLK": true, + "S_IFCHR": true, + "S_IFDIR": true, + "S_IFIFO": true, + "S_IFLNK": true, + "S_IFMT": true, + "S_IFREG": true, + "S_IFSOCK": true, + "S_IFWHT": true, + "S_IREAD": true, + "S_IRGRP": true, + "S_IROTH": true, + "S_IRUSR": true, + "S_IRWXG": true, + "S_IRWXO": true, + "S_IRWXU": true, + "S_ISGID": true, + "S_ISTXT": true, + "S_ISUID": true, + "S_ISVTX": true, + "S_IWGRP": true, + "S_IWOTH": true, + "S_IWRITE": true, + "S_IWUSR": true, + "S_IXGRP": true, + "S_IXOTH": true, + "S_IXUSR": true, + "S_LOGIN_SET": true, + "SecurityAttributes": true, + "Seek": true, + "Select": true, + "Sendfile": true, + "Sendmsg": true, + "SendmsgN": true, + "Sendto": true, + "Servent": true, + "SetBpf": true, + "SetBpfBuflen": true, + "SetBpfDatalink": true, + "SetBpfHeadercmpl": true, + "SetBpfImmediate": true, + "SetBpfInterface": true, + "SetBpfPromisc": true, + "SetBpfTimeout": true, + "SetCurrentDirectory": true, + "SetEndOfFile": true, + "SetEnvironmentVariable": true, + "SetFileAttributes": true, + "SetFileCompletionNotificationModes": true, + "SetFilePointer": true, + "SetFileTime": true, + "SetHandleInformation": true, + "SetKevent": true, + "SetLsfPromisc": true, + "SetNonblock": true, + "Setdomainname": true, + "Setegid": true, + "Setenv": true, + "Seteuid": true, + "Setfsgid": true, + "Setfsuid": true, + "Setgid": true, + "Setgroups": true, + "Sethostname": true, + "Setlogin": true, + "Setpgid": true, + "Setpriority": true, + "Setprivexec": true, + "Setregid": true, + "Setresgid": true, + "Setresuid": true, + "Setreuid": true, + "Setrlimit": true, + "Setsid": true, + "Setsockopt": true, + "SetsockoptByte": true, + "SetsockoptICMPv6Filter": true, + "SetsockoptIPMreq": true, + "SetsockoptIPMreqn": true, + "SetsockoptIPv6Mreq": true, + "SetsockoptInet4Addr": true, + "SetsockoptInt": true, + "SetsockoptLinger": true, + "SetsockoptString": true, + "SetsockoptTimeval": true, + "Settimeofday": true, + "Setuid": true, + "Setxattr": true, + "Shutdown": true, + "SidTypeAlias": true, + "SidTypeComputer": true, + "SidTypeDeletedAccount": true, + "SidTypeDomain": true, + "SidTypeGroup": true, + "SidTypeInvalid": true, + "SidTypeLabel": true, + "SidTypeUnknown": true, + "SidTypeUser": true, + "SidTypeWellKnownGroup": true, + "Signal": true, + "SizeofBpfHdr": true, + "SizeofBpfInsn": true, + "SizeofBpfProgram": true, + "SizeofBpfStat": true, + "SizeofBpfVersion": true, + "SizeofBpfZbuf": true, + "SizeofBpfZbufHeader": true, + "SizeofCmsghdr": true, + "SizeofICMPv6Filter": true, + "SizeofIPMreq": true, + "SizeofIPMreqn": true, + "SizeofIPv6MTUInfo": true, + "SizeofIPv6Mreq": true, + "SizeofIfAddrmsg": true, + "SizeofIfAnnounceMsghdr": true, + "SizeofIfData": true, + "SizeofIfInfomsg": true, + "SizeofIfMsghdr": true, + "SizeofIfaMsghdr": true, + "SizeofIfmaMsghdr": true, + "SizeofIfmaMsghdr2": true, + "SizeofInet4Pktinfo": true, + "SizeofInet6Pktinfo": true, + "SizeofInotifyEvent": true, + "SizeofLinger": true, + "SizeofMsghdr": true, + "SizeofNlAttr": true, + "SizeofNlMsgerr": true, + "SizeofNlMsghdr": true, + "SizeofRtAttr": true, + "SizeofRtGenmsg": true, + "SizeofRtMetrics": true, + "SizeofRtMsg": true, + "SizeofRtMsghdr": true, + "SizeofRtNexthop": true, + "SizeofSockFilter": true, + "SizeofSockFprog": true, + "SizeofSockaddrAny": true, + "SizeofSockaddrDatalink": true, + "SizeofSockaddrInet4": true, + "SizeofSockaddrInet6": true, + "SizeofSockaddrLinklayer": true, + "SizeofSockaddrNetlink": true, + "SizeofSockaddrUnix": true, + "SizeofTCPInfo": true, + "SizeofUcred": true, + "SlicePtrFromStrings": true, + "SockFilter": true, + "SockFprog": true, + "SockaddrDatalink": true, + "SockaddrGen": true, + "SockaddrInet4": true, + "SockaddrInet6": true, + "SockaddrLinklayer": true, + "SockaddrNetlink": true, + "SockaddrUnix": true, + "Socket": true, + "SocketControlMessage": true, + "SocketDisableIPv6": true, + "Socketpair": true, + "Splice": true, + "StartProcess": true, + "StartupInfo": true, + "Stat": true, + "Stat_t": true, + "Statfs": true, + "Statfs_t": true, + "Stderr": true, + "Stdin": true, + "Stdout": true, + "StringBytePtr": true, + "StringByteSlice": true, + "StringSlicePtr": true, + "StringToSid": true, + "StringToUTF16": true, + "StringToUTF16Ptr": true, + "Symlink": true, + "Sync": true, + "SyncFileRange": true, + "SysProcAttr": true, + "SysProcIDMap": true, + "Syscall": true, + "Syscall12": true, + "Syscall15": true, + "Syscall18": true, + "Syscall6": true, + "Syscall9": true, + "Sysctl": true, + "SysctlUint32": true, + "Sysctlnode": true, + "Sysinfo": true, + "Sysinfo_t": true, + "Systemtime": true, + "TCGETS": true, + "TCIFLUSH": true, + "TCIOFLUSH": true, + "TCOFLUSH": true, + "TCPInfo": true, + "TCPKeepalive": true, + "TCP_CA_NAME_MAX": true, + "TCP_CONGCTL": true, + "TCP_CONGESTION": true, + "TCP_CONNECTIONTIMEOUT": true, + "TCP_CORK": true, + "TCP_DEFER_ACCEPT": true, + "TCP_INFO": true, + "TCP_KEEPALIVE": true, + "TCP_KEEPCNT": true, + "TCP_KEEPIDLE": true, + "TCP_KEEPINIT": true, + "TCP_KEEPINTVL": true, + "TCP_LINGER2": true, + "TCP_MAXBURST": true, + "TCP_MAXHLEN": true, + "TCP_MAXOLEN": true, + "TCP_MAXSEG": true, + "TCP_MAXWIN": true, + "TCP_MAX_SACK": true, + "TCP_MAX_WINSHIFT": true, + "TCP_MD5SIG": true, + "TCP_MD5SIG_MAXKEYLEN": true, + "TCP_MINMSS": true, + "TCP_MINMSSOVERLOAD": true, + "TCP_MSS": true, + "TCP_NODELAY": true, + "TCP_NOOPT": true, + "TCP_NOPUSH": true, + "TCP_NSTATES": true, + "TCP_QUICKACK": true, + "TCP_RXT_CONNDROPTIME": true, + "TCP_RXT_FINDROP": true, + "TCP_SACK_ENABLE": true, + "TCP_SYNCNT": true, + "TCP_VENDOR": true, + "TCP_WINDOW_CLAMP": true, + "TCSAFLUSH": true, + "TCSETS": true, + "TF_DISCONNECT": true, + "TF_REUSE_SOCKET": true, + "TF_USE_DEFAULT_WORKER": true, + "TF_USE_KERNEL_APC": true, + "TF_USE_SYSTEM_THREAD": true, + "TF_WRITE_BEHIND": true, + "TH32CS_INHERIT": true, + "TH32CS_SNAPALL": true, + "TH32CS_SNAPHEAPLIST": true, + "TH32CS_SNAPMODULE": true, + "TH32CS_SNAPMODULE32": true, + "TH32CS_SNAPPROCESS": true, + "TH32CS_SNAPTHREAD": true, + "TIME_ZONE_ID_DAYLIGHT": true, + "TIME_ZONE_ID_STANDARD": true, + "TIME_ZONE_ID_UNKNOWN": true, + "TIOCCBRK": true, + "TIOCCDTR": true, + "TIOCCONS": true, + "TIOCDCDTIMESTAMP": true, + "TIOCDRAIN": true, + "TIOCDSIMICROCODE": true, + "TIOCEXCL": true, + "TIOCEXT": true, + "TIOCFLAG_CDTRCTS": true, + "TIOCFLAG_CLOCAL": true, + "TIOCFLAG_CRTSCTS": true, + "TIOCFLAG_MDMBUF": true, + "TIOCFLAG_PPS": true, + "TIOCFLAG_SOFTCAR": true, + "TIOCFLUSH": true, + "TIOCGDEV": true, + "TIOCGDRAINWAIT": true, + "TIOCGETA": true, + "TIOCGETD": true, + "TIOCGFLAGS": true, + "TIOCGICOUNT": true, + "TIOCGLCKTRMIOS": true, + "TIOCGLINED": true, + "TIOCGPGRP": true, + "TIOCGPTN": true, + "TIOCGQSIZE": true, + "TIOCGRANTPT": true, + "TIOCGRS485": true, + "TIOCGSERIAL": true, + "TIOCGSID": true, + "TIOCGSIZE": true, + "TIOCGSOFTCAR": true, + "TIOCGTSTAMP": true, + "TIOCGWINSZ": true, + "TIOCINQ": true, + "TIOCIXOFF": true, + "TIOCIXON": true, + "TIOCLINUX": true, + "TIOCMBIC": true, + "TIOCMBIS": true, + "TIOCMGDTRWAIT": true, + "TIOCMGET": true, + "TIOCMIWAIT": true, + "TIOCMODG": true, + "TIOCMODS": true, + "TIOCMSDTRWAIT": true, + "TIOCMSET": true, + "TIOCM_CAR": true, + "TIOCM_CD": true, + "TIOCM_CTS": true, + "TIOCM_DCD": true, + "TIOCM_DSR": true, + "TIOCM_DTR": true, + "TIOCM_LE": true, + "TIOCM_RI": true, + "TIOCM_RNG": true, + "TIOCM_RTS": true, + "TIOCM_SR": true, + "TIOCM_ST": true, + "TIOCNOTTY": true, + "TIOCNXCL": true, + "TIOCOUTQ": true, + "TIOCPKT": true, + "TIOCPKT_DATA": true, + "TIOCPKT_DOSTOP": true, + "TIOCPKT_FLUSHREAD": true, + "TIOCPKT_FLUSHWRITE": true, + "TIOCPKT_IOCTL": true, + "TIOCPKT_NOSTOP": true, + "TIOCPKT_START": true, + "TIOCPKT_STOP": true, + "TIOCPTMASTER": true, + "TIOCPTMGET": true, + "TIOCPTSNAME": true, + "TIOCPTYGNAME": true, + "TIOCPTYGRANT": true, + "TIOCPTYUNLK": true, + "TIOCRCVFRAME": true, + "TIOCREMOTE": true, + "TIOCSBRK": true, + "TIOCSCONS": true, + "TIOCSCTTY": true, + "TIOCSDRAINWAIT": true, + "TIOCSDTR": true, + "TIOCSERCONFIG": true, + "TIOCSERGETLSR": true, + "TIOCSERGETMULTI": true, + "TIOCSERGSTRUCT": true, + "TIOCSERGWILD": true, + "TIOCSERSETMULTI": true, + "TIOCSERSWILD": true, + "TIOCSER_TEMT": true, + "TIOCSETA": true, + "TIOCSETAF": true, + "TIOCSETAW": true, + "TIOCSETD": true, + "TIOCSFLAGS": true, + "TIOCSIG": true, + "TIOCSLCKTRMIOS": true, + "TIOCSLINED": true, + "TIOCSPGRP": true, + "TIOCSPTLCK": true, + "TIOCSQSIZE": true, + "TIOCSRS485": true, + "TIOCSSERIAL": true, + "TIOCSSIZE": true, + "TIOCSSOFTCAR": true, + "TIOCSTART": true, + "TIOCSTAT": true, + "TIOCSTI": true, + "TIOCSTOP": true, + "TIOCSTSTAMP": true, + "TIOCSWINSZ": true, + "TIOCTIMESTAMP": true, + "TIOCUCNTL": true, + "TIOCVHANGUP": true, + "TIOCXMTFRAME": true, + "TOKEN_ADJUST_DEFAULT": true, + "TOKEN_ADJUST_GROUPS": true, + "TOKEN_ADJUST_PRIVILEGES": true, + "TOKEN_ADJUST_SESSIONID": true, + "TOKEN_ALL_ACCESS": true, + "TOKEN_ASSIGN_PRIMARY": true, + "TOKEN_DUPLICATE": true, + "TOKEN_EXECUTE": true, + "TOKEN_IMPERSONATE": true, + "TOKEN_QUERY": true, + "TOKEN_QUERY_SOURCE": true, + "TOKEN_READ": true, + "TOKEN_WRITE": true, + "TOSTOP": true, + "TRUNCATE_EXISTING": true, + "TUNATTACHFILTER": true, + "TUNDETACHFILTER": true, + "TUNGETFEATURES": true, + "TUNGETIFF": true, + "TUNGETSNDBUF": true, + "TUNGETVNETHDRSZ": true, + "TUNSETDEBUG": true, + "TUNSETGROUP": true, + "TUNSETIFF": true, + "TUNSETLINK": true, + "TUNSETNOCSUM": true, + "TUNSETOFFLOAD": true, + "TUNSETOWNER": true, + "TUNSETPERSIST": true, + "TUNSETSNDBUF": true, + "TUNSETTXFILTER": true, + "TUNSETVNETHDRSZ": true, + "Tee": true, + "TerminateProcess": true, + "Termios": true, + "Tgkill": true, + "Time": true, + "Time_t": true, + "Times": true, + "Timespec": true, + "TimespecToNsec": true, + "Timeval": true, + "Timeval32": true, + "TimevalToNsec": true, + "Timex": true, + "Timezoneinformation": true, + "Tms": true, + "Token": true, + "TokenAccessInformation": true, + "TokenAuditPolicy": true, + "TokenDefaultDacl": true, + "TokenElevation": true, + "TokenElevationType": true, + "TokenGroups": true, + "TokenGroupsAndPrivileges": true, + "TokenHasRestrictions": true, + "TokenImpersonationLevel": true, + "TokenIntegrityLevel": true, + "TokenLinkedToken": true, + "TokenLogonSid": true, + "TokenMandatoryPolicy": true, + "TokenOrigin": true, + "TokenOwner": true, + "TokenPrimaryGroup": true, + "TokenPrivileges": true, + "TokenRestrictedSids": true, + "TokenSandBoxInert": true, + "TokenSessionId": true, + "TokenSessionReference": true, + "TokenSource": true, + "TokenStatistics": true, + "TokenType": true, + "TokenUIAccess": true, + "TokenUser": true, + "TokenVirtualizationAllowed": true, + "TokenVirtualizationEnabled": true, + "Tokenprimarygroup": true, + "Tokenuser": true, + "TranslateAccountName": true, + "TranslateName": true, + "TransmitFile": true, + "TransmitFileBuffers": true, + "Truncate": true, + "UNIX_PATH_MAX": true, + "USAGE_MATCH_TYPE_AND": true, + "USAGE_MATCH_TYPE_OR": true, + "UTF16FromString": true, + "UTF16PtrFromString": true, + "UTF16ToString": true, + "Ucred": true, + "Umask": true, + "Uname": true, + "Undelete": true, + "UnixCredentials": true, + "UnixRights": true, + "Unlink": true, + "Unlinkat": true, + "UnmapViewOfFile": true, + "Unmount": true, + "Unsetenv": true, + "Unshare": true, + "UserInfo10": true, + "Ustat": true, + "Ustat_t": true, + "Utimbuf": true, + "Utime": true, + "Utimes": true, + "UtimesNano": true, + "Utsname": true, + "VDISCARD": true, + "VDSUSP": true, + "VEOF": true, + "VEOL": true, + "VEOL2": true, + "VERASE": true, + "VERASE2": true, + "VINTR": true, + "VKILL": true, + "VLNEXT": true, + "VMIN": true, + "VQUIT": true, + "VREPRINT": true, + "VSTART": true, + "VSTATUS": true, + "VSTOP": true, + "VSUSP": true, + "VSWTC": true, + "VT0": true, + "VT1": true, + "VTDLY": true, + "VTIME": true, + "VWERASE": true, + "VirtualLock": true, + "VirtualUnlock": true, + "WAIT_ABANDONED": true, + "WAIT_FAILED": true, + "WAIT_OBJECT_0": true, + "WAIT_TIMEOUT": true, + "WALL": true, + "WALLSIG": true, + "WALTSIG": true, + "WCLONE": true, + "WCONTINUED": true, + "WCOREFLAG": true, + "WEXITED": true, + "WLINUXCLONE": true, + "WNOHANG": true, + "WNOTHREAD": true, + "WNOWAIT": true, + "WNOZOMBIE": true, + "WOPTSCHECKED": true, + "WORDSIZE": true, + "WSABuf": true, + "WSACleanup": true, + "WSADESCRIPTION_LEN": true, + "WSAData": true, + "WSAEACCES": true, + "WSAECONNABORTED": true, + "WSAECONNRESET": true, + "WSAEnumProtocols": true, + "WSAID_CONNECTEX": true, + "WSAIoctl": true, + "WSAPROTOCOL_LEN": true, + "WSAProtocolChain": true, + "WSAProtocolInfo": true, + "WSARecv": true, + "WSARecvFrom": true, + "WSASYS_STATUS_LEN": true, + "WSASend": true, + "WSASendTo": true, + "WSASendto": true, + "WSAStartup": true, + "WSTOPPED": true, + "WTRAPPED": true, + "WUNTRACED": true, + "Wait4": true, + "WaitForSingleObject": true, + "WaitStatus": true, + "Win32FileAttributeData": true, + "Win32finddata": true, + "Write": true, + "WriteConsole": true, + "WriteFile": true, + "X509_ASN_ENCODING": true, + "XCASE": true, + "XP1_CONNECTIONLESS": true, + "XP1_CONNECT_DATA": true, + "XP1_DISCONNECT_DATA": true, + "XP1_EXPEDITED_DATA": true, + "XP1_GRACEFUL_CLOSE": true, + "XP1_GUARANTEED_DELIVERY": true, + "XP1_GUARANTEED_ORDER": true, + "XP1_IFS_HANDLES": true, + "XP1_MESSAGE_ORIENTED": true, + "XP1_MULTIPOINT_CONTROL_PLANE": true, + "XP1_MULTIPOINT_DATA_PLANE": true, + "XP1_PARTIAL_MESSAGE": true, + "XP1_PSEUDO_STREAM": true, + "XP1_QOS_SUPPORTED": true, + "XP1_SAN_SUPPORT_SDP": true, + "XP1_SUPPORT_BROADCAST": true, + "XP1_SUPPORT_MULTIPOINT": true, + "XP1_UNI_RECV": true, + "XP1_UNI_SEND": true, + }, + "syscall/js": map[string]bool{ + "Error": true, + "Func": true, + "FuncOf": true, + "Global": true, + "Null": true, + "Type": true, + "TypeBoolean": true, + "TypeFunction": true, + "TypeNull": true, + "TypeNumber": true, + "TypeObject": true, + "TypeString": true, + "TypeSymbol": true, + "TypeUndefined": true, + "TypedArray": true, + "TypedArrayOf": true, + "Undefined": true, + "Value": true, + "ValueError": true, + "ValueOf": true, + "Wrapper": true, + }, + "testing": map[string]bool{ + "AllocsPerRun": true, + "B": true, + "Benchmark": true, + "BenchmarkResult": true, + "Cover": true, + "CoverBlock": true, + "CoverMode": true, + "Coverage": true, + "InternalBenchmark": true, + "InternalExample": true, + "InternalTest": true, + "M": true, + "Main": true, + "MainStart": true, + "PB": true, + "RegisterCover": true, + "RunBenchmarks": true, + "RunExamples": true, + "RunTests": true, + "Short": true, + "T": true, + "Verbose": true, + }, + "testing/iotest": map[string]bool{ + "DataErrReader": true, + "ErrTimeout": true, + "HalfReader": true, + "NewReadLogger": true, + "NewWriteLogger": true, + "OneByteReader": true, + "TimeoutReader": true, + "TruncateWriter": true, + }, + "testing/quick": map[string]bool{ + "Check": true, + "CheckEqual": true, + "CheckEqualError": true, + "CheckError": true, + "Config": true, + "Generator": true, + "SetupError": true, + "Value": true, + }, + "text/scanner": map[string]bool{ + "Char": true, + "Comment": true, + "EOF": true, + "Float": true, + "GoTokens": true, + "GoWhitespace": true, + "Ident": true, + "Int": true, + "Position": true, + "RawString": true, + "ScanChars": true, + "ScanComments": true, + "ScanFloats": true, + "ScanIdents": true, + "ScanInts": true, + "ScanRawStrings": true, + "ScanStrings": true, + "Scanner": true, + "SkipComments": true, + "String": true, + "TokenString": true, + }, + "text/tabwriter": map[string]bool{ + "AlignRight": true, + "Debug": true, + "DiscardEmptyColumns": true, + "Escape": true, + "FilterHTML": true, + "NewWriter": true, + "StripEscape": true, + "TabIndent": true, + "Writer": true, + }, + "text/template": map[string]bool{ + "ExecError": true, + "FuncMap": true, + "HTMLEscape": true, + "HTMLEscapeString": true, + "HTMLEscaper": true, + "IsTrue": true, + "JSEscape": true, + "JSEscapeString": true, + "JSEscaper": true, + "Must": true, + "New": true, + "ParseFiles": true, + "ParseGlob": true, + "Template": true, + "URLQueryEscaper": true, + }, + "text/template/parse": map[string]bool{ + "ActionNode": true, + "BoolNode": true, + "BranchNode": true, + "ChainNode": true, + "CommandNode": true, + "DotNode": true, + "FieldNode": true, + "IdentifierNode": true, + "IfNode": true, + "IsEmptyTree": true, + "ListNode": true, + "New": true, + "NewIdentifier": true, + "NilNode": true, + "Node": true, + "NodeAction": true, + "NodeBool": true, + "NodeChain": true, + "NodeCommand": true, + "NodeDot": true, + "NodeField": true, + "NodeIdentifier": true, + "NodeIf": true, + "NodeList": true, + "NodeNil": true, + "NodeNumber": true, + "NodePipe": true, + "NodeRange": true, + "NodeString": true, + "NodeTemplate": true, + "NodeText": true, + "NodeType": true, + "NodeVariable": true, + "NodeWith": true, + "NumberNode": true, + "Parse": true, + "PipeNode": true, + "Pos": true, + "RangeNode": true, + "StringNode": true, + "TemplateNode": true, + "TextNode": true, + "Tree": true, + "VariableNode": true, + "WithNode": true, + }, + "time": map[string]bool{ + "ANSIC": true, + "After": true, + "AfterFunc": true, + "April": true, + "August": true, + "Date": true, + "December": true, + "Duration": true, + "February": true, + "FixedZone": true, + "Friday": true, + "Hour": true, + "January": true, + "July": true, + "June": true, + "Kitchen": true, + "LoadLocation": true, + "LoadLocationFromTZData": true, + "Local": true, + "Location": true, + "March": true, + "May": true, + "Microsecond": true, + "Millisecond": true, + "Minute": true, + "Monday": true, + "Month": true, + "Nanosecond": true, + "NewTicker": true, + "NewTimer": true, + "November": true, + "Now": true, + "October": true, + "Parse": true, + "ParseDuration": true, + "ParseError": true, + "ParseInLocation": true, + "RFC1123": true, + "RFC1123Z": true, + "RFC3339": true, + "RFC3339Nano": true, + "RFC822": true, + "RFC822Z": true, + "RFC850": true, + "RubyDate": true, + "Saturday": true, + "Second": true, + "September": true, + "Since": true, + "Sleep": true, + "Stamp": true, + "StampMicro": true, + "StampMilli": true, + "StampNano": true, + "Sunday": true, + "Thursday": true, + "Tick": true, + "Ticker": true, + "Time": true, + "Timer": true, + "Tuesday": true, + "UTC": true, + "Unix": true, + "UnixDate": true, + "Until": true, + "Wednesday": true, + "Weekday": true, + }, + "unicode": map[string]bool{ + "ASCII_Hex_Digit": true, + "Adlam": true, + "Ahom": true, + "Anatolian_Hieroglyphs": true, + "Arabic": true, + "Armenian": true, + "Avestan": true, + "AzeriCase": true, + "Balinese": true, + "Bamum": true, + "Bassa_Vah": true, + "Batak": true, + "Bengali": true, + "Bhaiksuki": true, + "Bidi_Control": true, + "Bopomofo": true, + "Brahmi": true, + "Braille": true, + "Buginese": true, + "Buhid": true, + "C": true, + "Canadian_Aboriginal": true, + "Carian": true, + "CaseRange": true, + "CaseRanges": true, + "Categories": true, + "Caucasian_Albanian": true, + "Cc": true, + "Cf": true, + "Chakma": true, + "Cham": true, + "Cherokee": true, + "Co": true, + "Common": true, + "Coptic": true, + "Cs": true, + "Cuneiform": true, + "Cypriot": true, + "Cyrillic": true, + "Dash": true, + "Deprecated": true, + "Deseret": true, + "Devanagari": true, + "Diacritic": true, + "Digit": true, + "Duployan": true, + "Egyptian_Hieroglyphs": true, + "Elbasan": true, + "Ethiopic": true, + "Extender": true, + "FoldCategory": true, + "FoldScript": true, + "Georgian": true, + "Glagolitic": true, + "Gothic": true, + "Grantha": true, + "GraphicRanges": true, + "Greek": true, + "Gujarati": true, + "Gurmukhi": true, + "Han": true, + "Hangul": true, + "Hanunoo": true, + "Hatran": true, + "Hebrew": true, + "Hex_Digit": true, + "Hiragana": true, + "Hyphen": true, + "IDS_Binary_Operator": true, + "IDS_Trinary_Operator": true, + "Ideographic": true, + "Imperial_Aramaic": true, + "In": true, + "Inherited": true, + "Inscriptional_Pahlavi": true, + "Inscriptional_Parthian": true, + "Is": true, + "IsControl": true, + "IsDigit": true, + "IsGraphic": true, + "IsLetter": true, + "IsLower": true, + "IsMark": true, + "IsNumber": true, + "IsOneOf": true, + "IsPrint": true, + "IsPunct": true, + "IsSpace": true, + "IsSymbol": true, + "IsTitle": true, + "IsUpper": true, + "Javanese": true, + "Join_Control": true, + "Kaithi": true, + "Kannada": true, + "Katakana": true, + "Kayah_Li": true, + "Kharoshthi": true, + "Khmer": true, + "Khojki": true, + "Khudawadi": true, + "L": true, + "Lao": true, + "Latin": true, + "Lepcha": true, + "Letter": true, + "Limbu": true, + "Linear_A": true, + "Linear_B": true, + "Lisu": true, + "Ll": true, + "Lm": true, + "Lo": true, + "Logical_Order_Exception": true, + "Lower": true, + "LowerCase": true, + "Lt": true, + "Lu": true, + "Lycian": true, + "Lydian": true, + "M": true, + "Mahajani": true, + "Malayalam": true, + "Mandaic": true, + "Manichaean": true, + "Marchen": true, + "Mark": true, + "Masaram_Gondi": true, + "MaxASCII": true, + "MaxCase": true, + "MaxLatin1": true, + "MaxRune": true, + "Mc": true, + "Me": true, + "Meetei_Mayek": true, + "Mende_Kikakui": true, + "Meroitic_Cursive": true, + "Meroitic_Hieroglyphs": true, + "Miao": true, + "Mn": true, + "Modi": true, + "Mongolian": true, + "Mro": true, + "Multani": true, + "Myanmar": true, + "N": true, + "Nabataean": true, + "Nd": true, + "New_Tai_Lue": true, + "Newa": true, + "Nko": true, + "Nl": true, + "No": true, + "Noncharacter_Code_Point": true, + "Number": true, + "Nushu": true, + "Ogham": true, + "Ol_Chiki": true, + "Old_Hungarian": true, + "Old_Italic": true, + "Old_North_Arabian": true, + "Old_Permic": true, + "Old_Persian": true, + "Old_South_Arabian": true, + "Old_Turkic": true, + "Oriya": true, + "Osage": true, + "Osmanya": true, + "Other": true, + "Other_Alphabetic": true, + "Other_Default_Ignorable_Code_Point": true, + "Other_Grapheme_Extend": true, + "Other_ID_Continue": true, + "Other_ID_Start": true, + "Other_Lowercase": true, + "Other_Math": true, + "Other_Uppercase": true, + "P": true, + "Pahawh_Hmong": true, + "Palmyrene": true, + "Pattern_Syntax": true, + "Pattern_White_Space": true, + "Pau_Cin_Hau": true, + "Pc": true, + "Pd": true, + "Pe": true, + "Pf": true, + "Phags_Pa": true, + "Phoenician": true, + "Pi": true, + "Po": true, + "Prepended_Concatenation_Mark": true, + "PrintRanges": true, + "Properties": true, + "Ps": true, + "Psalter_Pahlavi": true, + "Punct": true, + "Quotation_Mark": true, + "Radical": true, + "Range16": true, + "Range32": true, + "RangeTable": true, + "Regional_Indicator": true, + "Rejang": true, + "ReplacementChar": true, + "Runic": true, + "S": true, + "STerm": true, + "Samaritan": true, + "Saurashtra": true, + "Sc": true, + "Scripts": true, + "Sentence_Terminal": true, + "Sharada": true, + "Shavian": true, + "Siddham": true, + "SignWriting": true, + "SimpleFold": true, + "Sinhala": true, + "Sk": true, + "Sm": true, + "So": true, + "Soft_Dotted": true, + "Sora_Sompeng": true, + "Soyombo": true, + "Space": true, + "SpecialCase": true, + "Sundanese": true, + "Syloti_Nagri": true, + "Symbol": true, + "Syriac": true, + "Tagalog": true, + "Tagbanwa": true, + "Tai_Le": true, + "Tai_Tham": true, + "Tai_Viet": true, + "Takri": true, + "Tamil": true, + "Tangut": true, + "Telugu": true, + "Terminal_Punctuation": true, + "Thaana": true, + "Thai": true, + "Tibetan": true, + "Tifinagh": true, + "Tirhuta": true, + "Title": true, + "TitleCase": true, + "To": true, + "ToLower": true, + "ToTitle": true, + "ToUpper": true, + "TurkishCase": true, + "Ugaritic": true, + "Unified_Ideograph": true, + "Upper": true, + "UpperCase": true, + "UpperLower": true, + "Vai": true, + "Variation_Selector": true, + "Version": true, + "Warang_Citi": true, + "White_Space": true, + "Yi": true, + "Z": true, + "Zanabazar_Square": true, + "Zl": true, + "Zp": true, + "Zs": true, + }, + "unicode/utf16": map[string]bool{ + "Decode": true, + "DecodeRune": true, + "Encode": true, + "EncodeRune": true, + "IsSurrogate": true, + }, + "unicode/utf8": map[string]bool{ + "DecodeLastRune": true, + "DecodeLastRuneInString": true, + "DecodeRune": true, + "DecodeRuneInString": true, + "EncodeRune": true, + "FullRune": true, + "FullRuneInString": true, + "MaxRune": true, + "RuneCount": true, + "RuneCountInString": true, + "RuneError": true, + "RuneLen": true, + "RuneSelf": true, + "RuneStart": true, + "UTFMax": true, + "Valid": true, + "ValidRune": true, + "ValidString": true, + }, + "unsafe": map[string]bool{ + "Alignof": true, + "ArbitraryType": true, + "Offsetof": true, + "Pointer": true, + "Sizeof": true, + }, } diff --git a/vendor/golang.org/x/tools/imports/fastwalk.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go similarity index 79% rename from vendor/golang.org/x/tools/imports/fastwalk.go rename to vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go index 31e6e27b..7219c8e9 100644 --- a/vendor/golang.org/x/tools/imports/fastwalk.go +++ b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go @@ -2,17 +2,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// A faster implementation of filepath.Walk. -// -// filepath.Walk's design necessarily calls os.Lstat on each file, -// even if the caller needs less info. And goimports only need to know -// the type of each file. The kernel interface provides the type in -// the Readdir call but the standard library ignored it. -// fastwalk_unix.go contains a fork of the syscall routines. -// -// See golang.org/issue/16399 - -package imports +// Package fastwalk provides a faster version of filepath.Walk for file system +// scanning tools. +package fastwalk import ( "errors" @@ -22,10 +14,27 @@ import ( "sync" ) -// traverseLink is a sentinel error for fastWalk, similar to filepath.SkipDir. -var traverseLink = errors.New("traverse symlink, assuming target is a directory") +// TraverseLink is used as a return value from WalkFuncs to indicate that the +// symlink named in the call may be traversed. +var TraverseLink = errors.New("fastwalk: traverse symlink, assuming target is a directory") -// fastWalk walks the file tree rooted at root, calling walkFn for +// SkipFiles is a used as a return value from WalkFuncs to indicate that the +// callback should not be called for any other files in the current directory. +// Child directories will still be traversed. +var SkipFiles = errors.New("fastwalk: skip remaining files in directory") + +// Walk is a faster implementation of filepath.Walk. +// +// filepath.Walk's design necessarily calls os.Lstat on each file, +// even if the caller needs less info. +// Many tools need only the type of each file. +// On some platforms, this information is provided directly by the readdir +// system call, avoiding the need to stat each file individually. +// fastwalk_unix.go contains a fork of the syscall routines. +// +// See golang.org/issue/16399 +// +// Walk walks the file tree rooted at root, calling walkFn for // each file or directory in the tree, including root. // // If fastWalk returns filepath.SkipDir, the directory is skipped. @@ -36,10 +45,10 @@ var traverseLink = errors.New("traverse symlink, assuming target is a directory" // any permission bits. // * multiple goroutines stat the filesystem concurrently. The provided // walkFn must be safe for concurrent use. -// * fastWalk can follow symlinks if walkFn returns the traverseLink +// * fastWalk can follow symlinks if walkFn returns the TraverseLink // sentinel error. It is the walkFn's responsibility to prevent // fastWalk from going into symlink cycles. -func fastWalk(root string, walkFn func(path string, typ os.FileMode) error) error { +func Walk(root string, walkFn func(path string, typ os.FileMode) error) error { // TODO(bradfitz): make numWorkers configurable? We used a // minimum of 4 to give the kernel more info about multiple // things we want, in hopes its I/O scheduling can take @@ -158,7 +167,7 @@ func (w *walker) onDirEnt(dirName, baseName string, typ os.FileMode) error { err := w.fn(joined, typ) if typ == os.ModeSymlink { - if err == traverseLink { + if err == TraverseLink { // Set callbackDone so we don't call it twice for both the // symlink-as-symlink and the symlink-as-directory later: w.enqueue(walkItem{dir: joined, callbackDone: true}) diff --git a/vendor/golang.org/x/tools/imports/fastwalk_dirent_fileno.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_fileno.go similarity index 94% rename from vendor/golang.org/x/tools/imports/fastwalk_dirent_fileno.go rename to vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_fileno.go index f1fd6494..ccffec5a 100644 --- a/vendor/golang.org/x/tools/imports/fastwalk_dirent_fileno.go +++ b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_fileno.go @@ -4,7 +4,7 @@ // +build freebsd openbsd netbsd -package imports +package fastwalk import "syscall" diff --git a/vendor/golang.org/x/tools/imports/fastwalk_dirent_ino.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_ino.go similarity index 80% rename from vendor/golang.org/x/tools/imports/fastwalk_dirent_ino.go rename to vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_ino.go index ee85bc4d..ab7fbc0a 100644 --- a/vendor/golang.org/x/tools/imports/fastwalk_dirent_ino.go +++ b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_ino.go @@ -2,9 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build linux,!appengine darwin +// +build linux darwin +// +build !appengine -package imports +package fastwalk import "syscall" diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_bsd.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_bsd.go new file mode 100644 index 00000000..a3b26a7b --- /dev/null +++ b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_bsd.go @@ -0,0 +1,13 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build darwin freebsd openbsd netbsd + +package fastwalk + +import "syscall" + +func direntNamlen(dirent *syscall.Dirent) uint64 { + return uint64(dirent.Namlen) +} diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_linux.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_linux.go new file mode 100644 index 00000000..e880d358 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_linux.go @@ -0,0 +1,29 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build linux +// +build !appengine + +package fastwalk + +import ( + "bytes" + "syscall" + "unsafe" +) + +func direntNamlen(dirent *syscall.Dirent) uint64 { + const fixedHdr = uint16(unsafe.Offsetof(syscall.Dirent{}.Name)) + nameBuf := (*[unsafe.Sizeof(dirent.Name)]byte)(unsafe.Pointer(&dirent.Name[0])) + const nameBufLen = uint16(len(nameBuf)) + limit := dirent.Reclen - fixedHdr + if limit > nameBufLen { + limit = nameBufLen + } + nameLen := bytes.IndexByte(nameBuf[:limit], 0) + if nameLen < 0 { + panic("failed to find terminating 0 byte in dirent") + } + return uint64(nameLen) +} diff --git a/vendor/golang.org/x/tools/imports/fastwalk_portable.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_portable.go similarity index 82% rename from vendor/golang.org/x/tools/imports/fastwalk_portable.go rename to vendor/golang.org/x/tools/internal/fastwalk/fastwalk_portable.go index 6c265834..a906b875 100644 --- a/vendor/golang.org/x/tools/imports/fastwalk_portable.go +++ b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_portable.go @@ -4,7 +4,7 @@ // +build appengine !linux,!darwin,!freebsd,!openbsd,!netbsd -package imports +package fastwalk import ( "io/ioutil" @@ -20,8 +20,16 @@ func readDir(dirName string, fn func(dirName, entName string, typ os.FileMode) e if err != nil { return err } + skipFiles := false for _, fi := range fis { + if fi.Mode().IsRegular() && skipFiles { + continue + } if err := fn(dirName, fi.Name(), fi.Mode()&os.ModeType); err != nil { + if err == SkipFiles { + skipFiles = true + continue + } return err } } diff --git a/vendor/golang.org/x/tools/imports/fastwalk_unix.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go similarity index 90% rename from vendor/golang.org/x/tools/imports/fastwalk_unix.go rename to vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go index 5854233d..3369b1a0 100644 --- a/vendor/golang.org/x/tools/imports/fastwalk_unix.go +++ b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go @@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build linux,!appengine darwin freebsd openbsd netbsd +// +build linux darwin freebsd openbsd netbsd +// +build !appengine -package imports +package fastwalk import ( - "bytes" "fmt" "os" "syscall" @@ -23,7 +23,7 @@ const unknownFileMode os.FileMode = os.ModeNamedPipe | os.ModeSocket | os.ModeDe func readDir(dirName string, fn func(dirName, entName string, typ os.FileMode) error) error { fd, err := syscall.Open(dirName, 0, 0) if err != nil { - return err + return &os.PathError{Op: "open", Path: dirName, Err: err} } defer syscall.Close(fd) @@ -31,6 +31,7 @@ func readDir(dirName string, fn func(dirName, entName string, typ os.FileMode) e buf := make([]byte, blockSize) // stack-allocated; doesn't escape bufp := 0 // starting read position in buf nbuf := 0 // end valid data in buf + skipFiles := false for { if bufp >= nbuf { bufp = 0 @@ -61,7 +62,14 @@ func readDir(dirName string, fn func(dirName, entName string, typ os.FileMode) e } typ = fi.Mode() & os.ModeType } + if skipFiles && typ.IsRegular() { + continue + } if err := fn(dirName, name, typ); err != nil { + if err == SkipFiles { + skipFiles = true + continue + } return err } } @@ -105,10 +113,7 @@ func parseDirEnt(buf []byte) (consumed int, name string, typ os.FileMode) { } nameBuf := (*[unsafe.Sizeof(dirent.Name)]byte)(unsafe.Pointer(&dirent.Name[0])) - nameLen := bytes.IndexByte(nameBuf[:], 0) - if nameLen < 0 { - panic("failed to find terminating 0 byte in dirent") - } + nameLen := direntNamlen(dirent) // Special cases for common things: if nameLen == 1 && nameBuf[0] == '.' { diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go new file mode 100644 index 00000000..04bb96a3 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go @@ -0,0 +1,250 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package gopathwalk is like filepath.Walk but specialized for finding Go +// packages, particularly in $GOPATH and $GOROOT. +package gopathwalk + +import ( + "bufio" + "bytes" + "fmt" + "go/build" + "io/ioutil" + "log" + "os" + "path/filepath" + "strings" + + "golang.org/x/tools/internal/fastwalk" +) + +// Options controls the behavior of a Walk call. +type Options struct { + Debug bool // Enable debug logging + ModulesEnabled bool // Search module caches. Also disables legacy goimports ignore rules. +} + +// RootType indicates the type of a Root. +type RootType int + +const ( + RootUnknown RootType = iota + RootGOROOT + RootGOPATH + RootCurrentModule + RootModuleCache + RootOther +) + +// A Root is a starting point for a Walk. +type Root struct { + Path string + Type RootType +} + +// SrcDirsRoots returns the roots from build.Default.SrcDirs(). Not modules-compatible. +func SrcDirsRoots(ctx *build.Context) []Root { + var roots []Root + roots = append(roots, Root{filepath.Join(ctx.GOROOT, "src"), RootGOROOT}) + for _, p := range filepath.SplitList(ctx.GOPATH) { + roots = append(roots, Root{filepath.Join(p, "src"), RootGOPATH}) + } + return roots +} + +// Walk walks Go source directories ($GOROOT, $GOPATH, etc) to find packages. +// For each package found, add will be called (concurrently) with the absolute +// paths of the containing source directory and the package directory. +// add will be called concurrently. +func Walk(roots []Root, add func(root Root, dir string), opts Options) { + for _, root := range roots { + walkDir(root, add, opts) + } +} + +func walkDir(root Root, add func(Root, string), opts Options) { + if _, err := os.Stat(root.Path); os.IsNotExist(err) { + if opts.Debug { + log.Printf("skipping nonexistant directory: %v", root.Path) + } + return + } + if opts.Debug { + log.Printf("scanning %s", root.Path) + } + w := &walker{ + root: root, + add: add, + opts: opts, + } + w.init() + if err := fastwalk.Walk(root.Path, w.walk); err != nil { + log.Printf("gopathwalk: scanning directory %v: %v", root.Path, err) + } + + if opts.Debug { + log.Printf("scanned %s", root.Path) + } +} + +// walker is the callback for fastwalk.Walk. +type walker struct { + root Root // The source directory to scan. + add func(Root, string) // The callback that will be invoked for every possible Go package dir. + opts Options // Options passed to Walk by the user. + + ignoredDirs []os.FileInfo // The ignored directories, loaded from .goimportsignore files. +} + +// init initializes the walker based on its Options. +func (w *walker) init() { + var ignoredPaths []string + if w.root.Type == RootModuleCache { + ignoredPaths = []string{"cache"} + } + if !w.opts.ModulesEnabled && w.root.Type == RootGOPATH { + ignoredPaths = w.getIgnoredDirs(w.root.Path) + ignoredPaths = append(ignoredPaths, "v", "mod") + } + + for _, p := range ignoredPaths { + full := filepath.Join(w.root.Path, p) + if fi, err := os.Stat(full); err == nil { + w.ignoredDirs = append(w.ignoredDirs, fi) + if w.opts.Debug { + log.Printf("Directory added to ignore list: %s", full) + } + } else if w.opts.Debug { + log.Printf("Error statting ignored directory: %v", err) + } + } +} + +// getIgnoredDirs reads an optional config file at /.goimportsignore +// of relative directories to ignore when scanning for go files. +// The provided path is one of the $GOPATH entries with "src" appended. +func (w *walker) getIgnoredDirs(path string) []string { + file := filepath.Join(path, ".goimportsignore") + slurp, err := ioutil.ReadFile(file) + if w.opts.Debug { + if err != nil { + log.Print(err) + } else { + log.Printf("Read %s", file) + } + } + if err != nil { + return nil + } + + var ignoredDirs []string + bs := bufio.NewScanner(bytes.NewReader(slurp)) + for bs.Scan() { + line := strings.TrimSpace(bs.Text()) + if line == "" || strings.HasPrefix(line, "#") { + continue + } + ignoredDirs = append(ignoredDirs, line) + } + return ignoredDirs +} + +func (w *walker) shouldSkipDir(fi os.FileInfo) bool { + for _, ignoredDir := range w.ignoredDirs { + if os.SameFile(fi, ignoredDir) { + return true + } + } + return false +} + +func (w *walker) walk(path string, typ os.FileMode) error { + dir := filepath.Dir(path) + if typ.IsRegular() { + if dir == w.root.Path && (w.root.Type == RootGOROOT || w.root.Type == RootGOPATH) { + // Doesn't make sense to have regular files + // directly in your $GOPATH/src or $GOROOT/src. + return fastwalk.SkipFiles + } + if !strings.HasSuffix(path, ".go") { + return nil + } + + w.add(w.root, dir) + return fastwalk.SkipFiles + } + if typ == os.ModeDir { + base := filepath.Base(path) + if base == "" || base[0] == '.' || base[0] == '_' || + base == "testdata" || + (w.root.Type == RootGOROOT && w.opts.ModulesEnabled && base == "vendor") || + (!w.opts.ModulesEnabled && base == "node_modules") { + return filepath.SkipDir + } + fi, err := os.Lstat(path) + if err == nil && w.shouldSkipDir(fi) { + return filepath.SkipDir + } + return nil + } + if typ == os.ModeSymlink { + base := filepath.Base(path) + if strings.HasPrefix(base, ".#") { + // Emacs noise. + return nil + } + fi, err := os.Lstat(path) + if err != nil { + // Just ignore it. + return nil + } + if w.shouldTraverse(dir, fi) { + return fastwalk.TraverseLink + } + } + return nil +} + +// shouldTraverse reports whether the symlink fi, found in dir, +// should be followed. It makes sure symlinks were never visited +// before to avoid symlink loops. +func (w *walker) shouldTraverse(dir string, fi os.FileInfo) bool { + path := filepath.Join(dir, fi.Name()) + target, err := filepath.EvalSymlinks(path) + if err != nil { + return false + } + ts, err := os.Stat(target) + if err != nil { + fmt.Fprintln(os.Stderr, err) + return false + } + if !ts.IsDir() { + return false + } + if w.shouldSkipDir(ts) { + return false + } + // Check for symlink loops by statting each directory component + // and seeing if any are the same file as ts. + for { + parent := filepath.Dir(path) + if parent == path { + // Made it to the root without seeing a cycle. + // Use this symlink. + return true + } + parentInfo, err := os.Stat(parent) + if err != nil { + return false + } + if os.SameFile(ts, parentInfo) { + // Cycle. Don't traverse. + return false + } + path = parent + } + +} diff --git a/vendor/golang.org/x/tools/internal/module/module.go b/vendor/golang.org/x/tools/internal/module/module.go new file mode 100644 index 00000000..9a4edb9d --- /dev/null +++ b/vendor/golang.org/x/tools/internal/module/module.go @@ -0,0 +1,540 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package module defines the module.Version type +// along with support code. +package module + +// IMPORTANT NOTE +// +// This file essentially defines the set of valid import paths for the go command. +// There are many subtle considerations, including Unicode ambiguity, +// security, network, and file system representations. +// +// This file also defines the set of valid module path and version combinations, +// another topic with many subtle considerations. +// +// Changes to the semantics in this file require approval from rsc. + +import ( + "fmt" + "sort" + "strings" + "unicode" + "unicode/utf8" + + "golang.org/x/tools/internal/semver" +) + +// A Version is defined by a module path and version pair. +type Version struct { + Path string + + // Version is usually a semantic version in canonical form. + // There are two exceptions to this general rule. + // First, the top-level target of a build has no specific version + // and uses Version = "". + // Second, during MVS calculations the version "none" is used + // to represent the decision to take no version of a given module. + Version string `json:",omitempty"` +} + +// Check checks that a given module path, version pair is valid. +// In addition to the path being a valid module path +// and the version being a valid semantic version, +// the two must correspond. +// For example, the path "yaml/v2" only corresponds to +// semantic versions beginning with "v2.". +func Check(path, version string) error { + if err := CheckPath(path); err != nil { + return err + } + if !semver.IsValid(version) { + return fmt.Errorf("malformed semantic version %v", version) + } + _, pathMajor, _ := SplitPathVersion(path) + if !MatchPathMajor(version, pathMajor) { + if pathMajor == "" { + pathMajor = "v0 or v1" + } + if pathMajor[0] == '.' { // .v1 + pathMajor = pathMajor[1:] + } + return fmt.Errorf("mismatched module path %v and version %v (want %v)", path, version, pathMajor) + } + return nil +} + +// firstPathOK reports whether r can appear in the first element of a module path. +// The first element of the path must be an LDH domain name, at least for now. +// To avoid case ambiguity, the domain name must be entirely lower case. +func firstPathOK(r rune) bool { + return r == '-' || r == '.' || + '0' <= r && r <= '9' || + 'a' <= r && r <= 'z' +} + +// pathOK reports whether r can appear in an import path element. +// Paths can be ASCII letters, ASCII digits, and limited ASCII punctuation: + - . _ and ~. +// This matches what "go get" has historically recognized in import paths. +// TODO(rsc): We would like to allow Unicode letters, but that requires additional +// care in the safe encoding (see note below). +func pathOK(r rune) bool { + if r < utf8.RuneSelf { + return r == '+' || r == '-' || r == '.' || r == '_' || r == '~' || + '0' <= r && r <= '9' || + 'A' <= r && r <= 'Z' || + 'a' <= r && r <= 'z' + } + return false +} + +// fileNameOK reports whether r can appear in a file name. +// For now we allow all Unicode letters but otherwise limit to pathOK plus a few more punctuation characters. +// If we expand the set of allowed characters here, we have to +// work harder at detecting potential case-folding and normalization collisions. +// See note about "safe encoding" below. +func fileNameOK(r rune) bool { + if r < utf8.RuneSelf { + // Entire set of ASCII punctuation, from which we remove characters: + // ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ + // We disallow some shell special characters: " ' * < > ? ` | + // (Note that some of those are disallowed by the Windows file system as well.) + // We also disallow path separators / : and \ (fileNameOK is only called on path element characters). + // We allow spaces (U+0020) in file names. + const allowed = "!#$%&()+,-.=@[]^_{}~ " + if '0' <= r && r <= '9' || 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' { + return true + } + for i := 0; i < len(allowed); i++ { + if rune(allowed[i]) == r { + return true + } + } + return false + } + // It may be OK to add more ASCII punctuation here, but only carefully. + // For example Windows disallows < > \, and macOS disallows :, so we must not allow those. + return unicode.IsLetter(r) +} + +// CheckPath checks that a module path is valid. +func CheckPath(path string) error { + if err := checkPath(path, false); err != nil { + return fmt.Errorf("malformed module path %q: %v", path, err) + } + i := strings.Index(path, "/") + if i < 0 { + i = len(path) + } + if i == 0 { + return fmt.Errorf("malformed module path %q: leading slash", path) + } + if !strings.Contains(path[:i], ".") { + return fmt.Errorf("malformed module path %q: missing dot in first path element", path) + } + if path[0] == '-' { + return fmt.Errorf("malformed module path %q: leading dash in first path element", path) + } + for _, r := range path[:i] { + if !firstPathOK(r) { + return fmt.Errorf("malformed module path %q: invalid char %q in first path element", path, r) + } + } + if _, _, ok := SplitPathVersion(path); !ok { + return fmt.Errorf("malformed module path %q: invalid version", path) + } + return nil +} + +// CheckImportPath checks that an import path is valid. +func CheckImportPath(path string) error { + if err := checkPath(path, false); err != nil { + return fmt.Errorf("malformed import path %q: %v", path, err) + } + return nil +} + +// checkPath checks that a general path is valid. +// It returns an error describing why but not mentioning path. +// Because these checks apply to both module paths and import paths, +// the caller is expected to add the "malformed ___ path %q: " prefix. +// fileName indicates whether the final element of the path is a file name +// (as opposed to a directory name). +func checkPath(path string, fileName bool) error { + if !utf8.ValidString(path) { + return fmt.Errorf("invalid UTF-8") + } + if path == "" { + return fmt.Errorf("empty string") + } + if strings.Contains(path, "..") { + return fmt.Errorf("double dot") + } + if strings.Contains(path, "//") { + return fmt.Errorf("double slash") + } + if path[len(path)-1] == '/' { + return fmt.Errorf("trailing slash") + } + elemStart := 0 + for i, r := range path { + if r == '/' { + if err := checkElem(path[elemStart:i], fileName); err != nil { + return err + } + elemStart = i + 1 + } + } + if err := checkElem(path[elemStart:], fileName); err != nil { + return err + } + return nil +} + +// checkElem checks whether an individual path element is valid. +// fileName indicates whether the element is a file name (not a directory name). +func checkElem(elem string, fileName bool) error { + if elem == "" { + return fmt.Errorf("empty path element") + } + if strings.Count(elem, ".") == len(elem) { + return fmt.Errorf("invalid path element %q", elem) + } + if elem[0] == '.' && !fileName { + return fmt.Errorf("leading dot in path element") + } + if elem[len(elem)-1] == '.' { + return fmt.Errorf("trailing dot in path element") + } + charOK := pathOK + if fileName { + charOK = fileNameOK + } + for _, r := range elem { + if !charOK(r) { + return fmt.Errorf("invalid char %q", r) + } + } + + // Windows disallows a bunch of path elements, sadly. + // See https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file + short := elem + if i := strings.Index(short, "."); i >= 0 { + short = short[:i] + } + for _, bad := range badWindowsNames { + if strings.EqualFold(bad, short) { + return fmt.Errorf("disallowed path element %q", elem) + } + } + return nil +} + +// CheckFilePath checks whether a slash-separated file path is valid. +func CheckFilePath(path string) error { + if err := checkPath(path, true); err != nil { + return fmt.Errorf("malformed file path %q: %v", path, err) + } + return nil +} + +// badWindowsNames are the reserved file path elements on Windows. +// See https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file +var badWindowsNames = []string{ + "CON", + "PRN", + "AUX", + "NUL", + "COM1", + "COM2", + "COM3", + "COM4", + "COM5", + "COM6", + "COM7", + "COM8", + "COM9", + "LPT1", + "LPT2", + "LPT3", + "LPT4", + "LPT5", + "LPT6", + "LPT7", + "LPT8", + "LPT9", +} + +// SplitPathVersion returns prefix and major version such that prefix+pathMajor == path +// and version is either empty or "/vN" for N >= 2. +// As a special case, gopkg.in paths are recognized directly; +// they require ".vN" instead of "/vN", and for all N, not just N >= 2. +func SplitPathVersion(path string) (prefix, pathMajor string, ok bool) { + if strings.HasPrefix(path, "gopkg.in/") { + return splitGopkgIn(path) + } + + i := len(path) + dot := false + for i > 0 && ('0' <= path[i-1] && path[i-1] <= '9' || path[i-1] == '.') { + if path[i-1] == '.' { + dot = true + } + i-- + } + if i <= 1 || i == len(path) || path[i-1] != 'v' || path[i-2] != '/' { + return path, "", true + } + prefix, pathMajor = path[:i-2], path[i-2:] + if dot || len(pathMajor) <= 2 || pathMajor[2] == '0' || pathMajor == "/v1" { + return path, "", false + } + return prefix, pathMajor, true +} + +// splitGopkgIn is like SplitPathVersion but only for gopkg.in paths. +func splitGopkgIn(path string) (prefix, pathMajor string, ok bool) { + if !strings.HasPrefix(path, "gopkg.in/") { + return path, "", false + } + i := len(path) + if strings.HasSuffix(path, "-unstable") { + i -= len("-unstable") + } + for i > 0 && ('0' <= path[i-1] && path[i-1] <= '9') { + i-- + } + if i <= 1 || path[i-1] != 'v' || path[i-2] != '.' { + // All gopkg.in paths must end in vN for some N. + return path, "", false + } + prefix, pathMajor = path[:i-2], path[i-2:] + if len(pathMajor) <= 2 || pathMajor[2] == '0' && pathMajor != ".v0" { + return path, "", false + } + return prefix, pathMajor, true +} + +// MatchPathMajor reports whether the semantic version v +// matches the path major version pathMajor. +func MatchPathMajor(v, pathMajor string) bool { + if strings.HasPrefix(pathMajor, ".v") && strings.HasSuffix(pathMajor, "-unstable") { + pathMajor = strings.TrimSuffix(pathMajor, "-unstable") + } + if strings.HasPrefix(v, "v0.0.0-") && pathMajor == ".v1" { + // Allow old bug in pseudo-versions that generated v0.0.0- pseudoversion for gopkg .v1. + // For example, gopkg.in/yaml.v2@v2.2.1's go.mod requires gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405. + return true + } + m := semver.Major(v) + if pathMajor == "" { + return m == "v0" || m == "v1" || semver.Build(v) == "+incompatible" + } + return (pathMajor[0] == '/' || pathMajor[0] == '.') && m == pathMajor[1:] +} + +// CanonicalVersion returns the canonical form of the version string v. +// It is the same as semver.Canonical(v) except that it preserves the special build suffix "+incompatible". +func CanonicalVersion(v string) string { + cv := semver.Canonical(v) + if semver.Build(v) == "+incompatible" { + cv += "+incompatible" + } + return cv +} + +// Sort sorts the list by Path, breaking ties by comparing Versions. +func Sort(list []Version) { + sort.Slice(list, func(i, j int) bool { + mi := list[i] + mj := list[j] + if mi.Path != mj.Path { + return mi.Path < mj.Path + } + // To help go.sum formatting, allow version/file. + // Compare semver prefix by semver rules, + // file by string order. + vi := mi.Version + vj := mj.Version + var fi, fj string + if k := strings.Index(vi, "/"); k >= 0 { + vi, fi = vi[:k], vi[k:] + } + if k := strings.Index(vj, "/"); k >= 0 { + vj, fj = vj[:k], vj[k:] + } + if vi != vj { + return semver.Compare(vi, vj) < 0 + } + return fi < fj + }) +} + +// Safe encodings +// +// Module paths appear as substrings of file system paths +// (in the download cache) and of web server URLs in the proxy protocol. +// In general we cannot rely on file systems to be case-sensitive, +// nor can we rely on web servers, since they read from file systems. +// That is, we cannot rely on the file system to keep rsc.io/QUOTE +// and rsc.io/quote separate. Windows and macOS don't. +// Instead, we must never require two different casings of a file path. +// Because we want the download cache to match the proxy protocol, +// and because we want the proxy protocol to be possible to serve +// from a tree of static files (which might be stored on a case-insensitive +// file system), the proxy protocol must never require two different casings +// of a URL path either. +// +// One possibility would be to make the safe encoding be the lowercase +// hexadecimal encoding of the actual path bytes. This would avoid ever +// needing different casings of a file path, but it would be fairly illegible +// to most programmers when those paths appeared in the file system +// (including in file paths in compiler errors and stack traces) +// in web server logs, and so on. Instead, we want a safe encoding that +// leaves most paths unaltered. +// +// The safe encoding is this: +// replace every uppercase letter with an exclamation mark +// followed by the letter's lowercase equivalent. +// +// For example, +// github.com/Azure/azure-sdk-for-go -> github.com/!azure/azure-sdk-for-go. +// github.com/GoogleCloudPlatform/cloudsql-proxy -> github.com/!google!cloud!platform/cloudsql-proxy +// github.com/Sirupsen/logrus -> github.com/!sirupsen/logrus. +// +// Import paths that avoid upper-case letters are left unchanged. +// Note that because import paths are ASCII-only and avoid various +// problematic punctuation (like : < and >), the safe encoding is also ASCII-only +// and avoids the same problematic punctuation. +// +// Import paths have never allowed exclamation marks, so there is no +// need to define how to encode a literal !. +// +// Although paths are disallowed from using Unicode (see pathOK above), +// the eventual plan is to allow Unicode letters as well, to assume that +// file systems and URLs are Unicode-safe (storing UTF-8), and apply +// the !-for-uppercase convention. Note however that not all runes that +// are different but case-fold equivalent are an upper/lower pair. +// For example, U+004B ('K'), U+006B ('k'), and U+212A ('K' for Kelvin) +// are considered to case-fold to each other. When we do add Unicode +// letters, we must not assume that upper/lower are the only case-equivalent pairs. +// Perhaps the Kelvin symbol would be disallowed entirely, for example. +// Or perhaps it would encode as "!!k", or perhaps as "(212A)". +// +// Also, it would be nice to allow Unicode marks as well as letters, +// but marks include combining marks, and then we must deal not +// only with case folding but also normalization: both U+00E9 ('é') +// and U+0065 U+0301 ('e' followed by combining acute accent) +// look the same on the page and are treated by some file systems +// as the same path. If we do allow Unicode marks in paths, there +// must be some kind of normalization to allow only one canonical +// encoding of any character used in an import path. + +// EncodePath returns the safe encoding of the given module path. +// It fails if the module path is invalid. +func EncodePath(path string) (encoding string, err error) { + if err := CheckPath(path); err != nil { + return "", err + } + + return encodeString(path) +} + +// EncodeVersion returns the safe encoding of the given module version. +// Versions are allowed to be in non-semver form but must be valid file names +// and not contain exclamation marks. +func EncodeVersion(v string) (encoding string, err error) { + if err := checkElem(v, true); err != nil || strings.Contains(v, "!") { + return "", fmt.Errorf("disallowed version string %q", v) + } + return encodeString(v) +} + +func encodeString(s string) (encoding string, err error) { + haveUpper := false + for _, r := range s { + if r == '!' || r >= utf8.RuneSelf { + // This should be disallowed by CheckPath, but diagnose anyway. + // The correctness of the encoding loop below depends on it. + return "", fmt.Errorf("internal error: inconsistency in EncodePath") + } + if 'A' <= r && r <= 'Z' { + haveUpper = true + } + } + + if !haveUpper { + return s, nil + } + + var buf []byte + for _, r := range s { + if 'A' <= r && r <= 'Z' { + buf = append(buf, '!', byte(r+'a'-'A')) + } else { + buf = append(buf, byte(r)) + } + } + return string(buf), nil +} + +// DecodePath returns the module path of the given safe encoding. +// It fails if the encoding is invalid or encodes an invalid path. +func DecodePath(encoding string) (path string, err error) { + path, ok := decodeString(encoding) + if !ok { + return "", fmt.Errorf("invalid module path encoding %q", encoding) + } + if err := CheckPath(path); err != nil { + return "", fmt.Errorf("invalid module path encoding %q: %v", encoding, err) + } + return path, nil +} + +// DecodeVersion returns the version string for the given safe encoding. +// It fails if the encoding is invalid or encodes an invalid version. +// Versions are allowed to be in non-semver form but must be valid file names +// and not contain exclamation marks. +func DecodeVersion(encoding string) (v string, err error) { + v, ok := decodeString(encoding) + if !ok { + return "", fmt.Errorf("invalid version encoding %q", encoding) + } + if err := checkElem(v, true); err != nil { + return "", fmt.Errorf("disallowed version string %q", v) + } + return v, nil +} + +func decodeString(encoding string) (string, bool) { + var buf []byte + + bang := false + for _, r := range encoding { + if r >= utf8.RuneSelf { + return "", false + } + if bang { + bang = false + if r < 'a' || 'z' < r { + return "", false + } + buf = append(buf, byte(r+'A'-'a')) + continue + } + if r == '!' { + bang = true + continue + } + if 'A' <= r && r <= 'Z' { + return "", false + } + buf = append(buf, byte(r)) + } + if bang { + return "", false + } + return string(buf), true +} diff --git a/vendor/golang.org/x/tools/internal/semver/semver.go b/vendor/golang.org/x/tools/internal/semver/semver.go new file mode 100644 index 00000000..4af7118e --- /dev/null +++ b/vendor/golang.org/x/tools/internal/semver/semver.go @@ -0,0 +1,388 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package semver implements comparison of semantic version strings. +// In this package, semantic version strings must begin with a leading "v", +// as in "v1.0.0". +// +// The general form of a semantic version string accepted by this package is +// +// vMAJOR[.MINOR[.PATCH[-PRERELEASE][+BUILD]]] +// +// where square brackets indicate optional parts of the syntax; +// MAJOR, MINOR, and PATCH are decimal integers without extra leading zeros; +// PRERELEASE and BUILD are each a series of non-empty dot-separated identifiers +// using only alphanumeric characters and hyphens; and +// all-numeric PRERELEASE identifiers must not have leading zeros. +// +// This package follows Semantic Versioning 2.0.0 (see semver.org) +// with two exceptions. First, it requires the "v" prefix. Second, it recognizes +// vMAJOR and vMAJOR.MINOR (with no prerelease or build suffixes) +// as shorthands for vMAJOR.0.0 and vMAJOR.MINOR.0. +package semver + +// parsed returns the parsed form of a semantic version string. +type parsed struct { + major string + minor string + patch string + short string + prerelease string + build string + err string +} + +// IsValid reports whether v is a valid semantic version string. +func IsValid(v string) bool { + _, ok := parse(v) + return ok +} + +// Canonical returns the canonical formatting of the semantic version v. +// It fills in any missing .MINOR or .PATCH and discards build metadata. +// Two semantic versions compare equal only if their canonical formattings +// are identical strings. +// The canonical invalid semantic version is the empty string. +func Canonical(v string) string { + p, ok := parse(v) + if !ok { + return "" + } + if p.build != "" { + return v[:len(v)-len(p.build)] + } + if p.short != "" { + return v + p.short + } + return v +} + +// Major returns the major version prefix of the semantic version v. +// For example, Major("v2.1.0") == "v2". +// If v is an invalid semantic version string, Major returns the empty string. +func Major(v string) string { + pv, ok := parse(v) + if !ok { + return "" + } + return v[:1+len(pv.major)] +} + +// MajorMinor returns the major.minor version prefix of the semantic version v. +// For example, MajorMinor("v2.1.0") == "v2.1". +// If v is an invalid semantic version string, MajorMinor returns the empty string. +func MajorMinor(v string) string { + pv, ok := parse(v) + if !ok { + return "" + } + i := 1 + len(pv.major) + if j := i + 1 + len(pv.minor); j <= len(v) && v[i] == '.' && v[i+1:j] == pv.minor { + return v[:j] + } + return v[:i] + "." + pv.minor +} + +// Prerelease returns the prerelease suffix of the semantic version v. +// For example, Prerelease("v2.1.0-pre+meta") == "-pre". +// If v is an invalid semantic version string, Prerelease returns the empty string. +func Prerelease(v string) string { + pv, ok := parse(v) + if !ok { + return "" + } + return pv.prerelease +} + +// Build returns the build suffix of the semantic version v. +// For example, Build("v2.1.0+meta") == "+meta". +// If v is an invalid semantic version string, Build returns the empty string. +func Build(v string) string { + pv, ok := parse(v) + if !ok { + return "" + } + return pv.build +} + +// Compare returns an integer comparing two versions according to +// according to semantic version precedence. +// The result will be 0 if v == w, -1 if v < w, or +1 if v > w. +// +// An invalid semantic version string is considered less than a valid one. +// All invalid semantic version strings compare equal to each other. +func Compare(v, w string) int { + pv, ok1 := parse(v) + pw, ok2 := parse(w) + if !ok1 && !ok2 { + return 0 + } + if !ok1 { + return -1 + } + if !ok2 { + return +1 + } + if c := compareInt(pv.major, pw.major); c != 0 { + return c + } + if c := compareInt(pv.minor, pw.minor); c != 0 { + return c + } + if c := compareInt(pv.patch, pw.patch); c != 0 { + return c + } + return comparePrerelease(pv.prerelease, pw.prerelease) +} + +// Max canonicalizes its arguments and then returns the version string +// that compares greater. +func Max(v, w string) string { + v = Canonical(v) + w = Canonical(w) + if Compare(v, w) > 0 { + return v + } + return w +} + +func parse(v string) (p parsed, ok bool) { + if v == "" || v[0] != 'v' { + p.err = "missing v prefix" + return + } + p.major, v, ok = parseInt(v[1:]) + if !ok { + p.err = "bad major version" + return + } + if v == "" { + p.minor = "0" + p.patch = "0" + p.short = ".0.0" + return + } + if v[0] != '.' { + p.err = "bad minor prefix" + ok = false + return + } + p.minor, v, ok = parseInt(v[1:]) + if !ok { + p.err = "bad minor version" + return + } + if v == "" { + p.patch = "0" + p.short = ".0" + return + } + if v[0] != '.' { + p.err = "bad patch prefix" + ok = false + return + } + p.patch, v, ok = parseInt(v[1:]) + if !ok { + p.err = "bad patch version" + return + } + if len(v) > 0 && v[0] == '-' { + p.prerelease, v, ok = parsePrerelease(v) + if !ok { + p.err = "bad prerelease" + return + } + } + if len(v) > 0 && v[0] == '+' { + p.build, v, ok = parseBuild(v) + if !ok { + p.err = "bad build" + return + } + } + if v != "" { + p.err = "junk on end" + ok = false + return + } + ok = true + return +} + +func parseInt(v string) (t, rest string, ok bool) { + if v == "" { + return + } + if v[0] < '0' || '9' < v[0] { + return + } + i := 1 + for i < len(v) && '0' <= v[i] && v[i] <= '9' { + i++ + } + if v[0] == '0' && i != 1 { + return + } + return v[:i], v[i:], true +} + +func parsePrerelease(v string) (t, rest string, ok bool) { + // "A pre-release version MAY be denoted by appending a hyphen and + // a series of dot separated identifiers immediately following the patch version. + // Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. + // Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading zeroes." + if v == "" || v[0] != '-' { + return + } + i := 1 + start := 1 + for i < len(v) && v[i] != '+' { + if !isIdentChar(v[i]) && v[i] != '.' { + return + } + if v[i] == '.' { + if start == i || isBadNum(v[start:i]) { + return + } + start = i + 1 + } + i++ + } + if start == i || isBadNum(v[start:i]) { + return + } + return v[:i], v[i:], true +} + +func parseBuild(v string) (t, rest string, ok bool) { + if v == "" || v[0] != '+' { + return + } + i := 1 + start := 1 + for i < len(v) { + if !isIdentChar(v[i]) { + return + } + if v[i] == '.' { + if start == i { + return + } + start = i + 1 + } + i++ + } + if start == i { + return + } + return v[:i], v[i:], true +} + +func isIdentChar(c byte) bool { + return 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9' || c == '-' +} + +func isBadNum(v string) bool { + i := 0 + for i < len(v) && '0' <= v[i] && v[i] <= '9' { + i++ + } + return i == len(v) && i > 1 && v[0] == '0' +} + +func isNum(v string) bool { + i := 0 + for i < len(v) && '0' <= v[i] && v[i] <= '9' { + i++ + } + return i == len(v) +} + +func compareInt(x, y string) int { + if x == y { + return 0 + } + if len(x) < len(y) { + return -1 + } + if len(x) > len(y) { + return +1 + } + if x < y { + return -1 + } else { + return +1 + } +} + +func comparePrerelease(x, y string) int { + // "When major, minor, and patch are equal, a pre-release version has + // lower precedence than a normal version. + // Example: 1.0.0-alpha < 1.0.0. + // Precedence for two pre-release versions with the same major, minor, + // and patch version MUST be determined by comparing each dot separated + // identifier from left to right until a difference is found as follows: + // identifiers consisting of only digits are compared numerically and + // identifiers with letters or hyphens are compared lexically in ASCII + // sort order. Numeric identifiers always have lower precedence than + // non-numeric identifiers. A larger set of pre-release fields has a + // higher precedence than a smaller set, if all of the preceding + // identifiers are equal. + // Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < + // 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0." + if x == y { + return 0 + } + if x == "" { + return +1 + } + if y == "" { + return -1 + } + for x != "" && y != "" { + x = x[1:] // skip - or . + y = y[1:] // skip - or . + var dx, dy string + dx, x = nextIdent(x) + dy, y = nextIdent(y) + if dx != dy { + ix := isNum(dx) + iy := isNum(dy) + if ix != iy { + if ix { + return -1 + } else { + return +1 + } + } + if ix { + if len(dx) < len(dy) { + return -1 + } + if len(dx) > len(dy) { + return +1 + } + } + if dx < dy { + return -1 + } else { + return +1 + } + } + } + if x == "" { + return -1 + } else { + return +1 + } +} + +func nextIdent(x string) (dx, rest string) { + i := 0 + for i < len(x) && x[i] != '.' { + i++ + } + return x[:i], x[i:] +}