diff options
93 files changed, 14210 insertions, 12944 deletions
@@ -8,20 +8,20 @@ require ( github.com/Rhymen/go-whatsapp v0.1.2-0.20211102134409-31a2e740845c github.com/SevereCloud/vksdk/v2 v2.13.1 github.com/bwmarrin/discordgo v0.24.0 - github.com/d5/tengo/v2 v2.10.0 + github.com/d5/tengo/v2 v2.10.1 github.com/davecgh/go-spew v1.1.1 github.com/fsnotify/fsnotify v1.5.1 github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 - github.com/gomarkdown/markdown v0.0.0-20211207152620-5d6539fd8bfc + github.com/gomarkdown/markdown v0.0.0-20220310201231-552c6011c0b8 github.com/google/gops v0.3.22 github.com/gorilla/schema v1.2.0 - github.com/gorilla/websocket v1.4.2 - github.com/harmony-development/shibshib v0.0.0-20211127182844-512296f7c548 + github.com/gorilla/websocket v1.5.0 + github.com/harmony-development/shibshib v0.0.0-20220101224523-c98059d09cfa github.com/hashicorp/golang-lru v0.5.4 github.com/jpillora/backoff v1.0.0 github.com/keybase/go-keybase-chat-bot v0.0.0-20211201215354-ee4b23828b55 - github.com/kyokomi/emoji/v2 v2.2.8 - github.com/labstack/echo/v4 v4.6.3 + github.com/kyokomi/emoji/v2 v2.2.9 + github.com/labstack/echo/v4 v4.7.0 github.com/lrstanley/girc v0.0.0-20211023233735-147f0ff77566 github.com/matrix-org/gomatrix v0.0.0-20210324163249-be2af5ef2e16 github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20211016222428-79310a412696 @@ -30,7 +30,7 @@ require ( github.com/matterbridge/logrus-prefixed-formatter v0.5.3-0.20200523233437-d971309a77ba github.com/matterbridge/matterclient v0.0.0-20211107234719-faca3cd42315 github.com/mattermost/mattermost-server/v5 v5.39.3 - github.com/mattermost/mattermost-server/v6 v6.3.0 + github.com/mattermost/mattermost-server/v6 v6.4.2 github.com/mattn/godown v0.0.1 github.com/missdeer/golib v1.0.4 github.com/nelsonken/gomf v0.0.0-20180504123937-a9dd2f9deae9 @@ -40,15 +40,15 @@ require ( github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca github.com/shazow/ssh-chat v1.10.1 github.com/sirupsen/logrus v1.8.1 - github.com/slack-go/slack v0.10.0 + github.com/slack-go/slack v0.10.2 github.com/spf13/viper v1.10.1 github.com/stretchr/testify v1.7.0 github.com/vincent-petithory/dataurl v1.0.0 github.com/writeas/go-strip-markdown v2.0.1+incompatible github.com/yaegashi/msgraph.go v0.1.4 github.com/zfjagann/golang-ring v0.0.0-20210116075443-7c86fdb43134 - golang.org/x/image v0.0.0-20211028202545-6944b10bf410 - golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 + golang.org/x/image v0.0.0-20220302094943-723b81ca9867 + golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a gomod.garykim.dev/nc-talk v0.3.0 gopkg.in/olahol/melody.v1 v1.0.0-20170518105555-d52139073376 layeh.com/gumble v0.0.0-20200818122324-146f9205029b @@ -123,9 +123,9 @@ require ( go.uber.org/multierr v1.7.0 // indirect go.uber.org/zap v1.17.0 // indirect golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 // indirect - golang.org/x/net v0.0.0-20211123203042-d83791d6bcd9 // indirect + golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect - golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect golang.org/x/text v0.3.7 // indirect golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 // indirect google.golang.org/appengine v1.6.7 // indirect @@ -54,7 +54,6 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.16.1/go.mod h1:LaNorbty3ehnU3rEjXSNV/NRgQA0O8Y+uh6bPe5UOk4= code.sajari.com/docconv v1.1.1-0.20210427001343-7b3472bc323a/go.mod h1:KPNt2zuWplps1W0TpOb6ltHj4Xu+j6h7a+YkqGHrxQE= code.sajari.com/docconv v1.2.0/go.mod h1:r8yfCP6OKbZ9Xkd87aBa4nfpk6ud/PoyLwex3n6cXSc= contrib.go.opencensus.io/exporter/ocagent v0.4.9/go.mod h1:ueLzZcP7LPhPulEBukGn4aLh7Mx9YJwpVJ9nL2FYltw= @@ -72,7 +71,6 @@ github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOv github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v26.5.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v55.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-storage-blob-go v0.14.0/go.mod h1:SMqIBi+SuiQH32bvyjngEewEeXoPfKMgWlBDaYf6fck= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= @@ -80,7 +78,6 @@ github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSW github.com/Azure/go-autorest v11.5.2+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= -github.com/Azure/go-autorest/autorest v0.11.19/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= @@ -88,7 +85,6 @@ github.com/Azure/go-autorest/autorest/adal v0.9.14/go.mod h1:W/MM4U6nLxnIskrw4Uw github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= @@ -165,7 +161,6 @@ github.com/advancedlogic/GoOse v0.0.0-20200830213114-1225d531e0ad/go.mod h1:f3HC github.com/advancedlogic/GoOse v0.0.0-20210820140952-9d5822d4a625/go.mod h1:f3HCSN1fBWjcpGtXyM119MJgeQl838v6so/PQOqvE1w= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= -github.com/alecthomas/repr v0.0.0-20210801044451-80ca428c5142/go.mod h1:2kn6fqh/zIyPLmm3ugklbEi5hg5wS435eygvNfaDQL8= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -175,7 +170,6 @@ github.com/alexcesaro/log v0.0.0-20150915221235-61e686294e58/go.mod h1:YNfsMyWSs github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= -github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/andybalholm/cascadia v1.0.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= @@ -212,7 +206,6 @@ github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.19.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.38.67/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= -github.com/aws/aws-sdk-go v1.40.42/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= github.com/aws/aws-sdk-go v1.42.11/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= github.com/aws/aws-sdk-go-v2 v1.8.0/go.mod h1:xEFuWz+3TYdlPRuo+CqATbeDWIWyaT5uAPwPaWtgse0= github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= @@ -452,8 +445,9 @@ github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1S github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= -github.com/d5/tengo/v2 v2.10.0 h1:gR3VwfJDBlffV8WzfSNNJ7WJtWduwbTKlAu14cA2fRs= -github.com/d5/tengo/v2 v2.10.0/go.mod h1:XRGjEs5I9jYIKTxly6HCF8oiiilk5E/RYXOZ5b0DZC8= +github.com/d5/tengo/v2 v2.10.1 h1:Z7vmTAQfdoExNEB9kxgqxvoBBW9bf+8uYMiDyriX5HM= +github.com/d5/tengo/v2 v2.10.1/go.mod h1:XRGjEs5I9jYIKTxly6HCF8oiiilk5E/RYXOZ5b0DZC8= +github.com/dave/jennifer v1.4.1/go.mod h1:7jEdnm+qBcxl8PC0zyp7vxcpSRnzXSt9r39tpTVGlwA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -471,11 +465,9 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8 github.com/dhui/dktest v0.3.3/go.mod h1:EML9sP4sqJELHn4jV7B0TY8oF6077nk83/tz7M56jcQ= github.com/dhui/dktest v0.3.7/go.mod h1:nYMOkafiA07WchSwKnKFUSbGMb2hMm5DrCGiXYG6gwM= github.com/die-net/lrucache v0.0.0-20181227122439-19a39ef22a11/go.mod h1:ew0MSjCVDdtGMjF3kzLK9hwdgF5mOE8SbYVF3Rc7mkU= -github.com/die-net/lrucache v0.0.0-20190707192454-883874fe3947/go.mod h1:KsMcjmY1UCGl7ozPbdVPDOvLaFeXnptSvtNRczhxNto= github.com/disintegration/imaging v1.6.0/go.mod h1:xuIt+sRxDFrHS0drzXUlCJthkJ8k7lkkUojDSR247MQ= github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= -github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= @@ -525,15 +517,13 @@ github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htX github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= -github.com/fasthttp/websocket v1.4.3-rc.9/go.mod h1:eXL2zqDbexYJxaCw8/PQlm7VcMK6uoGvwbYbTdt4dFo= -github.com/fasthttp/websocket v1.4.3-rc.10/go.mod h1:xU7SHrziVFuFx3IO24nLKcu4tm3QykCFXhwtwRk9Xd0= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/set v0.2.1/go.mod h1:+RKtMCH+favT2+3YecHGxcc0b4KyVWA1QWWJUs4E0CI= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/fcjr/aia-transport-go v1.2.2/go.mod h1:onSqSq3tGkM14WusDx7q9FTheS9R1KBtD+QBWI6zG/w= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= @@ -590,6 +580,7 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/go-morph/morph v0.2.3-0.20220126093237-74bffc135498/go.mod h1:XQh5WcM351wOV3z3zEWRM8RaJ65E2p4P7WWbmFAi8x4= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6-0.20210915003542-8b1f7f90f6b1/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= @@ -652,8 +643,6 @@ github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblf github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofiber/fiber/v2 v2.20.1/go.mod h1:/LdZHMUXZvTTo7gU4+b1hclqCAdoQphNQ9bi9gutPyI= -github.com/gofiber/websocket/v2 v2.0.12/go.mod h1:lQRy0u5ACJfiez/e/bhGeYvM0/M940Y3NFw14U3/otI= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= @@ -713,8 +702,8 @@ github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW github.com/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gomarkdown/markdown v0.0.0-20211207152620-5d6539fd8bfc h1:mmMAHzJGtMsCaDyRgPNMO6cbSzeKCZxHTA1Sn/wirko= -github.com/gomarkdown/markdown v0.0.0-20211207152620-5d6539fd8bfc/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= +github.com/gomarkdown/markdown v0.0.0-20220310201231-552c6011c0b8 h1:YVvt637ygnOO9qjLBVmPOvrUmCz/i8YECSu/8UlOQW0= +github.com/gomarkdown/markdown v0.0.0-20220310201231-552c6011c0b8/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -796,8 +785,9 @@ github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlI github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/gregjones/httpcache v0.0.0-20190212212710-3befbb6ad0cc/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= @@ -813,9 +803,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFb github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c/go.mod h1:ObS/W+h8RYb1Y7fYivughjxojTmIu5iAIjSrSLCLeqE= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b/go.mod h1:VzxiSdG6j1pi7rwGm/xYI5RbtpBgM8sARDXlvEvxlu0= -github.com/harmony-development/hrpc v0.0.0-20211020182021-788fc204a0fe/go.mod h1:B+5b0+n0UpMtqAGtJ2oYlgsArI9LbSJ0/HoySJNzDFY= -github.com/harmony-development/shibshib v0.0.0-20211127182844-512296f7c548 h1:jAnKjA+wco4ONGpCtINd0t+sC+ffF+yYScGqgJ2OG4o= -github.com/harmony-development/shibshib v0.0.0-20211127182844-512296f7c548/go.mod h1:e3LPbk9jFYwu72EVyGPJC7CKBBSmxb4ZdyJalaaskdc= +github.com/harmony-development/shibshib v0.0.0-20220101224523-c98059d09cfa h1:0EefSRfsNrdEwmoGVz4+cMG8++5M2XhvJ1tTRmmrJu8= +github.com/harmony-development/shibshib v0.0.0-20220101224523-c98059d09cfa/go.mod h1:+KEOMb29OC2kRa5BajwNM2NEjHTbQA/Z3gKYARLHREI= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= @@ -1040,11 +1029,11 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/ktrysmt/go-bitbucket v0.6.4/go.mod h1:9u0v3hsd2rqCHRIpbir1oP7F58uo5dq19sBYvuMoyQ4= -github.com/kyokomi/emoji/v2 v2.2.8 h1:jcofPxjHWEkJtkIbcLHvZhxKgCPl6C7MyjTrD4KDqUE= -github.com/kyokomi/emoji/v2 v2.2.8/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= +github.com/kyokomi/emoji/v2 v2.2.9 h1:UWYkjplPZ4rMPvLxc+/e12/xTqoRcn55oUySkpZ554g= +github.com/kyokomi/emoji/v2 v2.2.9/go.mod h1:JUcn42DTdsXJo1SWanHh4HKDEyPaR5CqkmoirZZP9qE= github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g= -github.com/labstack/echo/v4 v4.6.3 h1:VhPuIZYxsbPmo4m9KAkMU/el2442eB7EBFFhNTTT9ac= -github.com/labstack/echo/v4 v4.6.3/go.mod h1:Hk5OiHj0kDqmFq7aHe7eDqI7CUhuCrfpupQtLGGLm7A= +github.com/labstack/echo/v4 v4.7.0 h1:8wHgZhoE9OT1NSLw6sfrX7ZGpWMtO5Zlfr68+BIo180= +github.com/labstack/echo/v4 v4.7.0/go.mod h1:xkCDAdFCIf8jsFQ5NnbK7oqaF/yU1A1X20Ltm0OvSks= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/labstack/gommon v0.3.1 h1:OomWaJXm7xR6L1HmEtGyQf26TEn7V6X88mktX9kee9o= github.com/labstack/gommon v0.3.1/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= @@ -1108,8 +1097,8 @@ github.com/mattermost/logr/v2 v2.0.15/go.mod h1:mpPp935r5dIkFDo2y9Q87cQWhFR/4xXp github.com/mattermost/mattermost-server/v5 v5.39.3 h1:A5z/NlR4Xcwxx5UnlaNgUGP5hgj4KOV/CwpFg3OtlvQ= github.com/mattermost/mattermost-server/v5 v5.39.3/go.mod h1:MDmVSmsSsqwNkuZ7rQ0osuXVCzrR1IUqGR7I0QU91sY= github.com/mattermost/mattermost-server/v6 v6.0.0/go.mod h1:+S8CsNEPv1FOl1usaPBQ6Gu9+Sm1Cc9YdU/Qh1YMGVI= -github.com/mattermost/mattermost-server/v6 v6.3.0 h1:wxUBvu6whm2FAMm5n2J4xbchtrSndRW3g3VQnGt8KPw= -github.com/mattermost/mattermost-server/v6 v6.3.0/go.mod h1:L9gIoi9ESBh/NefsaZCfOVBMnbhx+v3kXhInGt3DQmA= +github.com/mattermost/mattermost-server/v6 v6.4.2 h1:UyrYoBYrV7dB7JWSEOPXKZaTyYZE2PRDysqx/54ayng= +github.com/mattermost/mattermost-server/v6 v6.4.2/go.mod h1:5dOl/bx4N9iTytZ4p44xfGiOiZelbdap42FbEjmN+FU= github.com/mattermost/rsc v0.0.0-20160330161541-bbaefb05eaa0/go.mod h1:nV5bfVpT//+B1RPD2JvRnxbkLmJEYXmRaaVl15fsXjs= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= @@ -1208,7 +1197,6 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/monaco-io/request v1.0.5 h1:QAJb5m1pCPZUGv3zzTZn7GlQI3q+uJWi7fH9QxDGbm4= github.com/monaco-io/request v1.0.5/go.mod h1:EmggwHktBsbJmCgwZXqy7o0H1NNsAstQBWZrFVd3xtQ= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= @@ -1449,7 +1437,6 @@ github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca h1:NugYot0LIVPxT github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU= github.com/satori/go.uuid v0.0.0-20180103174451-36e9d2ebbde5/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= -github.com/savsgio/gotils v0.0.0-20210921075833-21a6215cb0e4/go.mod h1:oejLrk1Y/5zOF+c/aHtXqn3TFlzzbAgPWg8zBiAHDas= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/scylladb/termtables v0.0.0-20191203121021-c4c0b6d42ff4/go.mod h1:C1a7PQSMz9NShzorzCiG2fk9+xuCgLkPeCvMHYR2OWg= @@ -1506,8 +1493,8 @@ github.com/sizeofint/webpanimation v0.0.0-20210809145948-1d2b32119882 h1:A7o8tOE github.com/sizeofint/webpanimation v0.0.0-20210809145948-1d2b32119882/go.mod h1:5IwJoz9Pw7JsrCN4/skkxUtSWT7myuUPLhCgv6Q5vvQ= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0= github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M= -github.com/slack-go/slack v0.10.0 h1:L16Eqg3QZzRKGXIVsFSZdJdygjOphb2FjRUwH6VrFu8= -github.com/slack-go/slack v0.10.0/go.mod h1:wWL//kk0ho+FcQXcBTmEafUI5dz4qz5f4mMk8oIkioQ= +github.com/slack-go/slack v0.10.2 h1:KMN/h2sgUninHXvQI8PrR/PHBUuWp2NPvz2Kr66tki4= +github.com/slack-go/slack v0.10.2/go.mod h1:5FLdBRv7VW/d9EBxx/eEktOptWygbA9K2QK/KW7ds1s= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v1.0.0 h1:UVQPSSmc3qtTi+zPPkCXvZX9VvW/xT/NsRvKfwY81a8= github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= @@ -1628,14 +1615,10 @@ github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKn github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= -github.com/valyala/fasthttp v1.29.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= -github.com/valyala/fasthttp v1.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= -github.com/valyala/fasthttp v1.31.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/vincent-petithory/dataurl v1.0.0 h1:cXw+kPto8NLuJtlMsI152irrVw9fRDX8AbShPRpg2CI= @@ -1792,7 +1775,6 @@ golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -1826,8 +1808,9 @@ golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+o golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20210622092929-e6eecd499c2c/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= -golang.org/x/image v0.0.0-20211028202545-6944b10bf410 h1:hTftEOvwiOq2+O8k2D5/Q7COC7k5Qcrgc2TFURJYnvQ= golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867 h1:TcHcE0vrmgzNH1v3ppjcMGbhG5+9fMuvOmUYwNEF4q4= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1925,18 +1908,18 @@ golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210913180222-943fd674d43e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211013171255-e13a2654a71e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211123203042-d83791d6bcd9 h1:0qxwC5n+ttVOINCBeRHO0nq9X7uy8SDsPoi5OaCdIEI= golang.org/x/net v0.0.0-20211123203042-d83791d6bcd9/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1959,8 +1942,9 @@ golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a h1:qfl7ob3DIEs3Ml9oLuPwY2N04gymzAW04WsUQHIClgM= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2077,6 +2061,7 @@ golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210326220804-49726bf1d181/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -2106,8 +2091,9 @@ golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2348,7 +2334,6 @@ google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKr google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210825212027-de86158e7fda/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= @@ -2555,4 +2540,3 @@ sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2 sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= willnorris.com/go/gifresize v1.0.0/go.mod h1:eBM8gogBGCcaH603vxSpnfjwXIpq6nmnj/jauBDKtAk= willnorris.com/go/imageproxy v0.10.0/go.mod h1:2tWdKRneln3E9X/zwH1RINpQAQWPeUiNynZ7UQ9OROk= -willnorris.com/go/imageproxy v0.11.2/go.mod h1:pyA05z6P0nLWX6QmeqMUyK6v9HnWE/bqnPnrzUST0KU= diff --git a/vendor/github.com/d5/tengo/v2/README.md b/vendor/github.com/d5/tengo/v2/README.md index c19c5699..aa9caa73 100644 --- a/vendor/github.com/d5/tengo/v2/README.md +++ b/vendor/github.com/d5/tengo/v2/README.md @@ -147,7 +147,4 @@ fmt.Println(res) // "success" - Syntax Highlighters: [VSCode](https://github.com/lissein/vscode-tengo), [Atom](https://github.com/d5/tengo-atom) - **Why the name Tengo?** It's from [1Q84](https://en.wikipedia.org/wiki/1Q84). -## - -:hearts: Like writing Go code? Come work at Skool. [We're hiring!](https://jobs.lever.co/skool) diff --git a/vendor/github.com/d5/tengo/v2/objects.go b/vendor/github.com/d5/tengo/v2/objects.go index 30913db5..25745586 100644 --- a/vendor/github.com/d5/tengo/v2/objects.go +++ b/vendor/github.com/d5/tengo/v2/objects.go @@ -1577,9 +1577,8 @@ func (o *Undefined) Value() Object { // UserFunction represents a user function. type UserFunction struct { ObjectImpl - Name string - Value CallableFunc - EncodingID string + Name string + Value CallableFunc } // TypeName returns the name of the type. @@ -1593,7 +1592,7 @@ func (o *UserFunction) String() string { // Copy returns a copy of the type. func (o *UserFunction) Copy() Object { - return &UserFunction{Value: o.Value} + return &UserFunction{Value: o.Value, Name: o.Name} } // Equals returns true if the value of the type is equal to the value of diff --git a/vendor/github.com/d5/tengo/v2/stdlib/source_modules.go b/vendor/github.com/d5/tengo/v2/stdlib/source_modules.go index ca69d7d1..50e09287 100644 --- a/vendor/github.com/d5/tengo/v2/stdlib/source_modules.go +++ b/vendor/github.com/d5/tengo/v2/stdlib/source_modules.go @@ -4,5 +4,5 @@ package stdlib // SourceModules are source type standard library modules. var SourceModules = map[string]string{ - "enum": "is_enumerable := func(x) {\n return is_array(x) || is_map(x) || is_immutable_array(x) || is_immutable_map(x)\n}\n\nis_array_like := func(x) {\n return is_array(x) || is_immutable_array(x)\n}\n\nexport {\n // all returns true if the given function `fn` evaluates to a truthy value on\n // all of the items in `x`. It returns undefined if `x` is not enumerable.\n all: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n if !fn(k, v) { return false }\n }\n\n return true\n },\n // any returns true if the given function `fn` evaluates to a truthy value on\n // any of the items in `x`. It returns undefined if `x` is not enumerable.\n any: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n if fn(k, v) { return true }\n }\n\n return false\n },\n // chunk returns an array of elements split into groups the length of size.\n // If `x` can't be split evenly, the final chunk will be the remaining elements.\n // It returns undefined if `x` is not array.\n chunk: func(x, size) {\n if !is_array_like(x) || !size { return undefined }\n\n numElements := len(x)\n if !numElements { return [] }\n\n res := []\n idx := 0\n for idx < numElements {\n res = append(res, x[idx:idx+size])\n idx += size\n }\n\n return res\n },\n // at returns an element at the given index (if `x` is array) or\n // key (if `x` is map). It returns undefined if `x` is not enumerable.\n at: func(x, key) {\n if !is_enumerable(x) { return undefined }\n\n if is_array_like(x) {\n if !is_int(key) { return undefined }\n } else {\n if !is_string(key) { return undefined }\n }\n\n return x[key]\n },\n // each iterates over elements of `x` and invokes `fn` for each element. `fn` is\n // invoked with two arguments: `key` and `value`. `key` is an int index\n // if `x` is array. `key` is a string key if `x` is map. It does not iterate\n // and returns undefined if `x` is not enumerable.\n each: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n fn(k, v)\n }\n },\n // filter iterates over elements of `x`, returning an array of all elements `fn`\n // returns truthy for. `fn` is invoked with two arguments: `key` and `value`.\n // `key` is an int index if `x` is array. `key` is a string key if `x` is map.\n // It returns undefined if `x` is not enumerable.\n filter: func(x, fn) {\n if !is_array_like(x) { return undefined }\n\n dst := []\n for k, v in x {\n if fn(k, v) { dst = append(dst, v) }\n }\n\n return dst\n },\n // find iterates over elements of `x`, returning value of the first element `fn`\n // returns truthy for. `fn` is invoked with two arguments: `key` and `value`.\n // `key` is an int index if `x` is array. `key` is a string key if `x` is map.\n // It returns undefined if `x` is not enumerable.\n find: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n if fn(k, v) { return v }\n }\n },\n // find_key iterates over elements of `x`, returning key or index of the first\n // element `fn` returns truthy for. `fn` is invoked with two arguments: `key`\n // and `value`. `key` is an int index if `x` is array. `key` is a string key if\n // `x` is map. It returns undefined if `x` is not enumerable.\n find_key: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n if fn(k, v) { return k }\n }\n },\n // map creates an array of values by running each element in `x` through `fn`.\n // `fn` is invoked with two arguments: `key` and `value`. `key` is an int index\n // if `x` is array. `key` is a string key if `x` is map. It returns undefined\n // if `x` is not enumerable.\n map: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n dst := []\n for k, v in x {\n dst = append(dst, fn(k, v))\n }\n\n return dst\n },\n // key returns the first argument.\n key: func(k, _) { return k },\n // value returns the second argument.\n value: func(_, v) { return v }\n}\n", + "enum": "is_enumerable := func(x) {\n return is_array(x) || is_map(x) || is_immutable_array(x) || is_immutable_map(x)\n}\n\nis_array_like := func(x) {\n return is_array(x) || is_immutable_array(x)\n}\n\nexport {\n // all returns true if the given function `fn` evaluates to a truthy value on\n // all of the items in `x`. It returns undefined if `x` is not enumerable.\n all: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n if !fn(k, v) { return false }\n }\n\n return true\n },\n // any returns true if the given function `fn` evaluates to a truthy value on\n // any of the items in `x`. It returns undefined if `x` is not enumerable.\n any: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n if fn(k, v) { return true }\n }\n\n return false\n },\n // chunk returns an array of elements split into groups the length of size.\n // If `x` can't be split evenly, the final chunk will be the remaining elements.\n // It returns undefined if `x` is not array.\n chunk: func(x, size) {\n if !is_array_like(x) || !size { return undefined }\n\n numElements := len(x)\n if !numElements { return [] }\n\n res := []\n idx := 0\n for idx < numElements {\n res = append(res, x[idx:idx+size])\n idx += size\n }\n\n return res\n },\n // at returns an element at the given index (if `x` is array) or\n // key (if `x` is map). It returns undefined if `x` is not enumerable.\n at: func(x, key) {\n if !is_enumerable(x) { return undefined }\n\n if is_array_like(x) {\n if !is_int(key) { return undefined }\n } else {\n if !is_string(key) { return undefined }\n }\n\n return x[key]\n },\n // each iterates over elements of `x` and invokes `fn` for each element. `fn` is\n // invoked with two arguments: `key` and `value`. `key` is an int index\n // if `x` is array. `key` is a string key if `x` is map. It does not iterate\n // and returns undefined if `x` is not enumerable.\n each: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n fn(k, v)\n }\n },\n // filter iterates over elements of `x`, returning an array of all elements `fn`\n // returns truthy for. `fn` is invoked with two arguments: `key` and `value`.\n // `key` is an int index if `x` is array. It returns undefined if `x` is not array.\n filter: func(x, fn) {\n if !is_array_like(x) { return undefined }\n\n dst := []\n for k, v in x {\n if fn(k, v) { dst = append(dst, v) }\n }\n\n return dst\n },\n // find iterates over elements of `x`, returning value of the first element `fn`\n // returns truthy for. `fn` is invoked with two arguments: `key` and `value`.\n // `key` is an int index if `x` is array. `key` is a string key if `x` is map.\n // It returns undefined if `x` is not enumerable.\n find: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n if fn(k, v) { return v }\n }\n },\n // find_key iterates over elements of `x`, returning key or index of the first\n // element `fn` returns truthy for. `fn` is invoked with two arguments: `key`\n // and `value`. `key` is an int index if `x` is array. `key` is a string key if\n // `x` is map. It returns undefined if `x` is not enumerable.\n find_key: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n for k, v in x {\n if fn(k, v) { return k }\n }\n },\n // map creates an array of values by running each element in `x` through `fn`.\n // `fn` is invoked with two arguments: `key` and `value`. `key` is an int index\n // if `x` is array. `key` is a string key if `x` is map. It returns undefined\n // if `x` is not enumerable.\n map: func(x, fn) {\n if !is_enumerable(x) { return undefined }\n\n dst := []\n for k, v in x {\n dst = append(dst, fn(k, v))\n }\n\n return dst\n },\n // key returns the first argument.\n key: func(k, _) { return k },\n // value returns the second argument.\n value: func(_, v) { return v }\n}\n", } diff --git a/vendor/github.com/d5/tengo/v2/stdlib/srcmod_enum.tengo b/vendor/github.com/d5/tengo/v2/stdlib/srcmod_enum.tengo index 7a5ea637..1db13fea 100644 --- a/vendor/github.com/d5/tengo/v2/stdlib/srcmod_enum.tengo +++ b/vendor/github.com/d5/tengo/v2/stdlib/srcmod_enum.tengo @@ -73,8 +73,7 @@ export { }, // filter iterates over elements of `x`, returning an array of all elements `fn` // returns truthy for. `fn` is invoked with two arguments: `key` and `value`. - // `key` is an int index if `x` is array. `key` is a string key if `x` is map. - // It returns undefined if `x` is not enumerable. + // `key` is an int index if `x` is array. It returns undefined if `x` is not array. filter: func(x, fn) { if !is_array_like(x) { return undefined } diff --git a/vendor/github.com/gomarkdown/markdown/README.md b/vendor/github.com/gomarkdown/markdown/README.md index 7efc1919..91397534 100644 --- a/vendor/github.com/gomarkdown/markdown/README.md +++ b/vendor/github.com/gomarkdown/markdown/README.md @@ -1,6 +1,6 @@ # Markdown Parser and HTML Renderer for Go -[![GoDoc](https://godoc.org/github.com/gomarkdown/markdown?status.svg)](https://godoc.org/github.com/gomarkdown/markdown) [![codecov](https://codecov.io/gh/gomarkdown/markdown/branch/master/graph/badge.svg)](https://codecov.io/gh/gomarkdown/markdown) +[![pkg.go.dev](https://pkg.go.dev/badge/github.com/gomarkdown/markdown)](https://pkg.go.dev/badge/github.com/gomarkdown/markdown) Package `github.com/gomarkdown/markdown` is a very fast Go library for parsing [Markdown](https://daringfireball.net/projects/markdown/) documents and rendering them to HTML. @@ -8,10 +8,10 @@ It's fast and supports common extensions. ## API Docs: -- https://godoc.org/github.com/gomarkdown/markdown : top level package -- https://godoc.org/github.com/gomarkdown/markdown/ast : defines abstract syntax tree of parsed markdown document -- https://godoc.org/github.com/gomarkdown/markdown/parser : parser -- https://godoc.org/github.com/gomarkdown/markdown/html : html renderer +- https://pkg.go.dev/github.com/gomarkdown/markdown : top level package +- https://pkg.go.dev/github.com/gomarkdown/markdown/ast : defines abstract syntax tree of parsed markdown document +- https://pkg.go.dev/github.com/gomarkdown/markdown/parser : parser +- https://pkg.go.dev/github.com/gomarkdown/markdown/html : html renderer ## Users @@ -40,7 +40,7 @@ output := markdown.ToHTML(md, nil, nil) Markdown format is loosely specified and there are multiple extensions invented after original specification was created. -The parser supports several [extensions](https://godoc.org/github.com/gomarkdown/markdown/parser#Extensions). +The parser supports several [extensions](https://pkg.go.dev/github.com/gomarkdown/markdown/parser#Extensions). Default parser uses most common `parser.CommonExtensions` but you can easily use parser with custom extension: @@ -59,7 +59,7 @@ html := markdown.ToHTML(md, parser, nil) ## Customizing HTML renderer -Similarly, HTML renderer can be configured with different [options](https://godoc.org/github.com/gomarkdown/markdown/html#RendererOptions) +Similarly, HTML renderer can be configured with different [options](https://pkg.go.dev/github.com/gomarkdown/markdown/html#RendererOptions) Here's how to use a custom renderer: @@ -77,9 +77,9 @@ md := []byte("markdown text") html := markdown.ToHTML(md, nil, renderer) ``` -HTML renderer also supports reusing most of the logic and overriding rendering of only specifc nodes. +HTML renderer also supports reusing most of the logic and overriding rendering of only specific nodes. -You can provide [RenderNodeFunc](https://godoc.org/github.com/gomarkdown/markdown/html#RenderNodeFunc) in [RendererOptions](https://godoc.org/github.com/gomarkdown/markdown/html#RendererOptions). +You can provide [RenderNodeFunc](https://pkg.go.dev/github.com/gomarkdown/markdown/html#RenderNodeFunc) in [RendererOptions](https://pkg.go.dev/github.com/gomarkdown/markdown/html#RendererOptions). The function is called for each node in AST, you can implement custom rendering logic and tell HTML renderer to skip rendering this node. @@ -134,7 +134,7 @@ html := bluemonday.UGCPolicy().SanitizeBytes(maybeUnsafeHTML) ## Windows / Mac newlines The library only supports Unix newlines. If you have markdown text with possibly -Windows / Mac newlines, normalize newlines before caling this librar using +Windows / Mac newlines, normalize newlines before calling this library using `d = markdown.NormalizeNewlines(d)` ## mdtohtml command-line tool diff --git a/vendor/github.com/gomarkdown/markdown/parser/block.go b/vendor/github.com/gomarkdown/markdown/parser/block.go index 32194d9f..2b48d52d 100644 --- a/vendor/github.com/gomarkdown/markdown/parser/block.go +++ b/vendor/github.com/gomarkdown/markdown/parser/block.go @@ -1412,6 +1412,13 @@ gatherlines: // is this a nested list item? case (p.uliPrefix(chunk) > 0 && !p.isHRule(chunk)) || p.oliPrefix(chunk) > 0 || p.dliPrefix(chunk) > 0: + // if indent is 4 or more spaces on unordered or ordered lists + // we need to add leadingWhiteSpaces + 1 spaces in the beginning of the chunk + if indentIndex >= 4 && p.dliPrefix(chunk) <= 0 { + leadingWhiteSpaces := skipChar(chunk, 0, ' ') + chunk = data[ line+indentIndex - (leadingWhiteSpaces + 1) : i] + } + // to be a nested list, it must be indented more // if not, it is either a different kind of list // or the next item in the same list @@ -1484,7 +1491,7 @@ gatherlines: } // add the line into the working buffer without prefix - raw.Write(data[line+indentIndex : i]) + raw.Write(chunk) line = i } diff --git a/vendor/github.com/gomarkdown/markdown/parser/block_table.go b/vendor/github.com/gomarkdown/markdown/parser/block_table.go index 53fbd471..0bf4f4ad 100644 --- a/vendor/github.com/gomarkdown/markdown/parser/block_table.go +++ b/vendor/github.com/gomarkdown/markdown/parser/block_table.go @@ -25,6 +25,11 @@ func (p *Parser) tableRow(data []byte, columns []ast.CellAlignFlags, header bool cellStart := i + // If we are in a codespan we should discount any | we see, check for that here and skip ahead. + if isCode, _ := codeSpan(p, data[i:], 0); isCode > 0 { + i += isCode - 1 + } + for i < n && (data[i] != '|' || isBackslashEscaped(data, i)) && data[i] != '\n' { i++ } @@ -84,6 +89,11 @@ func (p *Parser) tableFooter(data []byte) bool { n := len(data) i := skipCharN(data, 0, ' ', 3) for ; i < n && data[i] != '\n'; i++ { + // If we are in a codespan we should discount any | we see, check for that here and skip ahead. + if isCode, _ := codeSpan(p, data[i:], 0); isCode > 0 { + i += isCode - 1 + } + if data[i] == '|' && !isBackslashEscaped(data, i) { colCount++ continue @@ -111,6 +121,11 @@ func (p *Parser) tableHeader(data []byte, doRender bool) (size int, columns []as headerIsUnderline := true headerIsWithEmptyFields := true for i = 0; i < len(data) && data[i] != '\n'; i++ { + // If we are in a codespan we should discount any | we see, check for that here and skip ahead. + if isCode, _ := codeSpan(p, data[i:], 0); isCode > 0 { + i += isCode - 1 + } + if data[i] == '|' && !isBackslashEscaped(data, i) { colCount++ } diff --git a/vendor/github.com/gorilla/websocket/README.md b/vendor/github.com/gorilla/websocket/README.md index 19aa2e75..2517a287 100644 --- a/vendor/github.com/gorilla/websocket/README.md +++ b/vendor/github.com/gorilla/websocket/README.md @@ -6,6 +6,13 @@ Gorilla WebSocket is a [Go](http://golang.org/) implementation of the [WebSocket](http://www.rfc-editor.org/rfc/rfc6455.txt) protocol. + +--- + +⚠️ **[The Gorilla WebSocket Package is looking for a new maintainer](https://github.com/gorilla/websocket/issues/370)** + +--- + ### Documentation * [API Reference](https://pkg.go.dev/github.com/gorilla/websocket?tab=doc) @@ -30,35 +37,3 @@ The Gorilla WebSocket package passes the server tests in the [Autobahn Test Suite](https://github.com/crossbario/autobahn-testsuite) using the application in the [examples/autobahn subdirectory](https://github.com/gorilla/websocket/tree/master/examples/autobahn). -### Gorilla WebSocket compared with other packages - -<table> -<tr> -<th></th> -<th><a href="http://godoc.org/github.com/gorilla/websocket">github.com/gorilla</a></th> -<th><a href="http://godoc.org/golang.org/x/net/websocket">golang.org/x/net</a></th> -</tr> -<tr> -<tr><td colspan="3"><a href="http://tools.ietf.org/html/rfc6455">RFC 6455</a> Features</td></tr> -<tr><td>Passes <a href="https://github.com/crossbario/autobahn-testsuite">Autobahn Test Suite</a></td><td><a href="https://github.com/gorilla/websocket/tree/master/examples/autobahn">Yes</a></td><td>No</td></tr> -<tr><td>Receive <a href="https://tools.ietf.org/html/rfc6455#section-5.4">fragmented</a> message<td>Yes</td><td><a href="https://code.google.com/p/go/issues/detail?id=7632">No</a>, see note 1</td></tr> -<tr><td>Send <a href="https://tools.ietf.org/html/rfc6455#section-5.5.1">close</a> message</td><td><a href="http://godoc.org/github.com/gorilla/websocket#hdr-Control_Messages">Yes</a></td><td><a href="https://code.google.com/p/go/issues/detail?id=4588">No</a></td></tr> -<tr><td>Send <a href="https://tools.ietf.org/html/rfc6455#section-5.5.2">pings</a> and receive <a href="https://tools.ietf.org/html/rfc6455#section-5.5.3">pongs</a></td><td><a href="http://godoc.org/github.com/gorilla/websocket#hdr-Control_Messages">Yes</a></td><td>No</td></tr> -<tr><td>Get the <a href="https://tools.ietf.org/html/rfc6455#section-5.6">type</a> of a received data message</td><td>Yes</td><td>Yes, see note 2</td></tr> -<tr><td colspan="3">Other Features</tr></td> -<tr><td><a href="https://tools.ietf.org/html/rfc7692">Compression Extensions</a></td><td>Experimental</td><td>No</td></tr> -<tr><td>Read message using io.Reader</td><td><a href="http://godoc.org/github.com/gorilla/websocket#Conn.NextReader">Yes</a></td><td>No, see note 3</td></tr> -<tr><td>Write message using io.WriteCloser</td><td><a href="http://godoc.org/github.com/gorilla/websocket#Conn.NextWriter">Yes</a></td><td>No, see note 3</td></tr> -</table> - -Notes: - -1. Large messages are fragmented in [Chrome's new WebSocket implementation](http://www.ietf.org/mail-archive/web/hybi/current/msg10503.html). -2. The application can get the type of a received data message by implementing - a [Codec marshal](http://godoc.org/golang.org/x/net/websocket#Codec.Marshal) - function. -3. The go.net io.Reader and io.Writer operate across WebSocket frame boundaries. - Read returns when the input buffer is full or a frame boundary is - encountered. Each call to Write sends a single frame message. The Gorilla - io.Reader and io.WriteCloser operate on a single WebSocket message. - diff --git a/vendor/github.com/gorilla/websocket/client.go b/vendor/github.com/gorilla/websocket/client.go index 962c06a3..2efd8355 100644 --- a/vendor/github.com/gorilla/websocket/client.go +++ b/vendor/github.com/gorilla/websocket/client.go @@ -48,15 +48,23 @@ func NewClient(netConn net.Conn, u *url.URL, requestHeader http.Header, readBufS } // A Dialer contains options for connecting to WebSocket server. +// +// It is safe to call Dialer's methods concurrently. type Dialer struct { // NetDial specifies the dial function for creating TCP connections. If // NetDial is nil, net.Dial is used. NetDial func(network, addr string) (net.Conn, error) // NetDialContext specifies the dial function for creating TCP connections. If - // NetDialContext is nil, net.DialContext is used. + // NetDialContext is nil, NetDial is used. NetDialContext func(ctx context.Context, network, addr string) (net.Conn, error) + // NetDialTLSContext specifies the dial function for creating TLS/TCP connections. If + // NetDialTLSContext is nil, NetDialContext is used. + // If NetDialTLSContext is set, Dial assumes the TLS handshake is done there and + // TLSClientConfig is ignored. + NetDialTLSContext func(ctx context.Context, network, addr string) (net.Conn, error) + // Proxy specifies a function to return a proxy for a given // Request. If the function returns a non-nil error, the // request is aborted with the provided error. @@ -65,6 +73,8 @@ type Dialer struct { // TLSClientConfig specifies the TLS configuration to use with tls.Client. // If nil, the default configuration is used. + // If either NetDialTLS or NetDialTLSContext are set, Dial assumes the TLS handshake + // is done there and TLSClientConfig is ignored. TLSClientConfig *tls.Config // HandshakeTimeout specifies the duration for the handshake to complete. @@ -176,7 +186,7 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h } req := &http.Request{ - Method: "GET", + Method: http.MethodGet, URL: u, Proto: "HTTP/1.1", ProtoMajor: 1, @@ -237,13 +247,32 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h // Get network dial function. var netDial func(network, add string) (net.Conn, error) - if d.NetDialContext != nil { - netDial = func(network, addr string) (net.Conn, error) { - return d.NetDialContext(ctx, network, addr) + switch u.Scheme { + case "http": + if d.NetDialContext != nil { + netDial = func(network, addr string) (net.Conn, error) { + return d.NetDialContext(ctx, network, addr) + } + } else if d.NetDial != nil { + netDial = d.NetDial } - } else if d.NetDial != nil { - netDial = d.NetDial - } else { + case "https": + if d.NetDialTLSContext != nil { + netDial = func(network, addr string) (net.Conn, error) { + return d.NetDialTLSContext(ctx, network, addr) + } + } else if d.NetDialContext != nil { + netDial = func(network, addr string) (net.Conn, error) { + return d.NetDialContext(ctx, network, addr) + } + } else if d.NetDial != nil { + netDial = d.NetDial + } + default: + return nil, nil, errMalformedURL + } + + if netDial == nil { netDialer := &net.Dialer{} netDial = func(network, addr string) (net.Conn, error) { return netDialer.DialContext(ctx, network, addr) @@ -304,7 +333,9 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h } }() - if u.Scheme == "https" { + if u.Scheme == "https" && d.NetDialTLSContext == nil { + // If NetDialTLSContext is set, assume that the TLS handshake has already been done + cfg := cloneTLSConfig(d.TLSClientConfig) if cfg.ServerName == "" { cfg.ServerName = hostNoPort @@ -312,11 +343,12 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h tlsConn := tls.Client(netConn, cfg) netConn = tlsConn - var err error - if trace != nil { - err = doHandshakeWithTrace(trace, tlsConn, cfg) - } else { - err = doHandshake(tlsConn, cfg) + if trace != nil && trace.TLSHandshakeStart != nil { + trace.TLSHandshakeStart() + } + err := doHandshake(ctx, tlsConn, cfg) + if trace != nil && trace.TLSHandshakeDone != nil { + trace.TLSHandshakeDone(tlsConn.ConnectionState(), err) } if err != nil { @@ -348,8 +380,8 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h } if resp.StatusCode != 101 || - !strings.EqualFold(resp.Header.Get("Upgrade"), "websocket") || - !strings.EqualFold(resp.Header.Get("Connection"), "upgrade") || + !tokenListContainsValue(resp.Header, "Upgrade", "websocket") || + !tokenListContainsValue(resp.Header, "Connection", "upgrade") || resp.Header.Get("Sec-Websocket-Accept") != computeAcceptKey(challengeKey) { // Before closing the network connection on return from this // function, slurp up some of the response to aid application @@ -382,14 +414,9 @@ func (d *Dialer) DialContext(ctx context.Context, urlStr string, requestHeader h return conn, resp, nil } -func doHandshake(tlsConn *tls.Conn, cfg *tls.Config) error { - if err := tlsConn.Handshake(); err != nil { - return err - } - if !cfg.InsecureSkipVerify { - if err := tlsConn.VerifyHostname(cfg.ServerName); err != nil { - return err - } +func cloneTLSConfig(cfg *tls.Config) *tls.Config { + if cfg == nil { + return &tls.Config{} } - return nil + return cfg.Clone() } diff --git a/vendor/github.com/gorilla/websocket/client_clone.go b/vendor/github.com/gorilla/websocket/client_clone.go deleted file mode 100644 index 4f0d9437..00000000 --- a/vendor/github.com/gorilla/websocket/client_clone.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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.8 - -package websocket - -import "crypto/tls" - -func cloneTLSConfig(cfg *tls.Config) *tls.Config { - if cfg == nil { - return &tls.Config{} - } - return cfg.Clone() -} diff --git a/vendor/github.com/gorilla/websocket/client_clone_legacy.go b/vendor/github.com/gorilla/websocket/client_clone_legacy.go deleted file mode 100644 index babb007f..00000000 --- a/vendor/github.com/gorilla/websocket/client_clone_legacy.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2013 The Gorilla WebSocket 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.8 - -package websocket - -import "crypto/tls" - -// cloneTLSConfig clones all public fields except the fields -// SessionTicketsDisabled and SessionTicketKey. This avoids copying the -// sync.Mutex in the sync.Once and makes it safe to call cloneTLSConfig on a -// config in active use. -func cloneTLSConfig(cfg *tls.Config) *tls.Config { - if cfg == nil { - return &tls.Config{} - } - return &tls.Config{ - Rand: cfg.Rand, - Time: cfg.Time, - Certificates: cfg.Certificates, - NameToCertificate: cfg.NameToCertificate, - GetCertificate: cfg.GetCertificate, - RootCAs: cfg.RootCAs, - NextProtos: cfg.NextProtos, - ServerName: cfg.ServerName, - ClientAuth: cfg.ClientAuth, - ClientCAs: cfg.ClientCAs, - InsecureSkipVerify: cfg.InsecureSkipVerify, - CipherSuites: cfg.CipherSuites, - PreferServerCipherSuites: cfg.PreferServerCipherSuites, - ClientSessionCache: cfg.ClientSessionCache, - MinVersion: cfg.MinVersion, - MaxVersion: cfg.MaxVersion, - CurvePreferences: cfg.CurvePreferences, - } -} diff --git a/vendor/github.com/gorilla/websocket/conn.go b/vendor/github.com/gorilla/websocket/conn.go index ca46d2f7..331eebc8 100644 --- a/vendor/github.com/gorilla/websocket/conn.go +++ b/vendor/github.com/gorilla/websocket/conn.go @@ -13,6 +13,7 @@ import ( "math/rand" "net" "strconv" + "strings" "sync" "time" "unicode/utf8" @@ -401,6 +402,12 @@ func (c *Conn) write(frameType int, deadline time.Time, buf0, buf1 []byte) error return nil } +func (c *Conn) writeBufs(bufs ...[]byte) error { + b := net.Buffers(bufs) + _, err := b.WriteTo(c.conn) + return err +} + // WriteControl writes a control message with the given deadline. The allowed // message types are CloseMessage, PingMessage and PongMessage. func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) error { @@ -794,47 +801,69 @@ func (c *Conn) advanceFrame() (int, error) { } // 2. Read and parse first two bytes of frame header. + // To aid debugging, collect and report all errors in the first two bytes + // of the header. + + var errors []string p, err := c.read(2) if err != nil { return noFrame, err } - final := p[0]&finalBit != 0 frameType := int(p[0] & 0xf) + final := p[0]&finalBit != 0 + rsv1 := p[0]&rsv1Bit != 0 + rsv2 := p[0]&rsv2Bit != 0 + rsv3 := p[0]&rsv3Bit != 0 mask := p[1]&maskBit != 0 c.setReadRemaining(int64(p[1] & 0x7f)) c.readDecompress = false - if c.newDecompressionReader != nil && (p[0]&rsv1Bit) != 0 { - c.readDecompress = true - p[0] &^= rsv1Bit + if rsv1 { + if c.newDecompressionReader != nil { + c.readDecompress = true + } else { + errors = append(errors, "RSV1 set") + } + } + + if rsv2 { + errors = append(errors, "RSV2 set") } - if rsv := p[0] & (rsv1Bit | rsv2Bit | rsv3Bit); rsv != 0 { - return noFrame, c.handleProtocolError("unexpected reserved bits 0x" + strconv.FormatInt(int64(rsv), 16)) + if rsv3 { + errors = append(errors, "RSV3 set") } switch frameType { case CloseMessage, PingMessage, PongMessage: if c.readRemaining > maxControlFramePayloadSize { - return noFrame, c.handleProtocolError("control frame length > 125") + errors = append(errors, "len > 125 for control") } if !final { - return noFrame, c.handleProtocolError("control frame not final") + errors = append(errors, "FIN not set on control") } case TextMessage, BinaryMessage: if !c.readFinal { - return noFrame, c.handleProtocolError("message start before final message frame") + errors = append(errors, "data before FIN") } c.readFinal = final case continuationFrame: if c.readFinal { - return noFrame, c.handleProtocolError("continuation after final message frame") + errors = append(errors, "continuation after FIN") } c.readFinal = final default: - return noFrame, c.handleProtocolError("unknown opcode " + strconv.Itoa(frameType)) + errors = append(errors, "bad opcode "+strconv.Itoa(frameType)) + } + + if mask != c.isServer { + errors = append(errors, "bad MASK") + } + + if len(errors) > 0 { + return noFrame, c.handleProtocolError(strings.Join(errors, ", ")) } // 3. Read and parse frame length as per @@ -872,10 +901,6 @@ func (c *Conn) advanceFrame() (int, error) { // 4. Handle frame masking. - if mask != c.isServer { - return noFrame, c.handleProtocolError("incorrect mask flag") - } - if mask { c.readMaskPos = 0 p, err := c.read(len(c.readMaskKey)) @@ -935,7 +960,7 @@ func (c *Conn) advanceFrame() (int, error) { if len(payload) >= 2 { closeCode = int(binary.BigEndian.Uint16(payload)) if !isValidReceivedCloseCode(closeCode) { - return noFrame, c.handleProtocolError("invalid close code") + return noFrame, c.handleProtocolError("bad close code " + strconv.Itoa(closeCode)) } closeText = string(payload[2:]) if !utf8.ValidString(closeText) { @@ -952,7 +977,11 @@ func (c *Conn) advanceFrame() (int, error) { } func (c *Conn) handleProtocolError(message string) error { - c.WriteControl(CloseMessage, FormatCloseMessage(CloseProtocolError, message), time.Now().Add(writeWait)) + data := FormatCloseMessage(CloseProtocolError, message) + if len(data) > maxControlFramePayloadSize { + data = data[:maxControlFramePayloadSize] + } + c.WriteControl(CloseMessage, data, time.Now().Add(writeWait)) return errors.New("websocket: " + message) } diff --git a/vendor/github.com/gorilla/websocket/conn_write.go b/vendor/github.com/gorilla/websocket/conn_write.go deleted file mode 100644 index a509a21f..00000000 --- a/vendor/github.com/gorilla/websocket/conn_write.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2016 The Gorilla WebSocket 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.8 - -package websocket - -import "net" - -func (c *Conn) writeBufs(bufs ...[]byte) error { - b := net.Buffers(bufs) - _, err := b.WriteTo(c.conn) - return err -} diff --git a/vendor/github.com/gorilla/websocket/conn_write_legacy.go b/vendor/github.com/gorilla/websocket/conn_write_legacy.go deleted file mode 100644 index 37edaff5..00000000 --- a/vendor/github.com/gorilla/websocket/conn_write_legacy.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2016 The Gorilla WebSocket 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.8 - -package websocket - -func (c *Conn) writeBufs(bufs ...[]byte) error { - for _, buf := range bufs { - if len(buf) > 0 { - if _, err := c.conn.Write(buf); err != nil { - return err - } - } - } - return nil -} diff --git a/vendor/github.com/gorilla/websocket/mask.go b/vendor/github.com/gorilla/websocket/mask.go index 577fce9e..d0742bf2 100644 --- a/vendor/github.com/gorilla/websocket/mask.go +++ b/vendor/github.com/gorilla/websocket/mask.go @@ -2,6 +2,7 @@ // this source code is governed by a BSD-style license that can be found in the // LICENSE file. +//go:build !appengine // +build !appengine package websocket diff --git a/vendor/github.com/gorilla/websocket/mask_safe.go b/vendor/github.com/gorilla/websocket/mask_safe.go index 2aac060e..36250ca7 100644 --- a/vendor/github.com/gorilla/websocket/mask_safe.go +++ b/vendor/github.com/gorilla/websocket/mask_safe.go @@ -2,6 +2,7 @@ // this source code is governed by a BSD-style license that can be found in the // LICENSE file. +//go:build appengine // +build appengine package websocket diff --git a/vendor/github.com/gorilla/websocket/proxy.go b/vendor/github.com/gorilla/websocket/proxy.go index e87a8c9f..e0f466b7 100644 --- a/vendor/github.com/gorilla/websocket/proxy.go +++ b/vendor/github.com/gorilla/websocket/proxy.go @@ -48,7 +48,7 @@ func (hpd *httpProxyDialer) Dial(network string, addr string) (net.Conn, error) } connectReq := &http.Request{ - Method: "CONNECT", + Method: http.MethodConnect, URL: &url.URL{Opaque: addr}, Host: addr, Header: connectHeader, diff --git a/vendor/github.com/gorilla/websocket/server.go b/vendor/github.com/gorilla/websocket/server.go index 887d5589..24d53b38 100644 --- a/vendor/github.com/gorilla/websocket/server.go +++ b/vendor/github.com/gorilla/websocket/server.go @@ -23,6 +23,8 @@ func (e HandshakeError) Error() string { return e.message } // Upgrader specifies parameters for upgrading an HTTP connection to a // WebSocket connection. +// +// It is safe to call Upgrader's methods concurrently. type Upgrader struct { // HandshakeTimeout specifies the duration for the handshake to complete. HandshakeTimeout time.Duration @@ -115,8 +117,8 @@ func (u *Upgrader) selectSubprotocol(r *http.Request, responseHeader http.Header // Upgrade upgrades the HTTP server connection to the WebSocket protocol. // // The responseHeader is included in the response to the client's upgrade -// request. Use the responseHeader to specify cookies (Set-Cookie) and the -// application negotiated subprotocol (Sec-WebSocket-Protocol). +// request. Use the responseHeader to specify cookies (Set-Cookie). To specify +// subprotocols supported by the server, set Upgrader.Subprotocols directly. // // If the upgrade fails, then Upgrade replies to the client with an HTTP error // response. @@ -131,7 +133,7 @@ func (u *Upgrader) Upgrade(w http.ResponseWriter, r *http.Request, responseHeade return u.returnError(w, r, http.StatusBadRequest, badHandshake+"'websocket' token not found in 'Upgrade' header") } - if r.Method != "GET" { + if r.Method != http.MethodGet { return u.returnError(w, r, http.StatusMethodNotAllowed, badHandshake+"request method is not GET") } diff --git a/vendor/github.com/gorilla/websocket/tls_handshake.go b/vendor/github.com/gorilla/websocket/tls_handshake.go new file mode 100644 index 00000000..a62b68cc --- /dev/null +++ b/vendor/github.com/gorilla/websocket/tls_handshake.go @@ -0,0 +1,21 @@ +//go:build go1.17 +// +build go1.17 + +package websocket + +import ( + "context" + "crypto/tls" +) + +func doHandshake(ctx context.Context, tlsConn *tls.Conn, cfg *tls.Config) error { + if err := tlsConn.HandshakeContext(ctx); err != nil { + return err + } + if !cfg.InsecureSkipVerify { + if err := tlsConn.VerifyHostname(cfg.ServerName); err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/gorilla/websocket/tls_handshake_116.go b/vendor/github.com/gorilla/websocket/tls_handshake_116.go new file mode 100644 index 00000000..e1b2b44f --- /dev/null +++ b/vendor/github.com/gorilla/websocket/tls_handshake_116.go @@ -0,0 +1,21 @@ +//go:build !go1.17 +// +build !go1.17 + +package websocket + +import ( + "context" + "crypto/tls" +) + +func doHandshake(ctx context.Context, tlsConn *tls.Conn, cfg *tls.Config) error { + if err := tlsConn.Handshake(); err != nil { + return err + } + if !cfg.InsecureSkipVerify { + if err := tlsConn.VerifyHostname(cfg.ServerName); err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/gorilla/websocket/trace.go b/vendor/github.com/gorilla/websocket/trace.go deleted file mode 100644 index 834f122a..00000000 --- a/vendor/github.com/gorilla/websocket/trace.go +++ /dev/null @@ -1,19 +0,0 @@ -// +build go1.8 - -package websocket - -import ( - "crypto/tls" - "net/http/httptrace" -) - -func doHandshakeWithTrace(trace *httptrace.ClientTrace, tlsConn *tls.Conn, cfg *tls.Config) error { - if trace.TLSHandshakeStart != nil { - trace.TLSHandshakeStart() - } - err := doHandshake(tlsConn, cfg) - if trace.TLSHandshakeDone != nil { - trace.TLSHandshakeDone(tlsConn.ConnectionState(), err) - } - return err -} diff --git a/vendor/github.com/gorilla/websocket/trace_17.go b/vendor/github.com/gorilla/websocket/trace_17.go deleted file mode 100644 index 77d05a0b..00000000 --- a/vendor/github.com/gorilla/websocket/trace_17.go +++ /dev/null @@ -1,12 +0,0 @@ -// +build !go1.8 - -package websocket - -import ( - "crypto/tls" - "net/http/httptrace" -) - -func doHandshakeWithTrace(trace *httptrace.ClientTrace, tlsConn *tls.Conn, cfg *tls.Config) error { - return doHandshake(tlsConn, cfg) -} diff --git a/vendor/github.com/harmony-development/shibshib/gen/chat/v1/chat_hrpc_client.pb.go b/vendor/github.com/harmony-development/shibshib/gen/chat/v1/chat_hrpc_client.pb.go index 62c02415..bb2ebde9 100644 --- a/vendor/github.com/harmony-development/shibshib/gen/chat/v1/chat_hrpc_client.pb.go +++ b/vendor/github.com/harmony-development/shibshib/gen/chat/v1/chat_hrpc_client.pb.go @@ -156,6 +156,9 @@ type ChatServiceClient interface { // Endpoint to unpin a message in a guild channel. UnpinMessage(context.Context, *UnpinMessageRequest) (*UnpinMessageResponse, error) // Endpoint to stream events from the homeserver. + // By default, this endpoint will subscribe to all events. + // Any guilds joined in the future will be added to the subscription as well. + // Use the UnsubscribeFromAll event for unsubscribing from all current subscriptions and disable the automatic guild subscriptions StreamEvents(context.Context, chan *StreamEventsRequest) (chan *StreamEventsResponse, error) // Endpoint to add a reaction to a message. AddReaction(context.Context, *AddReactionRequest) (*AddReactionResponse, error) diff --git a/vendor/github.com/harmony-development/shibshib/gen/chat/v1/guilds.pb.go b/vendor/github.com/harmony-development/shibshib/gen/chat/v1/guilds.pb.go index b60867fb..0ffc53c8 100644 --- a/vendor/github.com/harmony-development/shibshib/gen/chat/v1/guilds.pb.go +++ b/vendor/github.com/harmony-development/shibshib/gen/chat/v1/guilds.pb.go @@ -268,6 +268,64 @@ func (x *Guild) GetMetadata() *v1.Metadata { return nil } +// Object representing a guild with the ID part. +type GuildWithId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The ID of the guild. + GuildId uint64 `protobuf:"varint,1,opt,name=guild_id,json=guildId,proto3" json:"guild_id,omitempty"` + // The guild. + Guild *Guild `protobuf:"bytes,2,opt,name=guild,proto3" json:"guild,omitempty"` +} + +func (x *GuildWithId) Reset() { + *x = GuildWithId{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_guilds_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildWithId) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildWithId) ProtoMessage() {} + +func (x *GuildWithId) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_guilds_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildWithId.ProtoReflect.Descriptor instead. +func (*GuildWithId) Descriptor() ([]byte, []int) { + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{2} +} + +func (x *GuildWithId) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +func (x *GuildWithId) GetGuild() *Guild { + if x != nil { + return x.Guild + } + return nil +} + // Object representing an invite without the ID part. type Invite struct { state protoimpl.MessageState @@ -283,7 +341,7 @@ type Invite struct { func (x *Invite) Reset() { *x = Invite{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[2] + mi := &file_chat_v1_guilds_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -296,7 +354,7 @@ func (x *Invite) String() string { func (*Invite) ProtoMessage() {} func (x *Invite) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[2] + mi := &file_chat_v1_guilds_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -309,7 +367,7 @@ func (x *Invite) ProtoReflect() protoreflect.Message { // Deprecated: Use Invite.ProtoReflect.Descriptor instead. func (*Invite) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{2} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{3} } func (x *Invite) GetPossibleUses() uint32 { @@ -341,7 +399,7 @@ type InviteWithId struct { func (x *InviteWithId) Reset() { *x = InviteWithId{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[3] + mi := &file_chat_v1_guilds_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -354,7 +412,7 @@ func (x *InviteWithId) String() string { func (*InviteWithId) ProtoMessage() {} func (x *InviteWithId) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[3] + mi := &file_chat_v1_guilds_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -367,7 +425,7 @@ func (x *InviteWithId) ProtoReflect() protoreflect.Message { // Deprecated: Use InviteWithId.ProtoReflect.Descriptor instead. func (*InviteWithId) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{3} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{4} } func (x *InviteWithId) GetInviteId() string { @@ -401,7 +459,7 @@ type PendingInvite struct { func (x *PendingInvite) Reset() { *x = PendingInvite{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[4] + mi := &file_chat_v1_guilds_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -414,7 +472,7 @@ func (x *PendingInvite) String() string { func (*PendingInvite) ProtoMessage() {} func (x *PendingInvite) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[4] + mi := &file_chat_v1_guilds_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -427,7 +485,7 @@ func (x *PendingInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use PendingInvite.ProtoReflect.Descriptor instead. func (*PendingInvite) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{4} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{5} } func (x *PendingInvite) GetInviteId() string { @@ -466,7 +524,7 @@ type GuildListEntry struct { func (x *GuildListEntry) Reset() { *x = GuildListEntry{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[5] + mi := &file_chat_v1_guilds_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -479,7 +537,7 @@ func (x *GuildListEntry) String() string { func (*GuildListEntry) ProtoMessage() {} func (x *GuildListEntry) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[5] + mi := &file_chat_v1_guilds_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -492,7 +550,7 @@ func (x *GuildListEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildListEntry.ProtoReflect.Descriptor instead. func (*GuildListEntry) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{5} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{6} } func (x *GuildListEntry) GetGuildId() uint64 { @@ -526,7 +584,7 @@ type CreateGuildRequest struct { func (x *CreateGuildRequest) Reset() { *x = CreateGuildRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[6] + mi := &file_chat_v1_guilds_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -539,7 +597,7 @@ func (x *CreateGuildRequest) String() string { func (*CreateGuildRequest) ProtoMessage() {} func (x *CreateGuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[6] + mi := &file_chat_v1_guilds_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -552,7 +610,7 @@ func (x *CreateGuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateGuildRequest.ProtoReflect.Descriptor instead. func (*CreateGuildRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{6} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{7} } func (x *CreateGuildRequest) GetName() string { @@ -589,7 +647,7 @@ type CreateGuildResponse struct { func (x *CreateGuildResponse) Reset() { *x = CreateGuildResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[7] + mi := &file_chat_v1_guilds_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -602,7 +660,7 @@ func (x *CreateGuildResponse) String() string { func (*CreateGuildResponse) ProtoMessage() {} func (x *CreateGuildResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[7] + mi := &file_chat_v1_guilds_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -615,7 +673,7 @@ func (x *CreateGuildResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateGuildResponse.ProtoReflect.Descriptor instead. func (*CreateGuildResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{7} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{8} } func (x *CreateGuildResponse) GetGuildId() uint64 { @@ -642,7 +700,7 @@ type CreateRoomRequest struct { func (x *CreateRoomRequest) Reset() { *x = CreateRoomRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[8] + mi := &file_chat_v1_guilds_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -655,7 +713,7 @@ func (x *CreateRoomRequest) String() string { func (*CreateRoomRequest) ProtoMessage() {} func (x *CreateRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[8] + mi := &file_chat_v1_guilds_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -668,7 +726,7 @@ func (x *CreateRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRoomRequest.ProtoReflect.Descriptor instead. func (*CreateRoomRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{8} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{9} } func (x *CreateRoomRequest) GetName() string { @@ -705,7 +763,7 @@ type CreateRoomResponse struct { func (x *CreateRoomResponse) Reset() { *x = CreateRoomResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[9] + mi := &file_chat_v1_guilds_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -718,7 +776,7 @@ func (x *CreateRoomResponse) String() string { func (*CreateRoomResponse) ProtoMessage() {} func (x *CreateRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[9] + mi := &file_chat_v1_guilds_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -731,7 +789,7 @@ func (x *CreateRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRoomResponse.ProtoReflect.Descriptor instead. func (*CreateRoomResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{9} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{10} } func (x *CreateRoomResponse) GetGuildId() uint64 { @@ -758,7 +816,7 @@ type CreateDirectMessageRequest struct { func (x *CreateDirectMessageRequest) Reset() { *x = CreateDirectMessageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[10] + mi := &file_chat_v1_guilds_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -771,7 +829,7 @@ func (x *CreateDirectMessageRequest) String() string { func (*CreateDirectMessageRequest) ProtoMessage() {} func (x *CreateDirectMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[10] + mi := &file_chat_v1_guilds_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -784,7 +842,7 @@ func (x *CreateDirectMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateDirectMessageRequest.ProtoReflect.Descriptor instead. func (*CreateDirectMessageRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{10} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{11} } func (x *CreateDirectMessageRequest) GetUserName() string { @@ -814,7 +872,7 @@ type CreateDirectMessageResponse struct { func (x *CreateDirectMessageResponse) Reset() { *x = CreateDirectMessageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[11] + mi := &file_chat_v1_guilds_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -827,7 +885,7 @@ func (x *CreateDirectMessageResponse) String() string { func (*CreateDirectMessageResponse) ProtoMessage() {} func (x *CreateDirectMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[11] + mi := &file_chat_v1_guilds_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -840,7 +898,7 @@ func (x *CreateDirectMessageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateDirectMessageResponse.ProtoReflect.Descriptor instead. func (*CreateDirectMessageResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{11} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{12} } func (x *CreateDirectMessageResponse) GetGuildId() uint64 { @@ -869,7 +927,7 @@ type CreateInviteRequest struct { func (x *CreateInviteRequest) Reset() { *x = CreateInviteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[12] + mi := &file_chat_v1_guilds_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -882,7 +940,7 @@ func (x *CreateInviteRequest) String() string { func (*CreateInviteRequest) ProtoMessage() {} func (x *CreateInviteRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[12] + mi := &file_chat_v1_guilds_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -895,7 +953,7 @@ func (x *CreateInviteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateInviteRequest.ProtoReflect.Descriptor instead. func (*CreateInviteRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{12} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{13} } func (x *CreateInviteRequest) GetGuildId() uint64 { @@ -932,7 +990,7 @@ type CreateInviteResponse struct { func (x *CreateInviteResponse) Reset() { *x = CreateInviteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[13] + mi := &file_chat_v1_guilds_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -945,7 +1003,7 @@ func (x *CreateInviteResponse) String() string { func (*CreateInviteResponse) ProtoMessage() {} func (x *CreateInviteResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[13] + mi := &file_chat_v1_guilds_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -958,7 +1016,7 @@ func (x *CreateInviteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateInviteResponse.ProtoReflect.Descriptor instead. func (*CreateInviteResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{13} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{14} } func (x *CreateInviteResponse) GetInviteId() string { @@ -978,7 +1036,7 @@ type GetGuildListRequest struct { func (x *GetGuildListRequest) Reset() { *x = GetGuildListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[14] + mi := &file_chat_v1_guilds_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -991,7 +1049,7 @@ func (x *GetGuildListRequest) String() string { func (*GetGuildListRequest) ProtoMessage() {} func (x *GetGuildListRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[14] + mi := &file_chat_v1_guilds_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1004,7 +1062,7 @@ func (x *GetGuildListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildListRequest.ProtoReflect.Descriptor instead. func (*GetGuildListRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{14} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{15} } // Used in the `GetGuildList` endpoint. @@ -1020,7 +1078,7 @@ type GetGuildListResponse struct { func (x *GetGuildListResponse) Reset() { *x = GetGuildListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[15] + mi := &file_chat_v1_guilds_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1033,7 +1091,7 @@ func (x *GetGuildListResponse) String() string { func (*GetGuildListResponse) ProtoMessage() {} func (x *GetGuildListResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[15] + mi := &file_chat_v1_guilds_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1046,7 +1104,7 @@ func (x *GetGuildListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildListResponse.ProtoReflect.Descriptor instead. func (*GetGuildListResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{15} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{16} } func (x *GetGuildListResponse) GetGuilds() []*GuildListEntry { @@ -1069,7 +1127,7 @@ type GetGuildRequest struct { func (x *GetGuildRequest) Reset() { *x = GetGuildRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[16] + mi := &file_chat_v1_guilds_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1082,7 +1140,7 @@ func (x *GetGuildRequest) String() string { func (*GetGuildRequest) ProtoMessage() {} func (x *GetGuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[16] + mi := &file_chat_v1_guilds_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1095,7 +1153,7 @@ func (x *GetGuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildRequest.ProtoReflect.Descriptor instead. func (*GetGuildRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{16} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{17} } func (x *GetGuildRequest) GetGuildId() uint64 { @@ -1118,7 +1176,7 @@ type GetGuildResponse struct { func (x *GetGuildResponse) Reset() { *x = GetGuildResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[17] + mi := &file_chat_v1_guilds_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1131,7 +1189,7 @@ func (x *GetGuildResponse) String() string { func (*GetGuildResponse) ProtoMessage() {} func (x *GetGuildResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[17] + mi := &file_chat_v1_guilds_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1144,7 +1202,7 @@ func (x *GetGuildResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildResponse.ProtoReflect.Descriptor instead. func (*GetGuildResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{17} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{18} } func (x *GetGuildResponse) GetGuild() *Guild { @@ -1167,7 +1225,7 @@ type GetGuildInvitesRequest struct { func (x *GetGuildInvitesRequest) Reset() { *x = GetGuildInvitesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[18] + mi := &file_chat_v1_guilds_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1180,7 +1238,7 @@ func (x *GetGuildInvitesRequest) String() string { func (*GetGuildInvitesRequest) ProtoMessage() {} func (x *GetGuildInvitesRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[18] + mi := &file_chat_v1_guilds_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1193,7 +1251,7 @@ func (x *GetGuildInvitesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildInvitesRequest.ProtoReflect.Descriptor instead. func (*GetGuildInvitesRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{18} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{19} } func (x *GetGuildInvitesRequest) GetGuildId() uint64 { @@ -1216,7 +1274,7 @@ type GetGuildInvitesResponse struct { func (x *GetGuildInvitesResponse) Reset() { *x = GetGuildInvitesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[19] + mi := &file_chat_v1_guilds_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1229,7 +1287,7 @@ func (x *GetGuildInvitesResponse) String() string { func (*GetGuildInvitesResponse) ProtoMessage() {} func (x *GetGuildInvitesResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[19] + mi := &file_chat_v1_guilds_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1242,7 +1300,7 @@ func (x *GetGuildInvitesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildInvitesResponse.ProtoReflect.Descriptor instead. func (*GetGuildInvitesResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{19} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{20} } func (x *GetGuildInvitesResponse) GetInvites() []*InviteWithId { @@ -1265,7 +1323,7 @@ type GetGuildMembersRequest struct { func (x *GetGuildMembersRequest) Reset() { *x = GetGuildMembersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[20] + mi := &file_chat_v1_guilds_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1278,7 +1336,7 @@ func (x *GetGuildMembersRequest) String() string { func (*GetGuildMembersRequest) ProtoMessage() {} func (x *GetGuildMembersRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[20] + mi := &file_chat_v1_guilds_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1291,7 +1349,7 @@ func (x *GetGuildMembersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildMembersRequest.ProtoReflect.Descriptor instead. func (*GetGuildMembersRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{20} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{21} } func (x *GetGuildMembersRequest) GetGuildId() uint64 { @@ -1314,7 +1372,7 @@ type GetGuildMembersResponse struct { func (x *GetGuildMembersResponse) Reset() { *x = GetGuildMembersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[21] + mi := &file_chat_v1_guilds_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1327,7 +1385,7 @@ func (x *GetGuildMembersResponse) String() string { func (*GetGuildMembersResponse) ProtoMessage() {} func (x *GetGuildMembersResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[21] + mi := &file_chat_v1_guilds_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1340,7 +1398,7 @@ func (x *GetGuildMembersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildMembersResponse.ProtoReflect.Descriptor instead. func (*GetGuildMembersResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{21} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{22} } func (x *GetGuildMembersResponse) GetMembers() []uint64 { @@ -1369,7 +1427,7 @@ type UpdateGuildInformationRequest struct { func (x *UpdateGuildInformationRequest) Reset() { *x = UpdateGuildInformationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[22] + mi := &file_chat_v1_guilds_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1382,7 +1440,7 @@ func (x *UpdateGuildInformationRequest) String() string { func (*UpdateGuildInformationRequest) ProtoMessage() {} func (x *UpdateGuildInformationRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[22] + mi := &file_chat_v1_guilds_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1395,7 +1453,7 @@ func (x *UpdateGuildInformationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGuildInformationRequest.ProtoReflect.Descriptor instead. func (*UpdateGuildInformationRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{22} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{23} } func (x *UpdateGuildInformationRequest) GetGuildId() uint64 { @@ -1436,7 +1494,7 @@ type UpdateGuildInformationResponse struct { func (x *UpdateGuildInformationResponse) Reset() { *x = UpdateGuildInformationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[23] + mi := &file_chat_v1_guilds_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1449,7 +1507,7 @@ func (x *UpdateGuildInformationResponse) String() string { func (*UpdateGuildInformationResponse) ProtoMessage() {} func (x *UpdateGuildInformationResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[23] + mi := &file_chat_v1_guilds_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1462,7 +1520,7 @@ func (x *UpdateGuildInformationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateGuildInformationResponse.ProtoReflect.Descriptor instead. func (*UpdateGuildInformationResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{23} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{24} } // Used in the `UpgradeRoomToGuild` endpoint. @@ -1478,7 +1536,7 @@ type UpgradeRoomToGuildRequest struct { func (x *UpgradeRoomToGuildRequest) Reset() { *x = UpgradeRoomToGuildRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[24] + mi := &file_chat_v1_guilds_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1491,7 +1549,7 @@ func (x *UpgradeRoomToGuildRequest) String() string { func (*UpgradeRoomToGuildRequest) ProtoMessage() {} func (x *UpgradeRoomToGuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[24] + mi := &file_chat_v1_guilds_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1504,7 +1562,7 @@ func (x *UpgradeRoomToGuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpgradeRoomToGuildRequest.ProtoReflect.Descriptor instead. func (*UpgradeRoomToGuildRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{24} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{25} } func (x *UpgradeRoomToGuildRequest) GetGuildId() uint64 { @@ -1524,7 +1582,7 @@ type UpgradeRoomToGuildResponse struct { func (x *UpgradeRoomToGuildResponse) Reset() { *x = UpgradeRoomToGuildResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[25] + mi := &file_chat_v1_guilds_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1537,7 +1595,7 @@ func (x *UpgradeRoomToGuildResponse) String() string { func (*UpgradeRoomToGuildResponse) ProtoMessage() {} func (x *UpgradeRoomToGuildResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[25] + mi := &file_chat_v1_guilds_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1550,7 +1608,7 @@ func (x *UpgradeRoomToGuildResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpgradeRoomToGuildResponse.ProtoReflect.Descriptor instead. func (*UpgradeRoomToGuildResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{25} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{26} } // Used in the `DeleteGuild` endpoint. @@ -1566,7 +1624,7 @@ type DeleteGuildRequest struct { func (x *DeleteGuildRequest) Reset() { *x = DeleteGuildRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[26] + mi := &file_chat_v1_guilds_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1579,7 +1637,7 @@ func (x *DeleteGuildRequest) String() string { func (*DeleteGuildRequest) ProtoMessage() {} func (x *DeleteGuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[26] + mi := &file_chat_v1_guilds_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1592,7 +1650,7 @@ func (x *DeleteGuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGuildRequest.ProtoReflect.Descriptor instead. func (*DeleteGuildRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{26} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{27} } func (x *DeleteGuildRequest) GetGuildId() uint64 { @@ -1612,7 +1670,7 @@ type DeleteGuildResponse struct { func (x *DeleteGuildResponse) Reset() { *x = DeleteGuildResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[27] + mi := &file_chat_v1_guilds_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1625,7 +1683,7 @@ func (x *DeleteGuildResponse) String() string { func (*DeleteGuildResponse) ProtoMessage() {} func (x *DeleteGuildResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[27] + mi := &file_chat_v1_guilds_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1638,7 +1696,7 @@ func (x *DeleteGuildResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteGuildResponse.ProtoReflect.Descriptor instead. func (*DeleteGuildResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{27} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{28} } // Used in the `DeleteInvite` endpoint. @@ -1656,7 +1714,7 @@ type DeleteInviteRequest struct { func (x *DeleteInviteRequest) Reset() { *x = DeleteInviteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[28] + mi := &file_chat_v1_guilds_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1669,7 +1727,7 @@ func (x *DeleteInviteRequest) String() string { func (*DeleteInviteRequest) ProtoMessage() {} func (x *DeleteInviteRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[28] + mi := &file_chat_v1_guilds_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1682,7 +1740,7 @@ func (x *DeleteInviteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteInviteRequest.ProtoReflect.Descriptor instead. func (*DeleteInviteRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{28} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{29} } func (x *DeleteInviteRequest) GetGuildId() uint64 { @@ -1709,7 +1767,7 @@ type DeleteInviteResponse struct { func (x *DeleteInviteResponse) Reset() { *x = DeleteInviteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[29] + mi := &file_chat_v1_guilds_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1722,7 +1780,7 @@ func (x *DeleteInviteResponse) String() string { func (*DeleteInviteResponse) ProtoMessage() {} func (x *DeleteInviteResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[29] + mi := &file_chat_v1_guilds_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1735,7 +1793,7 @@ func (x *DeleteInviteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteInviteResponse.ProtoReflect.Descriptor instead. func (*DeleteInviteResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{29} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{30} } // Used in the `JoinGuild` endpoint. @@ -1751,7 +1809,7 @@ type JoinGuildRequest struct { func (x *JoinGuildRequest) Reset() { *x = JoinGuildRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[30] + mi := &file_chat_v1_guilds_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1764,7 +1822,7 @@ func (x *JoinGuildRequest) String() string { func (*JoinGuildRequest) ProtoMessage() {} func (x *JoinGuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[30] + mi := &file_chat_v1_guilds_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1777,7 +1835,7 @@ func (x *JoinGuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use JoinGuildRequest.ProtoReflect.Descriptor instead. func (*JoinGuildRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{30} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{31} } func (x *JoinGuildRequest) GetInviteId() string { @@ -1800,7 +1858,7 @@ type JoinGuildResponse struct { func (x *JoinGuildResponse) Reset() { *x = JoinGuildResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[31] + mi := &file_chat_v1_guilds_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1813,7 +1871,7 @@ func (x *JoinGuildResponse) String() string { func (*JoinGuildResponse) ProtoMessage() {} func (x *JoinGuildResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[31] + mi := &file_chat_v1_guilds_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1826,7 +1884,7 @@ func (x *JoinGuildResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use JoinGuildResponse.ProtoReflect.Descriptor instead. func (*JoinGuildResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{31} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{32} } func (x *JoinGuildResponse) GetGuildId() uint64 { @@ -1849,7 +1907,7 @@ type PreviewGuildRequest struct { func (x *PreviewGuildRequest) Reset() { *x = PreviewGuildRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[32] + mi := &file_chat_v1_guilds_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1862,7 +1920,7 @@ func (x *PreviewGuildRequest) String() string { func (*PreviewGuildRequest) ProtoMessage() {} func (x *PreviewGuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[32] + mi := &file_chat_v1_guilds_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1875,7 +1933,7 @@ func (x *PreviewGuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PreviewGuildRequest.ProtoReflect.Descriptor instead. func (*PreviewGuildRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{32} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{33} } func (x *PreviewGuildRequest) GetInviteId() string { @@ -1902,7 +1960,7 @@ type PreviewGuildResponse struct { func (x *PreviewGuildResponse) Reset() { *x = PreviewGuildResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[33] + mi := &file_chat_v1_guilds_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1915,7 +1973,7 @@ func (x *PreviewGuildResponse) String() string { func (*PreviewGuildResponse) ProtoMessage() {} func (x *PreviewGuildResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[33] + mi := &file_chat_v1_guilds_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1928,7 +1986,7 @@ func (x *PreviewGuildResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PreviewGuildResponse.ProtoReflect.Descriptor instead. func (*PreviewGuildResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{33} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{34} } func (x *PreviewGuildResponse) GetName() string { @@ -1965,7 +2023,7 @@ type LeaveGuildRequest struct { func (x *LeaveGuildRequest) Reset() { *x = LeaveGuildRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[34] + mi := &file_chat_v1_guilds_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1978,7 +2036,7 @@ func (x *LeaveGuildRequest) String() string { func (*LeaveGuildRequest) ProtoMessage() {} func (x *LeaveGuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[34] + mi := &file_chat_v1_guilds_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1991,7 +2049,7 @@ func (x *LeaveGuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LeaveGuildRequest.ProtoReflect.Descriptor instead. func (*LeaveGuildRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{34} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{35} } func (x *LeaveGuildRequest) GetGuildId() uint64 { @@ -2011,7 +2069,7 @@ type LeaveGuildResponse struct { func (x *LeaveGuildResponse) Reset() { *x = LeaveGuildResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[35] + mi := &file_chat_v1_guilds_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2024,7 +2082,7 @@ func (x *LeaveGuildResponse) String() string { func (*LeaveGuildResponse) ProtoMessage() {} func (x *LeaveGuildResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[35] + mi := &file_chat_v1_guilds_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2037,7 +2095,7 @@ func (x *LeaveGuildResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LeaveGuildResponse.ProtoReflect.Descriptor instead. func (*LeaveGuildResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{35} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{36} } // Used in `BanUser` endpoint. @@ -2055,7 +2113,7 @@ type BanUserRequest struct { func (x *BanUserRequest) Reset() { *x = BanUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[36] + mi := &file_chat_v1_guilds_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2068,7 +2126,7 @@ func (x *BanUserRequest) String() string { func (*BanUserRequest) ProtoMessage() {} func (x *BanUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[36] + mi := &file_chat_v1_guilds_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2081,7 +2139,7 @@ func (x *BanUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BanUserRequest.ProtoReflect.Descriptor instead. func (*BanUserRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{36} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{37} } func (x *BanUserRequest) GetGuildId() uint64 { @@ -2108,7 +2166,7 @@ type BanUserResponse struct { func (x *BanUserResponse) Reset() { *x = BanUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[37] + mi := &file_chat_v1_guilds_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2121,7 +2179,7 @@ func (x *BanUserResponse) String() string { func (*BanUserResponse) ProtoMessage() {} func (x *BanUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[37] + mi := &file_chat_v1_guilds_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2134,7 +2192,7 @@ func (x *BanUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BanUserResponse.ProtoReflect.Descriptor instead. func (*BanUserResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{37} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{38} } // Used in `KickUser` endpoint. @@ -2152,7 +2210,7 @@ type KickUserRequest struct { func (x *KickUserRequest) Reset() { *x = KickUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[38] + mi := &file_chat_v1_guilds_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2165,7 +2223,7 @@ func (x *KickUserRequest) String() string { func (*KickUserRequest) ProtoMessage() {} func (x *KickUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[38] + mi := &file_chat_v1_guilds_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2178,7 +2236,7 @@ func (x *KickUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use KickUserRequest.ProtoReflect.Descriptor instead. func (*KickUserRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{38} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{39} } func (x *KickUserRequest) GetGuildId() uint64 { @@ -2205,7 +2263,7 @@ type KickUserResponse struct { func (x *KickUserResponse) Reset() { *x = KickUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[39] + mi := &file_chat_v1_guilds_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2218,7 +2276,7 @@ func (x *KickUserResponse) String() string { func (*KickUserResponse) ProtoMessage() {} func (x *KickUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[39] + mi := &file_chat_v1_guilds_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2231,7 +2289,7 @@ func (x *KickUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use KickUserResponse.ProtoReflect.Descriptor instead. func (*KickUserResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{39} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{40} } // Used in `UnbanUser` endpoint. @@ -2249,7 +2307,7 @@ type UnbanUserRequest struct { func (x *UnbanUserRequest) Reset() { *x = UnbanUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[40] + mi := &file_chat_v1_guilds_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2262,7 +2320,7 @@ func (x *UnbanUserRequest) String() string { func (*UnbanUserRequest) ProtoMessage() {} func (x *UnbanUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[40] + mi := &file_chat_v1_guilds_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2275,7 +2333,7 @@ func (x *UnbanUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbanUserRequest.ProtoReflect.Descriptor instead. func (*UnbanUserRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{40} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{41} } func (x *UnbanUserRequest) GetGuildId() uint64 { @@ -2302,7 +2360,7 @@ type UnbanUserResponse struct { func (x *UnbanUserResponse) Reset() { *x = UnbanUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[41] + mi := &file_chat_v1_guilds_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2315,7 +2373,7 @@ func (x *UnbanUserResponse) String() string { func (*UnbanUserResponse) ProtoMessage() {} func (x *UnbanUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[41] + mi := &file_chat_v1_guilds_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2328,7 +2386,7 @@ func (x *UnbanUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnbanUserResponse.ProtoReflect.Descriptor instead. func (*UnbanUserResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{41} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{42} } // Used in `GetBannedUsers` endpoint. @@ -2344,7 +2402,7 @@ type GetBannedUsersRequest struct { func (x *GetBannedUsersRequest) Reset() { *x = GetBannedUsersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[42] + mi := &file_chat_v1_guilds_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2357,7 +2415,7 @@ func (x *GetBannedUsersRequest) String() string { func (*GetBannedUsersRequest) ProtoMessage() {} func (x *GetBannedUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[42] + mi := &file_chat_v1_guilds_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2370,7 +2428,7 @@ func (x *GetBannedUsersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBannedUsersRequest.ProtoReflect.Descriptor instead. func (*GetBannedUsersRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{42} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{43} } func (x *GetBannedUsersRequest) GetGuildId() uint64 { @@ -2393,7 +2451,7 @@ type GetBannedUsersResponse struct { func (x *GetBannedUsersResponse) Reset() { *x = GetBannedUsersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[43] + mi := &file_chat_v1_guilds_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2406,7 +2464,7 @@ func (x *GetBannedUsersResponse) String() string { func (*GetBannedUsersResponse) ProtoMessage() {} func (x *GetBannedUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[43] + mi := &file_chat_v1_guilds_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2419,7 +2477,7 @@ func (x *GetBannedUsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBannedUsersResponse.ProtoReflect.Descriptor instead. func (*GetBannedUsersResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{43} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{44} } func (x *GetBannedUsersResponse) GetBannedUsers() []uint64 { @@ -2444,7 +2502,7 @@ type GrantOwnershipRequest struct { func (x *GrantOwnershipRequest) Reset() { *x = GrantOwnershipRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[44] + mi := &file_chat_v1_guilds_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2457,7 +2515,7 @@ func (x *GrantOwnershipRequest) String() string { func (*GrantOwnershipRequest) ProtoMessage() {} func (x *GrantOwnershipRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[44] + mi := &file_chat_v1_guilds_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2470,7 +2528,7 @@ func (x *GrantOwnershipRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GrantOwnershipRequest.ProtoReflect.Descriptor instead. func (*GrantOwnershipRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{44} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{45} } func (x *GrantOwnershipRequest) GetGuildId() uint64 { @@ -2497,7 +2555,7 @@ type GrantOwnershipResponse struct { func (x *GrantOwnershipResponse) Reset() { *x = GrantOwnershipResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[45] + mi := &file_chat_v1_guilds_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2510,7 +2568,7 @@ func (x *GrantOwnershipResponse) String() string { func (*GrantOwnershipResponse) ProtoMessage() {} func (x *GrantOwnershipResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[45] + mi := &file_chat_v1_guilds_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2523,7 +2581,7 @@ func (x *GrantOwnershipResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GrantOwnershipResponse.ProtoReflect.Descriptor instead. func (*GrantOwnershipResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{45} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{46} } // Request for GiveUpOwnership @@ -2539,7 +2597,7 @@ type GiveUpOwnershipRequest struct { func (x *GiveUpOwnershipRequest) Reset() { *x = GiveUpOwnershipRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[46] + mi := &file_chat_v1_guilds_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2552,7 +2610,7 @@ func (x *GiveUpOwnershipRequest) String() string { func (*GiveUpOwnershipRequest) ProtoMessage() {} func (x *GiveUpOwnershipRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[46] + mi := &file_chat_v1_guilds_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2565,7 +2623,7 @@ func (x *GiveUpOwnershipRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GiveUpOwnershipRequest.ProtoReflect.Descriptor instead. func (*GiveUpOwnershipRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{46} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{47} } func (x *GiveUpOwnershipRequest) GetGuildId() uint64 { @@ -2585,7 +2643,7 @@ type GiveUpOwnershipResponse struct { func (x *GiveUpOwnershipResponse) Reset() { *x = GiveUpOwnershipResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[47] + mi := &file_chat_v1_guilds_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2598,7 +2656,7 @@ func (x *GiveUpOwnershipResponse) String() string { func (*GiveUpOwnershipResponse) ProtoMessage() {} func (x *GiveUpOwnershipResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[47] + mi := &file_chat_v1_guilds_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2611,7 +2669,7 @@ func (x *GiveUpOwnershipResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GiveUpOwnershipResponse.ProtoReflect.Descriptor instead. func (*GiveUpOwnershipResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{47} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{48} } // Used in `GetPendingInvites` endpoint. @@ -2624,7 +2682,7 @@ type GetPendingInvitesRequest struct { func (x *GetPendingInvitesRequest) Reset() { *x = GetPendingInvitesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[48] + mi := &file_chat_v1_guilds_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2637,7 +2695,7 @@ func (x *GetPendingInvitesRequest) String() string { func (*GetPendingInvitesRequest) ProtoMessage() {} func (x *GetPendingInvitesRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[48] + mi := &file_chat_v1_guilds_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2650,7 +2708,7 @@ func (x *GetPendingInvitesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPendingInvitesRequest.ProtoReflect.Descriptor instead. func (*GetPendingInvitesRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{48} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{49} } // Used in `GetPendingInvites` endpoint. @@ -2666,7 +2724,7 @@ type GetPendingInvitesResponse struct { func (x *GetPendingInvitesResponse) Reset() { *x = GetPendingInvitesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[49] + mi := &file_chat_v1_guilds_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2679,7 +2737,7 @@ func (x *GetPendingInvitesResponse) String() string { func (*GetPendingInvitesResponse) ProtoMessage() {} func (x *GetPendingInvitesResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[49] + mi := &file_chat_v1_guilds_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2692,7 +2750,7 @@ func (x *GetPendingInvitesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPendingInvitesResponse.ProtoReflect.Descriptor instead. func (*GetPendingInvitesResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{49} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{50} } func (x *GetPendingInvitesResponse) GetPendingInvites() []*PendingInvite { @@ -2717,7 +2775,7 @@ type RejectPendingInviteRequest struct { func (x *RejectPendingInviteRequest) Reset() { *x = RejectPendingInviteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[50] + mi := &file_chat_v1_guilds_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2730,7 +2788,7 @@ func (x *RejectPendingInviteRequest) String() string { func (*RejectPendingInviteRequest) ProtoMessage() {} func (x *RejectPendingInviteRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[50] + mi := &file_chat_v1_guilds_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2743,7 +2801,7 @@ func (x *RejectPendingInviteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RejectPendingInviteRequest.ProtoReflect.Descriptor instead. func (*RejectPendingInviteRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{50} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{51} } func (x *RejectPendingInviteRequest) GetInviteId() string { @@ -2770,7 +2828,7 @@ type RejectPendingInviteResponse struct { func (x *RejectPendingInviteResponse) Reset() { *x = RejectPendingInviteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[51] + mi := &file_chat_v1_guilds_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2783,7 +2841,7 @@ func (x *RejectPendingInviteResponse) String() string { func (*RejectPendingInviteResponse) ProtoMessage() {} func (x *RejectPendingInviteResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[51] + mi := &file_chat_v1_guilds_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2796,7 +2854,7 @@ func (x *RejectPendingInviteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RejectPendingInviteResponse.ProtoReflect.Descriptor instead. func (*RejectPendingInviteResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{51} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{52} } // Used in `IgnorePendingInvite` endpoint. @@ -2814,7 +2872,7 @@ type IgnorePendingInviteRequest struct { func (x *IgnorePendingInviteRequest) Reset() { *x = IgnorePendingInviteRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[52] + mi := &file_chat_v1_guilds_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2827,7 +2885,7 @@ func (x *IgnorePendingInviteRequest) String() string { func (*IgnorePendingInviteRequest) ProtoMessage() {} func (x *IgnorePendingInviteRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[52] + mi := &file_chat_v1_guilds_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2840,7 +2898,7 @@ func (x *IgnorePendingInviteRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IgnorePendingInviteRequest.ProtoReflect.Descriptor instead. func (*IgnorePendingInviteRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{52} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{53} } func (x *IgnorePendingInviteRequest) GetInviteId() string { @@ -2867,7 +2925,7 @@ type IgnorePendingInviteResponse struct { func (x *IgnorePendingInviteResponse) Reset() { *x = IgnorePendingInviteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[53] + mi := &file_chat_v1_guilds_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2880,7 +2938,7 @@ func (x *IgnorePendingInviteResponse) String() string { func (*IgnorePendingInviteResponse) ProtoMessage() {} func (x *IgnorePendingInviteResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[53] + mi := &file_chat_v1_guilds_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2893,7 +2951,7 @@ func (x *IgnorePendingInviteResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IgnorePendingInviteResponse.ProtoReflect.Descriptor instead. func (*IgnorePendingInviteResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{53} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{54} } // Used in `InviteUserToGuild` endpoint. @@ -2913,7 +2971,7 @@ type InviteUserToGuildRequest struct { func (x *InviteUserToGuildRequest) Reset() { *x = InviteUserToGuildRequest{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[54] + mi := &file_chat_v1_guilds_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2926,7 +2984,7 @@ func (x *InviteUserToGuildRequest) String() string { func (*InviteUserToGuildRequest) ProtoMessage() {} func (x *InviteUserToGuildRequest) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[54] + mi := &file_chat_v1_guilds_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2939,7 +2997,7 @@ func (x *InviteUserToGuildRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InviteUserToGuildRequest.ProtoReflect.Descriptor instead. func (*InviteUserToGuildRequest) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{54} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{55} } func (x *InviteUserToGuildRequest) GetUserName() string { @@ -2973,7 +3031,7 @@ type InviteUserToGuildResponse struct { func (x *InviteUserToGuildResponse) Reset() { *x = InviteUserToGuildResponse{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[55] + mi := &file_chat_v1_guilds_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2986,7 +3044,7 @@ func (x *InviteUserToGuildResponse) String() string { func (*InviteUserToGuildResponse) ProtoMessage() {} func (x *InviteUserToGuildResponse) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[55] + mi := &file_chat_v1_guilds_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2999,7 +3057,7 @@ func (x *InviteUserToGuildResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InviteUserToGuildResponse.ProtoReflect.Descriptor instead. func (*InviteUserToGuildResponse) Descriptor() ([]byte, []int) { - return file_chat_v1_guilds_proto_rawDescGZIP(), []int{55} + return file_chat_v1_guilds_proto_rawDescGZIP(), []int{56} } // A "normal" guild as in a guild that allows multiple channels. @@ -3012,7 +3070,7 @@ type GuildKind_Normal struct { func (x *GuildKind_Normal) Reset() { *x = GuildKind_Normal{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[56] + mi := &file_chat_v1_guilds_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3025,7 +3083,7 @@ func (x *GuildKind_Normal) String() string { func (*GuildKind_Normal) ProtoMessage() {} func (x *GuildKind_Normal) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[56] + mi := &file_chat_v1_guilds_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3053,7 +3111,7 @@ type GuildKind_Room struct { func (x *GuildKind_Room) Reset() { *x = GuildKind_Room{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[57] + mi := &file_chat_v1_guilds_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3066,7 +3124,7 @@ func (x *GuildKind_Room) String() string { func (*GuildKind_Room) ProtoMessage() {} func (x *GuildKind_Room) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[57] + mi := &file_chat_v1_guilds_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3105,7 +3163,7 @@ type GuildKind_DirectMessage struct { func (x *GuildKind_DirectMessage) Reset() { *x = GuildKind_DirectMessage{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_guilds_proto_msgTypes[58] + mi := &file_chat_v1_guilds_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3118,7 +3176,7 @@ func (x *GuildKind_DirectMessage) String() string { func (*GuildKind_DirectMessage) ProtoMessage() {} func (x *GuildKind_DirectMessage) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_guilds_proto_msgTypes[58] + mi := &file_chat_v1_guilds_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3180,45 +3238,37 @@ var file_chat_v1_guilds_proto_rawDesc = []byte{ 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4a, 0x0a, - 0x06, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, - 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5d, 0x0a, 0x0c, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x22, 0x7b, 0x0a, 0x0d, 0x50, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x0e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, - 0xa5, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x69, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x70, - 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, - 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x30, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0xa4, 0x01, 0x0a, 0x11, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x57, 0x0a, + 0x0b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, + 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x4a, 0x0a, 0x06, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x73, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x55, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x5d, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, + 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, + 0x30, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x22, 0x7b, 0x0a, 0x0d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x48, + 0x0a, 0x0e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, @@ -3228,205 +3278,219 @@ var file_chat_v1_guilds_proto_rawDesc = []byte{ 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x2f, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, - 0x64, 0x22, 0x69, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x38, 0x0a, 0x1b, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, - 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, - 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, - 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, - 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x65, - 0x73, 0x22, 0x33, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x22, - 0x2c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x41, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x22, 0x33, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, - 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x38, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, - 0x64, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x16, 0x47, 0x65, - 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, - 0x33, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, - 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x50, 0x69, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x22, 0x30, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x22, 0xa4, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, + 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x20, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x19, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x6f, - 0x6f, 0x6d, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x55, - 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x0a, 0x12, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x61, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2f, 0x0a, 0x12, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x4d, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, - 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x0a, 0x10, 0x4a, 0x6f, 0x69, 0x6e, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x11, 0x4a, 0x6f, 0x69, - 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x32, 0x0a, 0x13, 0x50, 0x72, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, 0x78, 0x0a, - 0x14, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x69, 0x63, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x70, 0x69, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x2e, 0x0a, 0x11, 0x4c, 0x65, 0x61, 0x76, 0x65, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, - 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x4c, 0x65, 0x61, 0x76, 0x65, - 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x0a, - 0x0e, 0x42, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x1a, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x38, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, + 0x69, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x5f, 0x75, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6f, + 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, + 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, + 0x0a, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x06, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x22, 0x2c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x53, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x49, 0x64, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x33, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0xfa, 0x01, + 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x0a, 0x0f, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x65, + 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, + 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, + 0x77, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x4a, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, + 0x77, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, + 0x77, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, + 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x20, 0x0a, 0x1e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x19, + 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x6f, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x12, 0x0a, - 0x10, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x46, 0x0a, 0x10, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x6c, 0x64, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, + 0x6f, 0x6f, 0x6d, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2f, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x13, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2f, 0x0a, 0x10, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x11, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x22, 0x32, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x14, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, + 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x22, 0x2e, 0x0a, 0x11, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x55, 0x6e, 0x62, - 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x04, 0x52, 0x0b, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, - 0x54, 0x0a, 0x15, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, + 0x22, 0x14, 0x0a, 0x12, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x33, 0x0a, 0x16, 0x47, 0x69, 0x76, 0x65, 0x55, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, - 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x47, 0x69, 0x76, 0x65, 0x55, 0x70, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x65, 0x0a, 0x19, 0x47, - 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x70, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x52, 0x0e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x73, 0x22, 0x69, 0x0a, 0x1a, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x65, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1d, 0x0a, - 0x1b, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x1a, - 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x49, 0x67, 0x6e, 0x6f, 0x72, - 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x11, 0x0a, 0x0f, + 0x42, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x45, 0x0a, 0x0f, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x10, 0x55, 0x6e, + 0x62, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x54, 0x0a, 0x15, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, + 0x6e, 0x65, 0x77, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x18, + 0x0a, 0x16, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x16, 0x47, 0x69, 0x76, 0x65, + 0x55, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x19, 0x0a, + 0x17, 0x47, 0x69, 0x76, 0x65, 0x55, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x65, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x0e, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x22, 0x69, 0x0a, 0x1a, 0x52, + 0x65, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x1a, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x50, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x67, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x45, 0x41, 0x56, 0x45, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x4c, - 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x41, 0x56, - 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, - 0x02, 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x47, 0x75, 0x69, 0x6c, - 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x2d, 0x64, 0x65, - 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x68, 0x69, 0x62, 0x73, 0x68, - 0x69, 0x62, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x63, - 0x68, 0x61, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x58, 0xaa, 0x02, 0x10, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, - 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, 0x43, 0x68, 0x61, 0x74, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x1c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, 0x43, 0x68, 0x61, - 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x12, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x3a, 0x3a, 0x43, 0x68, 0x61, - 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x22, 0x1d, 0x0a, 0x1b, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x82, 0x01, 0x0a, 0x18, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2a, 0x67, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x12, 0x26, 0x0a, 0x22, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, + 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x4c, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x41, 0x56, + 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x10, + 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x02, 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, + 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, + 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, + 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x2d, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, + 0x6e, 0x74, 0x2f, 0x73, 0x68, 0x69, 0x62, 0x73, 0x68, 0x69, 0x62, 0x2f, 0x67, 0x65, 0x6e, 0x2f, + 0x63, 0x68, 0x61, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x68, 0x61, 0x74, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x50, 0x43, 0x58, 0xaa, 0x02, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x43, 0x68, 0x61, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5c, 0x43, 0x68, 0x61, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, 0x43, 0x68, 0x61, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x3a, 0x3a, 0x43, 0x68, 0x61, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3442,89 +3506,91 @@ func file_chat_v1_guilds_proto_rawDescGZIP() []byte { } var file_chat_v1_guilds_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_chat_v1_guilds_proto_msgTypes = make([]protoimpl.MessageInfo, 59) +var file_chat_v1_guilds_proto_msgTypes = make([]protoimpl.MessageInfo, 60) var file_chat_v1_guilds_proto_goTypes = []interface{}{ (LeaveReason)(0), // 0: protocol.chat.v1.LeaveReason (*GuildKind)(nil), // 1: protocol.chat.v1.GuildKind (*Guild)(nil), // 2: protocol.chat.v1.Guild - (*Invite)(nil), // 3: protocol.chat.v1.Invite - (*InviteWithId)(nil), // 4: protocol.chat.v1.InviteWithId - (*PendingInvite)(nil), // 5: protocol.chat.v1.PendingInvite - (*GuildListEntry)(nil), // 6: protocol.chat.v1.GuildListEntry - (*CreateGuildRequest)(nil), // 7: protocol.chat.v1.CreateGuildRequest - (*CreateGuildResponse)(nil), // 8: protocol.chat.v1.CreateGuildResponse - (*CreateRoomRequest)(nil), // 9: protocol.chat.v1.CreateRoomRequest - (*CreateRoomResponse)(nil), // 10: protocol.chat.v1.CreateRoomResponse - (*CreateDirectMessageRequest)(nil), // 11: protocol.chat.v1.CreateDirectMessageRequest - (*CreateDirectMessageResponse)(nil), // 12: protocol.chat.v1.CreateDirectMessageResponse - (*CreateInviteRequest)(nil), // 13: protocol.chat.v1.CreateInviteRequest - (*CreateInviteResponse)(nil), // 14: protocol.chat.v1.CreateInviteResponse - (*GetGuildListRequest)(nil), // 15: protocol.chat.v1.GetGuildListRequest - (*GetGuildListResponse)(nil), // 16: protocol.chat.v1.GetGuildListResponse - (*GetGuildRequest)(nil), // 17: protocol.chat.v1.GetGuildRequest - (*GetGuildResponse)(nil), // 18: protocol.chat.v1.GetGuildResponse - (*GetGuildInvitesRequest)(nil), // 19: protocol.chat.v1.GetGuildInvitesRequest - (*GetGuildInvitesResponse)(nil), // 20: protocol.chat.v1.GetGuildInvitesResponse - (*GetGuildMembersRequest)(nil), // 21: protocol.chat.v1.GetGuildMembersRequest - (*GetGuildMembersResponse)(nil), // 22: protocol.chat.v1.GetGuildMembersResponse - (*UpdateGuildInformationRequest)(nil), // 23: protocol.chat.v1.UpdateGuildInformationRequest - (*UpdateGuildInformationResponse)(nil), // 24: protocol.chat.v1.UpdateGuildInformationResponse - (*UpgradeRoomToGuildRequest)(nil), // 25: protocol.chat.v1.UpgradeRoomToGuildRequest - (*UpgradeRoomToGuildResponse)(nil), // 26: protocol.chat.v1.UpgradeRoomToGuildResponse - (*DeleteGuildRequest)(nil), // 27: protocol.chat.v1.DeleteGuildRequest - (*DeleteGuildResponse)(nil), // 28: protocol.chat.v1.DeleteGuildResponse - (*DeleteInviteRequest)(nil), // 29: protocol.chat.v1.DeleteInviteRequest - (*DeleteInviteResponse)(nil), // 30: protocol.chat.v1.DeleteInviteResponse - (*JoinGuildRequest)(nil), // 31: protocol.chat.v1.JoinGuildRequest - (*JoinGuildResponse)(nil), // 32: protocol.chat.v1.JoinGuildResponse - (*PreviewGuildRequest)(nil), // 33: protocol.chat.v1.PreviewGuildRequest - (*PreviewGuildResponse)(nil), // 34: protocol.chat.v1.PreviewGuildResponse - (*LeaveGuildRequest)(nil), // 35: protocol.chat.v1.LeaveGuildRequest - (*LeaveGuildResponse)(nil), // 36: protocol.chat.v1.LeaveGuildResponse - (*BanUserRequest)(nil), // 37: protocol.chat.v1.BanUserRequest - (*BanUserResponse)(nil), // 38: protocol.chat.v1.BanUserResponse - (*KickUserRequest)(nil), // 39: protocol.chat.v1.KickUserRequest - (*KickUserResponse)(nil), // 40: protocol.chat.v1.KickUserResponse - (*UnbanUserRequest)(nil), // 41: protocol.chat.v1.UnbanUserRequest - (*UnbanUserResponse)(nil), // 42: protocol.chat.v1.UnbanUserResponse - (*GetBannedUsersRequest)(nil), // 43: protocol.chat.v1.GetBannedUsersRequest - (*GetBannedUsersResponse)(nil), // 44: protocol.chat.v1.GetBannedUsersResponse - (*GrantOwnershipRequest)(nil), // 45: protocol.chat.v1.GrantOwnershipRequest - (*GrantOwnershipResponse)(nil), // 46: protocol.chat.v1.GrantOwnershipResponse - (*GiveUpOwnershipRequest)(nil), // 47: protocol.chat.v1.GiveUpOwnershipRequest - (*GiveUpOwnershipResponse)(nil), // 48: protocol.chat.v1.GiveUpOwnershipResponse - (*GetPendingInvitesRequest)(nil), // 49: protocol.chat.v1.GetPendingInvitesRequest - (*GetPendingInvitesResponse)(nil), // 50: protocol.chat.v1.GetPendingInvitesResponse - (*RejectPendingInviteRequest)(nil), // 51: protocol.chat.v1.RejectPendingInviteRequest - (*RejectPendingInviteResponse)(nil), // 52: protocol.chat.v1.RejectPendingInviteResponse - (*IgnorePendingInviteRequest)(nil), // 53: protocol.chat.v1.IgnorePendingInviteRequest - (*IgnorePendingInviteResponse)(nil), // 54: protocol.chat.v1.IgnorePendingInviteResponse - (*InviteUserToGuildRequest)(nil), // 55: protocol.chat.v1.InviteUserToGuildRequest - (*InviteUserToGuildResponse)(nil), // 56: protocol.chat.v1.InviteUserToGuildResponse - (*GuildKind_Normal)(nil), // 57: protocol.chat.v1.GuildKind.Normal - (*GuildKind_Room)(nil), // 58: protocol.chat.v1.GuildKind.Room - (*GuildKind_DirectMessage)(nil), // 59: protocol.chat.v1.GuildKind.DirectMessage - (*v1.Metadata)(nil), // 60: protocol.harmonytypes.v1.Metadata + (*GuildWithId)(nil), // 3: protocol.chat.v1.GuildWithId + (*Invite)(nil), // 4: protocol.chat.v1.Invite + (*InviteWithId)(nil), // 5: protocol.chat.v1.InviteWithId + (*PendingInvite)(nil), // 6: protocol.chat.v1.PendingInvite + (*GuildListEntry)(nil), // 7: protocol.chat.v1.GuildListEntry + (*CreateGuildRequest)(nil), // 8: protocol.chat.v1.CreateGuildRequest + (*CreateGuildResponse)(nil), // 9: protocol.chat.v1.CreateGuildResponse + (*CreateRoomRequest)(nil), // 10: protocol.chat.v1.CreateRoomRequest + (*CreateRoomResponse)(nil), // 11: protocol.chat.v1.CreateRoomResponse + (*CreateDirectMessageRequest)(nil), // 12: protocol.chat.v1.CreateDirectMessageRequest + (*CreateDirectMessageResponse)(nil), // 13: protocol.chat.v1.CreateDirectMessageResponse + (*CreateInviteRequest)(nil), // 14: protocol.chat.v1.CreateInviteRequest + (*CreateInviteResponse)(nil), // 15: protocol.chat.v1.CreateInviteResponse + (*GetGuildListRequest)(nil), // 16: protocol.chat.v1.GetGuildListRequest + (*GetGuildListResponse)(nil), // 17: protocol.chat.v1.GetGuildListResponse + (*GetGuildRequest)(nil), // 18: protocol.chat.v1.GetGuildRequest + (*GetGuildResponse)(nil), // 19: protocol.chat.v1.GetGuildResponse + (*GetGuildInvitesRequest)(nil), // 20: protocol.chat.v1.GetGuildInvitesRequest + (*GetGuildInvitesResponse)(nil), // 21: protocol.chat.v1.GetGuildInvitesResponse + (*GetGuildMembersRequest)(nil), // 22: protocol.chat.v1.GetGuildMembersRequest + (*GetGuildMembersResponse)(nil), // 23: protocol.chat.v1.GetGuildMembersResponse + (*UpdateGuildInformationRequest)(nil), // 24: protocol.chat.v1.UpdateGuildInformationRequest + (*UpdateGuildInformationResponse)(nil), // 25: protocol.chat.v1.UpdateGuildInformationResponse + (*UpgradeRoomToGuildRequest)(nil), // 26: protocol.chat.v1.UpgradeRoomToGuildRequest + (*UpgradeRoomToGuildResponse)(nil), // 27: protocol.chat.v1.UpgradeRoomToGuildResponse + (*DeleteGuildRequest)(nil), // 28: protocol.chat.v1.DeleteGuildRequest + (*DeleteGuildResponse)(nil), // 29: protocol.chat.v1.DeleteGuildResponse + (*DeleteInviteRequest)(nil), // 30: protocol.chat.v1.DeleteInviteRequest + (*DeleteInviteResponse)(nil), // 31: protocol.chat.v1.DeleteInviteResponse + (*JoinGuildRequest)(nil), // 32: protocol.chat.v1.JoinGuildRequest + (*JoinGuildResponse)(nil), // 33: protocol.chat.v1.JoinGuildResponse + (*PreviewGuildRequest)(nil), // 34: protocol.chat.v1.PreviewGuildRequest + (*PreviewGuildResponse)(nil), // 35: protocol.chat.v1.PreviewGuildResponse + (*LeaveGuildRequest)(nil), // 36: protocol.chat.v1.LeaveGuildRequest + (*LeaveGuildResponse)(nil), // 37: protocol.chat.v1.LeaveGuildResponse + (*BanUserRequest)(nil), // 38: protocol.chat.v1.BanUserRequest + (*BanUserResponse)(nil), // 39: protocol.chat.v1.BanUserResponse + (*KickUserRequest)(nil), // 40: protocol.chat.v1.KickUserRequest + (*KickUserResponse)(nil), // 41: protocol.chat.v1.KickUserResponse + (*UnbanUserRequest)(nil), // 42: protocol.chat.v1.UnbanUserRequest + (*UnbanUserResponse)(nil), // 43: protocol.chat.v1.UnbanUserResponse + (*GetBannedUsersRequest)(nil), // 44: protocol.chat.v1.GetBannedUsersRequest + (*GetBannedUsersResponse)(nil), // 45: protocol.chat.v1.GetBannedUsersResponse + (*GrantOwnershipRequest)(nil), // 46: protocol.chat.v1.GrantOwnershipRequest + (*GrantOwnershipResponse)(nil), // 47: protocol.chat.v1.GrantOwnershipResponse + (*GiveUpOwnershipRequest)(nil), // 48: protocol.chat.v1.GiveUpOwnershipRequest + (*GiveUpOwnershipResponse)(nil), // 49: protocol.chat.v1.GiveUpOwnershipResponse + (*GetPendingInvitesRequest)(nil), // 50: protocol.chat.v1.GetPendingInvitesRequest + (*GetPendingInvitesResponse)(nil), // 51: protocol.chat.v1.GetPendingInvitesResponse + (*RejectPendingInviteRequest)(nil), // 52: protocol.chat.v1.RejectPendingInviteRequest + (*RejectPendingInviteResponse)(nil), // 53: protocol.chat.v1.RejectPendingInviteResponse + (*IgnorePendingInviteRequest)(nil), // 54: protocol.chat.v1.IgnorePendingInviteRequest + (*IgnorePendingInviteResponse)(nil), // 55: protocol.chat.v1.IgnorePendingInviteResponse + (*InviteUserToGuildRequest)(nil), // 56: protocol.chat.v1.InviteUserToGuildRequest + (*InviteUserToGuildResponse)(nil), // 57: protocol.chat.v1.InviteUserToGuildResponse + (*GuildKind_Normal)(nil), // 58: protocol.chat.v1.GuildKind.Normal + (*GuildKind_Room)(nil), // 59: protocol.chat.v1.GuildKind.Room + (*GuildKind_DirectMessage)(nil), // 60: protocol.chat.v1.GuildKind.DirectMessage + (*v1.Metadata)(nil), // 61: protocol.harmonytypes.v1.Metadata } var file_chat_v1_guilds_proto_depIdxs = []int32{ - 57, // 0: protocol.chat.v1.GuildKind.normal:type_name -> protocol.chat.v1.GuildKind.Normal - 58, // 1: protocol.chat.v1.GuildKind.room:type_name -> protocol.chat.v1.GuildKind.Room - 59, // 2: protocol.chat.v1.GuildKind.direct_message:type_name -> protocol.chat.v1.GuildKind.DirectMessage + 58, // 0: protocol.chat.v1.GuildKind.normal:type_name -> protocol.chat.v1.GuildKind.Normal + 59, // 1: protocol.chat.v1.GuildKind.room:type_name -> protocol.chat.v1.GuildKind.Room + 60, // 2: protocol.chat.v1.GuildKind.direct_message:type_name -> protocol.chat.v1.GuildKind.DirectMessage 1, // 3: protocol.chat.v1.Guild.kind:type_name -> protocol.chat.v1.GuildKind - 60, // 4: protocol.chat.v1.Guild.metadata:type_name -> protocol.harmonytypes.v1.Metadata - 3, // 5: protocol.chat.v1.InviteWithId.invite:type_name -> protocol.chat.v1.Invite - 60, // 6: protocol.chat.v1.CreateGuildRequest.metadata:type_name -> protocol.harmonytypes.v1.Metadata - 60, // 7: protocol.chat.v1.CreateRoomRequest.metadata:type_name -> protocol.harmonytypes.v1.Metadata - 6, // 8: protocol.chat.v1.GetGuildListResponse.guilds:type_name -> protocol.chat.v1.GuildListEntry - 2, // 9: protocol.chat.v1.GetGuildResponse.guild:type_name -> protocol.chat.v1.Guild - 4, // 10: protocol.chat.v1.GetGuildInvitesResponse.invites:type_name -> protocol.chat.v1.InviteWithId - 60, // 11: protocol.chat.v1.UpdateGuildInformationRequest.new_metadata:type_name -> protocol.harmonytypes.v1.Metadata - 5, // 12: protocol.chat.v1.GetPendingInvitesResponse.pending_invites:type_name -> protocol.chat.v1.PendingInvite - 13, // [13:13] is the sub-list for method output_type - 13, // [13:13] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 61, // 4: protocol.chat.v1.Guild.metadata:type_name -> protocol.harmonytypes.v1.Metadata + 2, // 5: protocol.chat.v1.GuildWithId.guild:type_name -> protocol.chat.v1.Guild + 4, // 6: protocol.chat.v1.InviteWithId.invite:type_name -> protocol.chat.v1.Invite + 61, // 7: protocol.chat.v1.CreateGuildRequest.metadata:type_name -> protocol.harmonytypes.v1.Metadata + 61, // 8: protocol.chat.v1.CreateRoomRequest.metadata:type_name -> protocol.harmonytypes.v1.Metadata + 7, // 9: protocol.chat.v1.GetGuildListResponse.guilds:type_name -> protocol.chat.v1.GuildListEntry + 2, // 10: protocol.chat.v1.GetGuildResponse.guild:type_name -> protocol.chat.v1.Guild + 5, // 11: protocol.chat.v1.GetGuildInvitesResponse.invites:type_name -> protocol.chat.v1.InviteWithId + 61, // 12: protocol.chat.v1.UpdateGuildInformationRequest.new_metadata:type_name -> protocol.harmonytypes.v1.Metadata + 6, // 13: protocol.chat.v1.GetPendingInvitesResponse.pending_invites:type_name -> protocol.chat.v1.PendingInvite + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_chat_v1_guilds_proto_init() } @@ -3558,7 +3624,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Invite); i { + switch v := v.(*GuildWithId); i { case 0: return &v.state case 1: @@ -3570,7 +3636,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteWithId); i { + switch v := v.(*Invite); i { case 0: return &v.state case 1: @@ -3582,7 +3648,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PendingInvite); i { + switch v := v.(*InviteWithId); i { case 0: return &v.state case 1: @@ -3594,7 +3660,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildListEntry); i { + switch v := v.(*PendingInvite); i { case 0: return &v.state case 1: @@ -3606,7 +3672,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateGuildRequest); i { + switch v := v.(*GuildListEntry); i { case 0: return &v.state case 1: @@ -3618,7 +3684,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateGuildResponse); i { + switch v := v.(*CreateGuildRequest); i { case 0: return &v.state case 1: @@ -3630,7 +3696,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRoomRequest); i { + switch v := v.(*CreateGuildResponse); i { case 0: return &v.state case 1: @@ -3642,7 +3708,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRoomResponse); i { + switch v := v.(*CreateRoomRequest); i { case 0: return &v.state case 1: @@ -3654,7 +3720,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateDirectMessageRequest); i { + switch v := v.(*CreateRoomResponse); i { case 0: return &v.state case 1: @@ -3666,7 +3732,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateDirectMessageResponse); i { + switch v := v.(*CreateDirectMessageRequest); i { case 0: return &v.state case 1: @@ -3678,7 +3744,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateInviteRequest); i { + switch v := v.(*CreateDirectMessageResponse); i { case 0: return &v.state case 1: @@ -3690,7 +3756,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateInviteResponse); i { + switch v := v.(*CreateInviteRequest); i { case 0: return &v.state case 1: @@ -3702,7 +3768,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGuildListRequest); i { + switch v := v.(*CreateInviteResponse); i { case 0: return &v.state case 1: @@ -3714,7 +3780,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGuildListResponse); i { + switch v := v.(*GetGuildListRequest); i { case 0: return &v.state case 1: @@ -3726,7 +3792,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGuildRequest); i { + switch v := v.(*GetGuildListResponse); i { case 0: return &v.state case 1: @@ -3738,7 +3804,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGuildResponse); i { + switch v := v.(*GetGuildRequest); i { case 0: return &v.state case 1: @@ -3750,7 +3816,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGuildInvitesRequest); i { + switch v := v.(*GetGuildResponse); i { case 0: return &v.state case 1: @@ -3762,7 +3828,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGuildInvitesResponse); i { + switch v := v.(*GetGuildInvitesRequest); i { case 0: return &v.state case 1: @@ -3774,7 +3840,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGuildMembersRequest); i { + switch v := v.(*GetGuildInvitesResponse); i { case 0: return &v.state case 1: @@ -3786,7 +3852,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGuildMembersResponse); i { + switch v := v.(*GetGuildMembersRequest); i { case 0: return &v.state case 1: @@ -3798,7 +3864,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateGuildInformationRequest); i { + switch v := v.(*GetGuildMembersResponse); i { case 0: return &v.state case 1: @@ -3810,7 +3876,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateGuildInformationResponse); i { + switch v := v.(*UpdateGuildInformationRequest); i { case 0: return &v.state case 1: @@ -3822,7 +3888,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpgradeRoomToGuildRequest); i { + switch v := v.(*UpdateGuildInformationResponse); i { case 0: return &v.state case 1: @@ -3834,7 +3900,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpgradeRoomToGuildResponse); i { + switch v := v.(*UpgradeRoomToGuildRequest); i { case 0: return &v.state case 1: @@ -3846,7 +3912,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteGuildRequest); i { + switch v := v.(*UpgradeRoomToGuildResponse); i { case 0: return &v.state case 1: @@ -3858,7 +3924,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteGuildResponse); i { + switch v := v.(*DeleteGuildRequest); i { case 0: return &v.state case 1: @@ -3870,7 +3936,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteInviteRequest); i { + switch v := v.(*DeleteGuildResponse); i { case 0: return &v.state case 1: @@ -3882,7 +3948,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteInviteResponse); i { + switch v := v.(*DeleteInviteRequest); i { case 0: return &v.state case 1: @@ -3894,7 +3960,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinGuildRequest); i { + switch v := v.(*DeleteInviteResponse); i { case 0: return &v.state case 1: @@ -3906,7 +3972,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinGuildResponse); i { + switch v := v.(*JoinGuildRequest); i { case 0: return &v.state case 1: @@ -3918,7 +3984,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PreviewGuildRequest); i { + switch v := v.(*JoinGuildResponse); i { case 0: return &v.state case 1: @@ -3930,7 +3996,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PreviewGuildResponse); i { + switch v := v.(*PreviewGuildRequest); i { case 0: return &v.state case 1: @@ -3942,7 +4008,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeaveGuildRequest); i { + switch v := v.(*PreviewGuildResponse); i { case 0: return &v.state case 1: @@ -3954,7 +4020,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeaveGuildResponse); i { + switch v := v.(*LeaveGuildRequest); i { case 0: return &v.state case 1: @@ -3966,7 +4032,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BanUserRequest); i { + switch v := v.(*LeaveGuildResponse); i { case 0: return &v.state case 1: @@ -3978,7 +4044,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BanUserResponse); i { + switch v := v.(*BanUserRequest); i { case 0: return &v.state case 1: @@ -3990,7 +4056,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickUserRequest); i { + switch v := v.(*BanUserResponse); i { case 0: return &v.state case 1: @@ -4002,7 +4068,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickUserResponse); i { + switch v := v.(*KickUserRequest); i { case 0: return &v.state case 1: @@ -4014,7 +4080,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnbanUserRequest); i { + switch v := v.(*KickUserResponse); i { case 0: return &v.state case 1: @@ -4026,7 +4092,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnbanUserResponse); i { + switch v := v.(*UnbanUserRequest); i { case 0: return &v.state case 1: @@ -4038,7 +4104,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBannedUsersRequest); i { + switch v := v.(*UnbanUserResponse); i { case 0: return &v.state case 1: @@ -4050,7 +4116,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBannedUsersResponse); i { + switch v := v.(*GetBannedUsersRequest); i { case 0: return &v.state case 1: @@ -4062,7 +4128,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GrantOwnershipRequest); i { + switch v := v.(*GetBannedUsersResponse); i { case 0: return &v.state case 1: @@ -4074,7 +4140,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GrantOwnershipResponse); i { + switch v := v.(*GrantOwnershipRequest); i { case 0: return &v.state case 1: @@ -4086,7 +4152,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GiveUpOwnershipRequest); i { + switch v := v.(*GrantOwnershipResponse); i { case 0: return &v.state case 1: @@ -4098,7 +4164,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GiveUpOwnershipResponse); i { + switch v := v.(*GiveUpOwnershipRequest); i { case 0: return &v.state case 1: @@ -4110,7 +4176,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPendingInvitesRequest); i { + switch v := v.(*GiveUpOwnershipResponse); i { case 0: return &v.state case 1: @@ -4122,7 +4188,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPendingInvitesResponse); i { + switch v := v.(*GetPendingInvitesRequest); i { case 0: return &v.state case 1: @@ -4134,7 +4200,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RejectPendingInviteRequest); i { + switch v := v.(*GetPendingInvitesResponse); i { case 0: return &v.state case 1: @@ -4146,7 +4212,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RejectPendingInviteResponse); i { + switch v := v.(*RejectPendingInviteRequest); i { case 0: return &v.state case 1: @@ -4158,7 +4224,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IgnorePendingInviteRequest); i { + switch v := v.(*RejectPendingInviteResponse); i { case 0: return &v.state case 1: @@ -4170,7 +4236,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IgnorePendingInviteResponse); i { + switch v := v.(*IgnorePendingInviteRequest); i { case 0: return &v.state case 1: @@ -4182,7 +4248,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteUserToGuildRequest); i { + switch v := v.(*IgnorePendingInviteResponse); i { case 0: return &v.state case 1: @@ -4194,7 +4260,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteUserToGuildResponse); i { + switch v := v.(*InviteUserToGuildRequest); i { case 0: return &v.state case 1: @@ -4206,7 +4272,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildKind_Normal); i { + switch v := v.(*InviteUserToGuildResponse); i { case 0: return &v.state case 1: @@ -4218,7 +4284,7 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GuildKind_Room); i { + switch v := v.(*GuildKind_Normal); i { case 0: return &v.state case 1: @@ -4230,6 +4296,18 @@ func file_chat_v1_guilds_proto_init() { } } file_chat_v1_guilds_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildKind_Room); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_guilds_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuildKind_DirectMessage); i { case 0: return &v.state @@ -4248,22 +4326,22 @@ func file_chat_v1_guilds_proto_init() { (*GuildKind_DirectMessage_)(nil), } file_chat_v1_guilds_proto_msgTypes[1].OneofWrappers = []interface{}{} - file_chat_v1_guilds_proto_msgTypes[4].OneofWrappers = []interface{}{} - file_chat_v1_guilds_proto_msgTypes[6].OneofWrappers = []interface{}{} - file_chat_v1_guilds_proto_msgTypes[8].OneofWrappers = []interface{}{} - file_chat_v1_guilds_proto_msgTypes[10].OneofWrappers = []interface{}{} - file_chat_v1_guilds_proto_msgTypes[22].OneofWrappers = []interface{}{} - file_chat_v1_guilds_proto_msgTypes[33].OneofWrappers = []interface{}{} - file_chat_v1_guilds_proto_msgTypes[50].OneofWrappers = []interface{}{} - file_chat_v1_guilds_proto_msgTypes[52].OneofWrappers = []interface{}{} - file_chat_v1_guilds_proto_msgTypes[54].OneofWrappers = []interface{}{} + file_chat_v1_guilds_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_chat_v1_guilds_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_chat_v1_guilds_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_chat_v1_guilds_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_chat_v1_guilds_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_chat_v1_guilds_proto_msgTypes[34].OneofWrappers = []interface{}{} + file_chat_v1_guilds_proto_msgTypes[51].OneofWrappers = []interface{}{} + file_chat_v1_guilds_proto_msgTypes[53].OneofWrappers = []interface{}{} + file_chat_v1_guilds_proto_msgTypes[55].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_chat_v1_guilds_proto_rawDesc, NumEnums: 1, - NumMessages: 59, + NumMessages: 60, NumExtensions: 0, NumServices: 0, }, diff --git a/vendor/github.com/harmony-development/shibshib/gen/chat/v1/stream.pb.go b/vendor/github.com/harmony-development/shibshib/gen/chat/v1/stream.pb.go index 8ff28f1a..792d3e78 100644 --- a/vendor/github.com/harmony-development/shibshib/gen/chat/v1/stream.pb.go +++ b/vendor/github.com/harmony-development/shibshib/gen/chat/v1/stream.pb.go @@ -29,6 +29,9 @@ const ( const _ = proto.ProtoPackageIsVersion4 // Request type for use in the `StreamEvents` endpoint. +// By default, this endpoint will subscribe to all events. +// Any guilds joined in the future will be added to the subscription as well. +// Use the UnsubscribeFromAll event for unsubscribing from all current subscriptions and disable the automatic guild subscriptions type StreamEventsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -40,6 +43,7 @@ type StreamEventsRequest struct { // *StreamEventsRequest_SubscribeToGuild_ // *StreamEventsRequest_SubscribeToActions_ // *StreamEventsRequest_SubscribeToHomeserverEvents_ + // *StreamEventsRequest_UnsubscribeFromAll_ Request isStreamEventsRequest_Request `protobuf_oneof:"request"` } @@ -103,6 +107,13 @@ func (x *StreamEventsRequest) GetSubscribeToHomeserverEvents() *StreamEventsRequ return nil } +func (x *StreamEventsRequest) GetUnsubscribeFromAll() *StreamEventsRequest_UnsubscribeFromAll { + if x, ok := x.GetRequest().(*StreamEventsRequest_UnsubscribeFromAll_); ok { + return x.UnsubscribeFromAll + } + return nil +} + type isStreamEventsRequest_Request interface { isStreamEventsRequest_Request() } @@ -122,12 +133,19 @@ type StreamEventsRequest_SubscribeToHomeserverEvents_ struct { SubscribeToHomeserverEvents *StreamEventsRequest_SubscribeToHomeserverEvents `protobuf:"bytes,3,opt,name=subscribe_to_homeserver_events,json=subscribeToHomeserverEvents,proto3,oneof"` } +type StreamEventsRequest_UnsubscribeFromAll_ struct { + // Unsubscribe from all events. + UnsubscribeFromAll *StreamEventsRequest_UnsubscribeFromAll `protobuf:"bytes,4,opt,name=unsubscribe_from_all,json=unsubscribeFromAll,proto3,oneof"` +} + func (*StreamEventsRequest_SubscribeToGuild_) isStreamEventsRequest_Request() {} func (*StreamEventsRequest_SubscribeToActions_) isStreamEventsRequest_Request() {} func (*StreamEventsRequest_SubscribeToHomeserverEvents_) isStreamEventsRequest_Request() {} +func (*StreamEventsRequest_UnsubscribeFromAll_) isStreamEventsRequest_Request() {} + // Used in the `StreamEvents` endpoint. type StreamEventsResponse struct { state protoimpl.MessageState @@ -860,6 +878,45 @@ func (*StreamEventsRequest_SubscribeToHomeserverEvents) Descriptor() ([]byte, [] return file_chat_v1_stream_proto_rawDescGZIP(), []int{0, 2} } +// Event to unsubscribe from all events. +type StreamEventsRequest_UnsubscribeFromAll struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StreamEventsRequest_UnsubscribeFromAll) Reset() { + *x = StreamEventsRequest_UnsubscribeFromAll{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_v1_stream_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamEventsRequest_UnsubscribeFromAll) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamEventsRequest_UnsubscribeFromAll) ProtoMessage() {} + +func (x *StreamEventsRequest_UnsubscribeFromAll) ProtoReflect() protoreflect.Message { + mi := &file_chat_v1_stream_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StreamEventsRequest_UnsubscribeFromAll.ProtoReflect.Descriptor instead. +func (*StreamEventsRequest_UnsubscribeFromAll) Descriptor() ([]byte, []int) { + return file_chat_v1_stream_proto_rawDescGZIP(), []int{0, 3} +} + // Event sent when a new message is sent. type StreamEvent_MessageSent struct { state protoimpl.MessageState @@ -881,7 +938,7 @@ type StreamEvent_MessageSent struct { func (x *StreamEvent_MessageSent) Reset() { *x = StreamEvent_MessageSent{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[6] + mi := &file_chat_v1_stream_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -894,7 +951,7 @@ func (x *StreamEvent_MessageSent) String() string { func (*StreamEvent_MessageSent) ProtoMessage() {} func (x *StreamEvent_MessageSent) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[6] + mi := &file_chat_v1_stream_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -966,7 +1023,7 @@ type StreamEvent_MessageUpdated struct { func (x *StreamEvent_MessageUpdated) Reset() { *x = StreamEvent_MessageUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[7] + mi := &file_chat_v1_stream_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -979,7 +1036,7 @@ func (x *StreamEvent_MessageUpdated) String() string { func (*StreamEvent_MessageUpdated) ProtoMessage() {} func (x *StreamEvent_MessageUpdated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[7] + mi := &file_chat_v1_stream_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1047,7 +1104,7 @@ type StreamEvent_MessageDeleted struct { func (x *StreamEvent_MessageDeleted) Reset() { *x = StreamEvent_MessageDeleted{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[8] + mi := &file_chat_v1_stream_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1060,7 +1117,7 @@ func (x *StreamEvent_MessageDeleted) String() string { func (*StreamEvent_MessageDeleted) ProtoMessage() {} func (x *StreamEvent_MessageDeleted) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[8] + mi := &file_chat_v1_stream_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1120,7 +1177,7 @@ type StreamEvent_ChannelCreated struct { func (x *StreamEvent_ChannelCreated) Reset() { *x = StreamEvent_ChannelCreated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[9] + mi := &file_chat_v1_stream_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1133,7 +1190,7 @@ func (x *StreamEvent_ChannelCreated) String() string { func (*StreamEvent_ChannelCreated) ProtoMessage() {} func (x *StreamEvent_ChannelCreated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[9] + mi := &file_chat_v1_stream_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1210,7 +1267,7 @@ type StreamEvent_ChannelUpdated struct { func (x *StreamEvent_ChannelUpdated) Reset() { *x = StreamEvent_ChannelUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[10] + mi := &file_chat_v1_stream_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1223,7 +1280,7 @@ func (x *StreamEvent_ChannelUpdated) String() string { func (*StreamEvent_ChannelUpdated) ProtoMessage() {} func (x *StreamEvent_ChannelUpdated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[10] + mi := &file_chat_v1_stream_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1284,7 +1341,7 @@ type StreamEvent_ChannelPositionUpdated struct { func (x *StreamEvent_ChannelPositionUpdated) Reset() { *x = StreamEvent_ChannelPositionUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[11] + mi := &file_chat_v1_stream_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1297,7 +1354,7 @@ func (x *StreamEvent_ChannelPositionUpdated) String() string { func (*StreamEvent_ChannelPositionUpdated) ProtoMessage() {} func (x *StreamEvent_ChannelPositionUpdated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[11] + mi := &file_chat_v1_stream_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1349,7 +1406,7 @@ type StreamEvent_ChannelsReordered struct { func (x *StreamEvent_ChannelsReordered) Reset() { *x = StreamEvent_ChannelsReordered{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[12] + mi := &file_chat_v1_stream_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1362,7 +1419,7 @@ func (x *StreamEvent_ChannelsReordered) String() string { func (*StreamEvent_ChannelsReordered) ProtoMessage() {} func (x *StreamEvent_ChannelsReordered) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[12] + mi := &file_chat_v1_stream_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1407,7 +1464,7 @@ type StreamEvent_ChannelDeleted struct { func (x *StreamEvent_ChannelDeleted) Reset() { *x = StreamEvent_ChannelDeleted{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[13] + mi := &file_chat_v1_stream_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1420,7 +1477,7 @@ func (x *StreamEvent_ChannelDeleted) String() string { func (*StreamEvent_ChannelDeleted) ProtoMessage() {} func (x *StreamEvent_ChannelDeleted) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[13] + mi := &file_chat_v1_stream_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1469,7 +1526,7 @@ type StreamEvent_GuildUpdated struct { func (x *StreamEvent_GuildUpdated) Reset() { *x = StreamEvent_GuildUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[14] + mi := &file_chat_v1_stream_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1482,7 +1539,7 @@ func (x *StreamEvent_GuildUpdated) String() string { func (*StreamEvent_GuildUpdated) ProtoMessage() {} func (x *StreamEvent_GuildUpdated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[14] + mi := &file_chat_v1_stream_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1539,7 +1596,7 @@ type StreamEvent_GuildDeleted struct { func (x *StreamEvent_GuildDeleted) Reset() { *x = StreamEvent_GuildDeleted{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[15] + mi := &file_chat_v1_stream_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1552,7 +1609,7 @@ func (x *StreamEvent_GuildDeleted) String() string { func (*StreamEvent_GuildDeleted) ProtoMessage() {} func (x *StreamEvent_GuildDeleted) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[15] + mi := &file_chat_v1_stream_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1590,7 +1647,7 @@ type StreamEvent_MemberJoined struct { func (x *StreamEvent_MemberJoined) Reset() { *x = StreamEvent_MemberJoined{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[16] + mi := &file_chat_v1_stream_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1603,7 +1660,7 @@ func (x *StreamEvent_MemberJoined) String() string { func (*StreamEvent_MemberJoined) ProtoMessage() {} func (x *StreamEvent_MemberJoined) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[16] + mi := &file_chat_v1_stream_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1650,7 +1707,7 @@ type StreamEvent_MemberLeft struct { func (x *StreamEvent_MemberLeft) Reset() { *x = StreamEvent_MemberLeft{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[17] + mi := &file_chat_v1_stream_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1663,7 +1720,7 @@ func (x *StreamEvent_MemberLeft) String() string { func (*StreamEvent_MemberLeft) ProtoMessage() {} func (x *StreamEvent_MemberLeft) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[17] + mi := &file_chat_v1_stream_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1715,7 +1772,7 @@ type StreamEvent_GuildAddedToList struct { func (x *StreamEvent_GuildAddedToList) Reset() { *x = StreamEvent_GuildAddedToList{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[18] + mi := &file_chat_v1_stream_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1728,7 +1785,7 @@ func (x *StreamEvent_GuildAddedToList) String() string { func (*StreamEvent_GuildAddedToList) ProtoMessage() {} func (x *StreamEvent_GuildAddedToList) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[18] + mi := &file_chat_v1_stream_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1773,7 +1830,7 @@ type StreamEvent_GuildRemovedFromList struct { func (x *StreamEvent_GuildRemovedFromList) Reset() { *x = StreamEvent_GuildRemovedFromList{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[19] + mi := &file_chat_v1_stream_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1786,7 +1843,7 @@ func (x *StreamEvent_GuildRemovedFromList) String() string { func (*StreamEvent_GuildRemovedFromList) ProtoMessage() {} func (x *StreamEvent_GuildRemovedFromList) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[19] + mi := &file_chat_v1_stream_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1837,7 +1894,7 @@ type StreamEvent_ActionPerformed struct { func (x *StreamEvent_ActionPerformed) Reset() { *x = StreamEvent_ActionPerformed{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[20] + mi := &file_chat_v1_stream_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1850,7 +1907,7 @@ func (x *StreamEvent_ActionPerformed) String() string { func (*StreamEvent_ActionPerformed) ProtoMessage() {} func (x *StreamEvent_ActionPerformed) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[20] + mi := &file_chat_v1_stream_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1918,7 +1975,7 @@ type StreamEvent_RoleMoved struct { func (x *StreamEvent_RoleMoved) Reset() { *x = StreamEvent_RoleMoved{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[21] + mi := &file_chat_v1_stream_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1931,7 +1988,7 @@ func (x *StreamEvent_RoleMoved) String() string { func (*StreamEvent_RoleMoved) ProtoMessage() {} func (x *StreamEvent_RoleMoved) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[21] + mi := &file_chat_v1_stream_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1983,7 +2040,7 @@ type StreamEvent_RoleDeleted struct { func (x *StreamEvent_RoleDeleted) Reset() { *x = StreamEvent_RoleDeleted{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[22] + mi := &file_chat_v1_stream_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1996,7 +2053,7 @@ func (x *StreamEvent_RoleDeleted) String() string { func (*StreamEvent_RoleDeleted) ProtoMessage() {} func (x *StreamEvent_RoleDeleted) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[22] + mi := &file_chat_v1_stream_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2049,7 +2106,7 @@ type StreamEvent_RoleCreated struct { func (x *StreamEvent_RoleCreated) Reset() { *x = StreamEvent_RoleCreated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[23] + mi := &file_chat_v1_stream_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2062,7 +2119,7 @@ func (x *StreamEvent_RoleCreated) String() string { func (*StreamEvent_RoleCreated) ProtoMessage() {} func (x *StreamEvent_RoleCreated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[23] + mi := &file_chat_v1_stream_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2143,7 +2200,7 @@ type StreamEvent_RoleUpdated struct { func (x *StreamEvent_RoleUpdated) Reset() { *x = StreamEvent_RoleUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[24] + mi := &file_chat_v1_stream_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2156,7 +2213,7 @@ func (x *StreamEvent_RoleUpdated) String() string { func (*StreamEvent_RoleUpdated) ProtoMessage() {} func (x *StreamEvent_RoleUpdated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[24] + mi := &file_chat_v1_stream_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2235,7 +2292,7 @@ type StreamEvent_RolePermissionsUpdated struct { func (x *StreamEvent_RolePermissionsUpdated) Reset() { *x = StreamEvent_RolePermissionsUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[25] + mi := &file_chat_v1_stream_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2248,7 +2305,7 @@ func (x *StreamEvent_RolePermissionsUpdated) String() string { func (*StreamEvent_RolePermissionsUpdated) ProtoMessage() {} func (x *StreamEvent_RolePermissionsUpdated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[25] + mi := &file_chat_v1_stream_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2309,7 +2366,7 @@ type StreamEvent_UserRolesUpdated struct { func (x *StreamEvent_UserRolesUpdated) Reset() { *x = StreamEvent_UserRolesUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[26] + mi := &file_chat_v1_stream_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2322,7 +2379,7 @@ func (x *StreamEvent_UserRolesUpdated) String() string { func (*StreamEvent_UserRolesUpdated) ProtoMessage() {} func (x *StreamEvent_UserRolesUpdated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[26] + mi := &file_chat_v1_stream_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2376,7 +2433,7 @@ type StreamEvent_Typing struct { func (x *StreamEvent_Typing) Reset() { *x = StreamEvent_Typing{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[27] + mi := &file_chat_v1_stream_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2389,7 +2446,7 @@ func (x *StreamEvent_Typing) String() string { func (*StreamEvent_Typing) ProtoMessage() {} func (x *StreamEvent_Typing) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[27] + mi := &file_chat_v1_stream_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2448,7 +2505,7 @@ type StreamEvent_PermissionUpdated struct { func (x *StreamEvent_PermissionUpdated) Reset() { *x = StreamEvent_PermissionUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[28] + mi := &file_chat_v1_stream_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2461,7 +2518,7 @@ func (x *StreamEvent_PermissionUpdated) String() string { func (*StreamEvent_PermissionUpdated) ProtoMessage() {} func (x *StreamEvent_PermissionUpdated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[28] + mi := &file_chat_v1_stream_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2525,7 +2582,7 @@ type StreamEvent_MessagePinned struct { func (x *StreamEvent_MessagePinned) Reset() { *x = StreamEvent_MessagePinned{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[29] + mi := &file_chat_v1_stream_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2538,7 +2595,7 @@ func (x *StreamEvent_MessagePinned) String() string { func (*StreamEvent_MessagePinned) ProtoMessage() {} func (x *StreamEvent_MessagePinned) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[29] + mi := &file_chat_v1_stream_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2595,7 +2652,7 @@ type StreamEvent_MessageUnpinned struct { func (x *StreamEvent_MessageUnpinned) Reset() { *x = StreamEvent_MessageUnpinned{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[30] + mi := &file_chat_v1_stream_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2608,7 +2665,7 @@ func (x *StreamEvent_MessageUnpinned) String() string { func (*StreamEvent_MessageUnpinned) ProtoMessage() {} func (x *StreamEvent_MessageUnpinned) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[30] + mi := &file_chat_v1_stream_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2664,7 +2721,7 @@ type StreamEvent_ReactionUpdated struct { func (x *StreamEvent_ReactionUpdated) Reset() { *x = StreamEvent_ReactionUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[31] + mi := &file_chat_v1_stream_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2677,7 +2734,7 @@ func (x *StreamEvent_ReactionUpdated) String() string { func (*StreamEvent_ReactionUpdated) ProtoMessage() {} func (x *StreamEvent_ReactionUpdated) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[31] + mi := &file_chat_v1_stream_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2734,7 +2791,7 @@ type StreamEvent_OwnerAdded struct { func (x *StreamEvent_OwnerAdded) Reset() { *x = StreamEvent_OwnerAdded{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[32] + mi := &file_chat_v1_stream_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2747,7 +2804,7 @@ func (x *StreamEvent_OwnerAdded) String() string { func (*StreamEvent_OwnerAdded) ProtoMessage() {} func (x *StreamEvent_OwnerAdded) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[32] + mi := &file_chat_v1_stream_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2783,7 +2840,7 @@ type StreamEvent_OwnerRemoved struct { func (x *StreamEvent_OwnerRemoved) Reset() { *x = StreamEvent_OwnerRemoved{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[33] + mi := &file_chat_v1_stream_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2796,7 +2853,7 @@ func (x *StreamEvent_OwnerRemoved) String() string { func (*StreamEvent_OwnerRemoved) ProtoMessage() {} func (x *StreamEvent_OwnerRemoved) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[33] + mi := &file_chat_v1_stream_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2836,7 +2893,7 @@ type StreamEvent_InviteReceived struct { func (x *StreamEvent_InviteReceived) Reset() { *x = StreamEvent_InviteReceived{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[34] + mi := &file_chat_v1_stream_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2849,7 +2906,7 @@ func (x *StreamEvent_InviteReceived) String() string { func (*StreamEvent_InviteReceived) ProtoMessage() {} func (x *StreamEvent_InviteReceived) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[34] + mi := &file_chat_v1_stream_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2903,7 +2960,7 @@ type StreamEvent_InviteRejected struct { func (x *StreamEvent_InviteRejected) Reset() { *x = StreamEvent_InviteRejected{} if protoimpl.UnsafeEnabled { - mi := &file_chat_v1_stream_proto_msgTypes[35] + mi := &file_chat_v1_stream_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2916,7 +2973,7 @@ func (x *StreamEvent_InviteRejected) String() string { func (*StreamEvent_InviteRejected) ProtoMessage() {} func (x *StreamEvent_InviteRejected) ProtoReflect() protoreflect.Message { - mi := &file_chat_v1_stream_proto_msgTypes[35] + mi := &file_chat_v1_stream_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2969,7 +3026,7 @@ var file_chat_v1_stream_proto_rawDesc = []byte{ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe5, 0x03, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe9, 0x04, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x66, 0x0a, 0x12, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f, @@ -2992,459 +3049,467 @@ var file_chat_v1_stream_proto_rawDesc = []byte{ 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x48, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x00, 0x52, 0x1b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x48, - 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x1a, - 0x2d, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x1a, 0x14, - 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x1d, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x54, 0x6f, 0x48, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xca, - 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x63, 0x68, 0x61, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x63, 0x68, 0x61, 0x74, 0x12, 0x36, 0x0a, 0x05, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xb2, 0x34, 0x0a, 0x0b, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x13, 0x67, - 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x64, 0x64, - 0x65, 0x64, 0x54, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x6b, 0x0a, 0x17, - 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x72, - 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x6c, 0x0a, 0x14, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x66, + 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x00, 0x52, 0x14, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x10, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, - 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, - 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x66, - 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x0e, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x65, - 0x64, 0x69, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x57, 0x0a, 0x0f, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x55, - 0x0a, 0x0e, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x57, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x4f, - 0x0a, 0x0c, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x48, 0x00, 0x52, 0x0b, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, - 0x51, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x51, 0x0a, 0x0d, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x12, 0x75, 0x6e, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x1a, 0x2d, 0x0a, + 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x1a, 0x14, 0x0a, 0x12, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x1a, 0x1d, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, + 0x6f, 0x48, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x1a, 0x14, 0x0a, 0x12, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x63, + 0x68, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, - 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0b, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x4c, 0x65, 0x66, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x65, 0x66, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x63, 0x68, 0x61, 0x74, + 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, + 0xb2, 0x34, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x5f, 0x0a, 0x13, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x74, + 0x6f, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x6b, 0x0a, 0x17, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x5a, 0x0a, + 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, + 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x65, 0x6e, + 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x0e, 0x65, 0x64, 0x69, + 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, + 0x00, 0x52, 0x0d, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x57, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x54, 0x79, 0x70, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x74, 0x79, 0x70, 0x69, - 0x6e, 0x67, 0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x64, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x64, 0x48, - 0x00, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0c, - 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x48, 0x00, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x12, 0x55, 0x0a, 0x0e, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x64, 0x69, 0x74, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x57, 0x0a, 0x0f, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, - 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x12, - 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x48, 0x00, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x12, 0x4f, 0x0a, 0x0c, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, - 0x52, 0x10, 0x72, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, - 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x60, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, - 0x00, 0x52, 0x11, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, - 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, - 0x64, 0x48, 0x00, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x12, 0x6e, 0x0a, 0x17, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, - 0x15, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x12, 0x51, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x51, 0x0a, 0x0d, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, + 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x6a, 0x6f, 0x69, + 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0b, 0x6c, 0x65, 0x66, + 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x10, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x6e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x65, 0x66, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x69, 0x6e, 0x67, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, + 0x74, 0x79, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x6f, + 0x76, 0x65, 0x64, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4d, 0x6f, 0x76, 0x65, 0x64, + 0x12, 0x4e, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x70, - 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x1a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x64, 0x0a, 0x12, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x48, 0x00, 0x52, 0x10, 0x72, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, + 0x6f, 0x6c, 0x65, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, - 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, - 0x64, 0x12, 0x51, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x69, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x57, 0x0a, - 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x48, 0x00, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x11, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x5f, 0x72, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x65, 0x64, 0x48, 0x00, 0x52, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x52, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, 0x12, 0x6e, 0x0a, 0x17, 0x65, 0x64, + 0x69, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x48, 0x00, 0x52, 0x15, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x48, + 0x00, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, + 0x12, 0x5a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x6e, 0x70, 0x69, + 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x10, + 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x1a, 0xc5, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x65, 0x63, 0x68, 0x6f, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x33, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x69, 0x64, 0x1a, 0xc8, - 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x64, - 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x65, - 0x64, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x51, 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0a, 0x6e, - 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x69, 0x0a, 0x0e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, + 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x48, + 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x12, 0x57, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x6a, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x1a, 0xc5, 0x01, 0x0a, 0x0b, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x65, 0x63, + 0x68, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x65, + 0x63, 0x68, 0x6f, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, + 0x64, 0x12, 0x33, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, + 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x5f, + 0x69, 0x64, 0x1a, 0xc8, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x6e, + 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x54, 0x65, 0x78, + 0x74, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x69, 0x0a, + 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, + 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x1a, 0xa7, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x49, 0x64, 0x1a, 0xa7, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x76, 0x31, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x43, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, - 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, - 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xd4, - 0x01, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, - 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0c, 0x6e, - 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, - 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x77, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xb3, 0x01, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x6e, 0x65, - 0x77, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, - 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x74, 0x65, 0x6d, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, - 0x65, 0x77, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4f, 0x0a, 0x11, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x65, 0x64, - 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, - 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x73, 0x1a, 0x4a, 0x0a, 0x0e, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x1a, 0xe9, 0x01, 0x0a, 0x0c, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x6e, 0x65, 0x77, - 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0c, 0x6e, 0x65, - 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, - 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x29, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x1a, - 0x46, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, - 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x1a, 0x86, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x40, - 0x0a, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x52, 0x0b, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x1a, 0x4d, 0x0a, 0x10, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x6f, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, - 0x51, 0x0a, 0x14, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x46, - 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x1a, 0xbe, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, - 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, - 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x1a, 0x8a, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4d, 0x6f, 0x76, 0x65, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, - 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, - 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x1a, 0x41, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, - 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, - 0x65, 0x49, 0x64, 0x1a, 0x9d, 0x01, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x61, - 0x62, 0x6c, 0x65, 0x1a, 0x87, 0x02, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, + 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, + 0x12, 0x43, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, + 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x1a, 0xd4, 0x01, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x4a, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x77, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xb3, 0x01, 0x0a, 0x16, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x4e, + 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, + 0x6e, 0x65, 0x77, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0x4f, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x73, + 0x1a, 0x4a, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x1a, 0xe9, 0x01, 0x0a, + 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, + 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, + 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0a, 0x6e, 0x65, 0x77, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, + 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x77, 0x5f, + 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x29, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x1a, 0x46, 0x0a, 0x0c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4a, 0x6f, 0x69, + 0x6e, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x1a, 0x86, 0x01, 0x0a, 0x0a, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0c, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, + 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0b, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x1a, 0x4d, 0x0a, 0x10, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x64, 0x64, + 0x65, 0x64, 0x54, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x1a, 0x51, 0x0a, 0x14, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x64, 0x46, 0x72, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x6d, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, 0xbe, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x07, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x07, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x8a, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, + 0x4d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0c, 0x6e, 0x65, 0x77, + 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, 0x6f, + 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x41, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x77, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x08, 0x6e, 0x65, - 0x77, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6e, 0x65, 0x77, - 0x5f, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x08, - 0x6e, 0x65, 0x77, 0x48, 0x6f, 0x69, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6e, - 0x65, 0x77, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x03, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0xba, 0x01, - 0x0a, 0x16, 0x52, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, - 0x12, 0x39, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, - 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x72, 0x6d, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x1a, 0x68, 0x0a, 0x10, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x52, 0x6f, 0x6c, - 0x65, 0x49, 0x64, 0x73, 0x1a, 0x5b, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x64, 0x1a, 0x87, 0x01, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x1a, 0x9d, 0x01, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, + 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x1a, 0x87, 0x02, 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, - 0x6f, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x1a, 0x68, 0x0a, 0x0d, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, + 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x6e, + 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6e, + 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x08, 0x6e, 0x65, 0x77, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x02, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x48, 0x6f, 0x69, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x69, 0x6e, 0x67, + 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x77, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x68, 0x6f, 0x69, 0x73, 0x74, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x61, 0x62, 0x6c, + 0x65, 0x1a, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x6f, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x07, 0x72, + 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, + 0x6c, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x65, 0x72, 0x6d, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x50, 0x65, 0x72, 0x6d, 0x73, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x1a, 0x68, + 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x17, 0x0a, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x6f, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x6e, 0x65, + 0x77, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x1a, 0x5b, 0x0a, 0x06, 0x54, 0x79, 0x70, 0x69, + 0x6e, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x1a, 0x87, 0x01, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x1a, + 0x68, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x1a, 0x6a, 0x0a, 0x0f, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x64, 0x1a, 0x6a, 0x0a, 0x0f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x55, 0x6e, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, - 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, - 0x64, 0x1a, 0xa2, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x36, - 0x0a, 0x08, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x25, 0x0a, 0x0a, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x1a, 0x27, 0x0a, - 0x0c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x17, 0x0a, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x1a, 0x7c, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x1a, 0x61, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x2d, 0x64, 0x65, 0x76, - 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x68, 0x69, 0x62, 0x73, 0x68, 0x69, - 0x62, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x68, - 0x61, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x58, 0xaa, 0x02, 0x10, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, 0x43, 0x68, 0x61, 0x74, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x1c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, 0x43, 0x68, 0x61, 0x74, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x12, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x3a, 0x3a, 0x43, 0x68, 0x61, 0x74, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x67, 0x65, 0x49, 0x64, 0x1a, 0xa2, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x49, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x08, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x25, 0x0a, 0x0a, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x1a, 0x27, 0x0a, 0x0c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x1a, 0x7c, 0x0a, 0x0e, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x1a, 0x61, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x42, 0xc1, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, + 0x2d, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x68, 0x69, + 0x62, 0x73, 0x68, 0x69, 0x62, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x76, + 0x31, 0x3b, 0x63, 0x68, 0x61, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x58, 0xaa, 0x02, + 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, 0x43, 0x68, 0x61, + 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, + 0x43, 0x68, 0x61, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x12, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x3a, 0x3a, + 0x43, 0x68, 0x61, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3459,7 +3524,7 @@ func file_chat_v1_stream_proto_rawDescGZIP() []byte { return file_chat_v1_stream_proto_rawDescData } -var file_chat_v1_stream_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_chat_v1_stream_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_chat_v1_stream_proto_goTypes = []interface{}{ (*StreamEventsRequest)(nil), // 0: protocol.chat.v1.StreamEventsRequest (*StreamEventsResponse)(nil), // 1: protocol.chat.v1.StreamEventsResponse @@ -3467,103 +3532,105 @@ var file_chat_v1_stream_proto_goTypes = []interface{}{ (*StreamEventsRequest_SubscribeToGuild)(nil), // 3: protocol.chat.v1.StreamEventsRequest.SubscribeToGuild (*StreamEventsRequest_SubscribeToActions)(nil), // 4: protocol.chat.v1.StreamEventsRequest.SubscribeToActions (*StreamEventsRequest_SubscribeToHomeserverEvents)(nil), // 5: protocol.chat.v1.StreamEventsRequest.SubscribeToHomeserverEvents - (*StreamEvent_MessageSent)(nil), // 6: protocol.chat.v1.StreamEvent.MessageSent - (*StreamEvent_MessageUpdated)(nil), // 7: protocol.chat.v1.StreamEvent.MessageUpdated - (*StreamEvent_MessageDeleted)(nil), // 8: protocol.chat.v1.StreamEvent.MessageDeleted - (*StreamEvent_ChannelCreated)(nil), // 9: protocol.chat.v1.StreamEvent.ChannelCreated - (*StreamEvent_ChannelUpdated)(nil), // 10: protocol.chat.v1.StreamEvent.ChannelUpdated - (*StreamEvent_ChannelPositionUpdated)(nil), // 11: protocol.chat.v1.StreamEvent.ChannelPositionUpdated - (*StreamEvent_ChannelsReordered)(nil), // 12: protocol.chat.v1.StreamEvent.ChannelsReordered - (*StreamEvent_ChannelDeleted)(nil), // 13: protocol.chat.v1.StreamEvent.ChannelDeleted - (*StreamEvent_GuildUpdated)(nil), // 14: protocol.chat.v1.StreamEvent.GuildUpdated - (*StreamEvent_GuildDeleted)(nil), // 15: protocol.chat.v1.StreamEvent.GuildDeleted - (*StreamEvent_MemberJoined)(nil), // 16: protocol.chat.v1.StreamEvent.MemberJoined - (*StreamEvent_MemberLeft)(nil), // 17: protocol.chat.v1.StreamEvent.MemberLeft - (*StreamEvent_GuildAddedToList)(nil), // 18: protocol.chat.v1.StreamEvent.GuildAddedToList - (*StreamEvent_GuildRemovedFromList)(nil), // 19: protocol.chat.v1.StreamEvent.GuildRemovedFromList - (*StreamEvent_ActionPerformed)(nil), // 20: protocol.chat.v1.StreamEvent.ActionPerformed - (*StreamEvent_RoleMoved)(nil), // 21: protocol.chat.v1.StreamEvent.RoleMoved - (*StreamEvent_RoleDeleted)(nil), // 22: protocol.chat.v1.StreamEvent.RoleDeleted - (*StreamEvent_RoleCreated)(nil), // 23: protocol.chat.v1.StreamEvent.RoleCreated - (*StreamEvent_RoleUpdated)(nil), // 24: protocol.chat.v1.StreamEvent.RoleUpdated - (*StreamEvent_RolePermissionsUpdated)(nil), // 25: protocol.chat.v1.StreamEvent.RolePermissionsUpdated - (*StreamEvent_UserRolesUpdated)(nil), // 26: protocol.chat.v1.StreamEvent.UserRolesUpdated - (*StreamEvent_Typing)(nil), // 27: protocol.chat.v1.StreamEvent.Typing - (*StreamEvent_PermissionUpdated)(nil), // 28: protocol.chat.v1.StreamEvent.PermissionUpdated - (*StreamEvent_MessagePinned)(nil), // 29: protocol.chat.v1.StreamEvent.MessagePinned - (*StreamEvent_MessageUnpinned)(nil), // 30: protocol.chat.v1.StreamEvent.MessageUnpinned - (*StreamEvent_ReactionUpdated)(nil), // 31: protocol.chat.v1.StreamEvent.ReactionUpdated - (*StreamEvent_OwnerAdded)(nil), // 32: protocol.chat.v1.StreamEvent.OwnerAdded - (*StreamEvent_OwnerRemoved)(nil), // 33: protocol.chat.v1.StreamEvent.OwnerRemoved - (*StreamEvent_InviteReceived)(nil), // 34: protocol.chat.v1.StreamEvent.InviteReceived - (*StreamEvent_InviteRejected)(nil), // 35: protocol.chat.v1.StreamEvent.InviteRejected - (*v1.StreamEvent)(nil), // 36: protocol.emote.v1.StreamEvent - (*v11.StreamEvent)(nil), // 37: protocol.profile.v1.StreamEvent - (*Message)(nil), // 38: protocol.chat.v1.Message - (*FormattedText)(nil), // 39: protocol.chat.v1.FormattedText - (*v12.ItemPosition)(nil), // 40: protocol.harmonytypes.v1.ItemPosition - (ChannelKind)(0), // 41: protocol.chat.v1.ChannelKind - (*v12.Metadata)(nil), // 42: protocol.harmonytypes.v1.Metadata - (LeaveReason)(0), // 43: protocol.chat.v1.LeaveReason - (*ActionPayload)(nil), // 44: protocol.chat.v1.ActionPayload - (*Permission)(nil), // 45: protocol.chat.v1.Permission - (*Reaction)(nil), // 46: protocol.chat.v1.Reaction + (*StreamEventsRequest_UnsubscribeFromAll)(nil), // 6: protocol.chat.v1.StreamEventsRequest.UnsubscribeFromAll + (*StreamEvent_MessageSent)(nil), // 7: protocol.chat.v1.StreamEvent.MessageSent + (*StreamEvent_MessageUpdated)(nil), // 8: protocol.chat.v1.StreamEvent.MessageUpdated + (*StreamEvent_MessageDeleted)(nil), // 9: protocol.chat.v1.StreamEvent.MessageDeleted + (*StreamEvent_ChannelCreated)(nil), // 10: protocol.chat.v1.StreamEvent.ChannelCreated + (*StreamEvent_ChannelUpdated)(nil), // 11: protocol.chat.v1.StreamEvent.ChannelUpdated + (*StreamEvent_ChannelPositionUpdated)(nil), // 12: protocol.chat.v1.StreamEvent.ChannelPositionUpdated + (*StreamEvent_ChannelsReordered)(nil), // 13: protocol.chat.v1.StreamEvent.ChannelsReordered + (*StreamEvent_ChannelDeleted)(nil), // 14: protocol.chat.v1.StreamEvent.ChannelDeleted + (*StreamEvent_GuildUpdated)(nil), // 15: protocol.chat.v1.StreamEvent.GuildUpdated + (*StreamEvent_GuildDeleted)(nil), // 16: protocol.chat.v1.StreamEvent.GuildDeleted + (*StreamEvent_MemberJoined)(nil), // 17: protocol.chat.v1.StreamEvent.MemberJoined + (*StreamEvent_MemberLeft)(nil), // 18: protocol.chat.v1.StreamEvent.MemberLeft + (*StreamEvent_GuildAddedToList)(nil), // 19: protocol.chat.v1.StreamEvent.GuildAddedToList + (*StreamEvent_GuildRemovedFromList)(nil), // 20: protocol.chat.v1.StreamEvent.GuildRemovedFromList + (*StreamEvent_ActionPerformed)(nil), // 21: protocol.chat.v1.StreamEvent.ActionPerformed + (*StreamEvent_RoleMoved)(nil), // 22: protocol.chat.v1.StreamEvent.RoleMoved + (*StreamEvent_RoleDeleted)(nil), // 23: protocol.chat.v1.StreamEvent.RoleDeleted + (*StreamEvent_RoleCreated)(nil), // 24: protocol.chat.v1.StreamEvent.RoleCreated + (*StreamEvent_RoleUpdated)(nil), // 25: protocol.chat.v1.StreamEvent.RoleUpdated + (*StreamEvent_RolePermissionsUpdated)(nil), // 26: protocol.chat.v1.StreamEvent.RolePermissionsUpdated + (*StreamEvent_UserRolesUpdated)(nil), // 27: protocol.chat.v1.StreamEvent.UserRolesUpdated + (*StreamEvent_Typing)(nil), // 28: protocol.chat.v1.StreamEvent.Typing + (*StreamEvent_PermissionUpdated)(nil), // 29: protocol.chat.v1.StreamEvent.PermissionUpdated + (*StreamEvent_MessagePinned)(nil), // 30: protocol.chat.v1.StreamEvent.MessagePinned + (*StreamEvent_MessageUnpinned)(nil), // 31: protocol.chat.v1.StreamEvent.MessageUnpinned + (*StreamEvent_ReactionUpdated)(nil), // 32: protocol.chat.v1.StreamEvent.ReactionUpdated + (*StreamEvent_OwnerAdded)(nil), // 33: protocol.chat.v1.StreamEvent.OwnerAdded + (*StreamEvent_OwnerRemoved)(nil), // 34: protocol.chat.v1.StreamEvent.OwnerRemoved + (*StreamEvent_InviteReceived)(nil), // 35: protocol.chat.v1.StreamEvent.InviteReceived + (*StreamEvent_InviteRejected)(nil), // 36: protocol.chat.v1.StreamEvent.InviteRejected + (*v1.StreamEvent)(nil), // 37: protocol.emote.v1.StreamEvent + (*v11.StreamEvent)(nil), // 38: protocol.profile.v1.StreamEvent + (*Message)(nil), // 39: protocol.chat.v1.Message + (*FormattedText)(nil), // 40: protocol.chat.v1.FormattedText + (*v12.ItemPosition)(nil), // 41: protocol.harmonytypes.v1.ItemPosition + (ChannelKind)(0), // 42: protocol.chat.v1.ChannelKind + (*v12.Metadata)(nil), // 43: protocol.harmonytypes.v1.Metadata + (LeaveReason)(0), // 44: protocol.chat.v1.LeaveReason + (*ActionPayload)(nil), // 45: protocol.chat.v1.ActionPayload + (*Permission)(nil), // 46: protocol.chat.v1.Permission + (*Reaction)(nil), // 47: protocol.chat.v1.Reaction } var file_chat_v1_stream_proto_depIdxs = []int32{ 3, // 0: protocol.chat.v1.StreamEventsRequest.subscribe_to_guild:type_name -> protocol.chat.v1.StreamEventsRequest.SubscribeToGuild 4, // 1: protocol.chat.v1.StreamEventsRequest.subscribe_to_actions:type_name -> protocol.chat.v1.StreamEventsRequest.SubscribeToActions 5, // 2: protocol.chat.v1.StreamEventsRequest.subscribe_to_homeserver_events:type_name -> protocol.chat.v1.StreamEventsRequest.SubscribeToHomeserverEvents - 2, // 3: protocol.chat.v1.StreamEventsResponse.chat:type_name -> protocol.chat.v1.StreamEvent - 36, // 4: protocol.chat.v1.StreamEventsResponse.emote:type_name -> protocol.emote.v1.StreamEvent - 37, // 5: protocol.chat.v1.StreamEventsResponse.profile:type_name -> protocol.profile.v1.StreamEvent - 18, // 6: protocol.chat.v1.StreamEvent.guild_added_to_list:type_name -> protocol.chat.v1.StreamEvent.GuildAddedToList - 19, // 7: protocol.chat.v1.StreamEvent.guild_removed_from_list:type_name -> protocol.chat.v1.StreamEvent.GuildRemovedFromList - 20, // 8: protocol.chat.v1.StreamEvent.action_performed:type_name -> protocol.chat.v1.StreamEvent.ActionPerformed - 6, // 9: protocol.chat.v1.StreamEvent.sent_message:type_name -> protocol.chat.v1.StreamEvent.MessageSent - 7, // 10: protocol.chat.v1.StreamEvent.edited_message:type_name -> protocol.chat.v1.StreamEvent.MessageUpdated - 8, // 11: protocol.chat.v1.StreamEvent.deleted_message:type_name -> protocol.chat.v1.StreamEvent.MessageDeleted - 9, // 12: protocol.chat.v1.StreamEvent.created_channel:type_name -> protocol.chat.v1.StreamEvent.ChannelCreated - 10, // 13: protocol.chat.v1.StreamEvent.edited_channel:type_name -> protocol.chat.v1.StreamEvent.ChannelUpdated - 13, // 14: protocol.chat.v1.StreamEvent.deleted_channel:type_name -> protocol.chat.v1.StreamEvent.ChannelDeleted - 14, // 15: protocol.chat.v1.StreamEvent.edited_guild:type_name -> protocol.chat.v1.StreamEvent.GuildUpdated - 15, // 16: protocol.chat.v1.StreamEvent.deleted_guild:type_name -> protocol.chat.v1.StreamEvent.GuildDeleted - 16, // 17: protocol.chat.v1.StreamEvent.joined_member:type_name -> protocol.chat.v1.StreamEvent.MemberJoined - 17, // 18: protocol.chat.v1.StreamEvent.left_member:type_name -> protocol.chat.v1.StreamEvent.MemberLeft - 27, // 19: protocol.chat.v1.StreamEvent.typing:type_name -> protocol.chat.v1.StreamEvent.Typing - 23, // 20: protocol.chat.v1.StreamEvent.role_created:type_name -> protocol.chat.v1.StreamEvent.RoleCreated - 22, // 21: protocol.chat.v1.StreamEvent.role_deleted:type_name -> protocol.chat.v1.StreamEvent.RoleDeleted - 21, // 22: protocol.chat.v1.StreamEvent.role_moved:type_name -> protocol.chat.v1.StreamEvent.RoleMoved - 24, // 23: protocol.chat.v1.StreamEvent.role_updated:type_name -> protocol.chat.v1.StreamEvent.RoleUpdated - 25, // 24: protocol.chat.v1.StreamEvent.role_perms_updated:type_name -> protocol.chat.v1.StreamEvent.RolePermissionsUpdated - 26, // 25: protocol.chat.v1.StreamEvent.user_roles_updated:type_name -> protocol.chat.v1.StreamEvent.UserRolesUpdated - 28, // 26: protocol.chat.v1.StreamEvent.permission_updated:type_name -> protocol.chat.v1.StreamEvent.PermissionUpdated - 12, // 27: protocol.chat.v1.StreamEvent.channels_reordered:type_name -> protocol.chat.v1.StreamEvent.ChannelsReordered - 11, // 28: protocol.chat.v1.StreamEvent.edited_channel_position:type_name -> protocol.chat.v1.StreamEvent.ChannelPositionUpdated - 29, // 29: protocol.chat.v1.StreamEvent.message_pinned:type_name -> protocol.chat.v1.StreamEvent.MessagePinned - 30, // 30: protocol.chat.v1.StreamEvent.message_unpinned:type_name -> protocol.chat.v1.StreamEvent.MessageUnpinned - 31, // 31: protocol.chat.v1.StreamEvent.reaction_updated:type_name -> protocol.chat.v1.StreamEvent.ReactionUpdated - 32, // 32: protocol.chat.v1.StreamEvent.owner_added:type_name -> protocol.chat.v1.StreamEvent.OwnerAdded - 33, // 33: protocol.chat.v1.StreamEvent.owner_removed:type_name -> protocol.chat.v1.StreamEvent.OwnerRemoved - 34, // 34: protocol.chat.v1.StreamEvent.invite_received:type_name -> protocol.chat.v1.StreamEvent.InviteReceived - 35, // 35: protocol.chat.v1.StreamEvent.invite_rejected:type_name -> protocol.chat.v1.StreamEvent.InviteRejected - 38, // 36: protocol.chat.v1.StreamEvent.MessageSent.message:type_name -> protocol.chat.v1.Message - 39, // 37: protocol.chat.v1.StreamEvent.MessageUpdated.new_content:type_name -> protocol.chat.v1.FormattedText - 40, // 38: protocol.chat.v1.StreamEvent.ChannelCreated.position:type_name -> protocol.harmonytypes.v1.ItemPosition - 41, // 39: protocol.chat.v1.StreamEvent.ChannelCreated.kind:type_name -> protocol.chat.v1.ChannelKind - 42, // 40: protocol.chat.v1.StreamEvent.ChannelCreated.metadata:type_name -> protocol.harmonytypes.v1.Metadata - 42, // 41: protocol.chat.v1.StreamEvent.ChannelUpdated.new_metadata:type_name -> protocol.harmonytypes.v1.Metadata - 40, // 42: protocol.chat.v1.StreamEvent.ChannelPositionUpdated.new_position:type_name -> protocol.harmonytypes.v1.ItemPosition - 42, // 43: protocol.chat.v1.StreamEvent.GuildUpdated.new_metadata:type_name -> protocol.harmonytypes.v1.Metadata - 43, // 44: protocol.chat.v1.StreamEvent.MemberLeft.leave_reason:type_name -> protocol.chat.v1.LeaveReason - 44, // 45: protocol.chat.v1.StreamEvent.ActionPerformed.payload:type_name -> protocol.chat.v1.ActionPayload - 40, // 46: protocol.chat.v1.StreamEvent.RoleMoved.new_position:type_name -> protocol.harmonytypes.v1.ItemPosition - 45, // 47: protocol.chat.v1.StreamEvent.RolePermissionsUpdated.new_perms:type_name -> protocol.chat.v1.Permission - 46, // 48: protocol.chat.v1.StreamEvent.ReactionUpdated.reaction:type_name -> protocol.chat.v1.Reaction - 49, // [49:49] is the sub-list for method output_type - 49, // [49:49] is the sub-list for method input_type - 49, // [49:49] is the sub-list for extension type_name - 49, // [49:49] is the sub-list for extension extendee - 0, // [0:49] is the sub-list for field type_name + 6, // 3: protocol.chat.v1.StreamEventsRequest.unsubscribe_from_all:type_name -> protocol.chat.v1.StreamEventsRequest.UnsubscribeFromAll + 2, // 4: protocol.chat.v1.StreamEventsResponse.chat:type_name -> protocol.chat.v1.StreamEvent + 37, // 5: protocol.chat.v1.StreamEventsResponse.emote:type_name -> protocol.emote.v1.StreamEvent + 38, // 6: protocol.chat.v1.StreamEventsResponse.profile:type_name -> protocol.profile.v1.StreamEvent + 19, // 7: protocol.chat.v1.StreamEvent.guild_added_to_list:type_name -> protocol.chat.v1.StreamEvent.GuildAddedToList + 20, // 8: protocol.chat.v1.StreamEvent.guild_removed_from_list:type_name -> protocol.chat.v1.StreamEvent.GuildRemovedFromList + 21, // 9: protocol.chat.v1.StreamEvent.action_performed:type_name -> protocol.chat.v1.StreamEvent.ActionPerformed + 7, // 10: protocol.chat.v1.StreamEvent.sent_message:type_name -> protocol.chat.v1.StreamEvent.MessageSent + 8, // 11: protocol.chat.v1.StreamEvent.edited_message:type_name -> protocol.chat.v1.StreamEvent.MessageUpdated + 9, // 12: protocol.chat.v1.StreamEvent.deleted_message:type_name -> protocol.chat.v1.StreamEvent.MessageDeleted + 10, // 13: protocol.chat.v1.StreamEvent.created_channel:type_name -> protocol.chat.v1.StreamEvent.ChannelCreated + 11, // 14: protocol.chat.v1.StreamEvent.edited_channel:type_name -> protocol.chat.v1.StreamEvent.ChannelUpdated + 14, // 15: protocol.chat.v1.StreamEvent.deleted_channel:type_name -> protocol.chat.v1.StreamEvent.ChannelDeleted + 15, // 16: protocol.chat.v1.StreamEvent.edited_guild:type_name -> protocol.chat.v1.StreamEvent.GuildUpdated + 16, // 17: protocol.chat.v1.StreamEvent.deleted_guild:type_name -> protocol.chat.v1.StreamEvent.GuildDeleted + 17, // 18: protocol.chat.v1.StreamEvent.joined_member:type_name -> protocol.chat.v1.StreamEvent.MemberJoined + 18, // 19: protocol.chat.v1.StreamEvent.left_member:type_name -> protocol.chat.v1.StreamEvent.MemberLeft + 28, // 20: protocol.chat.v1.StreamEvent.typing:type_name -> protocol.chat.v1.StreamEvent.Typing + 24, // 21: protocol.chat.v1.StreamEvent.role_created:type_name -> protocol.chat.v1.StreamEvent.RoleCreated + 23, // 22: protocol.chat.v1.StreamEvent.role_deleted:type_name -> protocol.chat.v1.StreamEvent.RoleDeleted + 22, // 23: protocol.chat.v1.StreamEvent.role_moved:type_name -> protocol.chat.v1.StreamEvent.RoleMoved + 25, // 24: protocol.chat.v1.StreamEvent.role_updated:type_name -> protocol.chat.v1.StreamEvent.RoleUpdated + 26, // 25: protocol.chat.v1.StreamEvent.role_perms_updated:type_name -> protocol.chat.v1.StreamEvent.RolePermissionsUpdated + 27, // 26: protocol.chat.v1.StreamEvent.user_roles_updated:type_name -> protocol.chat.v1.StreamEvent.UserRolesUpdated + 29, // 27: protocol.chat.v1.StreamEvent.permission_updated:type_name -> protocol.chat.v1.StreamEvent.PermissionUpdated + 13, // 28: protocol.chat.v1.StreamEvent.channels_reordered:type_name -> protocol.chat.v1.StreamEvent.ChannelsReordered + 12, // 29: protocol.chat.v1.StreamEvent.edited_channel_position:type_name -> protocol.chat.v1.StreamEvent.ChannelPositionUpdated + 30, // 30: protocol.chat.v1.StreamEvent.message_pinned:type_name -> protocol.chat.v1.StreamEvent.MessagePinned + 31, // 31: protocol.chat.v1.StreamEvent.message_unpinned:type_name -> protocol.chat.v1.StreamEvent.MessageUnpinned + 32, // 32: protocol.chat.v1.StreamEvent.reaction_updated:type_name -> protocol.chat.v1.StreamEvent.ReactionUpdated + 33, // 33: protocol.chat.v1.StreamEvent.owner_added:type_name -> protocol.chat.v1.StreamEvent.OwnerAdded + 34, // 34: protocol.chat.v1.StreamEvent.owner_removed:type_name -> protocol.chat.v1.StreamEvent.OwnerRemoved + 35, // 35: protocol.chat.v1.StreamEvent.invite_received:type_name -> protocol.chat.v1.StreamEvent.InviteReceived + 36, // 36: protocol.chat.v1.StreamEvent.invite_rejected:type_name -> protocol.chat.v1.StreamEvent.InviteRejected + 39, // 37: protocol.chat.v1.StreamEvent.MessageSent.message:type_name -> protocol.chat.v1.Message + 40, // 38: protocol.chat.v1.StreamEvent.MessageUpdated.new_content:type_name -> protocol.chat.v1.FormattedText + 41, // 39: protocol.chat.v1.StreamEvent.ChannelCreated.position:type_name -> protocol.harmonytypes.v1.ItemPosition + 42, // 40: protocol.chat.v1.StreamEvent.ChannelCreated.kind:type_name -> protocol.chat.v1.ChannelKind + 43, // 41: protocol.chat.v1.StreamEvent.ChannelCreated.metadata:type_name -> protocol.harmonytypes.v1.Metadata + 43, // 42: protocol.chat.v1.StreamEvent.ChannelUpdated.new_metadata:type_name -> protocol.harmonytypes.v1.Metadata + 41, // 43: protocol.chat.v1.StreamEvent.ChannelPositionUpdated.new_position:type_name -> protocol.harmonytypes.v1.ItemPosition + 43, // 44: protocol.chat.v1.StreamEvent.GuildUpdated.new_metadata:type_name -> protocol.harmonytypes.v1.Metadata + 44, // 45: protocol.chat.v1.StreamEvent.MemberLeft.leave_reason:type_name -> protocol.chat.v1.LeaveReason + 45, // 46: protocol.chat.v1.StreamEvent.ActionPerformed.payload:type_name -> protocol.chat.v1.ActionPayload + 41, // 47: protocol.chat.v1.StreamEvent.RoleMoved.new_position:type_name -> protocol.harmonytypes.v1.ItemPosition + 46, // 48: protocol.chat.v1.StreamEvent.RolePermissionsUpdated.new_perms:type_name -> protocol.chat.v1.Permission + 47, // 49: protocol.chat.v1.StreamEvent.ReactionUpdated.reaction:type_name -> protocol.chat.v1.Reaction + 50, // [50:50] is the sub-list for method output_type + 50, // [50:50] is the sub-list for method input_type + 50, // [50:50] is the sub-list for extension type_name + 50, // [50:50] is the sub-list for extension extendee + 0, // [0:50] is the sub-list for field type_name } func init() { file_chat_v1_stream_proto_init() } @@ -3649,7 +3716,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_MessageSent); i { + switch v := v.(*StreamEventsRequest_UnsubscribeFromAll); i { case 0: return &v.state case 1: @@ -3661,7 +3728,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_MessageUpdated); i { + switch v := v.(*StreamEvent_MessageSent); i { case 0: return &v.state case 1: @@ -3673,7 +3740,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_MessageDeleted); i { + switch v := v.(*StreamEvent_MessageUpdated); i { case 0: return &v.state case 1: @@ -3685,7 +3752,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_ChannelCreated); i { + switch v := v.(*StreamEvent_MessageDeleted); i { case 0: return &v.state case 1: @@ -3697,7 +3764,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_ChannelUpdated); i { + switch v := v.(*StreamEvent_ChannelCreated); i { case 0: return &v.state case 1: @@ -3709,7 +3776,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_ChannelPositionUpdated); i { + switch v := v.(*StreamEvent_ChannelUpdated); i { case 0: return &v.state case 1: @@ -3721,7 +3788,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_ChannelsReordered); i { + switch v := v.(*StreamEvent_ChannelPositionUpdated); i { case 0: return &v.state case 1: @@ -3733,7 +3800,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_ChannelDeleted); i { + switch v := v.(*StreamEvent_ChannelsReordered); i { case 0: return &v.state case 1: @@ -3745,7 +3812,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_GuildUpdated); i { + switch v := v.(*StreamEvent_ChannelDeleted); i { case 0: return &v.state case 1: @@ -3757,7 +3824,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_GuildDeleted); i { + switch v := v.(*StreamEvent_GuildUpdated); i { case 0: return &v.state case 1: @@ -3769,7 +3836,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_MemberJoined); i { + switch v := v.(*StreamEvent_GuildDeleted); i { case 0: return &v.state case 1: @@ -3781,7 +3848,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_MemberLeft); i { + switch v := v.(*StreamEvent_MemberJoined); i { case 0: return &v.state case 1: @@ -3793,7 +3860,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_GuildAddedToList); i { + switch v := v.(*StreamEvent_MemberLeft); i { case 0: return &v.state case 1: @@ -3805,7 +3872,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_GuildRemovedFromList); i { + switch v := v.(*StreamEvent_GuildAddedToList); i { case 0: return &v.state case 1: @@ -3817,7 +3884,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_ActionPerformed); i { + switch v := v.(*StreamEvent_GuildRemovedFromList); i { case 0: return &v.state case 1: @@ -3829,7 +3896,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_RoleMoved); i { + switch v := v.(*StreamEvent_ActionPerformed); i { case 0: return &v.state case 1: @@ -3841,7 +3908,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_RoleDeleted); i { + switch v := v.(*StreamEvent_RoleMoved); i { case 0: return &v.state case 1: @@ -3853,7 +3920,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_RoleCreated); i { + switch v := v.(*StreamEvent_RoleDeleted); i { case 0: return &v.state case 1: @@ -3865,7 +3932,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_RoleUpdated); i { + switch v := v.(*StreamEvent_RoleCreated); i { case 0: return &v.state case 1: @@ -3877,7 +3944,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_RolePermissionsUpdated); i { + switch v := v.(*StreamEvent_RoleUpdated); i { case 0: return &v.state case 1: @@ -3889,7 +3956,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_UserRolesUpdated); i { + switch v := v.(*StreamEvent_RolePermissionsUpdated); i { case 0: return &v.state case 1: @@ -3901,7 +3968,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_Typing); i { + switch v := v.(*StreamEvent_UserRolesUpdated); i { case 0: return &v.state case 1: @@ -3913,7 +3980,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_PermissionUpdated); i { + switch v := v.(*StreamEvent_Typing); i { case 0: return &v.state case 1: @@ -3925,7 +3992,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_MessagePinned); i { + switch v := v.(*StreamEvent_PermissionUpdated); i { case 0: return &v.state case 1: @@ -3937,7 +4004,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_MessageUnpinned); i { + switch v := v.(*StreamEvent_MessagePinned); i { case 0: return &v.state case 1: @@ -3949,7 +4016,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_ReactionUpdated); i { + switch v := v.(*StreamEvent_MessageUnpinned); i { case 0: return &v.state case 1: @@ -3961,7 +4028,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_OwnerAdded); i { + switch v := v.(*StreamEvent_ReactionUpdated); i { case 0: return &v.state case 1: @@ -3973,7 +4040,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_OwnerRemoved); i { + switch v := v.(*StreamEvent_OwnerAdded); i { case 0: return &v.state case 1: @@ -3985,7 +4052,7 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent_InviteReceived); i { + switch v := v.(*StreamEvent_OwnerRemoved); i { case 0: return &v.state case 1: @@ -3997,6 +4064,18 @@ func file_chat_v1_stream_proto_init() { } } file_chat_v1_stream_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamEvent_InviteReceived); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_v1_stream_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamEvent_InviteRejected); i { case 0: return &v.state @@ -4013,6 +4092,7 @@ func file_chat_v1_stream_proto_init() { (*StreamEventsRequest_SubscribeToGuild_)(nil), (*StreamEventsRequest_SubscribeToActions_)(nil), (*StreamEventsRequest_SubscribeToHomeserverEvents_)(nil), + (*StreamEventsRequest_UnsubscribeFromAll_)(nil), } file_chat_v1_stream_proto_msgTypes[1].OneofWrappers = []interface{}{ (*StreamEventsResponse_Chat)(nil), @@ -4051,22 +4131,22 @@ func file_chat_v1_stream_proto_init() { (*StreamEvent_InviteReceived_)(nil), (*StreamEvent_InviteRejected_)(nil), } - file_chat_v1_stream_proto_msgTypes[6].OneofWrappers = []interface{}{} - file_chat_v1_stream_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_chat_v1_stream_proto_msgTypes[7].OneofWrappers = []interface{}{} file_chat_v1_stream_proto_msgTypes[10].OneofWrappers = []interface{}{} file_chat_v1_stream_proto_msgTypes[11].OneofWrappers = []interface{}{} - file_chat_v1_stream_proto_msgTypes[14].OneofWrappers = []interface{}{} - file_chat_v1_stream_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_chat_v1_stream_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_chat_v1_stream_proto_msgTypes[15].OneofWrappers = []interface{}{} file_chat_v1_stream_proto_msgTypes[25].OneofWrappers = []interface{}{} - file_chat_v1_stream_proto_msgTypes[28].OneofWrappers = []interface{}{} - file_chat_v1_stream_proto_msgTypes[34].OneofWrappers = []interface{}{} + file_chat_v1_stream_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_chat_v1_stream_proto_msgTypes[29].OneofWrappers = []interface{}{} + file_chat_v1_stream_proto_msgTypes[35].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_chat_v1_stream_proto_rawDesc, NumEnums: 0, - NumMessages: 36, + NumMessages: 37, NumExtensions: 0, NumServices: 0, }, diff --git a/vendor/github.com/harmony-development/shibshib/gen/profile/v1/appdata.pb.go b/vendor/github.com/harmony-development/shibshib/gen/profile/v1/appdata.pb.go new file mode 100644 index 00000000..38d13d64 --- /dev/null +++ b/vendor/github.com/harmony-development/shibshib/gen/profile/v1/appdata.pb.go @@ -0,0 +1,400 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.23.0 +// protoc v3.17.3 +// source: profile/v1/appdata.proto + +package profilev1 + +import ( + proto "github.com/golang/protobuf/proto" + v1 "github.com/harmony-development/shibshib/gen/harmonytypes/v1" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 + +// A tag for an override. This is used as a +// standard shorthand for sending a message with +// an override. If a message starts with before and +// ends with after, clients should send a message +// with the override the tag belongs to, stripping +// the tag indicators. +type OverrideTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The portion of the tag before the messge. + Before string `protobuf:"bytes,1,opt,name=before,proto3" json:"before,omitempty"` + // The portion of the tag after the messge. + After string `protobuf:"bytes,2,opt,name=after,proto3" json:"after,omitempty"` +} + +func (x *OverrideTag) Reset() { + *x = OverrideTag{} + if protoimpl.UnsafeEnabled { + mi := &file_profile_v1_appdata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OverrideTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OverrideTag) ProtoMessage() {} + +func (x *OverrideTag) ProtoReflect() protoreflect.Message { + mi := &file_profile_v1_appdata_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OverrideTag.ProtoReflect.Descriptor instead. +func (*OverrideTag) Descriptor() ([]byte, []int) { + return file_profile_v1_appdata_proto_rawDescGZIP(), []int{0} +} + +func (x *OverrideTag) GetBefore() string { + if x != nil { + return x.Before + } + return "" +} + +func (x *OverrideTag) GetAfter() string { + if x != nil { + return x.After + } + return "" +} + +// An individual override +type ProfileOverride struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The username for this override + Username *string `protobuf:"bytes,1,opt,name=username,proto3,oneof" json:"username,omitempty"` + // The avatar for this override + Avatar *string `protobuf:"bytes,2,opt,name=avatar,proto3,oneof" json:"avatar,omitempty"` + // The tags for this override. + Tags []*OverrideTag `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"` + // The reason this override is used + // + // Types that are assignable to Reason: + // *ProfileOverride_UserDefined + // *ProfileOverride_SystemPlurality + Reason isProfileOverride_Reason `protobuf_oneof:"reason"` +} + +func (x *ProfileOverride) Reset() { + *x = ProfileOverride{} + if protoimpl.UnsafeEnabled { + mi := &file_profile_v1_appdata_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProfileOverride) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProfileOverride) ProtoMessage() {} + +func (x *ProfileOverride) ProtoReflect() protoreflect.Message { + mi := &file_profile_v1_appdata_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProfileOverride.ProtoReflect.Descriptor instead. +func (*ProfileOverride) Descriptor() ([]byte, []int) { + return file_profile_v1_appdata_proto_rawDescGZIP(), []int{1} +} + +func (x *ProfileOverride) GetUsername() string { + if x != nil && x.Username != nil { + return *x.Username + } + return "" +} + +func (x *ProfileOverride) GetAvatar() string { + if x != nil && x.Avatar != nil { + return *x.Avatar + } + return "" +} + +func (x *ProfileOverride) GetTags() []*OverrideTag { + if x != nil { + return x.Tags + } + return nil +} + +func (m *ProfileOverride) GetReason() isProfileOverride_Reason { + if m != nil { + return m.Reason + } + return nil +} + +func (x *ProfileOverride) GetUserDefined() string { + if x, ok := x.GetReason().(*ProfileOverride_UserDefined); ok { + return x.UserDefined + } + return "" +} + +func (x *ProfileOverride) GetSystemPlurality() *v1.Empty { + if x, ok := x.GetReason().(*ProfileOverride_SystemPlurality); ok { + return x.SystemPlurality + } + return nil +} + +type isProfileOverride_Reason interface { + isProfileOverride_Reason() +} + +type ProfileOverride_UserDefined struct { + // a custom reason in case the builtin ones don't fit + UserDefined string `protobuf:"bytes,4,opt,name=user_defined,json=userDefined,proto3,oneof"` +} + +type ProfileOverride_SystemPlurality struct { + // plurality, not system as in computer + SystemPlurality *v1.Empty `protobuf:"bytes,5,opt,name=system_plurality,json=systemPlurality,proto3,oneof"` +} + +func (*ProfileOverride_UserDefined) isProfileOverride_Reason() {} + +func (*ProfileOverride_SystemPlurality) isProfileOverride_Reason() {} + +// The message used for the 'h.overrides' key +// of appdata. +type AppDataOverrides struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of overrides. + Overrides []*ProfileOverride `protobuf:"bytes,1,rep,name=overrides,proto3" json:"overrides,omitempty"` +} + +func (x *AppDataOverrides) Reset() { + *x = AppDataOverrides{} + if protoimpl.UnsafeEnabled { + mi := &file_profile_v1_appdata_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppDataOverrides) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppDataOverrides) ProtoMessage() {} + +func (x *AppDataOverrides) ProtoReflect() protoreflect.Message { + mi := &file_profile_v1_appdata_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppDataOverrides.ProtoReflect.Descriptor instead. +func (*AppDataOverrides) Descriptor() ([]byte, []int) { + return file_profile_v1_appdata_proto_rawDescGZIP(), []int{2} +} + +func (x *AppDataOverrides) GetOverrides() []*ProfileOverride { + if x != nil { + return x.Overrides + } + return nil +} + +var File_profile_v1_appdata_proto protoreflect.FileDescriptor + +var file_profile_v1_appdata_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x70, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, + 0x1b, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x76, 0x31, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3b, 0x0a, 0x0b, + 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x54, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x62, + 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x22, 0x9a, 0x02, 0x0a, 0x0f, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x1f, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x10, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x5f, 0x70, 0x6c, 0x75, 0x72, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x68, 0x61, 0x72, 0x6d, + 0x6f, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x6c, 0x75, 0x72, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x56, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x42, 0xd7, + 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x41, 0x70, 0x70, 0x64, + 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x2d, 0x64, + 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x68, 0x69, 0x62, 0x73, + 0x68, 0x69, 0x62, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, + 0x76, 0x31, 0x3b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x50, + 0x50, 0x58, 0xaa, 0x02, 0x13, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x5c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x1f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x15, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x3a, 0x3a, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_profile_v1_appdata_proto_rawDescOnce sync.Once + file_profile_v1_appdata_proto_rawDescData = file_profile_v1_appdata_proto_rawDesc +) + +func file_profile_v1_appdata_proto_rawDescGZIP() []byte { + file_profile_v1_appdata_proto_rawDescOnce.Do(func() { + file_profile_v1_appdata_proto_rawDescData = protoimpl.X.CompressGZIP(file_profile_v1_appdata_proto_rawDescData) + }) + return file_profile_v1_appdata_proto_rawDescData +} + +var file_profile_v1_appdata_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_profile_v1_appdata_proto_goTypes = []interface{}{ + (*OverrideTag)(nil), // 0: protocol.profile.v1.OverrideTag + (*ProfileOverride)(nil), // 1: protocol.profile.v1.ProfileOverride + (*AppDataOverrides)(nil), // 2: protocol.profile.v1.AppDataOverrides + (*v1.Empty)(nil), // 3: protocol.harmonytypes.v1.Empty +} +var file_profile_v1_appdata_proto_depIdxs = []int32{ + 0, // 0: protocol.profile.v1.ProfileOverride.tags:type_name -> protocol.profile.v1.OverrideTag + 3, // 1: protocol.profile.v1.ProfileOverride.system_plurality:type_name -> protocol.harmonytypes.v1.Empty + 1, // 2: protocol.profile.v1.AppDataOverrides.overrides:type_name -> protocol.profile.v1.ProfileOverride + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_profile_v1_appdata_proto_init() } +func file_profile_v1_appdata_proto_init() { + if File_profile_v1_appdata_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_profile_v1_appdata_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OverrideTag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_profile_v1_appdata_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProfileOverride); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_profile_v1_appdata_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppDataOverrides); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_profile_v1_appdata_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*ProfileOverride_UserDefined)(nil), + (*ProfileOverride_SystemPlurality)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_profile_v1_appdata_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_profile_v1_appdata_proto_goTypes, + DependencyIndexes: file_profile_v1_appdata_proto_depIdxs, + MessageInfos: file_profile_v1_appdata_proto_msgTypes, + }.Build() + File_profile_v1_appdata_proto = out.File + file_profile_v1_appdata_proto_rawDesc = nil + file_profile_v1_appdata_proto_goTypes = nil + file_profile_v1_appdata_proto_depIdxs = nil +} diff --git a/vendor/github.com/kyokomi/emoji/v2/emoji_codemap.go b/vendor/github.com/kyokomi/emoji/v2/emoji_codemap.go index 9a9d73b0..65b6a05f 100644 --- a/vendor/github.com/kyokomi/emoji/v2/emoji_codemap.go +++ b/vendor/github.com/kyokomi/emoji/v2/emoji_codemap.go @@ -253,6 +253,7 @@ func emojiCode() map[string]string { ":beach_umbrella:": "\u26f1", ":beach_with_umbrella:": "\U0001f3d6\ufe0f", ":beaming_face_with_smiling_eyes:": "\U0001f601", + ":beans:": "\U0001fad8", ":bear:": "\U0001f43b", ":bearded_person:": "\U0001f9d4", ":bearded_person_tone1:": "\U0001f9d4\U0001f3fb", @@ -296,6 +297,7 @@ func emojiCode() map[string]string { ":birthday:": "\U0001f382", ":birthday_cake:": "\U0001f382", ":bison:": "\U0001f9ac", + ":biting_lip:": "\U0001fae6", ":black_cat:": "\U0001f408\u200d\u2b1b", ":black_circle:": "\u26ab", ":black_circle_for_record:": "\u23fa\ufe0f", @@ -410,6 +412,7 @@ func emojiCode() map[string]string { ":brown_square:": "\U0001f7eb", ":brunei:": "\U0001f1e7\U0001f1f3", ":bubble_tea:": "\U0001f9cb", + ":bubbles:": "\U0001fae7", ":bucket:": "\U0001faa3", ":bug:": "\U0001f41b", ":building_construction:": "\U0001f3d7\ufe0f", @@ -639,6 +642,7 @@ func emojiCode() map[string]string { ":cool:": "\U0001f192", ":cop:": "\U0001f46e\u200d\u2642\ufe0f", ":copyright:": "\u00a9\ufe0f", + ":coral:": "\U0001fab8", ":corn:": "\U0001f33d", ":costa_rica:": "\U0001f1e8\U0001f1f7", ":cote_divoire:": "\U0001f1e8\U0001f1ee", @@ -647,12 +651,12 @@ func emojiCode() map[string]string { ":counterclockwise_arrows_button:": "\U0001f504", ":couple:": "\U0001f46b", ":couple_mm:": "\U0001f468\u200d\u2764\ufe0f\u200d\U0001f468", - ":couple_with_heart:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f468", + ":couple_with_heart:": "\U0001f491", ":couple_with_heart_man_man:": "\U0001f468\u200d\u2764\ufe0f\u200d\U0001f468", ":couple_with_heart_woman_man:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f468", ":couple_with_heart_woman_woman:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f469", ":couple_ww:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f469", - ":couplekiss:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468", + ":couplekiss:": "\U0001f48f", ":couplekiss_man_man:": "\U0001f468\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468", ":couplekiss_man_woman:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468", ":couplekiss_woman_woman:": "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f469", @@ -680,6 +684,7 @@ func emojiCode() map[string]string { ":crossed_swords:": "\u2694\ufe0f", ":crown:": "\U0001f451", ":cruise_ship:": "\U0001f6f3", + ":crutch:": "\U0001fa7c", ":cry:": "\U0001f622", ":crying_cat:": "\U0001f63f", ":crying_cat_face:": "\U0001f63f", @@ -775,6 +780,7 @@ func emojiCode() map[string]string { ":dominica:": "\U0001f1e9\U0001f1f2", ":dominican_republic:": "\U0001f1e9\U0001f1f4", ":door:": "\U0001f6aa", + ":dotted_line_face:": "\U0001fae5", ":dotted_six-pointed_star:": "\U0001f52f", ":double_curly_loop:": "\u27bf", ":double_exclamation_mark:": "\u203c", @@ -841,6 +847,7 @@ func emojiCode() map[string]string { ":elf_tone5:": "\U0001f9dd\U0001f3ff", ":elf_woman:": "\U0001f9dd\u200d\u2640\ufe0f", ":email:": "\u2709\ufe0f", + ":empty_nest:": "\U0001fab9", ":end:": "\U0001f51a", ":england:": "\U0001f3f4\U000e0067\U000e0062\U000e0065\U000e006e\U000e0067\U000e007f", ":envelope:": "\u2709", @@ -871,630 +878,635 @@ func emojiCode() map[string]string { ":eyes:": "\U0001f440", ":face_blowing_a_kiss:": "\U0001f618", ":face_exhaling:": "\U0001f62e\u200d\U0001f4a8", + ":face_holding_back_tears:": "\U0001f979", ":face_in_clouds:": "\U0001f636\u200d\U0001f32b\ufe0f", ":face_palm:": "\U0001f926", ":face_savoring_food:": "\U0001f60b", ":face_screaming_in_fear:": "\U0001f631", ":face_vomiting:": "\U0001f92e", ":face_with_cowboy_hat:": "\U0001f920", + ":face_with_crossed-out_eyes:": "\U0001f635", + ":face_with_diagonal_mouth:": "\U0001fae4", ":face_with_hand_over_mouth:": "\U0001f92d", ":face_with_head-bandage:": "\U0001f915", ":face_with_head_bandage:": "\U0001f915", ":face_with_medical_mask:": "\U0001f637", ":face_with_monocle:": "\U0001f9d0", - ":face_with_open_mouth:": "\U0001f62e", - ":face_with_raised_eyebrow:": "\U0001f928", - ":face_with_rolling_eyes:": "\U0001f644", - ":face_with_spiral_eyes:": "\U0001f635\u200d\U0001f4ab", - ":face_with_steam_from_nose:": "\U0001f624", - ":face_with_symbols_on_mouth:": "\U0001f92c", - ":face_with_symbols_over_mouth:": "\U0001f92c", - ":face_with_tears_of_joy:": "\U0001f602", - ":face_with_thermometer:": "\U0001f912", - ":face_with_tongue:": "\U0001f61b", - ":face_without_mouth:": "\U0001f636", - ":facepalm:": "\U0001f926", - ":facepunch:": "\U0001f44a", - ":factory:": "\U0001f3ed", - ":factory_worker:": "\U0001f9d1\u200d\U0001f3ed", - ":fairy:": "\U0001f9da\u200d\u2640\ufe0f", - ":fairy_man:": "\U0001f9da\u200d\u2642\ufe0f", - ":fairy_tone1:": "\U0001f9da\U0001f3fb", - ":fairy_tone2:": "\U0001f9da\U0001f3fc", - ":fairy_tone3:": "\U0001f9da\U0001f3fd", - ":fairy_tone4:": "\U0001f9da\U0001f3fe", - ":fairy_tone5:": "\U0001f9da\U0001f3ff", - ":fairy_woman:": "\U0001f9da\u200d\u2640\ufe0f", - ":falafel:": "\U0001f9c6", - ":falkland_islands:": "\U0001f1eb\U0001f1f0", - ":fallen_leaf:": "\U0001f342", - ":family:": "\U0001f468\u200d\U0001f469\u200d\U0001f466", - ":family_man_boy:": "\U0001f468\u200d\U0001f466", - ":family_man_boy_boy:": "\U0001f468\u200d\U0001f466\u200d\U0001f466", - ":family_man_girl:": "\U0001f468\u200d\U0001f467", - ":family_man_girl_boy:": "\U0001f468\u200d\U0001f467\u200d\U0001f466", - ":family_man_girl_girl:": "\U0001f468\u200d\U0001f467\u200d\U0001f467", - ":family_man_man_boy:": "\U0001f468\u200d\U0001f468\u200d\U0001f466", - ":family_man_man_boy_boy:": "\U0001f468\u200d\U0001f468\u200d\U0001f466\u200d\U0001f466", - ":family_man_man_girl:": "\U0001f468\u200d\U0001f468\u200d\U0001f467", - ":family_man_man_girl_boy:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f466", - ":family_man_man_girl_girl:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f467", - ":family_man_woman_boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f466", - ":family_man_woman_boy_boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", - ":family_man_woman_girl:": "\U0001f468\u200d\U0001f469\u200d\U0001f467", - ":family_man_woman_girl_boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", - ":family_man_woman_girl_girl:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", - ":family_mmb:": "\U0001f468\u200d\U0001f468\u200d\U0001f466", - ":family_mmbb:": "\U0001f468\u200d\U0001f468\u200d\U0001f466\u200d\U0001f466", - ":family_mmg:": "\U0001f468\u200d\U0001f468\u200d\U0001f467", - ":family_mmgb:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f466", - ":family_mmgg:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f467", - ":family_mwbb:": "\U0001f468\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", - ":family_mwg:": "\U0001f468\u200d\U0001f469\u200d\U0001f467", - ":family_mwgb:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", - ":family_mwgg:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", - ":family_woman_boy:": "\U0001f469\u200d\U0001f466", - ":family_woman_boy_boy:": "\U0001f469\u200d\U0001f466\u200d\U0001f466", - ":family_woman_girl:": "\U0001f469\u200d\U0001f467", - ":family_woman_girl_boy:": "\U0001f469\u200d\U0001f467\u200d\U0001f466", - ":family_woman_girl_girl:": "\U0001f469\u200d\U0001f467\u200d\U0001f467", - ":family_woman_woman_boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f466", - ":family_woman_woman_boy_boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", - ":family_woman_woman_girl:": "\U0001f469\u200d\U0001f469\u200d\U0001f467", - ":family_woman_woman_girl_boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", - ":family_woman_woman_girl_girl:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", - ":family_wwb:": "\U0001f469\u200d\U0001f469\u200d\U0001f466", - ":family_wwbb:": "\U0001f469\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", - ":family_wwg:": "\U0001f469\u200d\U0001f469\u200d\U0001f467", - ":family_wwgb:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", - ":family_wwgg:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", - ":farmer:": "\U0001f9d1\u200d\U0001f33e", - ":faroe_islands:": "\U0001f1eb\U0001f1f4", - ":fast-forward_button:": "\u23e9", - ":fast_down_button:": "\u23ec", - ":fast_forward:": "\u23e9", - ":fast_reverse_button:": "\u23ea", - ":fast_up_button:": "\u23eb", - ":fax:": "\U0001f4e0", - ":fax_machine:": "\U0001f4e0", - ":fearful:": "\U0001f628", - ":fearful_face:": "\U0001f628", - ":feather:": "\U0001fab6", - ":feet:": "\U0001f43e", - ":female-artist:": "\U0001f469\u200d\U0001f3a8", - ":female-astronaut:": "\U0001f469\u200d\U0001f680", - ":female-construction-worker:": "\U0001f477\u200d\u2640\ufe0f", - ":female-cook:": "\U0001f469\u200d\U0001f373", - ":female-detective:": "\U0001f575\ufe0f\u200d\u2640\ufe0f", - ":female-doctor:": "\U0001f469\u200d\u2695\ufe0f", - ":female-factory-worker:": "\U0001f469\u200d\U0001f3ed", - ":female-farmer:": "\U0001f469\u200d\U0001f33e", - ":female-firefighter:": "\U0001f469\u200d\U0001f692", - ":female-guard:": "\U0001f482\u200d\u2640\ufe0f", - ":female-judge:": "\U0001f469\u200d\u2696\ufe0f", - ":female-mechanic:": "\U0001f469\u200d\U0001f527", - ":female-office-worker:": "\U0001f469\u200d\U0001f4bc", - ":female-pilot:": "\U0001f469\u200d\u2708\ufe0f", - ":female-police-officer:": "\U0001f46e\u200d\u2640\ufe0f", - ":female-scientist:": "\U0001f469\u200d\U0001f52c", - ":female-singer:": "\U0001f469\u200d\U0001f3a4", - ":female-student:": "\U0001f469\u200d\U0001f393", - ":female-teacher:": "\U0001f469\u200d\U0001f3eb", - ":female-technologist:": "\U0001f469\u200d\U0001f4bb", - ":female_detective:": "\U0001f575\ufe0f\u200d\u2640\ufe0f", - ":female_elf:": "\U0001f9dd\u200d\u2640\ufe0f", - ":female_fairy:": "\U0001f9da\u200d\u2640\ufe0f", - ":female_genie:": "\U0001f9de\u200d\u2640\ufe0f", - ":female_mage:": "\U0001f9d9\u200d\u2640\ufe0f", - ":female_sign:": "\u2640\ufe0f", - ":female_superhero:": "\U0001f9b8\u200d\u2640\ufe0f", - ":female_supervillain:": "\U0001f9b9\u200d\u2640\ufe0f", - ":female_vampire:": "\U0001f9db\u200d\u2640\ufe0f", - ":female_zombie:": "\U0001f9df\u200d\u2640\ufe0f", - ":fencer:": "\U0001f93a", - ":ferris_wheel:": "\U0001f3a1", - ":ferry:": "\u26f4\ufe0f", - ":field_hockey:": "\U0001f3d1", - ":field_hockey_stick_and_ball:": "\U0001f3d1", - ":fiji:": "\U0001f1eb\U0001f1ef", - ":file_cabinet:": "\U0001f5c4\ufe0f", - ":file_folder:": "\U0001f4c1", - ":film_frames:": "\U0001f39e\ufe0f", - ":film_projector:": "\U0001f4fd\ufe0f", - ":film_strip:": "\U0001f39e\ufe0f", - ":fingers_crossed:": "\U0001f91e", - ":fingers_crossed_tone1:": "\U0001f91e\U0001f3fb", - ":fingers_crossed_tone2:": "\U0001f91e\U0001f3fc", - ":fingers_crossed_tone3:": "\U0001f91e\U0001f3fd", - ":fingers_crossed_tone4:": "\U0001f91e\U0001f3fe", - ":fingers_crossed_tone5:": "\U0001f91e\U0001f3ff", - ":finland:": "\U0001f1eb\U0001f1ee", - ":fire:": "\U0001f525", - ":fire_engine:": "\U0001f692", - ":fire_extinguisher:": "\U0001f9ef", - ":firecracker:": "\U0001f9e8", - ":firefighter:": "\U0001f9d1\u200d\U0001f692", - ":fireworks:": "\U0001f386", - ":first_place:": "\U0001f947", - ":first_place_medal:": "\U0001f947", - ":first_quarter_moon:": "\U0001f313", - ":first_quarter_moon_face:": "\U0001f31b", - ":first_quarter_moon_with_face:": "\U0001f31b", - ":fish:": "\U0001f41f", - ":fish_cake:": "\U0001f365", - ":fish_cake_with_swirl:": "\U0001f365", - ":fishing_pole:": "\U0001f3a3", - ":fishing_pole_and_fish:": "\U0001f3a3", - ":fist:": "\u270a", - ":fist_left:": "\U0001f91b", - ":fist_oncoming:": "\U0001f44a", - ":fist_raised:": "\u270a", - ":fist_right:": "\U0001f91c", - ":fist_tone1:": "\u270a\U0001f3fb", - ":fist_tone2:": "\u270a\U0001f3fc", - ":fist_tone3:": "\u270a\U0001f3fd", - ":fist_tone4:": "\u270a\U0001f3fe", - ":fist_tone5:": "\u270a\U0001f3ff", - ":five:": "5\ufe0f\u20e3", - ":five-thirty:": "\U0001f560", - ":five_o’clock:": "\U0001f554", - ":flag-ac:": "\U0001f1e6\U0001f1e8", - ":flag-ad:": "\U0001f1e6\U0001f1e9", - ":flag-ae:": "\U0001f1e6\U0001f1ea", - ":flag-af:": "\U0001f1e6\U0001f1eb", - ":flag-ag:": "\U0001f1e6\U0001f1ec", - ":flag-ai:": "\U0001f1e6\U0001f1ee", - ":flag-al:": "\U0001f1e6\U0001f1f1", - ":flag-am:": "\U0001f1e6\U0001f1f2", - ":flag-ao:": "\U0001f1e6\U0001f1f4", - ":flag-aq:": "\U0001f1e6\U0001f1f6", - ":flag-ar:": "\U0001f1e6\U0001f1f7", - ":flag-as:": "\U0001f1e6\U0001f1f8", - ":flag-at:": "\U0001f1e6\U0001f1f9", - ":flag-au:": "\U0001f1e6\U0001f1fa", - ":flag-aw:": "\U0001f1e6\U0001f1fc", - ":flag-ax:": "\U0001f1e6\U0001f1fd", - ":flag-az:": "\U0001f1e6\U0001f1ff", - ":flag-ba:": "\U0001f1e7\U0001f1e6", - ":flag-bb:": "\U0001f1e7\U0001f1e7", - ":flag-bd:": "\U0001f1e7\U0001f1e9", - ":flag-be:": "\U0001f1e7\U0001f1ea", - ":flag-bf:": "\U0001f1e7\U0001f1eb", - ":flag-bg:": "\U0001f1e7\U0001f1ec", - ":flag-bh:": "\U0001f1e7\U0001f1ed", - ":flag-bi:": "\U0001f1e7\U0001f1ee", - ":flag-bj:": "\U0001f1e7\U0001f1ef", - ":flag-bl:": "\U0001f1e7\U0001f1f1", - ":flag-bm:": "\U0001f1e7\U0001f1f2", - ":flag-bn:": "\U0001f1e7\U0001f1f3", - ":flag-bo:": "\U0001f1e7\U0001f1f4", - ":flag-bq:": "\U0001f1e7\U0001f1f6", - ":flag-br:": "\U0001f1e7\U0001f1f7", - ":flag-bs:": "\U0001f1e7\U0001f1f8", - ":flag-bt:": "\U0001f1e7\U0001f1f9", - ":flag-bv:": "\U0001f1e7\U0001f1fb", - ":flag-bw:": "\U0001f1e7\U0001f1fc", - ":flag-by:": "\U0001f1e7\U0001f1fe", - ":flag-bz:": "\U0001f1e7\U0001f1ff", - ":flag-ca:": "\U0001f1e8\U0001f1e6", - ":flag-cc:": "\U0001f1e8\U0001f1e8", - ":flag-cd:": "\U0001f1e8\U0001f1e9", - ":flag-cf:": "\U0001f1e8\U0001f1eb", - ":flag-cg:": "\U0001f1e8\U0001f1ec", - ":flag-ch:": "\U0001f1e8\U0001f1ed", - ":flag-ci:": "\U0001f1e8\U0001f1ee", - ":flag-ck:": "\U0001f1e8\U0001f1f0", - ":flag-cl:": "\U0001f1e8\U0001f1f1", - ":flag-cm:": "\U0001f1e8\U0001f1f2", - ":flag-co:": "\U0001f1e8\U0001f1f4", - ":flag-cp:": "\U0001f1e8\U0001f1f5", - ":flag-cr:": "\U0001f1e8\U0001f1f7", - ":flag-cu:": "\U0001f1e8\U0001f1fa", - ":flag-cv:": "\U0001f1e8\U0001f1fb", - ":flag-cw:": "\U0001f1e8\U0001f1fc", - ":flag-cx:": "\U0001f1e8\U0001f1fd", - ":flag-cy:": "\U0001f1e8\U0001f1fe", - ":flag-cz:": "\U0001f1e8\U0001f1ff", - ":flag-dg:": "\U0001f1e9\U0001f1ec", - ":flag-dj:": "\U0001f1e9\U0001f1ef", - ":flag-dk:": "\U0001f1e9\U0001f1f0", - ":flag-dm:": "\U0001f1e9\U0001f1f2", - ":flag-do:": "\U0001f1e9\U0001f1f4", - ":flag-dz:": "\U0001f1e9\U0001f1ff", - ":flag-ea:": "\U0001f1ea\U0001f1e6", - ":flag-ec:": "\U0001f1ea\U0001f1e8", - ":flag-ee:": "\U0001f1ea\U0001f1ea", - ":flag-eg:": "\U0001f1ea\U0001f1ec", - ":flag-eh:": "\U0001f1ea\U0001f1ed", - ":flag-england:": "\U0001f3f4\U000e0067\U000e0062\U000e0065\U000e006e\U000e0067\U000e007f", - ":flag-er:": "\U0001f1ea\U0001f1f7", - ":flag-et:": "\U0001f1ea\U0001f1f9", - ":flag-eu:": "\U0001f1ea\U0001f1fa", - ":flag-fi:": "\U0001f1eb\U0001f1ee", - ":flag-fj:": "\U0001f1eb\U0001f1ef", - ":flag-fk:": "\U0001f1eb\U0001f1f0", - ":flag-fm:": "\U0001f1eb\U0001f1f2", - ":flag-fo:": "\U0001f1eb\U0001f1f4", - ":flag-ga:": "\U0001f1ec\U0001f1e6", - ":flag-gd:": "\U0001f1ec\U0001f1e9", - ":flag-ge:": "\U0001f1ec\U0001f1ea", - ":flag-gf:": "\U0001f1ec\U0001f1eb", - ":flag-gg:": "\U0001f1ec\U0001f1ec", - ":flag-gh:": "\U0001f1ec\U0001f1ed", - ":flag-gi:": "\U0001f1ec\U0001f1ee", - ":flag-gl:": "\U0001f1ec\U0001f1f1", - ":flag-gm:": "\U0001f1ec\U0001f1f2", - ":flag-gn:": "\U0001f1ec\U0001f1f3", - ":flag-gp:": "\U0001f1ec\U0001f1f5", - ":flag-gq:": "\U0001f1ec\U0001f1f6", - ":flag-gr:": "\U0001f1ec\U0001f1f7", - ":flag-gs:": "\U0001f1ec\U0001f1f8", - ":flag-gt:": "\U0001f1ec\U0001f1f9", - ":flag-gu:": "\U0001f1ec\U0001f1fa", - ":flag-gw:": "\U0001f1ec\U0001f1fc", - ":flag-gy:": "\U0001f1ec\U0001f1fe", - ":flag-hk:": "\U0001f1ed\U0001f1f0", - ":flag-hm:": "\U0001f1ed\U0001f1f2", - ":flag-hn:": "\U0001f1ed\U0001f1f3", - ":flag-hr:": "\U0001f1ed\U0001f1f7", - ":flag-ht:": "\U0001f1ed\U0001f1f9", - ":flag-hu:": "\U0001f1ed\U0001f1fa", - ":flag-ic:": "\U0001f1ee\U0001f1e8", - ":flag-id:": "\U0001f1ee\U0001f1e9", - ":flag-ie:": "\U0001f1ee\U0001f1ea", - ":flag-il:": "\U0001f1ee\U0001f1f1", - ":flag-im:": "\U0001f1ee\U0001f1f2", - ":flag-in:": "\U0001f1ee\U0001f1f3", - ":flag-io:": "\U0001f1ee\U0001f1f4", - ":flag-iq:": "\U0001f1ee\U0001f1f6", - ":flag-ir:": "\U0001f1ee\U0001f1f7", - ":flag-is:": "\U0001f1ee\U0001f1f8", - ":flag-je:": "\U0001f1ef\U0001f1ea", - ":flag-jm:": "\U0001f1ef\U0001f1f2", - ":flag-jo:": "\U0001f1ef\U0001f1f4", - ":flag-ke:": "\U0001f1f0\U0001f1ea", - ":flag-kg:": "\U0001f1f0\U0001f1ec", - ":flag-kh:": "\U0001f1f0\U0001f1ed", - ":flag-ki:": "\U0001f1f0\U0001f1ee", - ":flag-km:": "\U0001f1f0\U0001f1f2", - ":flag-kn:": "\U0001f1f0\U0001f1f3", - ":flag-kp:": "\U0001f1f0\U0001f1f5", - ":flag-kw:": "\U0001f1f0\U0001f1fc", - ":flag-ky:": "\U0001f1f0\U0001f1fe", - ":flag-kz:": "\U0001f1f0\U0001f1ff", - ":flag-la:": "\U0001f1f1\U0001f1e6", - ":flag-lb:": "\U0001f1f1\U0001f1e7", - ":flag-lc:": "\U0001f1f1\U0001f1e8", - ":flag-li:": "\U0001f1f1\U0001f1ee", - ":flag-lk:": "\U0001f1f1\U0001f1f0", - ":flag-lr:": "\U0001f1f1\U0001f1f7", - ":flag-ls:": "\U0001f1f1\U0001f1f8", - ":flag-lt:": "\U0001f1f1\U0001f1f9", - ":flag-lu:": "\U0001f1f1\U0001f1fa", - ":flag-lv:": "\U0001f1f1\U0001f1fb", - ":flag-ly:": "\U0001f1f1\U0001f1fe", - ":flag-ma:": "\U0001f1f2\U0001f1e6", - ":flag-mc:": "\U0001f1f2\U0001f1e8", - ":flag-md:": "\U0001f1f2\U0001f1e9", - ":flag-me:": "\U0001f1f2\U0001f1ea", - ":flag-mf:": "\U0001f1f2\U0001f1eb", - ":flag-mg:": "\U0001f1f2\U0001f1ec", - ":flag-mh:": "\U0001f1f2\U0001f1ed", - ":flag-mk:": "\U0001f1f2\U0001f1f0", - ":flag-ml:": "\U0001f1f2\U0001f1f1", - ":flag-mm:": "\U0001f1f2\U0001f1f2", - ":flag-mn:": "\U0001f1f2\U0001f1f3", - ":flag-mo:": "\U0001f1f2\U0001f1f4", - ":flag-mp:": "\U0001f1f2\U0001f1f5", - ":flag-mq:": "\U0001f1f2\U0001f1f6", - ":flag-mr:": "\U0001f1f2\U0001f1f7", - ":flag-ms:": "\U0001f1f2\U0001f1f8", - ":flag-mt:": "\U0001f1f2\U0001f1f9", - ":flag-mu:": "\U0001f1f2\U0001f1fa", - ":flag-mv:": "\U0001f1f2\U0001f1fb", - ":flag-mw:": "\U0001f1f2\U0001f1fc", - ":flag-mx:": "\U0001f1f2\U0001f1fd", - ":flag-my:": "\U0001f1f2\U0001f1fe", - ":flag-mz:": "\U0001f1f2\U0001f1ff", - ":flag-na:": "\U0001f1f3\U0001f1e6", - ":flag-nc:": "\U0001f1f3\U0001f1e8", - ":flag-ne:": "\U0001f1f3\U0001f1ea", - ":flag-nf:": "\U0001f1f3\U0001f1eb", - ":flag-ng:": "\U0001f1f3\U0001f1ec", - ":flag-ni:": "\U0001f1f3\U0001f1ee", - ":flag-nl:": "\U0001f1f3\U0001f1f1", - ":flag-no:": "\U0001f1f3\U0001f1f4", - ":flag-np:": "\U0001f1f3\U0001f1f5", - ":flag-nr:": "\U0001f1f3\U0001f1f7", - ":flag-nu:": "\U0001f1f3\U0001f1fa", - ":flag-nz:": "\U0001f1f3\U0001f1ff", - ":flag-om:": "\U0001f1f4\U0001f1f2", - ":flag-pa:": "\U0001f1f5\U0001f1e6", - ":flag-pe:": "\U0001f1f5\U0001f1ea", - ":flag-pf:": "\U0001f1f5\U0001f1eb", - ":flag-pg:": "\U0001f1f5\U0001f1ec", - ":flag-ph:": "\U0001f1f5\U0001f1ed", - ":flag-pk:": "\U0001f1f5\U0001f1f0", - ":flag-pl:": "\U0001f1f5\U0001f1f1", - ":flag-pm:": "\U0001f1f5\U0001f1f2", - ":flag-pn:": "\U0001f1f5\U0001f1f3", - ":flag-pr:": "\U0001f1f5\U0001f1f7", - ":flag-ps:": "\U0001f1f5\U0001f1f8", - ":flag-pt:": "\U0001f1f5\U0001f1f9", - ":flag-pw:": "\U0001f1f5\U0001f1fc", - ":flag-py:": "\U0001f1f5\U0001f1fe", - ":flag-qa:": "\U0001f1f6\U0001f1e6", - ":flag-re:": "\U0001f1f7\U0001f1ea", - ":flag-ro:": "\U0001f1f7\U0001f1f4", - ":flag-rs:": "\U0001f1f7\U0001f1f8", - ":flag-rw:": "\U0001f1f7\U0001f1fc", - ":flag-sa:": "\U0001f1f8\U0001f1e6", - ":flag-sb:": "\U0001f1f8\U0001f1e7", - ":flag-sc:": "\U0001f1f8\U0001f1e8", - ":flag-scotland:": "\U0001f3f4\U000e0067\U000e0062\U000e0073\U000e0063\U000e0074\U000e007f", - ":flag-sd:": "\U0001f1f8\U0001f1e9", - ":flag-se:": "\U0001f1f8\U0001f1ea", - ":flag-sg:": "\U0001f1f8\U0001f1ec", - ":flag-sh:": "\U0001f1f8\U0001f1ed", - ":flag-si:": "\U0001f1f8\U0001f1ee", - ":flag-sj:": "\U0001f1f8\U0001f1ef", - ":flag-sk:": "\U0001f1f8\U0001f1f0", - ":flag-sl:": "\U0001f1f8\U0001f1f1", - ":flag-sm:": "\U0001f1f8\U0001f1f2", - ":flag-sn:": "\U0001f1f8\U0001f1f3", - ":flag-so:": "\U0001f1f8\U0001f1f4", - ":flag-sr:": "\U0001f1f8\U0001f1f7", - ":flag-ss:": "\U0001f1f8\U0001f1f8", - ":flag-st:": "\U0001f1f8\U0001f1f9", - ":flag-sv:": "\U0001f1f8\U0001f1fb", - ":flag-sx:": "\U0001f1f8\U0001f1fd", - ":flag-sy:": "\U0001f1f8\U0001f1fe", - ":flag-sz:": "\U0001f1f8\U0001f1ff", - ":flag-ta:": "\U0001f1f9\U0001f1e6", - ":flag-tc:": "\U0001f1f9\U0001f1e8", - ":flag-td:": "\U0001f1f9\U0001f1e9", - ":flag-tf:": "\U0001f1f9\U0001f1eb", - ":flag-tg:": "\U0001f1f9\U0001f1ec", - ":flag-th:": "\U0001f1f9\U0001f1ed", - ":flag-tj:": "\U0001f1f9\U0001f1ef", - ":flag-tk:": "\U0001f1f9\U0001f1f0", - ":flag-tl:": "\U0001f1f9\U0001f1f1", - ":flag-tm:": "\U0001f1f9\U0001f1f2", - ":flag-tn:": "\U0001f1f9\U0001f1f3", - ":flag-to:": "\U0001f1f9\U0001f1f4", - ":flag-tr:": "\U0001f1f9\U0001f1f7", - ":flag-tt:": "\U0001f1f9\U0001f1f9", - ":flag-tv:": "\U0001f1f9\U0001f1fb", - ":flag-tw:": "\U0001f1f9\U0001f1fc", - ":flag-tz:": "\U0001f1f9\U0001f1ff", - ":flag-ua:": "\U0001f1fa\U0001f1e6", - ":flag-ug:": "\U0001f1fa\U0001f1ec", - ":flag-um:": "\U0001f1fa\U0001f1f2", - ":flag-un:": "\U0001f1fa\U0001f1f3", - ":flag-uy:": "\U0001f1fa\U0001f1fe", - ":flag-uz:": "\U0001f1fa\U0001f1ff", - ":flag-va:": "\U0001f1fb\U0001f1e6", - ":flag-vc:": "\U0001f1fb\U0001f1e8", - ":flag-ve:": "\U0001f1fb\U0001f1ea", - ":flag-vg:": "\U0001f1fb\U0001f1ec", - ":flag-vi:": "\U0001f1fb\U0001f1ee", - ":flag-vn:": "\U0001f1fb\U0001f1f3", - ":flag-vu:": "\U0001f1fb\U0001f1fa", - ":flag-wales:": "\U0001f3f4\U000e0067\U000e0062\U000e0077\U000e006c\U000e0073\U000e007f", - ":flag-wf:": "\U0001f1fc\U0001f1eb", - ":flag-ws:": "\U0001f1fc\U0001f1f8", - ":flag-xk:": "\U0001f1fd\U0001f1f0", - ":flag-ye:": "\U0001f1fe\U0001f1ea", - ":flag-yt:": "\U0001f1fe\U0001f1f9", - ":flag-za:": "\U0001f1ff\U0001f1e6", - ":flag-zm:": "\U0001f1ff\U0001f1f2", - ":flag-zw:": "\U0001f1ff\U0001f1fc", - ":flag_Afghanistan:": "\U0001f1e6\U0001f1eb", - ":flag_Albania:": "\U0001f1e6\U0001f1f1", - ":flag_Algeria:": "\U0001f1e9\U0001f1ff", - ":flag_American_Samoa:": "\U0001f1e6\U0001f1f8", - ":flag_Andorra:": "\U0001f1e6\U0001f1e9", - ":flag_Angola:": "\U0001f1e6\U0001f1f4", - ":flag_Anguilla:": "\U0001f1e6\U0001f1ee", - ":flag_Antarctica:": "\U0001f1e6\U0001f1f6", - ":flag_Antigua_&_Barbuda:": "\U0001f1e6\U0001f1ec", - ":flag_Argentina:": "\U0001f1e6\U0001f1f7", - ":flag_Armenia:": "\U0001f1e6\U0001f1f2", - ":flag_Aruba:": "\U0001f1e6\U0001f1fc", - ":flag_Ascension_Island:": "\U0001f1e6\U0001f1e8", - ":flag_Australia:": "\U0001f1e6\U0001f1fa", - ":flag_Austria:": "\U0001f1e6\U0001f1f9", - ":flag_Azerbaijan:": "\U0001f1e6\U0001f1ff", - ":flag_Bahamas:": "\U0001f1e7\U0001f1f8", - ":flag_Bahrain:": "\U0001f1e7\U0001f1ed", - ":flag_Bangladesh:": "\U0001f1e7\U0001f1e9", - ":flag_Barbados:": "\U0001f1e7\U0001f1e7", - ":flag_Belarus:": "\U0001f1e7\U0001f1fe", - ":flag_Belgium:": "\U0001f1e7\U0001f1ea", - ":flag_Belize:": "\U0001f1e7\U0001f1ff", - ":flag_Benin:": "\U0001f1e7\U0001f1ef", - ":flag_Bermuda:": "\U0001f1e7\U0001f1f2", - ":flag_Bhutan:": "\U0001f1e7\U0001f1f9", - ":flag_Bolivia:": "\U0001f1e7\U0001f1f4", - ":flag_Bosnia_&_Herzegovina:": "\U0001f1e7\U0001f1e6", - ":flag_Botswana:": "\U0001f1e7\U0001f1fc", - ":flag_Bouvet_Island:": "\U0001f1e7\U0001f1fb", - ":flag_Brazil:": "\U0001f1e7\U0001f1f7", - ":flag_British_Indian_Ocean_Territory:": "\U0001f1ee\U0001f1f4", - ":flag_British_Virgin_Islands:": "\U0001f1fb\U0001f1ec", - ":flag_Brunei:": "\U0001f1e7\U0001f1f3", - ":flag_Bulgaria:": "\U0001f1e7\U0001f1ec", - ":flag_Burkina_Faso:": "\U0001f1e7\U0001f1eb", - ":flag_Burundi:": "\U0001f1e7\U0001f1ee", - ":flag_Cambodia:": "\U0001f1f0\U0001f1ed", - ":flag_Cameroon:": "\U0001f1e8\U0001f1f2", - ":flag_Canada:": "\U0001f1e8\U0001f1e6", - ":flag_Canary_Islands:": "\U0001f1ee\U0001f1e8", - ":flag_Cape_Verde:": "\U0001f1e8\U0001f1fb", - ":flag_Caribbean_Netherlands:": "\U0001f1e7\U0001f1f6", - ":flag_Cayman_Islands:": "\U0001f1f0\U0001f1fe", - ":flag_Central_African_Republic:": "\U0001f1e8\U0001f1eb", - ":flag_Ceuta_&_Melilla:": "\U0001f1ea\U0001f1e6", - ":flag_Chad:": "\U0001f1f9\U0001f1e9", - ":flag_Chile:": "\U0001f1e8\U0001f1f1", - ":flag_China:": "\U0001f1e8\U0001f1f3", - ":flag_Christmas_Island:": "\U0001f1e8\U0001f1fd", - ":flag_Clipperton_Island:": "\U0001f1e8\U0001f1f5", - ":flag_Cocos_(Keeling)_Islands:": "\U0001f1e8\U0001f1e8", - ":flag_Colombia:": "\U0001f1e8\U0001f1f4", - ":flag_Comoros:": "\U0001f1f0\U0001f1f2", - ":flag_Congo_-_Brazzaville:": "\U0001f1e8\U0001f1ec", - ":flag_Congo_-_Kinshasa:": "\U0001f1e8\U0001f1e9", - ":flag_Cook_Islands:": "\U0001f1e8\U0001f1f0", - ":flag_Costa_Rica:": "\U0001f1e8\U0001f1f7", - ":flag_Croatia:": "\U0001f1ed\U0001f1f7", - ":flag_Cuba:": "\U0001f1e8\U0001f1fa", - ":flag_Curaçao:": "\U0001f1e8\U0001f1fc", - ":flag_Cyprus:": "\U0001f1e8\U0001f1fe", - ":flag_Czechia:": "\U0001f1e8\U0001f1ff", - ":flag_Côte_d’Ivoire:": "\U0001f1e8\U0001f1ee", - ":flag_Denmark:": "\U0001f1e9\U0001f1f0", - ":flag_Diego_Garcia:": "\U0001f1e9\U0001f1ec", - ":flag_Djibouti:": "\U0001f1e9\U0001f1ef", - ":flag_Dominica:": "\U0001f1e9\U0001f1f2", - ":flag_Dominican_Republic:": "\U0001f1e9\U0001f1f4", - ":flag_Ecuador:": "\U0001f1ea\U0001f1e8", - ":flag_Egypt:": "\U0001f1ea\U0001f1ec", - ":flag_El_Salvador:": "\U0001f1f8\U0001f1fb", - ":flag_England:": "\U0001f3f4\U000e0067\U000e0062\U000e0065\U000e006e\U000e0067\U000e007f", - ":flag_Equatorial_Guinea:": "\U0001f1ec\U0001f1f6", - ":flag_Eritrea:": "\U0001f1ea\U0001f1f7", - ":flag_Estonia:": "\U0001f1ea\U0001f1ea", - ":flag_Eswatini:": "\U0001f1f8\U0001f1ff", - ":flag_Ethiopia:": "\U0001f1ea\U0001f1f9", - ":flag_European_Union:": "\U0001f1ea\U0001f1fa", - ":flag_Falkland_Islands:": "\U0001f1eb\U0001f1f0", - ":flag_Faroe_Islands:": "\U0001f1eb\U0001f1f4", - ":flag_Fiji:": "\U0001f1eb\U0001f1ef", - ":flag_Finland:": "\U0001f1eb\U0001f1ee", - ":flag_France:": "\U0001f1eb\U0001f1f7", - ":flag_French_Guiana:": "\U0001f1ec\U0001f1eb", - ":flag_French_Polynesia:": "\U0001f1f5\U0001f1eb", - ":flag_French_Southern_Territories:": "\U0001f1f9\U0001f1eb", - ":flag_Gabon:": "\U0001f1ec\U0001f1e6", - ":flag_Gambia:": "\U0001f1ec\U0001f1f2", - ":flag_Georgia:": "\U0001f1ec\U0001f1ea", - ":flag_Germany:": "\U0001f1e9\U0001f1ea", - ":flag_Ghana:": "\U0001f1ec\U0001f1ed", - ":flag_Gibraltar:": "\U0001f1ec\U0001f1ee", - ":flag_Greece:": "\U0001f1ec\U0001f1f7", - ":flag_Greenland:": "\U0001f1ec\U0001f1f1", - ":flag_Grenada:": "\U0001f1ec\U0001f1e9", - ":flag_Guadeloupe:": "\U0001f1ec\U0001f1f5", - ":flag_Guam:": "\U0001f1ec\U0001f1fa", - ":flag_Guatemala:": "\U0001f1ec\U0001f1f9", - ":flag_Guernsey:": "\U0001f1ec\U0001f1ec", - ":flag_Guinea:": "\U0001f1ec\U0001f1f3", - ":flag_Guinea-Bissau:": "\U0001f1ec\U0001f1fc", - ":flag_Guyana:": "\U0001f1ec\U0001f1fe", - ":flag_Haiti:": "\U0001f1ed\U0001f1f9", - ":flag_Heard_&_McDonald_Islands:": "\U0001f1ed\U0001f1f2", - ":flag_Honduras:": "\U0001f1ed\U0001f1f3", - ":flag_Hong_Kong_SAR_China:": "\U0001f1ed\U0001f1f0", - ":flag_Hungary:": "\U0001f1ed\U0001f1fa", - ":flag_Iceland:": "\U0001f1ee\U0001f1f8", - ":flag_India:": "\U0001f1ee\U0001f1f3", - ":flag_Indonesia:": "\U0001f1ee\U0001f1e9", - ":flag_Iran:": "\U0001f1ee\U0001f1f7", - ":flag_Iraq:": "\U0001f1ee\U0001f1f6", - ":flag_Ireland:": "\U0001f1ee\U0001f1ea", - ":flag_Isle_of_Man:": "\U0001f1ee\U0001f1f2", - ":flag_Israel:": "\U0001f1ee\U0001f1f1", - ":flag_Italy:": "\U0001f1ee\U0001f1f9", - ":flag_Jamaica:": "\U0001f1ef\U0001f1f2", - ":flag_Japan:": "\U0001f1ef\U0001f1f5", - ":flag_Jersey:": "\U0001f1ef\U0001f1ea", - ":flag_Jordan:": "\U0001f1ef\U0001f1f4", - ":flag_Kazakhstan:": "\U0001f1f0\U0001f1ff", - ":flag_Kenya:": "\U0001f1f0\U0001f1ea", - ":flag_Kiribati:": "\U0001f1f0\U0001f1ee", - ":flag_Kosovo:": "\U0001f1fd\U0001f1f0", - ":flag_Kuwait:": "\U0001f1f0\U0001f1fc", - ":flag_Kyrgyzstan:": "\U0001f1f0\U0001f1ec", - ":flag_Laos:": "\U0001f1f1\U0001f1e6", - ":flag_Latvia:": "\U0001f1f1\U0001f1fb", - ":flag_Lebanon:": "\U0001f1f1\U0001f1e7", - ":flag_Lesotho:": "\U0001f1f1\U0001f1f8", - ":flag_Liberia:": "\U0001f1f1\U0001f1f7", - ":flag_Libya:": "\U0001f1f1\U0001f1fe", - ":flag_Liechtenstein:": "\U0001f1f1\U0001f1ee", - ":flag_Lithuania:": "\U0001f1f1\U0001f1f9", - ":flag_Luxembourg:": "\U0001f1f1\U0001f1fa", - ":flag_Macao_SAR_China:": "\U0001f1f2\U0001f1f4", - ":flag_Madagascar:": "\U0001f1f2\U0001f1ec", - ":flag_Malawi:": "\U0001f1f2\U0001f1fc", - ":flag_Malaysia:": "\U0001f1f2\U0001f1fe", - ":flag_Maldives:": "\U0001f1f2\U0001f1fb", - ":flag_Mali:": "\U0001f1f2\U0001f1f1", - ":flag_Malta:": "\U0001f1f2\U0001f1f9", - ":flag_Marshall_Islands:": "\U0001f1f2\U0001f1ed", - ":flag_Martinique:": "\U0001f1f2\U0001f1f6", - ":flag_Mauritania:": "\U0001f1f2\U0001f1f7", - ":flag_Mauritius:": "\U0001f1f2\U0001f1fa", - ":flag_Mayotte:": "\U0001f1fe\U0001f1f9", - ":flag_Mexico:": "\U0001f1f2\U0001f1fd", - ":flag_Micronesia:": "\U0001f1eb\U0001f1f2", - ":flag_Moldova:": "\U0001f1f2\U0001f1e9", - ":flag_Monaco:": "\U0001f1f2\U0001f1e8", - ":flag_Mongolia:": "\U0001f1f2\U0001f1f3", - ":flag_Montenegro:": "\U0001f1f2\U0001f1ea", - ":flag_Montserrat:": "\U0001f1f2\U0001f1f8", - ":flag_Morocco:": "\U0001f1f2\U0001f1e6", - ":flag_Mozambique:": "\U0001f1f2\U0001f1ff", - ":flag_Myanmar_(Burma):": "\U0001f1f2\U0001f1f2", - ":flag_Namibia:": "\U0001f1f3\U0001f1e6", - ":flag_Nauru:": "\U0001f1f3\U0001f1f7", - ":flag_Nepal:": "\U0001f1f3\U0001f1f5", - ":flag_Netherlands:": "\U0001f1f3\U0001f1f1", - ":flag_New_Caledonia:": "\U0001f1f3\U0001f1e8", - ":flag_New_Zealand:": "\U0001f1f3\U0001f1ff", - ":flag_Nicaragua:": "\U0001f1f3\U0001f1ee", - ":flag_Niger:": "\U0001f1f3\U0001f1ea", - ":flag_Nigeria:": "\U0001f1f3\U0001f1ec", - ":flag_Niue:": "\U0001f1f3\U0001f1fa", - ":flag_Norfolk_Island:": "\U0001f1f3\U0001f1eb", - ":flag_North_Korea:": "\U0001f1f0\U0001f1f5", - ":flag_North_Macedonia:": "\U0001f1f2\U0001f1f0", - ":flag_Northern_Mariana_Islands:": "\U0001f1f2\U0001f1f5", - ":flag_Norway:": "\U0001f1f3\U0001f1f4", - ":flag_Oman:": "\U0001f1f4\U0001f1f2", - ":flag_Pakistan:": "\U0001f1f5\U0001f1f0", - ":flag_Palau:": "\U0001f1f5\U0001f1fc", - ":flag_Palestinian_Territories:": "\U0001f1f5\U0001f1f8", - ":flag_Panama:": "\U0001f1f5\U0001f1e6", - ":flag_Papua_New_Guinea:": "\U0001f1f5\U0001f1ec", - ":flag_Paraguay:": "\U0001f1f5\U0001f1fe", - ":flag_Peru:": "\U0001f1f5\U0001f1ea", - ":flag_Philippines:": "\U0001f1f5\U0001f1ed", - ":flag_Pitcairn_Islands:": "\U0001f1f5\U0001f1f3", - ":flag_Poland:": "\U0001f1f5\U0001f1f1", - ":flag_Portugal:": "\U0001f1f5\U0001f1f9", - ":flag_Puerto_Rico:": "\U0001f1f5\U0001f1f7", - ":flag_Qatar:": "\U0001f1f6\U0001f1e6", - ":flag_Romania:": "\U0001f1f7\U0001f1f4", - ":flag_Russia:": "\U0001f1f7\U0001f1fa", - ":flag_Rwanda:": "\U0001f1f7\U0001f1fc", - ":flag_Réunion:": "\U0001f1f7\U0001f1ea", - ":flag_Samoa:": "\U0001f1fc\U0001f1f8", - ":flag_San_Marino:": "\U0001f1f8\U0001f1f2", - ":flag_Saudi_Arabia:": "\U0001f1f8\U0001f1e6", - ":flag_Scotland:": "\U0001f3f4\U000e0067\U000e0062\U000e0073\U000e0063\U000e0074\U000e007f", - ":flag_Senegal:": "\U0001f1f8\U0001f1f3", - ":flag_Serbia:": "\U0001f1f7\U0001f1f8", - ":flag_Seychelles:": "\U0001f1f8\U0001f1e8", - ":flag_Sierra_Leone:": "\U0001f1f8\U0001f1f1", - ":flag_Singapore:": "\U0001f1f8\U0001f1ec", - ":flag_Sint_Maarten:": "\U0001f1f8\U0001f1fd", - ":flag_Slovakia:": "\U0001f1f8\U0001f1f0", - ":flag_Slovenia:": "\U0001f1f8\U0001f1ee", - ":flag_Solomon_Islands:": "\U0001f1f8\U0001f1e7", - ":flag_Somalia:": "\U0001f1f8\U0001f1f4", - ":flag_South_Africa:": "\U0001f1ff\U0001f1e6", + ":face_with_open_eyes_and_hand_over_mouth:": "\U0001fae2", + ":face_with_open_mouth:": "\U0001f62e", + ":face_with_peeking_eye:": "\U0001fae3", + ":face_with_raised_eyebrow:": "\U0001f928", + ":face_with_rolling_eyes:": "\U0001f644", + ":face_with_spiral_eyes:": "\U0001f635\u200d\U0001f4ab", + ":face_with_steam_from_nose:": "\U0001f624", + ":face_with_symbols_on_mouth:": "\U0001f92c", + ":face_with_symbols_over_mouth:": "\U0001f92c", + ":face_with_tears_of_joy:": "\U0001f602", + ":face_with_thermometer:": "\U0001f912", + ":face_with_tongue:": "\U0001f61b", + ":face_without_mouth:": "\U0001f636", + ":facepalm:": "\U0001f926", + ":facepunch:": "\U0001f44a", + ":factory:": "\U0001f3ed", + ":factory_worker:": "\U0001f9d1\u200d\U0001f3ed", + ":fairy:": "\U0001f9da\u200d\u2640\ufe0f", + ":fairy_man:": "\U0001f9da\u200d\u2642\ufe0f", + ":fairy_tone1:": "\U0001f9da\U0001f3fb", + ":fairy_tone2:": "\U0001f9da\U0001f3fc", + ":fairy_tone3:": "\U0001f9da\U0001f3fd", + ":fairy_tone4:": "\U0001f9da\U0001f3fe", + ":fairy_tone5:": "\U0001f9da\U0001f3ff", + ":fairy_woman:": "\U0001f9da\u200d\u2640\ufe0f", + ":falafel:": "\U0001f9c6", + ":falkland_islands:": "\U0001f1eb\U0001f1f0", + ":fallen_leaf:": "\U0001f342", + ":family:": "\U0001f468\u200d\U0001f469\u200d\U0001f466", + ":family_man_boy:": "\U0001f468\u200d\U0001f466", + ":family_man_boy_boy:": "\U0001f468\u200d\U0001f466\u200d\U0001f466", + ":family_man_girl:": "\U0001f468\u200d\U0001f467", + ":family_man_girl_boy:": "\U0001f468\u200d\U0001f467\u200d\U0001f466", + ":family_man_girl_girl:": "\U0001f468\u200d\U0001f467\u200d\U0001f467", + ":family_man_man_boy:": "\U0001f468\u200d\U0001f468\u200d\U0001f466", + ":family_man_man_boy_boy:": "\U0001f468\u200d\U0001f468\u200d\U0001f466\u200d\U0001f466", + ":family_man_man_girl:": "\U0001f468\u200d\U0001f468\u200d\U0001f467", + ":family_man_man_girl_boy:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f466", + ":family_man_man_girl_girl:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f467", + ":family_man_woman_boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f466", + ":family_man_woman_boy_boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", + ":family_man_woman_girl:": "\U0001f468\u200d\U0001f469\u200d\U0001f467", + ":family_man_woman_girl_boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", + ":family_man_woman_girl_girl:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", + ":family_mmb:": "\U0001f468\u200d\U0001f468\u200d\U0001f466", + ":family_mmbb:": "\U0001f468\u200d\U0001f468\u200d\U0001f466\u200d\U0001f466", + ":family_mmg:": "\U0001f468\u200d\U0001f468\u200d\U0001f467", + ":family_mmgb:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f466", + ":family_mmgg:": "\U0001f468\u200d\U0001f468\u200d\U0001f467\u200d\U0001f467", + ":family_mwbb:": "\U0001f468\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", + ":family_mwg:": "\U0001f468\u200d\U0001f469\u200d\U0001f467", + ":family_mwgb:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", + ":family_mwgg:": "\U0001f468\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", + ":family_woman_boy:": "\U0001f469\u200d\U0001f466", + ":family_woman_boy_boy:": "\U0001f469\u200d\U0001f466\u200d\U0001f466", + ":family_woman_girl:": "\U0001f469\u200d\U0001f467", + ":family_woman_girl_boy:": "\U0001f469\u200d\U0001f467\u200d\U0001f466", + ":family_woman_girl_girl:": "\U0001f469\u200d\U0001f467\u200d\U0001f467", + ":family_woman_woman_boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f466", + ":family_woman_woman_boy_boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", + ":family_woman_woman_girl:": "\U0001f469\u200d\U0001f469\u200d\U0001f467", + ":family_woman_woman_girl_boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", + ":family_woman_woman_girl_girl:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", + ":family_wwb:": "\U0001f469\u200d\U0001f469\u200d\U0001f466", + ":family_wwbb:": "\U0001f469\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", + ":family_wwg:": "\U0001f469\u200d\U0001f469\u200d\U0001f467", + ":family_wwgb:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f466", + ":family_wwgg:": "\U0001f469\u200d\U0001f469\u200d\U0001f467\u200d\U0001f467", + ":farmer:": "\U0001f9d1\u200d\U0001f33e", + ":faroe_islands:": "\U0001f1eb\U0001f1f4", + ":fast-forward_button:": "\u23e9", + ":fast_down_button:": "\u23ec", + ":fast_forward:": "\u23e9", + ":fast_reverse_button:": "\u23ea", + ":fast_up_button:": "\u23eb", + ":fax:": "\U0001f4e0", + ":fax_machine:": "\U0001f4e0", + ":fearful:": "\U0001f628", + ":fearful_face:": "\U0001f628", + ":feather:": "\U0001fab6", + ":feet:": "\U0001f43e", + ":female-artist:": "\U0001f469\u200d\U0001f3a8", + ":female-astronaut:": "\U0001f469\u200d\U0001f680", + ":female-construction-worker:": "\U0001f477\u200d\u2640\ufe0f", + ":female-cook:": "\U0001f469\u200d\U0001f373", + ":female-detective:": "\U0001f575\ufe0f\u200d\u2640\ufe0f", + ":female-doctor:": "\U0001f469\u200d\u2695\ufe0f", + ":female-factory-worker:": "\U0001f469\u200d\U0001f3ed", + ":female-farmer:": "\U0001f469\u200d\U0001f33e", + ":female-firefighter:": "\U0001f469\u200d\U0001f692", + ":female-guard:": "\U0001f482\u200d\u2640\ufe0f", + ":female-judge:": "\U0001f469\u200d\u2696\ufe0f", + ":female-mechanic:": "\U0001f469\u200d\U0001f527", + ":female-office-worker:": "\U0001f469\u200d\U0001f4bc", + ":female-pilot:": "\U0001f469\u200d\u2708\ufe0f", + ":female-police-officer:": "\U0001f46e\u200d\u2640\ufe0f", + ":female-scientist:": "\U0001f469\u200d\U0001f52c", + ":female-singer:": "\U0001f469\u200d\U0001f3a4", + ":female-student:": "\U0001f469\u200d\U0001f393", + ":female-teacher:": "\U0001f469\u200d\U0001f3eb", + ":female-technologist:": "\U0001f469\u200d\U0001f4bb", + ":female_detective:": "\U0001f575\ufe0f\u200d\u2640\ufe0f", + ":female_elf:": "\U0001f9dd\u200d\u2640\ufe0f", + ":female_fairy:": "\U0001f9da\u200d\u2640\ufe0f", + ":female_genie:": "\U0001f9de\u200d\u2640\ufe0f", + ":female_mage:": "\U0001f9d9\u200d\u2640\ufe0f", + ":female_sign:": "\u2640\ufe0f", + ":female_superhero:": "\U0001f9b8\u200d\u2640\ufe0f", + ":female_supervillain:": "\U0001f9b9\u200d\u2640\ufe0f", + ":female_vampire:": "\U0001f9db\u200d\u2640\ufe0f", + ":female_zombie:": "\U0001f9df\u200d\u2640\ufe0f", + ":fencer:": "\U0001f93a", + ":ferris_wheel:": "\U0001f3a1", + ":ferry:": "\u26f4\ufe0f", + ":field_hockey:": "\U0001f3d1", + ":field_hockey_stick_and_ball:": "\U0001f3d1", + ":fiji:": "\U0001f1eb\U0001f1ef", + ":file_cabinet:": "\U0001f5c4\ufe0f", + ":file_folder:": "\U0001f4c1", + ":film_frames:": "\U0001f39e\ufe0f", + ":film_projector:": "\U0001f4fd\ufe0f", + ":film_strip:": "\U0001f39e\ufe0f", + ":fingers_crossed:": "\U0001f91e", + ":fingers_crossed_tone1:": "\U0001f91e\U0001f3fb", + ":fingers_crossed_tone2:": "\U0001f91e\U0001f3fc", + ":fingers_crossed_tone3:": "\U0001f91e\U0001f3fd", + ":fingers_crossed_tone4:": "\U0001f91e\U0001f3fe", + ":fingers_crossed_tone5:": "\U0001f91e\U0001f3ff", + ":finland:": "\U0001f1eb\U0001f1ee", + ":fire:": "\U0001f525", + ":fire_engine:": "\U0001f692", + ":fire_extinguisher:": "\U0001f9ef", + ":firecracker:": "\U0001f9e8", + ":firefighter:": "\U0001f9d1\u200d\U0001f692", + ":fireworks:": "\U0001f386", + ":first_place:": "\U0001f947", + ":first_place_medal:": "\U0001f947", + ":first_quarter_moon:": "\U0001f313", + ":first_quarter_moon_face:": "\U0001f31b", + ":first_quarter_moon_with_face:": "\U0001f31b", + ":fish:": "\U0001f41f", + ":fish_cake:": "\U0001f365", + ":fish_cake_with_swirl:": "\U0001f365", + ":fishing_pole:": "\U0001f3a3", + ":fishing_pole_and_fish:": "\U0001f3a3", + ":fist:": "\u270a", + ":fist_left:": "\U0001f91b", + ":fist_oncoming:": "\U0001f44a", + ":fist_raised:": "\u270a", + ":fist_right:": "\U0001f91c", + ":fist_tone1:": "\u270a\U0001f3fb", + ":fist_tone2:": "\u270a\U0001f3fc", + ":fist_tone3:": "\u270a\U0001f3fd", + ":fist_tone4:": "\u270a\U0001f3fe", + ":fist_tone5:": "\u270a\U0001f3ff", + ":five:": "5\ufe0f\u20e3", + ":five-thirty:": "\U0001f560", + ":five_o’clock:": "\U0001f554", + ":flag-ac:": "\U0001f1e6\U0001f1e8", + ":flag-ad:": "\U0001f1e6\U0001f1e9", + ":flag-ae:": "\U0001f1e6\U0001f1ea", + ":flag-af:": "\U0001f1e6\U0001f1eb", + ":flag-ag:": "\U0001f1e6\U0001f1ec", + ":flag-ai:": "\U0001f1e6\U0001f1ee", + ":flag-al:": "\U0001f1e6\U0001f1f1", + ":flag-am:": "\U0001f1e6\U0001f1f2", + ":flag-ao:": "\U0001f1e6\U0001f1f4", + ":flag-aq:": "\U0001f1e6\U0001f1f6", + ":flag-ar:": "\U0001f1e6\U0001f1f7", + ":flag-as:": "\U0001f1e6\U0001f1f8", + ":flag-at:": "\U0001f1e6\U0001f1f9", + ":flag-au:": "\U0001f1e6\U0001f1fa", + ":flag-aw:": "\U0001f1e6\U0001f1fc", + ":flag-ax:": "\U0001f1e6\U0001f1fd", + ":flag-az:": "\U0001f1e6\U0001f1ff", + ":flag-ba:": "\U0001f1e7\U0001f1e6", + ":flag-bb:": "\U0001f1e7\U0001f1e7", + ":flag-bd:": "\U0001f1e7\U0001f1e9", + ":flag-be:": "\U0001f1e7\U0001f1ea", + ":flag-bf:": "\U0001f1e7\U0001f1eb", + ":flag-bg:": "\U0001f1e7\U0001f1ec", + ":flag-bh:": "\U0001f1e7\U0001f1ed", + ":flag-bi:": "\U0001f1e7\U0001f1ee", + ":flag-bj:": "\U0001f1e7\U0001f1ef", + ":flag-bl:": "\U0001f1e7\U0001f1f1", + ":flag-bm:": "\U0001f1e7\U0001f1f2", + ":flag-bn:": "\U0001f1e7\U0001f1f3", + ":flag-bo:": "\U0001f1e7\U0001f1f4", + ":flag-bq:": "\U0001f1e7\U0001f1f6", + ":flag-br:": "\U0001f1e7\U0001f1f7", + ":flag-bs:": "\U0001f1e7\U0001f1f8", + ":flag-bt:": "\U0001f1e7\U0001f1f9", + ":flag-bv:": "\U0001f1e7\U0001f1fb", + ":flag-bw:": "\U0001f1e7\U0001f1fc", + ":flag-by:": "\U0001f1e7\U0001f1fe", + ":flag-bz:": "\U0001f1e7\U0001f1ff", + ":flag-ca:": "\U0001f1e8\U0001f1e6", + ":flag-cc:": "\U0001f1e8\U0001f1e8", + ":flag-cd:": "\U0001f1e8\U0001f1e9", + ":flag-cf:": "\U0001f1e8\U0001f1eb", + ":flag-cg:": "\U0001f1e8\U0001f1ec", + ":flag-ch:": "\U0001f1e8\U0001f1ed", + ":flag-ci:": "\U0001f1e8\U0001f1ee", + ":flag-ck:": "\U0001f1e8\U0001f1f0", + ":flag-cl:": "\U0001f1e8\U0001f1f1", + ":flag-cm:": "\U0001f1e8\U0001f1f2", + ":flag-co:": "\U0001f1e8\U0001f1f4", + ":flag-cp:": "\U0001f1e8\U0001f1f5", + ":flag-cr:": "\U0001f1e8\U0001f1f7", + ":flag-cu:": "\U0001f1e8\U0001f1fa", + ":flag-cv:": "\U0001f1e8\U0001f1fb", + ":flag-cw:": "\U0001f1e8\U0001f1fc", + ":flag-cx:": "\U0001f1e8\U0001f1fd", + ":flag-cy:": "\U0001f1e8\U0001f1fe", + ":flag-cz:": "\U0001f1e8\U0001f1ff", + ":flag-dg:": "\U0001f1e9\U0001f1ec", + ":flag-dj:": "\U0001f1e9\U0001f1ef", + ":flag-dk:": "\U0001f1e9\U0001f1f0", + ":flag-dm:": "\U0001f1e9\U0001f1f2", + ":flag-do:": "\U0001f1e9\U0001f1f4", + ":flag-dz:": "\U0001f1e9\U0001f1ff", + ":flag-ea:": "\U0001f1ea\U0001f1e6", + ":flag-ec:": "\U0001f1ea\U0001f1e8", + ":flag-ee:": "\U0001f1ea\U0001f1ea", + ":flag-eg:": "\U0001f1ea\U0001f1ec", + ":flag-eh:": "\U0001f1ea\U0001f1ed", + ":flag-england:": "\U0001f3f4\U000e0067\U000e0062\U000e0065\U000e006e\U000e0067\U000e007f", + ":flag-er:": "\U0001f1ea\U0001f1f7", + ":flag-et:": "\U0001f1ea\U0001f1f9", + ":flag-eu:": "\U0001f1ea\U0001f1fa", + ":flag-fi:": "\U0001f1eb\U0001f1ee", + ":flag-fj:": "\U0001f1eb\U0001f1ef", + ":flag-fk:": "\U0001f1eb\U0001f1f0", + ":flag-fm:": "\U0001f1eb\U0001f1f2", + ":flag-fo:": "\U0001f1eb\U0001f1f4", + ":flag-ga:": "\U0001f1ec\U0001f1e6", + ":flag-gd:": "\U0001f1ec\U0001f1e9", + ":flag-ge:": "\U0001f1ec\U0001f1ea", + ":flag-gf:": "\U0001f1ec\U0001f1eb", + ":flag-gg:": "\U0001f1ec\U0001f1ec", + ":flag-gh:": "\U0001f1ec\U0001f1ed", + ":flag-gi:": "\U0001f1ec\U0001f1ee", + ":flag-gl:": "\U0001f1ec\U0001f1f1", + ":flag-gm:": "\U0001f1ec\U0001f1f2", + ":flag-gn:": "\U0001f1ec\U0001f1f3", + ":flag-gp:": "\U0001f1ec\U0001f1f5", + ":flag-gq:": "\U0001f1ec\U0001f1f6", + ":flag-gr:": "\U0001f1ec\U0001f1f7", + ":flag-gs:": "\U0001f1ec\U0001f1f8", + ":flag-gt:": "\U0001f1ec\U0001f1f9", + ":flag-gu:": "\U0001f1ec\U0001f1fa", + ":flag-gw:": "\U0001f1ec\U0001f1fc", + ":flag-gy:": "\U0001f1ec\U0001f1fe", + ":flag-hk:": "\U0001f1ed\U0001f1f0", + ":flag-hm:": "\U0001f1ed\U0001f1f2", + ":flag-hn:": "\U0001f1ed\U0001f1f3", + ":flag-hr:": "\U0001f1ed\U0001f1f7", + ":flag-ht:": "\U0001f1ed\U0001f1f9", + ":flag-hu:": "\U0001f1ed\U0001f1fa", + ":flag-ic:": "\U0001f1ee\U0001f1e8", + ":flag-id:": "\U0001f1ee\U0001f1e9", + ":flag-ie:": "\U0001f1ee\U0001f1ea", + ":flag-il:": "\U0001f1ee\U0001f1f1", + ":flag-im:": "\U0001f1ee\U0001f1f2", + ":flag-in:": "\U0001f1ee\U0001f1f3", + ":flag-io:": "\U0001f1ee\U0001f1f4", + ":flag-iq:": "\U0001f1ee\U0001f1f6", + ":flag-ir:": "\U0001f1ee\U0001f1f7", + ":flag-is:": "\U0001f1ee\U0001f1f8", + ":flag-je:": "\U0001f1ef\U0001f1ea", + ":flag-jm:": "\U0001f1ef\U0001f1f2", + ":flag-jo:": "\U0001f1ef\U0001f1f4", + ":flag-ke:": "\U0001f1f0\U0001f1ea", + ":flag-kg:": "\U0001f1f0\U0001f1ec", + ":flag-kh:": "\U0001f1f0\U0001f1ed", + ":flag-ki:": "\U0001f1f0\U0001f1ee", + ":flag-km:": "\U0001f1f0\U0001f1f2", + ":flag-kn:": "\U0001f1f0\U0001f1f3", + ":flag-kp:": "\U0001f1f0\U0001f1f5", + ":flag-kw:": "\U0001f1f0\U0001f1fc", + ":flag-ky:": "\U0001f1f0\U0001f1fe", + ":flag-kz:": "\U0001f1f0\U0001f1ff", + ":flag-la:": "\U0001f1f1\U0001f1e6", + ":flag-lb:": "\U0001f1f1\U0001f1e7", + ":flag-lc:": "\U0001f1f1\U0001f1e8", + ":flag-li:": "\U0001f1f1\U0001f1ee", + ":flag-lk:": "\U0001f1f1\U0001f1f0", + ":flag-lr:": "\U0001f1f1\U0001f1f7", + ":flag-ls:": "\U0001f1f1\U0001f1f8", + ":flag-lt:": "\U0001f1f1\U0001f1f9", + ":flag-lu:": "\U0001f1f1\U0001f1fa", + ":flag-lv:": "\U0001f1f1\U0001f1fb", + ":flag-ly:": "\U0001f1f1\U0001f1fe", + ":flag-ma:": "\U0001f1f2\U0001f1e6", + ":flag-mc:": "\U0001f1f2\U0001f1e8", + ":flag-md:": "\U0001f1f2\U0001f1e9", + ":flag-me:": "\U0001f1f2\U0001f1ea", + ":flag-mf:": "\U0001f1f2\U0001f1eb", + ":flag-mg:": "\U0001f1f2\U0001f1ec", + ":flag-mh:": "\U0001f1f2\U0001f1ed", + ":flag-mk:": "\U0001f1f2\U0001f1f0", + ":flag-ml:": "\U0001f1f2\U0001f1f1", + ":flag-mm:": "\U0001f1f2\U0001f1f2", + ":flag-mn:": "\U0001f1f2\U0001f1f3", + ":flag-mo:": "\U0001f1f2\U0001f1f4", + ":flag-mp:": "\U0001f1f2\U0001f1f5", + ":flag-mq:": "\U0001f1f2\U0001f1f6", + ":flag-mr:": "\U0001f1f2\U0001f1f7", + ":flag-ms:": "\U0001f1f2\U0001f1f8", + ":flag-mt:": "\U0001f1f2\U0001f1f9", + ":flag-mu:": "\U0001f1f2\U0001f1fa", + ":flag-mv:": "\U0001f1f2\U0001f1fb", + ":flag-mw:": "\U0001f1f2\U0001f1fc", + ":flag-mx:": "\U0001f1f2\U0001f1fd", + ":flag-my:": "\U0001f1f2\U0001f1fe", + ":flag-mz:": "\U0001f1f2\U0001f1ff", + ":flag-na:": "\U0001f1f3\U0001f1e6", + ":flag-nc:": "\U0001f1f3\U0001f1e8", + ":flag-ne:": "\U0001f1f3\U0001f1ea", + ":flag-nf:": "\U0001f1f3\U0001f1eb", + ":flag-ng:": "\U0001f1f3\U0001f1ec", + ":flag-ni:": "\U0001f1f3\U0001f1ee", + ":flag-nl:": "\U0001f1f3\U0001f1f1", + ":flag-no:": "\U0001f1f3\U0001f1f4", + ":flag-np:": "\U0001f1f3\U0001f1f5", + ":flag-nr:": "\U0001f1f3\U0001f1f7", + ":flag-nu:": "\U0001f1f3\U0001f1fa", + ":flag-nz:": "\U0001f1f3\U0001f1ff", + ":flag-om:": "\U0001f1f4\U0001f1f2", + ":flag-pa:": "\U0001f1f5\U0001f1e6", + ":flag-pe:": "\U0001f1f5\U0001f1ea", + ":flag-pf:": "\U0001f1f5\U0001f1eb", + ":flag-pg:": "\U0001f1f5\U0001f1ec", + ":flag-ph:": "\U0001f1f5\U0001f1ed", + ":flag-pk:": "\U0001f1f5\U0001f1f0", + ":flag-pl:": "\U0001f1f5\U0001f1f1", + ":flag-pm:": "\U0001f1f5\U0001f1f2", + ":flag-pn:": "\U0001f1f5\U0001f1f3", + ":flag-pr:": "\U0001f1f5\U0001f1f7", + ":flag-ps:": "\U0001f1f5\U0001f1f8", + ":flag-pt:": "\U0001f1f5\U0001f1f9", + ":flag-pw:": "\U0001f1f5\U0001f1fc", + ":flag-py:": "\U0001f1f5\U0001f1fe", + ":flag-qa:": "\U0001f1f6\U0001f1e6", + ":flag-re:": "\U0001f1f7\U0001f1ea", + ":flag-ro:": "\U0001f1f7\U0001f1f4", + ":flag-rs:": "\U0001f1f7\U0001f1f8", + ":flag-rw:": "\U0001f1f7\U0001f1fc", + ":flag-sa:": "\U0001f1f8\U0001f1e6", + ":flag-sb:": "\U0001f1f8\U0001f1e7", + ":flag-sc:": "\U0001f1f8\U0001f1e8", + ":flag-scotland:": "\U0001f3f4\U000e0067\U000e0062\U000e0073\U000e0063\U000e0074\U000e007f", + ":flag-sd:": "\U0001f1f8\U0001f1e9", + ":flag-se:": "\U0001f1f8\U0001f1ea", + ":flag-sg:": "\U0001f1f8\U0001f1ec", + ":flag-sh:": "\U0001f1f8\U0001f1ed", + ":flag-si:": "\U0001f1f8\U0001f1ee", + ":flag-sj:": "\U0001f1f8\U0001f1ef", + ":flag-sk:": "\U0001f1f8\U0001f1f0", + ":flag-sl:": "\U0001f1f8\U0001f1f1", + ":flag-sm:": "\U0001f1f8\U0001f1f2", + ":flag-sn:": "\U0001f1f8\U0001f1f3", + ":flag-so:": "\U0001f1f8\U0001f1f4", + ":flag-sr:": "\U0001f1f8\U0001f1f7", + ":flag-ss:": "\U0001f1f8\U0001f1f8", + ":flag-st:": "\U0001f1f8\U0001f1f9", + ":flag-sv:": "\U0001f1f8\U0001f1fb", + ":flag-sx:": "\U0001f1f8\U0001f1fd", + ":flag-sy:": "\U0001f1f8\U0001f1fe", + ":flag-sz:": "\U0001f1f8\U0001f1ff", + ":flag-ta:": "\U0001f1f9\U0001f1e6", + ":flag-tc:": "\U0001f1f9\U0001f1e8", + ":flag-td:": "\U0001f1f9\U0001f1e9", + ":flag-tf:": "\U0001f1f9\U0001f1eb", + ":flag-tg:": "\U0001f1f9\U0001f1ec", + ":flag-th:": "\U0001f1f9\U0001f1ed", + ":flag-tj:": "\U0001f1f9\U0001f1ef", + ":flag-tk:": "\U0001f1f9\U0001f1f0", + ":flag-tl:": "\U0001f1f9\U0001f1f1", + ":flag-tm:": "\U0001f1f9\U0001f1f2", + ":flag-tn:": "\U0001f1f9\U0001f1f3", + ":flag-to:": "\U0001f1f9\U0001f1f4", + ":flag-tr:": "\U0001f1f9\U0001f1f7", + ":flag-tt:": "\U0001f1f9\U0001f1f9", + ":flag-tv:": "\U0001f1f9\U0001f1fb", + ":flag-tw:": "\U0001f1f9\U0001f1fc", + ":flag-tz:": "\U0001f1f9\U0001f1ff", + ":flag-ua:": "\U0001f1fa\U0001f1e6", + ":flag-ug:": "\U0001f1fa\U0001f1ec", + ":flag-um:": "\U0001f1fa\U0001f1f2", + ":flag-un:": "\U0001f1fa\U0001f1f3", + ":flag-uy:": "\U0001f1fa\U0001f1fe", + ":flag-uz:": "\U0001f1fa\U0001f1ff", + ":flag-va:": "\U0001f1fb\U0001f1e6", + ":flag-vc:": "\U0001f1fb\U0001f1e8", + ":flag-ve:": "\U0001f1fb\U0001f1ea", + ":flag-vg:": "\U0001f1fb\U0001f1ec", + ":flag-vi:": "\U0001f1fb\U0001f1ee", + ":flag-vn:": "\U0001f1fb\U0001f1f3", + ":flag-vu:": "\U0001f1fb\U0001f1fa", + ":flag-wales:": "\U0001f3f4\U000e0067\U000e0062\U000e0077\U000e006c\U000e0073\U000e007f", + ":flag-wf:": "\U0001f1fc\U0001f1eb", + ":flag-ws:": "\U0001f1fc\U0001f1f8", + ":flag-xk:": "\U0001f1fd\U0001f1f0", + ":flag-ye:": "\U0001f1fe\U0001f1ea", + ":flag-yt:": "\U0001f1fe\U0001f1f9", + ":flag-za:": "\U0001f1ff\U0001f1e6", + ":flag-zm:": "\U0001f1ff\U0001f1f2", + ":flag-zw:": "\U0001f1ff\U0001f1fc", + ":flag_Afghanistan:": "\U0001f1e6\U0001f1eb", + ":flag_Albania:": "\U0001f1e6\U0001f1f1", + ":flag_Algeria:": "\U0001f1e9\U0001f1ff", + ":flag_American_Samoa:": "\U0001f1e6\U0001f1f8", + ":flag_Andorra:": "\U0001f1e6\U0001f1e9", + ":flag_Angola:": "\U0001f1e6\U0001f1f4", + ":flag_Anguilla:": "\U0001f1e6\U0001f1ee", + ":flag_Antarctica:": "\U0001f1e6\U0001f1f6", + ":flag_Antigua_&_Barbuda:": "\U0001f1e6\U0001f1ec", + ":flag_Argentina:": "\U0001f1e6\U0001f1f7", + ":flag_Armenia:": "\U0001f1e6\U0001f1f2", + ":flag_Aruba:": "\U0001f1e6\U0001f1fc", + ":flag_Ascension_Island:": "\U0001f1e6\U0001f1e8", + ":flag_Australia:": "\U0001f1e6\U0001f1fa", + ":flag_Austria:": "\U0001f1e6\U0001f1f9", + ":flag_Azerbaijan:": "\U0001f1e6\U0001f1ff", + ":flag_Bahamas:": "\U0001f1e7\U0001f1f8", + ":flag_Bahrain:": "\U0001f1e7\U0001f1ed", + ":flag_Bangladesh:": "\U0001f1e7\U0001f1e9", + ":flag_Barbados:": "\U0001f1e7\U0001f1e7", + ":flag_Belarus:": "\U0001f1e7\U0001f1fe", + ":flag_Belgium:": "\U0001f1e7\U0001f1ea", + ":flag_Belize:": "\U0001f1e7\U0001f1ff", + ":flag_Benin:": "\U0001f1e7\U0001f1ef", + ":flag_Bermuda:": "\U0001f1e7\U0001f1f2", + ":flag_Bhutan:": "\U0001f1e7\U0001f1f9", + ":flag_Bolivia:": "\U0001f1e7\U0001f1f4", + ":flag_Bosnia_&_Herzegovina:": "\U0001f1e7\U0001f1e6", + ":flag_Botswana:": "\U0001f1e7\U0001f1fc", + ":flag_Bouvet_Island:": "\U0001f1e7\U0001f1fb", + ":flag_Brazil:": "\U0001f1e7\U0001f1f7", + ":flag_British_Indian_Ocean_Territory:": "\U0001f1ee\U0001f1f4", + ":flag_British_Virgin_Islands:": "\U0001f1fb\U0001f1ec", + ":flag_Brunei:": "\U0001f1e7\U0001f1f3", + ":flag_Bulgaria:": "\U0001f1e7\U0001f1ec", + ":flag_Burkina_Faso:": "\U0001f1e7\U0001f1eb", + ":flag_Burundi:": "\U0001f1e7\U0001f1ee", + ":flag_Cambodia:": "\U0001f1f0\U0001f1ed", + ":flag_Cameroon:": "\U0001f1e8\U0001f1f2", + ":flag_Canada:": "\U0001f1e8\U0001f1e6", + ":flag_Canary_Islands:": "\U0001f1ee\U0001f1e8", + ":flag_Cape_Verde:": "\U0001f1e8\U0001f1fb", + ":flag_Caribbean_Netherlands:": "\U0001f1e7\U0001f1f6", + ":flag_Cayman_Islands:": "\U0001f1f0\U0001f1fe", + ":flag_Central_African_Republic:": "\U0001f1e8\U0001f1eb", + ":flag_Ceuta_&_Melilla:": "\U0001f1ea\U0001f1e6", + ":flag_Chad:": "\U0001f1f9\U0001f1e9", + ":flag_Chile:": "\U0001f1e8\U0001f1f1", + ":flag_China:": "\U0001f1e8\U0001f1f3", + ":flag_Christmas_Island:": "\U0001f1e8\U0001f1fd", + ":flag_Clipperton_Island:": "\U0001f1e8\U0001f1f5", + ":flag_Cocos_(Keeling)_Islands:": "\U0001f1e8\U0001f1e8", + ":flag_Colombia:": "\U0001f1e8\U0001f1f4", + ":flag_Comoros:": "\U0001f1f0\U0001f1f2", + ":flag_Congo_-_Brazzaville:": "\U0001f1e8\U0001f1ec", + ":flag_Congo_-_Kinshasa:": "\U0001f1e8\U0001f1e9", + ":flag_Cook_Islands:": "\U0001f1e8\U0001f1f0", + ":flag_Costa_Rica:": "\U0001f1e8\U0001f1f7", + ":flag_Croatia:": "\U0001f1ed\U0001f1f7", + ":flag_Cuba:": "\U0001f1e8\U0001f1fa", + ":flag_Curaçao:": "\U0001f1e8\U0001f1fc", + ":flag_Cyprus:": "\U0001f1e8\U0001f1fe", + ":flag_Czechia:": "\U0001f1e8\U0001f1ff", + ":flag_Côte_d’Ivoire:": "\U0001f1e8\U0001f1ee", + ":flag_Denmark:": "\U0001f1e9\U0001f1f0", + ":flag_Diego_Garcia:": "\U0001f1e9\U0001f1ec", + ":flag_Djibouti:": "\U0001f1e9\U0001f1ef", + ":flag_Dominica:": "\U0001f1e9\U0001f1f2", + ":flag_Dominican_Republic:": "\U0001f1e9\U0001f1f4", + ":flag_Ecuador:": "\U0001f1ea\U0001f1e8", + ":flag_Egypt:": "\U0001f1ea\U0001f1ec", + ":flag_El_Salvador:": "\U0001f1f8\U0001f1fb", + ":flag_England:": "\U0001f3f4\U000e0067\U000e0062\U000e0065\U000e006e\U000e0067\U000e007f", + ":flag_Equatorial_Guinea:": "\U0001f1ec\U0001f1f6", + ":flag_Eritrea:": "\U0001f1ea\U0001f1f7", + ":flag_Estonia:": "\U0001f1ea\U0001f1ea", + ":flag_Eswatini:": "\U0001f1f8\U0001f1ff", + ":flag_Ethiopia:": "\U0001f1ea\U0001f1f9", + ":flag_European_Union:": "\U0001f1ea\U0001f1fa", + ":flag_Falkland_Islands:": "\U0001f1eb\U0001f1f0", + ":flag_Faroe_Islands:": "\U0001f1eb\U0001f1f4", + ":flag_Fiji:": "\U0001f1eb\U0001f1ef", + ":flag_Finland:": "\U0001f1eb\U0001f1ee", + ":flag_France:": "\U0001f1eb\U0001f1f7", + ":flag_French_Guiana:": "\U0001f1ec\U0001f1eb", + ":flag_French_Polynesia:": "\U0001f1f5\U0001f1eb", + ":flag_French_Southern_Territories:": "\U0001f1f9\U0001f1eb", + ":flag_Gabon:": "\U0001f1ec\U0001f1e6", + ":flag_Gambia:": "\U0001f1ec\U0001f1f2", + ":flag_Georgia:": "\U0001f1ec\U0001f1ea", + ":flag_Germany:": "\U0001f1e9\U0001f1ea", + ":flag_Ghana:": "\U0001f1ec\U0001f1ed", + ":flag_Gibraltar:": "\U0001f1ec\U0001f1ee", + ":flag_Greece:": "\U0001f1ec\U0001f1f7", + ":flag_Greenland:": "\U0001f1ec\U0001f1f1", + ":flag_Grenada:": "\U0001f1ec\U0001f1e9", + ":flag_Guadeloupe:": "\U0001f1ec\U0001f1f5", + ":flag_Guam:": "\U0001f1ec\U0001f1fa", + ":flag_Guatemala:": "\U0001f1ec\U0001f1f9", + ":flag_Guernsey:": "\U0001f1ec\U0001f1ec", + ":flag_Guinea:": "\U0001f1ec\U0001f1f3", + ":flag_Guinea-Bissau:": "\U0001f1ec\U0001f1fc", + ":flag_Guyana:": "\U0001f1ec\U0001f1fe", + ":flag_Haiti:": "\U0001f1ed\U0001f1f9", + ":flag_Heard_&_McDonald_Islands:": "\U0001f1ed\U0001f1f2", + ":flag_Honduras:": "\U0001f1ed\U0001f1f3", + ":flag_Hong_Kong_SAR_China:": "\U0001f1ed\U0001f1f0", + ":flag_Hungary:": "\U0001f1ed\U0001f1fa", + ":flag_Iceland:": "\U0001f1ee\U0001f1f8", + ":flag_India:": "\U0001f1ee\U0001f1f3", + ":flag_Indonesia:": "\U0001f1ee\U0001f1e9", + ":flag_Iran:": "\U0001f1ee\U0001f1f7", + ":flag_Iraq:": "\U0001f1ee\U0001f1f6", + ":flag_Ireland:": "\U0001f1ee\U0001f1ea", + ":flag_Isle_of_Man:": "\U0001f1ee\U0001f1f2", + ":flag_Israel:": "\U0001f1ee\U0001f1f1", + ":flag_Italy:": "\U0001f1ee\U0001f1f9", + ":flag_Jamaica:": "\U0001f1ef\U0001f1f2", + ":flag_Japan:": "\U0001f1ef\U0001f1f5", + ":flag_Jersey:": "\U0001f1ef\U0001f1ea", + ":flag_Jordan:": "\U0001f1ef\U0001f1f4", + ":flag_Kazakhstan:": "\U0001f1f0\U0001f1ff", + ":flag_Kenya:": "\U0001f1f0\U0001f1ea", + ":flag_Kiribati:": "\U0001f1f0\U0001f1ee", + ":flag_Kosovo:": "\U0001f1fd\U0001f1f0", + ":flag_Kuwait:": "\U0001f1f0\U0001f1fc", + ":flag_Kyrgyzstan:": "\U0001f1f0\U0001f1ec", + ":flag_Laos:": "\U0001f1f1\U0001f1e6", + ":flag_Latvia:": "\U0001f1f1\U0001f1fb", + ":flag_Lebanon:": "\U0001f1f1\U0001f1e7", + ":flag_Lesotho:": "\U0001f1f1\U0001f1f8", + ":flag_Liberia:": "\U0001f1f1\U0001f1f7", + ":flag_Libya:": "\U0001f1f1\U0001f1fe", + ":flag_Liechtenstein:": "\U0001f1f1\U0001f1ee", + ":flag_Lithuania:": "\U0001f1f1\U0001f1f9", + ":flag_Luxembourg:": "\U0001f1f1\U0001f1fa", + ":flag_Macao_SAR_China:": "\U0001f1f2\U0001f1f4", + ":flag_Madagascar:": "\U0001f1f2\U0001f1ec", + ":flag_Malawi:": "\U0001f1f2\U0001f1fc", + ":flag_Malaysia:": "\U0001f1f2\U0001f1fe", + ":flag_Maldives:": "\U0001f1f2\U0001f1fb", + ":flag_Mali:": "\U0001f1f2\U0001f1f1", + ":flag_Malta:": "\U0001f1f2\U0001f1f9", + ":flag_Marshall_Islands:": "\U0001f1f2\U0001f1ed", + ":flag_Martinique:": "\U0001f1f2\U0001f1f6", + ":flag_Mauritania:": "\U0001f1f2\U0001f1f7", + ":flag_Mauritius:": "\U0001f1f2\U0001f1fa", + ":flag_Mayotte:": "\U0001f1fe\U0001f1f9", + ":flag_Mexico:": "\U0001f1f2\U0001f1fd", + ":flag_Micronesia:": "\U0001f1eb\U0001f1f2", + ":flag_Moldova:": "\U0001f1f2\U0001f1e9", + ":flag_Monaco:": "\U0001f1f2\U0001f1e8", + ":flag_Mongolia:": "\U0001f1f2\U0001f1f3", + ":flag_Montenegro:": "\U0001f1f2\U0001f1ea", + ":flag_Montserrat:": "\U0001f1f2\U0001f1f8", + ":flag_Morocco:": "\U0001f1f2\U0001f1e6", + ":flag_Mozambique:": "\U0001f1f2\U0001f1ff", + ":flag_Myanmar_(Burma):": "\U0001f1f2\U0001f1f2", + ":flag_Namibia:": "\U0001f1f3\U0001f1e6", + ":flag_Nauru:": "\U0001f1f3\U0001f1f7", + ":flag_Nepal:": "\U0001f1f3\U0001f1f5", + ":flag_Netherlands:": "\U0001f1f3\U0001f1f1", + ":flag_New_Caledonia:": "\U0001f1f3\U0001f1e8", + ":flag_New_Zealand:": "\U0001f1f3\U0001f1ff", + ":flag_Nicaragua:": "\U0001f1f3\U0001f1ee", + ":flag_Niger:": "\U0001f1f3\U0001f1ea", + ":flag_Nigeria:": "\U0001f1f3\U0001f1ec", + ":flag_Niue:": "\U0001f1f3\U0001f1fa", + ":flag_Norfolk_Island:": "\U0001f1f3\U0001f1eb", + ":flag_North_Korea:": "\U0001f1f0\U0001f1f5", + ":flag_North_Macedonia:": "\U0001f1f2\U0001f1f0", + ":flag_Northern_Mariana_Islands:": "\U0001f1f2\U0001f1f5", + ":flag_Norway:": "\U0001f1f3\U0001f1f4", + ":flag_Oman:": "\U0001f1f4\U0001f1f2", + ":flag_Pakistan:": "\U0001f1f5\U0001f1f0", + ":flag_Palau:": "\U0001f1f5\U0001f1fc", + ":flag_Palestinian_Territories:": "\U0001f1f5\U0001f1f8", + ":flag_Panama:": "\U0001f1f5\U0001f1e6", + ":flag_Papua_New_Guinea:": "\U0001f1f5\U0001f1ec", + ":flag_Paraguay:": "\U0001f1f5\U0001f1fe", + ":flag_Peru:": "\U0001f1f5\U0001f1ea", + ":flag_Philippines:": "\U0001f1f5\U0001f1ed", + ":flag_Pitcairn_Islands:": "\U0001f1f5\U0001f1f3", + ":flag_Poland:": "\U0001f1f5\U0001f1f1", + ":flag_Portugal:": "\U0001f1f5\U0001f1f9", + ":flag_Puerto_Rico:": "\U0001f1f5\U0001f1f7", + ":flag_Qatar:": "\U0001f1f6\U0001f1e6", + ":flag_Romania:": "\U0001f1f7\U0001f1f4", + ":flag_Russia:": "\U0001f1f7\U0001f1fa", + ":flag_Rwanda:": "\U0001f1f7\U0001f1fc", + ":flag_Réunion:": "\U0001f1f7\U0001f1ea", + ":flag_Samoa:": "\U0001f1fc\U0001f1f8", + ":flag_San_Marino:": "\U0001f1f8\U0001f1f2", + ":flag_Saudi_Arabia:": "\U0001f1f8\U0001f1e6", + ":flag_Scotland:": "\U0001f3f4\U000e0067\U000e0062\U000e0073\U000e0063\U000e0074\U000e007f", + ":flag_Senegal:": "\U0001f1f8\U0001f1f3", + ":flag_Serbia:": "\U0001f1f7\U0001f1f8", + ":flag_Seychelles:": "\U0001f1f8\U0001f1e8", + ":flag_Sierra_Leone:": "\U0001f1f8\U0001f1f1", + ":flag_Singapore:": "\U0001f1f8\U0001f1ec", + ":flag_Sint_Maarten:": "\U0001f1f8\U0001f1fd", + ":flag_Slovakia:": "\U0001f1f8\U0001f1f0", + ":flag_Slovenia:": "\U0001f1f8\U0001f1ee", + ":flag_Solomon_Islands:": "\U0001f1f8\U0001f1e7", + ":flag_Somalia:": "\U0001f1f8\U0001f1f4", + ":flag_South_Africa:": "\U0001f1ff\U0001f1e6", ":flag_South_Georgia_&_South_Sandwich_Islands:": "\U0001f1ec\U0001f1f8", ":flag_South_Korea:": "\U0001f1f0\U0001f1f7", ":flag_South_Sudan:": "\U0001f1f8\U0001f1f8", @@ -1973,6 +1985,7 @@ func emojiCode() map[string]string { ":hammer_and_pick:": "\u2692\ufe0f", ":hammer_and_wrench:": "\U0001f6e0\ufe0f", ":hammer_pick:": "\u2692", + ":hamsa:": "\U0001faac", ":hamster:": "\U0001f439", ":hand:": "\u270b", ":hand_over_mouth:": "\U0001f92d", @@ -1982,39 +1995,42 @@ func emojiCode() map[string]string { ":hand_splayed_tone4:": "\U0001f590\U0001f3fe", ":hand_splayed_tone5:": "\U0001f590\U0001f3ff", ":hand_with_fingers_splayed:": "\U0001f590", - ":handbag:": "\U0001f45c", - ":handball:": "\U0001f93e", - ":handball_person:": "\U0001f93e", - ":handshake:": "\U0001f91d", - ":hankey:": "\U0001f4a9", - ":hash:": "#\ufe0f\u20e3", - ":hatched_chick:": "\U0001f425", - ":hatching_chick:": "\U0001f423", - ":head_bandage:": "\U0001f915", - ":headphone:": "\U0001f3a7", - ":headphones:": "\U0001f3a7", - ":headstone:": "\U0001faa6", - ":health_worker:": "\U0001f9d1\u200d\u2695\ufe0f", - ":hear-no-evil_monkey:": "\U0001f649", - ":hear_no_evil:": "\U0001f649", - ":heard_mcdonald_islands:": "\U0001f1ed\U0001f1f2", - ":heart:": "\u2764\ufe0f", - ":heart_decoration:": "\U0001f49f", - ":heart_exclamation:": "\u2763", - ":heart_eyes:": "\U0001f60d", - ":heart_eyes_cat:": "\U0001f63b", - ":heart_on_fire:": "\u2764\ufe0f\u200d\U0001f525", - ":heart_suit:": "\u2665", - ":heart_with_arrow:": "\U0001f498", - ":heart_with_ribbon:": "\U0001f49d", - ":heartbeat:": "\U0001f493", - ":heartpulse:": "\U0001f497", - ":hearts:": "\u2665\ufe0f", - ":heavy_check_mark:": "\u2714\ufe0f", - ":heavy_division_sign:": "\u2797", - ":heavy_dollar_sign:": "\U0001f4b2", - ":heavy_exclamation_mark:": "\u2757", - ":heavy_heart_exclamation:": "\u2763\ufe0f", + ":hand_with_index_finger_and_thumb_crossed:": "\U0001faf0", + ":handbag:": "\U0001f45c", + ":handball:": "\U0001f93e", + ":handball_person:": "\U0001f93e", + ":handshake:": "\U0001f91d", + ":hankey:": "\U0001f4a9", + ":hash:": "#\ufe0f\u20e3", + ":hatched_chick:": "\U0001f425", + ":hatching_chick:": "\U0001f423", + ":head_bandage:": "\U0001f915", + ":headphone:": "\U0001f3a7", + ":headphones:": "\U0001f3a7", + ":headstone:": "\U0001faa6", + ":health_worker:": "\U0001f9d1\u200d\u2695\ufe0f", + ":hear-no-evil_monkey:": "\U0001f649", + ":hear_no_evil:": "\U0001f649", + ":heard_mcdonald_islands:": "\U0001f1ed\U0001f1f2", + ":heart:": "\u2764\ufe0f", + ":heart_decoration:": "\U0001f49f", + ":heart_exclamation:": "\u2763", + ":heart_eyes:": "\U0001f60d", + ":heart_eyes_cat:": "\U0001f63b", + ":heart_hands:": "\U0001faf6", + ":heart_on_fire:": "\u2764\ufe0f\u200d\U0001f525", + ":heart_suit:": "\u2665", + ":heart_with_arrow:": "\U0001f498", + ":heart_with_ribbon:": "\U0001f49d", + ":heartbeat:": "\U0001f493", + ":heartpulse:": "\U0001f497", + ":hearts:": "\u2665\ufe0f", + ":heavy_check_mark:": "\u2714\ufe0f", + ":heavy_division_sign:": "\u2797", + ":heavy_dollar_sign:": "\U0001f4b2", + ":heavy_equals_sign:": "\U0001f7f0", + ":heavy_exclamation_mark:": "\u2757", + ":heavy_heart_exclamation:": "\u2763\ufe0f", ":heavy_heart_exclamation_mark_ornament:": "\u2763\ufe0f", ":heavy_minus_sign:": "\u2796", ":heavy_multiplication_x:": "\u2716\ufe0f", @@ -2088,10 +2104,12 @@ func emojiCode() map[string]string { ":icecream:": "\U0001f366", ":iceland:": "\U0001f1ee\U0001f1f8", ":id:": "\U0001f194", + ":identification_card:": "\U0001faaa", ":ideograph_advantage:": "\U0001f250", ":imp:": "\U0001f47f", ":inbox_tray:": "\U0001f4e5", ":incoming_envelope:": "\U0001f4e8", + ":index_pointing_at_the_viewer:": "\U0001faf5", ":index_pointing_up:": "\u261d", ":india:": "\U0001f1ee\U0001f1f3", ":indonesia:": "\U0001f1ee\U0001f1e9", @@ -2122,6 +2140,7 @@ func emojiCode() map[string]string { ":japanese_castle:": "\U0001f3ef", ":japanese_goblin:": "\U0001f47a", ":japanese_ogre:": "\U0001f479", + ":jar:": "\U0001fad9", ":jeans:": "\U0001f456", ":jersey:": "\U0001f1ef\U0001f1ea", ":jigsaw:": "\U0001f9e9", @@ -2184,7 +2203,6 @@ func emojiCode() map[string]string { ":kneeling_woman:": "\U0001f9ce\u200d\u2640\ufe0f", ":knife:": "\U0001f52a", ":knife_fork_plate:": "\U0001f37d\ufe0f", - ":knocked-out_face:": "\U0001f635", ":knot:": "\U0001faa2", ":koala:": "\U0001f428", ":koko:": "\U0001f201", @@ -2242,6 +2260,7 @@ func emojiCode() map[string]string { ":left_right_arrow:": "\u2194\ufe0f", ":left_speech_bubble:": "\U0001f5e8\ufe0f", ":leftwards_arrow_with_hook:": "\u21a9\ufe0f", + ":leftwards_hand:": "\U0001faf2", ":leg:": "\U0001f9b5", ":lemon:": "\U0001f34b", ":leo:": "\u264c", @@ -2276,6 +2295,7 @@ func emojiCode() map[string]string { ":long_drum:": "\U0001fa98", ":loop:": "\u27bf", ":lotion_bottle:": "\U0001f9f4", + ":lotus:": "\U0001fab7", ":lotus_position:": "\U0001f9d8", ":lotus_position_man:": "\U0001f9d8\u200d\u2642\ufe0f", ":lotus_position_woman:": "\U0001f9d8\u200d\u2640\ufe0f", @@ -2291,6 +2311,7 @@ func emojiCode() map[string]string { ":love_you_gesture_tone3:": "\U0001f91f\U0001f3fd", ":love_you_gesture_tone4:": "\U0001f91f\U0001f3fe", ":love_you_gesture_tone5:": "\U0001f91f\U0001f3ff", + ":low_battery:": "\U0001faab", ":low_brightness:": "\U0001f505", ":lower_left_ballpoint_pen:": "\U0001f58a\ufe0f", ":lower_left_crayon:": "\U0001f58d\ufe0f", @@ -2399,7 +2420,6 @@ func emojiCode() map[string]string { ":man-tipping-hand:": "\U0001f481\u200d\u2642\ufe0f", ":man-walking:": "\U0001f6b6\u200d\u2642\ufe0f", ":man-wearing-turban:": "\U0001f473\u200d\u2642\ufe0f", - ":man-with-bunny-ears-partying:": "\U0001f46f\u200d\u2642\ufe0f", ":man-woman-boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f466", ":man-woman-boy-boy:": "\U0001f468\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", ":man-woman-girl:": "\U0001f468\u200d\U0001f469\u200d\U0001f467", @@ -2765,6 +2785,7 @@ func emojiCode() map[string]string { ":man_wearing_turban_tone4:": "\U0001f473\U0001f3fe\u200d\u2642\ufe0f", ":man_wearing_turban_tone5:": "\U0001f473\U0001f3ff\u200d\u2642\ufe0f", ":man_white_hair:": "\U0001f468\u200d\U0001f9b3", + ":man_with_beard:": "\U0001f9d4\u200d\u2642\ufe0f", ":man_with_chinese_cap:": "\U0001f472", ":man_with_chinese_cap_tone1:": "\U0001f472\U0001f3fb", ":man_with_chinese_cap_tone2:": "\U0001f472\U0001f3fc", @@ -2809,7 +2830,9 @@ func emojiCode() map[string]string { ":mega:": "\U0001f4e3", ":megaphone:": "\U0001f4e3", ":melon:": "\U0001f348", + ":melting_face:": "\U0001fae0", ":memo:": "\U0001f4dd", + ":men-with-bunny-ears-partying:": "\U0001f46f\u200d\u2642\ufe0f", ":men_holding_hands:": "\U0001f46c", ":men_with_bunny_ears:": "\U0001f46f\u200d\u2642\ufe0f", ":men_with_bunny_ears_partying:": "\U0001f46f\u200d\u2642\ufe0f", @@ -2865,6 +2888,7 @@ func emojiCode() map[string]string { ":minidisc:": "\U0001f4bd", ":minus:": "\u2796", ":mirror:": "\U0001fa9e", + ":mirror_ball:": "\U0001faa9", ":moai:": "\U0001f5ff", ":mobile_phone:": "\U0001f4f1", ":mobile_phone_off:": "\U0001f4f4", @@ -2955,6 +2979,7 @@ func emojiCode() map[string]string { ":nepal:": "\U0001f1f3\U0001f1f5", ":nerd:": "\U0001f913", ":nerd_face:": "\U0001f913", + ":nest_with_eggs:": "\U0001faba", ":nesting_dolls:": "\U0001fa86", ":netherlands:": "\U0001f1f3\U0001f1f1", ":neutral_face:": "\U0001f610", @@ -3103,7 +3128,9 @@ func emojiCode() map[string]string { ":pakistan:": "\U0001f1f5\U0001f1f0", ":palau:": "\U0001f1f5\U0001f1fc", ":palestinian_territories:": "\U0001f1f5\U0001f1f8", + ":palm_down_hand:": "\U0001faf3", ":palm_tree:": "\U0001f334", + ":palm_up_hand:": "\U0001faf4", ":palms_up_together:": "\U0001f932", ":palms_up_together_tone1:": "\U0001f932\U0001f3fb", ":palms_up_together_tone2:": "\U0001f932\U0001f3fc", @@ -3355,6 +3382,7 @@ func emojiCode() map[string]string { ":person_white_hair:": "\U0001f9d1\u200d\U0001f9b3", ":person_with_ball:": "\u26f9\ufe0f\u200d\u2642\ufe0f", ":person_with_blond_hair:": "\U0001f471\u200d\u2642\ufe0f", + ":person_with_crown:": "\U0001fac5", ":person_with_headscarf:": "\U0001f9d5", ":person_with_pouting_face:": "\U0001f64e\u200d\u2640\ufe0f", ":person_with_probing_cane:": "\U0001f9d1\u200d\U0001f9af", @@ -3393,6 +3421,7 @@ func emojiCode() map[string]string { ":play_button:": "\u25b6", ":play_or_pause_button:": "\u23ef", ":play_pause:": "\u23ef", + ":playground_slide:": "\U0001f6dd", ":pleading_face:": "\U0001f97a", ":plunger:": "\U0001faa0", ":plus:": "\u2795", @@ -3454,6 +3483,7 @@ func emojiCode() map[string]string { ":poultry_leg:": "\U0001f357", ":pound:": "\U0001f4b7", ":pound_banknote:": "\U0001f4b7", + ":pouring_liquid:": "\U0001fad7", ":pout:": "\U0001f621", ":pouting_cat:": "\U0001f63e", ":pouting_face:": "\U0001f621", @@ -3466,6 +3496,8 @@ func emojiCode() map[string]string { ":pray_tone4:": "\U0001f64f\U0001f3fe", ":pray_tone5:": "\U0001f64f\U0001f3ff", ":prayer_beads:": "\U0001f4ff", + ":pregnant_man:": "\U0001fac3", + ":pregnant_person:": "\U0001fac4", ":pregnant_woman:": "\U0001f930", ":pregnant_woman_tone1:": "\U0001f930\U0001f3fb", ":pregnant_woman_tone2:": "\U0001f930\U0001f3fc", @@ -3608,7 +3640,9 @@ func emojiCode() map[string]string { ":right_facing_fist_tone3:": "\U0001f91c\U0001f3fd", ":right_facing_fist_tone4:": "\U0001f91c\U0001f3fe", ":right_facing_fist_tone5:": "\U0001f91c\U0001f3ff", + ":rightwards_hand:": "\U0001faf1", ":ring:": "\U0001f48d", + ":ring_buoy:": "\U0001f6df", ":ringed_planet:": "\U0001fa90", ":roasted_sweet_potato:": "\U0001f360", ":robot:": "\U0001f916", @@ -3652,6 +3686,7 @@ func emojiCode() map[string]string { ":sake:": "\U0001f376", ":salad:": "\U0001f957", ":salt:": "\U0001f9c2", + ":saluting_face:": "\U0001fae1", ":samoa:": "\U0001f1fc\U0001f1f8", ":san_marino:": "\U0001f1f8\U0001f1f2", ":sandal:": "\U0001f461", @@ -3792,6 +3827,7 @@ func emojiCode() map[string]string { ":smiling_face_with_heart-eyes:": "\U0001f60d", ":smiling_face_with_hearts:": "\U0001f970", ":smiling_face_with_horns:": "\U0001f608", + ":smiling_face_with_open_hands:": "\U0001f917", ":smiling_face_with_smiling_eyes:": "\U0001f60a", ":smiling_face_with_sunglasses:": "\U0001f60e", ":smiling_face_with_tear:": "\U0001f972", @@ -4058,6 +4094,7 @@ func emojiCode() map[string]string { ":trinidad_tobago:": "\U0001f1f9\U0001f1f9", ":tristan_da_cunha:": "\U0001f1f9\U0001f1e6", ":triumph:": "\U0001f624", + ":troll:": "\U0001f9cc", ":trolleybus:": "\U0001f68e", ":trophy:": "\U0001f3c6", ":tropical_drink:": "\U0001f379", @@ -4205,6 +4242,7 @@ func emojiCode() map[string]string { ":western_sahara:": "\U0001f1ea\U0001f1ed", ":whale:": "\U0001f433", ":whale2:": "\U0001f40b", + ":wheel:": "\U0001f6de", ":wheel_of_dharma:": "\u2638\ufe0f", ":wheelchair:": "\u267f", ":wheelchair_symbol:": "\u267f", @@ -4277,7 +4315,6 @@ func emojiCode() map[string]string { ":woman-tipping-hand:": "\U0001f481\u200d\u2640\ufe0f", ":woman-walking:": "\U0001f6b6\u200d\u2640\ufe0f", ":woman-wearing-turban:": "\U0001f473\u200d\u2640\ufe0f", - ":woman-with-bunny-ears-partying:": "\U0001f46f\u200d\u2640\ufe0f", ":woman-woman-boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f466", ":woman-woman-boy-boy:": "\U0001f469\u200d\U0001f469\u200d\U0001f466\u200d\U0001f466", ":woman-woman-girl:": "\U0001f469\u200d\U0001f469\u200d\U0001f467", @@ -4627,6 +4664,7 @@ func emojiCode() map[string]string { ":woman_wearing_turban_tone4:": "\U0001f473\U0001f3fe\u200d\u2640\ufe0f", ":woman_wearing_turban_tone5:": "\U0001f473\U0001f3ff\u200d\u2640\ufe0f", ":woman_white_hair:": "\U0001f469\u200d\U0001f9b3", + ":woman_with_beard:": "\U0001f9d4\u200d\u2640\ufe0f", ":woman_with_headscarf:": "\U0001f9d5", ":woman_with_headscarf_tone1:": "\U0001f9d5\U0001f3fb", ":woman_with_headscarf_tone2:": "\U0001f9d5\U0001f3fc", @@ -4645,6 +4683,7 @@ func emojiCode() map[string]string { ":woman’s_clothes:": "\U0001f45a", ":woman’s_hat:": "\U0001f452", ":woman’s_sandal:": "\U0001f461", + ":women-with-bunny-ears-partying:": "\U0001f46f\u200d\u2640\ufe0f", ":women_holding_hands:": "\U0001f46d", ":women_with_bunny_ears:": "\U0001f46f\u200d\u2640\ufe0f", ":women_with_bunny_ears_partying:": "\U0001f46f\u200d\u2640\ufe0f", @@ -4668,6 +4707,7 @@ func emojiCode() map[string]string { ":writing_hand_tone4:": "\u270d\U0001f3fe", ":writing_hand_tone5:": "\u270d\U0001f3ff", ":x:": "\u274c", + ":x-ray:": "\U0001fa7b", ":yarn:": "\U0001f9f6", ":yawning_face:": "\U0001f971", ":yellow_circle:": "\U0001f7e1", @@ -5819,9 +5859,9 @@ func emojiRevCode() map[string][]string { "\U0001f469\u200d\u2695\ufe0f": {":female-doctor:", ":woman_health_worker:"}, "\U0001f469\u200d\u2696\ufe0f": {":woman_judge:", ":female-judge:"}, "\U0001f469\u200d\u2708\ufe0f": {":woman_pilot:", ":female-pilot:"}, - "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f468": {":woman-heart-man:", ":couple_with_heart:", ":couple_with_heart_woman_man:"}, + "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f468": {":woman-heart-man:", ":couple_with_heart_woman_man:"}, "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f469": {":couple_ww:", ":woman-heart-woman:", ":couple_with_heart_woman_woman:"}, - "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468": {":couplekiss:", ":kiss_woman_man:", ":woman-kiss-man:", ":couplekiss_man_woman:"}, + "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f468": {":kiss_woman_man:", ":woman-kiss-man:", ":couplekiss_man_woman:"}, "\U0001f469\u200d\u2764\ufe0f\u200d\U0001f48b\u200d\U0001f469": {":kiss_ww:", ":kiss_woman_woman:", ":woman-kiss-woman:", ":couplekiss_woman_woman:"}, "\U0001f46b": {":couple:", ":man_and_woman_holding_hands:", ":woman_and_man_holding_hands:"}, "\U0001f46c": {":men_holding_hands:", ":two_men_holding_hands:"}, @@ -5845,8 +5885,8 @@ func emojiRevCode() map[string][]string { "\U0001f46e\u200d\u2640\ufe0f": {":policewoman:", ":woman_police_officer:", ":female-police-officer:"}, "\U0001f46e\u200d\u2642\ufe0f": {":cop:", ":policeman:", ":man_police_officer:", ":male-police-officer:"}, "\U0001f46f": {":people_with_bunny_ears:", ":people_with_bunny_ears_partying:"}, - "\U0001f46f\u200d\u2640\ufe0f": {":dancers:", ":dancing_women:", ":women_with_bunny_ears:", ":woman-with-bunny-ears-partying:", ":women_with_bunny_ears_partying:"}, - "\U0001f46f\u200d\u2642\ufe0f": {":dancing_men:", ":men_with_bunny_ears:", ":man-with-bunny-ears-partying:", ":men_with_bunny_ears_partying:"}, + "\U0001f46f\u200d\u2640\ufe0f": {":dancers:", ":dancing_women:", ":women_with_bunny_ears:", ":women-with-bunny-ears-partying:", ":women_with_bunny_ears_partying:"}, + "\U0001f46f\u200d\u2642\ufe0f": {":dancing_men:", ":men_with_bunny_ears:", ":men-with-bunny-ears-partying:", ":men_with_bunny_ears_partying:"}, "\U0001f470": {":bride_with_veil:", ":person_with_veil:"}, "\U0001f470\U0001f3fb": {":bride_with_veil_tone1:"}, "\U0001f470\U0001f3fc": {":bride_with_veil_tone2:"}, @@ -6043,7 +6083,9 @@ func emojiRevCode() map[string][]string { "\U0001f48c": {":love_letter:"}, "\U0001f48d": {":ring:"}, "\U0001f48e": {":gem:", ":gem_stone:"}, + "\U0001f48f": {":couplekiss:"}, "\U0001f490": {":bouquet:"}, + "\U0001f491": {":couple_with_heart:"}, "\U0001f492": {":wedding:"}, "\U0001f493": {":heartbeat:", ":beating_heart:"}, "\U0001f494": {":broken_heart:"}, @@ -6417,7 +6459,7 @@ func emojiRevCode() map[string][]string { "\U0001f632": {":astonished:", ":astonished_face:"}, "\U0001f633": {":flushed:", ":flushed_face:"}, "\U0001f634": {":sleeping:", ":sleeping_face:"}, - "\U0001f635": {":dizzy_face:", ":knocked-out_face:"}, + "\U0001f635": {":dizzy_face:", ":face_with_crossed-out_eyes:"}, "\U0001f635\u200d\U0001f4ab": {":face_with_spiral_eyes:"}, "\U0001f636": {":no_mouth:", ":face_without_mouth:"}, "\U0001f636\u200d\U0001f32b\ufe0f": {":face_in_clouds:"}, @@ -6719,6 +6761,9 @@ func emojiRevCode() map[string][]string { "\U0001f6d5": {":hindu_temple:"}, "\U0001f6d6": {":hut:"}, "\U0001f6d7": {":elevator:"}, + "\U0001f6dd": {":playground_slide:"}, + "\U0001f6de": {":wheel:"}, + "\U0001f6df": {":ring_buoy:"}, "\U0001f6e0": {":tools:"}, "\U0001f6e0\ufe0f": {":hammer_and_wrench:"}, "\U0001f6e1\ufe0f": {":shield:"}, @@ -6757,6 +6802,7 @@ func emojiRevCode() map[string][]string { "\U0001f7e9": {":green_square:", ":large_green_square:"}, "\U0001f7ea": {":purple_square:", ":large_purple_square:"}, "\U0001f7eb": {":brown_square:", ":large_brown_square:"}, + "\U0001f7f0": {":heavy_equals_sign:"}, "\U0001f90c": {":pinched_fingers:"}, "\U0001f90d": {":white_heart:"}, "\U0001f90e": {":brown_heart:"}, @@ -6768,7 +6814,7 @@ func emojiRevCode() map[string][]string { "\U0001f914": {":thinking:", ":thinking_face:"}, "\U0001f915": {":head_bandage:", ":face_with_head-bandage:", ":face_with_head_bandage:"}, "\U0001f916": {":robot:", ":robot_face:"}, - "\U0001f917": {":hugs:", ":hugging:", ":hugging_face:"}, + "\U0001f917": {":hugs:", ":hugging:", ":hugging_face:", ":smiling_face_with_open_hands:"}, "\U0001f918": {":metal:", ":the_horns:", ":sign_of_the_horns:"}, "\U0001f918\U0001f3fb": {":metal_tone1:"}, "\U0001f918\U0001f3fc": {":metal_tone2:"}, @@ -7040,6 +7086,7 @@ func emojiRevCode() map[string][]string { "\U0001f976": {":cold_face:"}, "\U0001f977": {":ninja:"}, "\U0001f978": {":disguised_face:"}, + "\U0001f979": {":face_holding_back_tears:"}, "\U0001f97a": {":pleading_face:"}, "\U0001f97b": {":sari:"}, "\U0001f97c": {":lab_coat:"}, @@ -7126,6 +7173,7 @@ func emojiRevCode() map[string][]string { "\U0001f9c9": {":mate:", ":mate_drink:"}, "\U0001f9ca": {":ice:", ":ice_cube:"}, "\U0001f9cb": {":bubble_tea:"}, + "\U0001f9cc": {":troll:"}, "\U0001f9cd": {":person_standing:", ":standing_person:"}, "\U0001f9cd\u200d\u2640\ufe0f": {":standing_woman:", ":woman_standing:"}, "\U0001f9cd\u200d\u2642\ufe0f": {":man_standing:", ":standing_man:"}, @@ -7186,8 +7234,8 @@ func emojiRevCode() map[string][]string { "\U0001f9d4\U0001f3fd": {":bearded_person_tone3:"}, "\U0001f9d4\U0001f3fe": {":bearded_person_tone4:"}, "\U0001f9d4\U0001f3ff": {":bearded_person_tone5:"}, - "\U0001f9d4\u200d\u2640\ufe0f": {":woman_beard:"}, - "\U0001f9d4\u200d\u2642\ufe0f": {":man_beard:"}, + "\U0001f9d4\u200d\u2640\ufe0f": {":woman_beard:", ":woman_with_beard:"}, + "\U0001f9d4\u200d\u2642\ufe0f": {":man_beard:", ":man_with_beard:"}, "\U0001f9d5": {":woman_with_headscarf:", ":person_with_headscarf:"}, "\U0001f9d5\U0001f3fb": {":woman_with_headscarf_tone1:"}, "\U0001f9d5\U0001f3fc": {":woman_with_headscarf_tone2:"}, @@ -7377,6 +7425,8 @@ func emojiRevCode() map[string][]string { "\U0001fa78": {":drop_of_blood:"}, "\U0001fa79": {":adhesive_bandage:"}, "\U0001fa7a": {":stethoscope:"}, + "\U0001fa7b": {":x-ray:"}, + "\U0001fa7c": {":crutch:"}, "\U0001fa80": {":yo-yo:", ":yo_yo:"}, "\U0001fa81": {":kite:"}, "\U0001fa82": {":parachute:"}, @@ -7409,6 +7459,10 @@ func emojiRevCode() map[string][]string { "\U0001faa6": {":headstone:"}, "\U0001faa7": {":placard:"}, "\U0001faa8": {":rock:"}, + "\U0001faa9": {":mirror_ball:"}, + "\U0001faaa": {":identification_card:"}, + "\U0001faab": {":low_battery:"}, + "\U0001faac": {":hamsa:"}, "\U0001fab0": {":fly:"}, "\U0001fab1": {":worm:"}, "\U0001fab2": {":beetle:"}, @@ -7416,9 +7470,16 @@ func emojiRevCode() map[string][]string { "\U0001fab4": {":potted_plant:"}, "\U0001fab5": {":wood:"}, "\U0001fab6": {":feather:"}, + "\U0001fab7": {":lotus:"}, + "\U0001fab8": {":coral:"}, + "\U0001fab9": {":empty_nest:"}, + "\U0001faba": {":nest_with_eggs:"}, "\U0001fac0": {":anatomical_heart:"}, "\U0001fac1": {":lungs:"}, "\U0001fac2": {":people_hugging:"}, + "\U0001fac3": {":pregnant_man:"}, + "\U0001fac4": {":pregnant_person:"}, + "\U0001fac5": {":person_with_crown:"}, "\U0001fad0": {":blueberries:"}, "\U0001fad1": {":bell_pepper:"}, "\U0001fad2": {":olive:"}, @@ -7426,6 +7487,24 @@ func emojiRevCode() map[string][]string { "\U0001fad4": {":tamale:"}, "\U0001fad5": {":fondue:"}, "\U0001fad6": {":teapot:"}, + "\U0001fad7": {":pouring_liquid:"}, + "\U0001fad8": {":beans:"}, + "\U0001fad9": {":jar:"}, + "\U0001fae0": {":melting_face:"}, + "\U0001fae1": {":saluting_face:"}, + "\U0001fae2": {":face_with_open_eyes_and_hand_over_mouth:"}, + "\U0001fae3": {":face_with_peeking_eye:"}, + "\U0001fae4": {":face_with_diagonal_mouth:"}, + "\U0001fae5": {":dotted_line_face:"}, + "\U0001fae6": {":biting_lip:"}, + "\U0001fae7": {":bubbles:"}, + "\U0001faf0": {":hand_with_index_finger_and_thumb_crossed:"}, + "\U0001faf1": {":rightwards_hand:"}, + "\U0001faf2": {":leftwards_hand:"}, + "\U0001faf3": {":palm_down_hand:"}, + "\U0001faf4": {":palm_up_hand:"}, + "\U0001faf5": {":index_pointing_at_the_viewer:"}, + "\U0001faf6": {":heart_hands:"}, "\u00a9\ufe0f": {":copyright:"}, "\u00ae\ufe0f": {":registered:"}, "\u203c": {":double_exclamation_mark:"}, diff --git a/vendor/github.com/labstack/echo/v4/CHANGELOG.md b/vendor/github.com/labstack/echo/v4/CHANGELOG.md index 372ed13c..461ac89c 100644 --- a/vendor/github.com/labstack/echo/v4/CHANGELOG.md +++ b/vendor/github.com/labstack/echo/v4/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## v4.7.0 - 2022-03-01 + +**Enhancements** + +* Add JWT, KeyAuth, CSRF multivalue extractors [#2060](https://github.com/labstack/echo/pull/2060) +* Add LogErrorFunc to recover middleware [#2072](https://github.com/labstack/echo/pull/2072) +* Add support for HEAD method query params binding [#2027](https://github.com/labstack/echo/pull/2027) +* Improve filesystem support with echo.FileFS, echo.StaticFS, group.FileFS, group.StaticFS [#2064](https://github.com/labstack/echo/pull/2064) + +**Fixes** + +* Fix X-Real-IP bug, improve tests [#2007](https://github.com/labstack/echo/pull/2007) +* Minor syntax fixes [#1994](https://github.com/labstack/echo/pull/1994), [#2102](https://github.com/labstack/echo/pull/2102), [#2102](https://github.com/labstack/echo/pull/2102) + +**General** + +* Add cache-control and connection headers [#2103](https://github.com/labstack/echo/pull/2103) +* Add Retry-After header constant [#2078](https://github.com/labstack/echo/pull/2078) +* Upgrade `go` directive in `go.mod` to 1.17 [#2049](https://github.com/labstack/echo/pull/2049) +* Add Pagoda [#2077](https://github.com/labstack/echo/pull/2077) and Souin [#2069](https://github.com/labstack/echo/pull/2069) to 3rd-party middlewares in README + ## v4.6.3 - 2022-01-10 **Fixes** diff --git a/vendor/github.com/labstack/echo/v4/README.md b/vendor/github.com/labstack/echo/v4/README.md index 930cb034..8b2321f0 100644 --- a/vendor/github.com/labstack/echo/v4/README.md +++ b/vendor/github.com/labstack/echo/v4/README.md @@ -5,7 +5,6 @@ [![Go Report Card](https://goreportcard.com/badge/github.com/labstack/echo?style=flat-square)](https://goreportcard.com/report/github.com/labstack/echo) [![Build Status](http://img.shields.io/travis/labstack/echo.svg?style=flat-square)](https://travis-ci.org/labstack/echo) [![Codecov](https://img.shields.io/codecov/c/github/labstack/echo.svg?style=flat-square)](https://codecov.io/gh/labstack/echo) -[![Join the chat at https://gitter.im/labstack/echo](https://img.shields.io/badge/gitter-join%20chat-brightgreen.svg?style=flat-square)](https://gitter.im/labstack/echo) [![Forum](https://img.shields.io/badge/community-forum-00afd1.svg?style=flat-square)](https://github.com/labstack/echo/discussions) [![Twitter](https://img.shields.io/badge/twitter-@labstack-55acee.svg?style=flat-square)](https://twitter.com/labstack) [![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/labstack/echo/master/LICENSE) @@ -92,10 +91,23 @@ func hello(c echo.Context) error { } ``` +# Third-party middlewares + +| Repository | Description | +|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [github.com/labstack/echo-contrib](https://github.com/labstack/echo-contrib) | (by Echo team) [casbin](https://github.com/casbin/casbin), [gorilla/sessions](https://github.com/gorilla/sessions), [jaegertracing](github.com/uber/jaeger-client-go), [prometheus](https://github.com/prometheus/client_golang/), [pprof](https://pkg.go.dev/net/http/pprof), [zipkin](https://github.com/openzipkin/zipkin-go) middlewares | +| [deepmap/oapi-codegen](https://github.com/deepmap/oapi-codegen) | Automatically generate RESTful API documentation with [OpenAPI](https://swagger.io/specification/) Client and Server Code Generator | +| [github.com/swaggo/echo-swagger](https://github.com/swaggo/echo-swagger) | Automatically generate RESTful API documentation with [Swagger](https://swagger.io/) 2.0. | +| [github.com/ziflex/lecho](https://github.com/ziflex/lecho) | [Zerolog](https://github.com/rs/zerolog) logging library wrapper for Echo logger interface. | +| [github.com/brpaz/echozap](https://github.com/brpaz/echozap) | Uber´s [Zap](https://github.com/uber-go/zap) logging library wrapper for Echo logger interface. | +| [github.com/darkweak/souin/plugins/echo](https://github.com/darkweak/souin/tree/master/plugins/echo) | HTTP cache system based on [Souin](https://github.com/darkweak/souin) to automatically get your endpoints cached. It supports some distributed and non-distributed storage systems depending your needs. | +| [github.com/mikestefanello/pagoda](https://github.com/mikestefanello/pagoda) | Rapid, easy full-stack web development starter kit built with Echo. + +Please send a PR to add your own library here. + ## Help - [Forum](https://github.com/labstack/echo/discussions) -- [Chat](https://gitter.im/labstack/echo) ## Contribute diff --git a/vendor/github.com/labstack/echo/v4/bind.go b/vendor/github.com/labstack/echo/v4/bind.go index fdf0524c..c841ca01 100644 --- a/vendor/github.com/labstack/echo/v4/bind.go +++ b/vendor/github.com/labstack/echo/v4/bind.go @@ -111,11 +111,11 @@ func (b *DefaultBinder) Bind(i interface{}, c Context) (err error) { if err := b.BindPathParams(c, i); err != nil { return err } - // Issue #1670 - Query params are binded only for GET/DELETE and NOT for usual request with body (POST/PUT/PATCH) - // Reasoning here is that parameters in query and bind destination struct could have UNEXPECTED matches and results due that. - // i.e. is `&id=1&lang=en` from URL same as `{"id":100,"lang":"de"}` request body and which one should have priority when binding. - // This HTTP method check restores pre v4.1.11 behavior and avoids different problems when query is mixed with body - if c.Request().Method == http.MethodGet || c.Request().Method == http.MethodDelete { + // Only bind query parameters for GET/DELETE/HEAD to avoid unexpected behavior with destination struct binding from body. + // For example a request URL `&id=1&lang=en` with body `{"id":100,"lang":"de"}` would lead to precedence issues. + // The HTTP method check restores pre-v4.1.11 behavior to avoid these problems (see issue #1670) + method := c.Request().Method + if method == http.MethodGet || method == http.MethodDelete || method == http.MethodHead { if err = b.BindQueryParams(c, i); err != nil { return err } diff --git a/vendor/github.com/labstack/echo/v4/context.go b/vendor/github.com/labstack/echo/v4/context.go index 91ab6e48..a4ecfadf 100644 --- a/vendor/github.com/labstack/echo/v4/context.go +++ b/vendor/github.com/labstack/echo/v4/context.go @@ -9,8 +9,6 @@ import ( "net" "net/http" "net/url" - "os" - "path/filepath" "strings" "sync" ) @@ -211,6 +209,13 @@ type ( ) const ( + // ContextKeyHeaderAllow is set by Router for getting value for `Allow` header in later stages of handler call chain. + // Allow header is mandatory for status 405 (method not found) and useful for OPTIONS method requests. + // It is added to context only when Router does not find matching method handler for request. + ContextKeyHeaderAllow = "echo_header_allow" +) + +const ( defaultMemory = 32 << 20 // 32 MB indexPage = "index.html" defaultIndent = " " @@ -562,29 +567,6 @@ func (c *context) Stream(code int, contentType string, r io.Reader) (err error) return } -func (c *context) File(file string) (err error) { - f, err := os.Open(file) - if err != nil { - return NotFoundHandler(c) - } - defer f.Close() - - fi, _ := f.Stat() - if fi.IsDir() { - file = filepath.Join(file, indexPage) - f, err = os.Open(file) - if err != nil { - return NotFoundHandler(c) - } - defer f.Close() - if fi, err = f.Stat(); err != nil { - return - } - } - http.ServeContent(c.Response(), c.Request(), fi.Name(), fi.ModTime(), f) - return -} - func (c *context) Attachment(file, name string) error { return c.contentDisposition(file, name, "attachment") } diff --git a/vendor/github.com/labstack/echo/v4/context_fs.go b/vendor/github.com/labstack/echo/v4/context_fs.go new file mode 100644 index 00000000..11ee84bc --- /dev/null +++ b/vendor/github.com/labstack/echo/v4/context_fs.go @@ -0,0 +1,33 @@ +//go:build !go1.16 +// +build !go1.16 + +package echo + +import ( + "net/http" + "os" + "path/filepath" +) + +func (c *context) File(file string) (err error) { + f, err := os.Open(file) + if err != nil { + return NotFoundHandler(c) + } + defer f.Close() + + fi, _ := f.Stat() + if fi.IsDir() { + file = filepath.Join(file, indexPage) + f, err = os.Open(file) + if err != nil { + return NotFoundHandler(c) + } + defer f.Close() + if fi, err = f.Stat(); err != nil { + return + } + } + http.ServeContent(c.Response(), c.Request(), fi.Name(), fi.ModTime(), f) + return +} diff --git a/vendor/github.com/labstack/echo/v4/context_fs_go1.16.go b/vendor/github.com/labstack/echo/v4/context_fs_go1.16.go new file mode 100644 index 00000000..c1c724af --- /dev/null +++ b/vendor/github.com/labstack/echo/v4/context_fs_go1.16.go @@ -0,0 +1,52 @@ +//go:build go1.16 +// +build go1.16 + +package echo + +import ( + "errors" + "io" + "io/fs" + "net/http" + "path/filepath" +) + +func (c *context) File(file string) error { + return fsFile(c, file, c.echo.Filesystem) +} + +// FileFS serves file from given file system. +// +// When dealing with `embed.FS` use `fs := echo.MustSubFS(fs, "rootDirectory") to create sub fs which uses necessary +// prefix for directory path. This is necessary as `//go:embed assets/images` embeds files with paths +// including `assets/images` as their prefix. +func (c *context) FileFS(file string, filesystem fs.FS) error { + return fsFile(c, file, filesystem) +} + +func fsFile(c Context, file string, filesystem fs.FS) error { + f, err := filesystem.Open(file) + if err != nil { + return ErrNotFound + } + defer f.Close() + + fi, _ := f.Stat() + if fi.IsDir() { + file = filepath.ToSlash(filepath.Join(file, indexPage)) // ToSlash is necessary for Windows. fs.Open and os.Open are different in that aspect. + f, err = filesystem.Open(file) + if err != nil { + return ErrNotFound + } + defer f.Close() + if fi, err = f.Stat(); err != nil { + return err + } + } + ff, ok := f.(io.ReadSeeker) + if !ok { + return errors.New("file does not implement io.ReadSeeker") + } + http.ServeContent(c.Response(), c.Request(), fi.Name(), fi.ModTime(), ff) + return nil +} diff --git a/vendor/github.com/labstack/echo/v4/echo.go b/vendor/github.com/labstack/echo/v4/echo.go index 1a60fb07..143f9ffe 100644 --- a/vendor/github.com/labstack/echo/v4/echo.go +++ b/vendor/github.com/labstack/echo/v4/echo.go @@ -47,9 +47,6 @@ import ( stdLog "log" "net" "net/http" - "net/url" - "os" - "path/filepath" "reflect" "runtime" "sync" @@ -66,6 +63,7 @@ import ( type ( // Echo is the top-level framework instance. Echo struct { + filesystem common // startupMutex is mutex to lock Echo instance access during server configuration and startup. Useful for to get // listener address info (on which interface/port was listener binded) without having data races. @@ -77,7 +75,6 @@ type ( maxParam *int router *Router routers map[string]*Router - notFoundHandler HandlerFunc pool sync.Pool Server *http.Server TLSServer *http.Server @@ -113,10 +110,10 @@ type ( } // MiddlewareFunc defines a function to process middleware. - MiddlewareFunc func(HandlerFunc) HandlerFunc + MiddlewareFunc func(next HandlerFunc) HandlerFunc // HandlerFunc defines a function to serve HTTP requests. - HandlerFunc func(Context) error + HandlerFunc func(c Context) error // HTTPErrorHandler is a centralized HTTP error handler. HTTPErrorHandler func(error, Context) @@ -190,8 +187,12 @@ const ( // Headers const ( - HeaderAccept = "Accept" - HeaderAcceptEncoding = "Accept-Encoding" + HeaderAccept = "Accept" + HeaderAcceptEncoding = "Accept-Encoding" + // HeaderAllow is the name of the "Allow" header field used to list the set of methods + // advertised as supported by the target resource. Returning an Allow header is mandatory + // for status 405 (method not found) and useful for the OPTIONS method in responses. + // See RFC 7231: https://datatracker.ietf.org/doc/html/rfc7231#section-7.4.1 HeaderAllow = "Allow" HeaderAuthorization = "Authorization" HeaderContentDisposition = "Content-Disposition" @@ -203,6 +204,7 @@ const ( HeaderIfModifiedSince = "If-Modified-Since" HeaderLastModified = "Last-Modified" HeaderLocation = "Location" + HeaderRetryAfter = "Retry-After" HeaderUpgrade = "Upgrade" HeaderVary = "Vary" HeaderWWWAuthenticate = "WWW-Authenticate" @@ -212,12 +214,14 @@ const ( HeaderXForwardedSsl = "X-Forwarded-Ssl" HeaderXUrlScheme = "X-Url-Scheme" HeaderXHTTPMethodOverride = "X-HTTP-Method-Override" - HeaderXRealIP = "X-Real-IP" - HeaderXRequestID = "X-Request-ID" - HeaderXCorrelationID = "X-Correlation-ID" + HeaderXRealIP = "X-Real-Ip" + HeaderXRequestID = "X-Request-Id" + HeaderXCorrelationID = "X-Correlation-Id" HeaderXRequestedWith = "X-Requested-With" HeaderServer = "Server" HeaderOrigin = "Origin" + HeaderCacheControl = "Cache-Control" + HeaderConnection = "Connection" // Access control HeaderAccessControlRequestMethod = "Access-Control-Request-Method" @@ -242,7 +246,7 @@ const ( const ( // Version of Echo - Version = "4.6.3" + Version = "4.7.0" website = "https://echo.labstack.com" // http://patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Echo banner = ` @@ -302,6 +306,12 @@ var ( } MethodNotAllowedHandler = func(c Context) error { + // See RFC 7231 section 7.4.1: An origin server MUST generate an Allow field in a 405 (Method Not Allowed) + // response and MAY do so in any other response. For disabled resources an empty Allow header may be returned + routerAllowMethods, ok := c.Get(ContextKeyHeaderAllow).(string) + if ok && routerAllowMethods != "" { + c.Response().Header().Set(HeaderAllow, routerAllowMethods) + } return ErrMethodNotAllowed } ) @@ -309,8 +319,9 @@ var ( // New creates an instance of Echo. func New() (e *Echo) { e = &Echo{ - Server: new(http.Server), - TLSServer: new(http.Server), + filesystem: createFilesystem(), + Server: new(http.Server), + TLSServer: new(http.Server), AutoTLSManager: autocert.Manager{ Prompt: autocert.AcceptTOS, }, @@ -489,50 +500,6 @@ func (e *Echo) Match(methods []string, path string, handler HandlerFunc, middlew return routes } -// Static registers a new route with path prefix to serve static files from the -// provided root directory. -func (e *Echo) Static(prefix, root string) *Route { - if root == "" { - root = "." // For security we want to restrict to CWD. - } - return e.static(prefix, root, e.GET) -} - -func (common) static(prefix, root string, get func(string, HandlerFunc, ...MiddlewareFunc) *Route) *Route { - h := func(c Context) error { - p, err := url.PathUnescape(c.Param("*")) - if err != nil { - return err - } - - name := filepath.Join(root, filepath.Clean("/"+p)) // "/"+ for security - fi, err := os.Stat(name) - if err != nil { - // The access path does not exist - return NotFoundHandler(c) - } - - // If the request is for a directory and does not end with "/" - p = c.Request().URL.Path // path must not be empty. - if fi.IsDir() && p[len(p)-1] != '/' { - // Redirect to ends with "/" - return c.Redirect(http.StatusMovedPermanently, p+"/") - } - return c.File(name) - } - // Handle added routes based on trailing slash: - // /prefix => exact route "/prefix" + any route "/prefix/*" - // /prefix/ => only any route "/prefix/*" - if prefix != "" { - if prefix[len(prefix)-1] == '/' { - // Only add any route for intentional trailing slash - return get(prefix+"*", h) - } - get(prefix, h) - } - return get(prefix+"/*", h) -} - func (common) file(path, file string, get func(string, HandlerFunc, ...MiddlewareFunc) *Route, m ...MiddlewareFunc) *Route { return get(path, func(c Context) error { @@ -643,7 +610,7 @@ func (e *Echo) ServeHTTP(w http.ResponseWriter, r *http.Request) { // Acquire context c := e.pool.Get().(*context) c.Reset(r, w) - h := NotFoundHandler + var h func(Context) error if e.premiddleware == nil { e.findRouter(r.Host).Find(r.Method, GetPath(r), c) diff --git a/vendor/github.com/labstack/echo/v4/echo_fs.go b/vendor/github.com/labstack/echo/v4/echo_fs.go new file mode 100644 index 00000000..c3790545 --- /dev/null +++ b/vendor/github.com/labstack/echo/v4/echo_fs.go @@ -0,0 +1,62 @@ +//go:build !go1.16 +// +build !go1.16 + +package echo + +import ( + "net/http" + "net/url" + "os" + "path/filepath" +) + +type filesystem struct { +} + +func createFilesystem() filesystem { + return filesystem{} +} + +// Static registers a new route with path prefix to serve static files from the +// provided root directory. +func (e *Echo) Static(prefix, root string) *Route { + if root == "" { + root = "." // For security we want to restrict to CWD. + } + return e.static(prefix, root, e.GET) +} + +func (common) static(prefix, root string, get func(string, HandlerFunc, ...MiddlewareFunc) *Route) *Route { + h := func(c Context) error { + p, err := url.PathUnescape(c.Param("*")) + if err != nil { + return err + } + + name := filepath.Join(root, filepath.Clean("/"+p)) // "/"+ for security + fi, err := os.Stat(name) + if err != nil { + // The access path does not exist + return NotFoundHandler(c) + } + + // If the request is for a directory and does not end with "/" + p = c.Request().URL.Path // path must not be empty. + if fi.IsDir() && p[len(p)-1] != '/' { + // Redirect to ends with "/" + return c.Redirect(http.StatusMovedPermanently, p+"/") + } + return c.File(name) + } + // Handle added routes based on trailing slash: + // /prefix => exact route "/prefix" + any route "/prefix/*" + // /prefix/ => only any route "/prefix/*" + if prefix != "" { + if prefix[len(prefix)-1] == '/' { + // Only add any route for intentional trailing slash + return get(prefix+"*", h) + } + get(prefix, h) + } + return get(prefix+"/*", h) +} diff --git a/vendor/github.com/labstack/echo/v4/echo_fs_go1.16.go b/vendor/github.com/labstack/echo/v4/echo_fs_go1.16.go new file mode 100644 index 00000000..435459de --- /dev/null +++ b/vendor/github.com/labstack/echo/v4/echo_fs_go1.16.go @@ -0,0 +1,145 @@ +//go:build go1.16 +// +build go1.16 + +package echo + +import ( + "fmt" + "io/fs" + "net/http" + "net/url" + "os" + "path/filepath" + "strings" +) + +type filesystem struct { + // Filesystem is file system used by Static and File handlers to access files. + // Defaults to os.DirFS(".") + // + // When dealing with `embed.FS` use `fs := echo.MustSubFS(fs, "rootDirectory") to create sub fs which uses necessary + // prefix for directory path. This is necessary as `//go:embed assets/images` embeds files with paths + // including `assets/images` as their prefix. + Filesystem fs.FS +} + +func createFilesystem() filesystem { + return filesystem{ + Filesystem: newDefaultFS(), + } +} + +// Static registers a new route with path prefix to serve static files from the provided root directory. +func (e *Echo) Static(pathPrefix, fsRoot string) *Route { + subFs := MustSubFS(e.Filesystem, fsRoot) + return e.Add( + http.MethodGet, + pathPrefix+"*", + StaticDirectoryHandler(subFs, false), + ) +} + +// StaticFS registers a new route with path prefix to serve static files from the provided file system. +// +// When dealing with `embed.FS` use `fs := echo.MustSubFS(fs, "rootDirectory") to create sub fs which uses necessary +// prefix for directory path. This is necessary as `//go:embed assets/images` embeds files with paths +// including `assets/images` as their prefix. +func (e *Echo) StaticFS(pathPrefix string, filesystem fs.FS) *Route { + return e.Add( + http.MethodGet, + pathPrefix+"*", + StaticDirectoryHandler(filesystem, false), + ) +} + +// StaticDirectoryHandler creates handler function to serve files from provided file system +// When disablePathUnescaping is set then file name from path is not unescaped and is served as is. +func StaticDirectoryHandler(fileSystem fs.FS, disablePathUnescaping bool) HandlerFunc { + return func(c Context) error { + p := c.Param("*") + if !disablePathUnescaping { // when router is already unescaping we do not want to do is twice + tmpPath, err := url.PathUnescape(p) + if err != nil { + return fmt.Errorf("failed to unescape path variable: %w", err) + } + p = tmpPath + } + + // fs.FS.Open() already assumes that file names are relative to FS root path and considers name with prefix `/` as invalid + name := filepath.ToSlash(filepath.Clean(strings.TrimPrefix(p, "/"))) + fi, err := fs.Stat(fileSystem, name) + if err != nil { + return ErrNotFound + } + + // If the request is for a directory and does not end with "/" + p = c.Request().URL.Path // path must not be empty. + if fi.IsDir() && len(p) > 0 && p[len(p)-1] != '/' { + // Redirect to ends with "/" + return c.Redirect(http.StatusMovedPermanently, p+"/") + } + return fsFile(c, name, fileSystem) + } +} + +// FileFS registers a new route with path to serve file from the provided file system. +func (e *Echo) FileFS(path, file string, filesystem fs.FS, m ...MiddlewareFunc) *Route { + return e.GET(path, StaticFileHandler(file, filesystem), m...) +} + +// StaticFileHandler creates handler function to serve file from provided file system +func StaticFileHandler(file string, filesystem fs.FS) HandlerFunc { + return func(c Context) error { + return fsFile(c, file, filesystem) + } +} + +// defaultFS emulates os.Open behaviour with filesystem opened by `os.DirFs`. Difference between `os.Open` and `fs.Open` +// is that FS does not allow to open path that start with `..` or `/` etc. For example previously you could have `../images` +// in your application but `fs := os.DirFS("./")` would not allow you to use `fs.Open("../images")` and this would break +// all old applications that rely on being able to traverse up from current executable run path. +// NB: private because you really should use fs.FS implementation instances +type defaultFS struct { + prefix string + fs fs.FS +} + +func newDefaultFS() *defaultFS { + dir, _ := os.Getwd() + return &defaultFS{ + prefix: dir, + fs: os.DirFS(dir), + } +} + +func (fs defaultFS) Open(name string) (fs.File, error) { + return fs.fs.Open(name) +} + +func subFS(currentFs fs.FS, root string) (fs.FS, error) { + root = filepath.ToSlash(filepath.Clean(root)) // note: fs.FS operates only with slashes. `ToSlash` is necessary for Windows + if dFS, ok := currentFs.(*defaultFS); ok { + // we need to make exception for `defaultFS` instances as it interprets root prefix differently from fs.FS to + // allow cases when root is given as `../somepath` which is not valid for fs.FS + root = filepath.Join(dFS.prefix, root) + return &defaultFS{ + prefix: root, + fs: os.DirFS(root), + }, nil + } + return fs.Sub(currentFs, root) +} + +// MustSubFS creates sub FS from current filesystem or panic on failure. +// Panic happens when `fsRoot` contains invalid path according to `fs.ValidPath` rules. +// +// MustSubFS is helpful when dealing with `embed.FS` because for example `//go:embed assets/images` embeds files with +// paths including `assets/images` as their prefix. In that case use `fs := echo.MustSubFS(fs, "rootDirectory") to +// create sub fs which uses necessary prefix for directory path. +func MustSubFS(currentFs fs.FS, fsRoot string) fs.FS { + subFs, err := subFS(currentFs, fsRoot) + if err != nil { + panic(fmt.Errorf("can not create sub FS, invalid root given, err: %w", err)) + } + return subFs +} diff --git a/vendor/github.com/labstack/echo/v4/group.go b/vendor/github.com/labstack/echo/v4/group.go index 426bef9e..bba470ce 100644 --- a/vendor/github.com/labstack/echo/v4/group.go +++ b/vendor/github.com/labstack/echo/v4/group.go @@ -102,11 +102,6 @@ func (g *Group) Group(prefix string, middleware ...MiddlewareFunc) (sg *Group) { return } -// Static implements `Echo#Static()` for sub-routes within the Group. -func (g *Group) Static(prefix, root string) { - g.static(prefix, root, g.GET) -} - // File implements `Echo#File()` for sub-routes within the Group. func (g *Group) File(path, file string) { g.file(path, file, g.GET) diff --git a/vendor/github.com/labstack/echo/v4/group_fs.go b/vendor/github.com/labstack/echo/v4/group_fs.go new file mode 100644 index 00000000..0a1ce4a9 --- /dev/null +++ b/vendor/github.com/labstack/echo/v4/group_fs.go @@ -0,0 +1,9 @@ +//go:build !go1.16 +// +build !go1.16 + +package echo + +// Static implements `Echo#Static()` for sub-routes within the Group. +func (g *Group) Static(prefix, root string) { + g.static(prefix, root, g.GET) +} diff --git a/vendor/github.com/labstack/echo/v4/group_fs_go1.16.go b/vendor/github.com/labstack/echo/v4/group_fs_go1.16.go new file mode 100644 index 00000000..2ba52b5e --- /dev/null +++ b/vendor/github.com/labstack/echo/v4/group_fs_go1.16.go @@ -0,0 +1,33 @@ +//go:build go1.16 +// +build go1.16 + +package echo + +import ( + "io/fs" + "net/http" +) + +// Static implements `Echo#Static()` for sub-routes within the Group. +func (g *Group) Static(pathPrefix, fsRoot string) { + subFs := MustSubFS(g.echo.Filesystem, fsRoot) + g.StaticFS(pathPrefix, subFs) +} + +// StaticFS implements `Echo#StaticFS()` for sub-routes within the Group. +// +// When dealing with `embed.FS` use `fs := echo.MustSubFS(fs, "rootDirectory") to create sub fs which uses necessary +// prefix for directory path. This is necessary as `//go:embed assets/images` embeds files with paths +// including `assets/images` as their prefix. +func (g *Group) StaticFS(pathPrefix string, filesystem fs.FS) { + g.Add( + http.MethodGet, + pathPrefix+"*", + StaticDirectoryHandler(filesystem, false), + ) +} + +// FileFS implements `Echo#FileFS()` for sub-routes within the Group. +func (g *Group) FileFS(path, file string, filesystem fs.FS, m ...MiddlewareFunc) *Route { + return g.GET(path, StaticFileHandler(file, filesystem), m...) +} diff --git a/vendor/github.com/labstack/echo/v4/ip.go b/vendor/github.com/labstack/echo/v4/ip.go index 39cb421f..46d464cf 100644 --- a/vendor/github.com/labstack/echo/v4/ip.go +++ b/vendor/github.com/labstack/echo/v4/ip.go @@ -6,6 +6,130 @@ import ( "strings" ) +/** +By: https://github.com/tmshn (See: https://github.com/labstack/echo/pull/1478 , https://github.com/labstack/echox/pull/134 ) +Source: https://echo.labstack.com/guide/ip-address/ + +IP address plays fundamental role in HTTP; it's used for access control, auditing, geo-based access analysis and more. +Echo provides handy method [`Context#RealIP()`](https://godoc.org/github.com/labstack/echo#Context) for that. + +However, it is not trivial to retrieve the _real_ IP address from requests especially when you put L7 proxies before the application. +In such situation, _real_ IP needs to be relayed on HTTP layer from proxies to your app, but you must not trust HTTP headers unconditionally. +Otherwise, you might give someone a chance of deceiving you. **A security risk!** + +To retrieve IP address reliably/securely, you must let your application be aware of the entire architecture of your infrastructure. +In Echo, this can be done by configuring `Echo#IPExtractor` appropriately. +This guides show you why and how. + +> Note: if you dont' set `Echo#IPExtractor` explicitly, Echo fallback to legacy behavior, which is not a good choice. + +Let's start from two questions to know the right direction: + +1. Do you put any HTTP (L7) proxy in front of the application? + - It includes both cloud solutions (such as AWS ALB or GCP HTTP LB) and OSS ones (such as Nginx, Envoy or Istio ingress gateway). +2. If yes, what HTTP header do your proxies use to pass client IP to the application? + +## Case 1. With no proxy + +If you put no proxy (e.g.: directory facing to the internet), all you need to (and have to) see is IP address from network layer. +Any HTTP header is untrustable because the clients have full control what headers to be set. + +In this case, use `echo.ExtractIPDirect()`. + +```go +e.IPExtractor = echo.ExtractIPDirect() +``` + +## Case 2. With proxies using `X-Forwarded-For` header + +[`X-Forwared-For` (XFF)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) is the popular header +to relay clients' IP addresses. +At each hop on the proxies, they append the request IP address at the end of the header. + +Following example diagram illustrates this behavior. + +```text +┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ +│ "Origin" │───────────>│ Proxy 1 │───────────>│ Proxy 2 │───────────>│ Your app │ +│ (IP: a) │ │ (IP: b) │ │ (IP: c) │ │ │ +└──────────┘ └──────────┘ └──────────┘ └──────────┘ + +Case 1. +XFF: "" "a" "a, b" + ~~~~~~ +Case 2. +XFF: "x" "x, a" "x, a, b" + ~~~~~~~~~ + ↑ What your app will see +``` + +In this case, use **first _untrustable_ IP reading from right**. Never use first one reading from left, as it is +configurable by client. Here "trustable" means "you are sure the IP address belongs to your infrastructre". +In above example, if `b` and `c` are trustable, the IP address of the client is `a` for both cases, never be `x`. + +In Echo, use `ExtractIPFromXFFHeader(...TrustOption)`. + +```go +e.IPExtractor = echo.ExtractIPFromXFFHeader() +``` + +By default, it trusts internal IP addresses (loopback, link-local unicast, private-use and unique local address +from [RFC6890](https://tools.ietf.org/html/rfc6890), [RFC4291](https://tools.ietf.org/html/rfc4291) and +[RFC4193](https://tools.ietf.org/html/rfc4193)). +To control this behavior, use [`TrustOption`](https://godoc.org/github.com/labstack/echo#TrustOption)s. + +E.g.: + +```go +e.IPExtractor = echo.ExtractIPFromXFFHeader( + TrustLinkLocal(false), + TrustIPRanges(lbIPRange), +) +``` + +- Ref: https://godoc.org/github.com/labstack/echo#TrustOption + +## Case 3. With proxies using `X-Real-IP` header + +`X-Real-IP` is another HTTP header to relay clients' IP addresses, but it carries only one address unlike XFF. + +If your proxies set this header, use `ExtractIPFromRealIPHeader(...TrustOption)`. + +```go +e.IPExtractor = echo.ExtractIPFromRealIPHeader() +``` + +Again, it trusts internal IP addresses by default (loopback, link-local unicast, private-use and unique local address +from [RFC6890](https://tools.ietf.org/html/rfc6890), [RFC4291](https://tools.ietf.org/html/rfc4291) and +[RFC4193](https://tools.ietf.org/html/rfc4193)). +To control this behavior, use [`TrustOption`](https://godoc.org/github.com/labstack/echo#TrustOption)s. + +- Ref: https://godoc.org/github.com/labstack/echo#TrustOption + +> **Never forget** to configure the outermost proxy (i.e.; at the edge of your infrastructure) **not to pass through incoming headers**. +> Otherwise there is a chance of fraud, as it is what clients can control. + +## About default behavior + +In default behavior, Echo sees all of first XFF header, X-Real-IP header and IP from network layer. + +As you might already notice, after reading this article, this is not good. +Sole reason this is default is just backward compatibility. + +## Private IP ranges + +See: https://en.wikipedia.org/wiki/Private_network + +Private IPv4 address ranges (RFC 1918): +* 10.0.0.0 – 10.255.255.255 (24-bit block) +* 172.16.0.0 – 172.31.255.255 (20-bit block) +* 192.168.0.0 – 192.168.255.255 (16-bit block) + +Private IPv6 address ranges: +* fc00::/7 address block = RFC 4193 Unique Local Addresses (ULA) + +*/ + type ipChecker struct { trustLoopback bool trustLinkLocal bool @@ -52,6 +176,7 @@ func newIPChecker(configs []TrustOption) *ipChecker { return checker } +// Go1.16+ added `ip.IsPrivate()` but until that use this implementation func isPrivateIPRange(ip net.IP) bool { if ip4 := ip.To4(); ip4 != nil { return ip4[0] == 10 || @@ -87,10 +212,12 @@ type IPExtractor func(*http.Request) string // ExtractIPDirect extracts IP address using actual IP address. // Use this if your server faces to internet directory (i.e.: uses no proxy). func ExtractIPDirect() IPExtractor { - return func(req *http.Request) string { - ra, _, _ := net.SplitHostPort(req.RemoteAddr) - return ra - } + return extractIP +} + +func extractIP(req *http.Request) string { + ra, _, _ := net.SplitHostPort(req.RemoteAddr) + return ra } // ExtractIPFromRealIPHeader extracts IP address using x-real-ip header. @@ -98,14 +225,13 @@ func ExtractIPDirect() IPExtractor { func ExtractIPFromRealIPHeader(options ...TrustOption) IPExtractor { checker := newIPChecker(options) return func(req *http.Request) string { - directIP := ExtractIPDirect()(req) realIP := req.Header.Get(HeaderXRealIP) if realIP != "" { - if ip := net.ParseIP(directIP); ip != nil && checker.trust(ip) { + if ip := net.ParseIP(realIP); ip != nil && checker.trust(ip) { return realIP } } - return directIP + return extractIP(req) } } @@ -115,7 +241,7 @@ func ExtractIPFromRealIPHeader(options ...TrustOption) IPExtractor { func ExtractIPFromXFFHeader(options ...TrustOption) IPExtractor { checker := newIPChecker(options) return func(req *http.Request) string { - directIP := ExtractIPDirect()(req) + directIP := extractIP(req) xffs := req.Header[HeaderXForwardedFor] if len(xffs) == 0 { return directIP diff --git a/vendor/github.com/labstack/echo/v4/middleware/cors.go b/vendor/github.com/labstack/echo/v4/middleware/cors.go index d6ef8964..16259512 100644 --- a/vendor/github.com/labstack/echo/v4/middleware/cors.go +++ b/vendor/github.com/labstack/echo/v4/middleware/cors.go @@ -29,6 +29,8 @@ type ( // AllowMethods defines a list methods allowed when accessing the resource. // This is used in response to a preflight request. // Optional. Default value DefaultCORSConfig.AllowMethods. + // If `allowMethods` is left empty will fill for preflight request `Access-Control-Allow-Methods` header value + // from `Allow` header that echo.Router set into context. AllowMethods []string `yaml:"allow_methods"` // AllowHeaders defines a list of request headers that can be used when @@ -41,6 +43,8 @@ type ( // a response to a preflight request, this indicates whether or not the // actual request can be made using credentials. // Optional. Default value false. + // Security: avoid using `AllowCredentials = true` with `AllowOrigins = *`. + // See http://blog.portswigger.net/2016/10/exploiting-cors-misconfigurations-for.html AllowCredentials bool `yaml:"allow_credentials"` // ExposeHeaders defines a whitelist headers that clients are allowed to @@ -80,7 +84,9 @@ func CORSWithConfig(config CORSConfig) echo.MiddlewareFunc { if len(config.AllowOrigins) == 0 { config.AllowOrigins = DefaultCORSConfig.AllowOrigins } + hasCustomAllowMethods := true if len(config.AllowMethods) == 0 { + hasCustomAllowMethods = false config.AllowMethods = DefaultCORSConfig.AllowMethods } @@ -109,10 +115,28 @@ func CORSWithConfig(config CORSConfig) echo.MiddlewareFunc { origin := req.Header.Get(echo.HeaderOrigin) allowOrigin := "" - preflight := req.Method == http.MethodOptions res.Header().Add(echo.HeaderVary, echo.HeaderOrigin) - // No Origin provided + // Preflight request is an OPTIONS request, using three HTTP request headers: Access-Control-Request-Method, + // Access-Control-Request-Headers, and the Origin header. See: https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request + // For simplicity we just consider method type and later `Origin` header. + preflight := req.Method == http.MethodOptions + + // Although router adds special handler in case of OPTIONS method we avoid calling next for OPTIONS in this middleware + // as CORS requests do not have cookies / authentication headers by default, so we could get stuck in auth + // middlewares by calling next(c). + // But we still want to send `Allow` header as response in case of Non-CORS OPTIONS request as router default + // handler does. + routerAllowMethods := "" + if preflight { + tmpAllowMethods, ok := c.Get(echo.ContextKeyHeaderAllow).(string) + if ok && tmpAllowMethods != "" { + routerAllowMethods = tmpAllowMethods + c.Response().Header().Set(echo.HeaderAllow, routerAllowMethods) + } + } + + // No Origin provided. This is (probably) not request from actual browser - proceed executing middleware chain if origin == "" { if !preflight { return next(c) @@ -145,19 +169,15 @@ func CORSWithConfig(config CORSConfig) echo.MiddlewareFunc { } } - // Check allowed origin patterns - for _, re := range allowOriginPatterns { - if allowOrigin == "" { - didx := strings.Index(origin, "://") - if didx == -1 { - continue - } - domAuth := origin[didx+3:] - // to avoid regex cost by invalid long domain - if len(domAuth) > 253 { - break - } - + checkPatterns := false + if allowOrigin == "" { + // to avoid regex cost by invalid (long) domains (253 is domain name max limit) + if len(origin) <= (253+3+5) && strings.Contains(origin, "://") { + checkPatterns = true + } + } + if checkPatterns { + for _, re := range allowOriginPatterns { if match, _ := regexp.MatchString(re, origin); match { allowOrigin = origin break @@ -174,12 +194,13 @@ func CORSWithConfig(config CORSConfig) echo.MiddlewareFunc { return c.NoContent(http.StatusNoContent) } + res.Header().Set(echo.HeaderAccessControlAllowOrigin, allowOrigin) + if config.AllowCredentials { + res.Header().Set(echo.HeaderAccessControlAllowCredentials, "true") + } + // Simple request if !preflight { - res.Header().Set(echo.HeaderAccessControlAllowOrigin, allowOrigin) - if config.AllowCredentials { - res.Header().Set(echo.HeaderAccessControlAllowCredentials, "true") - } if exposeHeaders != "" { res.Header().Set(echo.HeaderAccessControlExposeHeaders, exposeHeaders) } @@ -189,11 +210,13 @@ func CORSWithConfig(config CORSConfig) echo.MiddlewareFunc { // Preflight request res.Header().Add(echo.HeaderVary, echo.HeaderAccessControlRequestMethod) res.Header().Add(echo.HeaderVary, echo.HeaderAccessControlRequestHeaders) - res.Header().Set(echo.HeaderAccessControlAllowOrigin, allowOrigin) - res.Header().Set(echo.HeaderAccessControlAllowMethods, allowMethods) - if config.AllowCredentials { - res.Header().Set(echo.HeaderAccessControlAllowCredentials, "true") + + if !hasCustomAllowMethods && routerAllowMethods != "" { + res.Header().Set(echo.HeaderAccessControlAllowMethods, routerAllowMethods) + } else { + res.Header().Set(echo.HeaderAccessControlAllowMethods, allowMethods) } + if allowHeaders != "" { res.Header().Set(echo.HeaderAccessControlAllowHeaders, allowHeaders) } else { diff --git a/vendor/github.com/labstack/echo/v4/middleware/csrf.go b/vendor/github.com/labstack/echo/v4/middleware/csrf.go index 7804997d..61299f5c 100644 --- a/vendor/github.com/labstack/echo/v4/middleware/csrf.go +++ b/vendor/github.com/labstack/echo/v4/middleware/csrf.go @@ -2,9 +2,7 @@ package middleware import ( "crypto/subtle" - "errors" "net/http" - "strings" "time" "github.com/labstack/echo/v4" @@ -21,13 +19,15 @@ type ( TokenLength uint8 `yaml:"token_length"` // Optional. Default value 32. - // TokenLookup is a string in the form of "<source>:<key>" that is used + // TokenLookup is a string in the form of "<source>:<name>" or "<source>:<name>,<source>:<name>" that is used // to extract token from the request. // Optional. Default value "header:X-CSRF-Token". // Possible values: - // - "header:<name>" - // - "form:<name>" + // - "header:<name>" or "header:<name>:<cut-prefix>" // - "query:<name>" + // - "form:<name>" + // Multiple sources example: + // - "header:X-CSRF-Token,query:csrf" TokenLookup string `yaml:"token_lookup"` // Context key to store generated CSRF token into context. @@ -62,12 +62,11 @@ type ( // Optional. Default value SameSiteDefaultMode. CookieSameSite http.SameSite `yaml:"cookie_same_site"` } - - // csrfTokenExtractor defines a function that takes `echo.Context` and returns - // either a token or an error. - csrfTokenExtractor func(echo.Context) (string, error) ) +// ErrCSRFInvalid is returned when CSRF check fails +var ErrCSRFInvalid = echo.NewHTTPError(http.StatusForbidden, "invalid csrf token") + var ( // DefaultCSRFConfig is the default CSRF middleware config. DefaultCSRFConfig = CSRFConfig{ @@ -114,14 +113,9 @@ func CSRFWithConfig(config CSRFConfig) echo.MiddlewareFunc { config.CookieSecure = true } - // Initialize - parts := strings.Split(config.TokenLookup, ":") - extractor := csrfTokenFromHeader(parts[1]) - switch parts[0] { - case "form": - extractor = csrfTokenFromForm(parts[1]) - case "query": - extractor = csrfTokenFromQuery(parts[1]) + extractors, err := createExtractors(config.TokenLookup, "") + if err != nil { + panic(err) } return func(next echo.HandlerFunc) echo.HandlerFunc { @@ -130,28 +124,50 @@ func CSRFWithConfig(config CSRFConfig) echo.MiddlewareFunc { return next(c) } - req := c.Request() - k, err := c.Cookie(config.CookieName) token := "" - - // Generate token - if err != nil { - token = random.String(config.TokenLength) + if k, err := c.Cookie(config.CookieName); err != nil { + token = random.String(config.TokenLength) // Generate token } else { - // Reuse token - token = k.Value + token = k.Value // Reuse token } - switch req.Method { + switch c.Request().Method { case http.MethodGet, http.MethodHead, http.MethodOptions, http.MethodTrace: default: // Validate token only for requests which are not defined as 'safe' by RFC7231 - clientToken, err := extractor(c) - if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, err.Error()) + var lastExtractorErr error + var lastTokenErr error + outer: + for _, extractor := range extractors { + clientTokens, err := extractor(c) + if err != nil { + lastExtractorErr = err + continue + } + + for _, clientToken := range clientTokens { + if validateCSRFToken(token, clientToken) { + lastTokenErr = nil + lastExtractorErr = nil + break outer + } + lastTokenErr = ErrCSRFInvalid + } } - if !validateCSRFToken(token, clientToken) { - return echo.NewHTTPError(http.StatusForbidden, "invalid csrf token") + if lastTokenErr != nil { + return lastTokenErr + } else if lastExtractorErr != nil { + // ugly part to preserve backwards compatible errors. someone could rely on them + if lastExtractorErr == errQueryExtractorValueMissing { + lastExtractorErr = echo.NewHTTPError(http.StatusBadRequest, "missing csrf token in the query string") + } else if lastExtractorErr == errFormExtractorValueMissing { + lastExtractorErr = echo.NewHTTPError(http.StatusBadRequest, "missing csrf token in the form parameter") + } else if lastExtractorErr == errHeaderExtractorValueMissing { + lastExtractorErr = echo.NewHTTPError(http.StatusBadRequest, "missing csrf token in request header") + } else { + lastExtractorErr = echo.NewHTTPError(http.StatusBadRequest, lastExtractorErr.Error()) + } + return lastExtractorErr } } @@ -184,38 +200,6 @@ func CSRFWithConfig(config CSRFConfig) echo.MiddlewareFunc { } } -// csrfTokenFromForm returns a `csrfTokenExtractor` that extracts token from the -// provided request header. -func csrfTokenFromHeader(header string) csrfTokenExtractor { - return func(c echo.Context) (string, error) { - return c.Request().Header.Get(header), nil - } -} - -// csrfTokenFromForm returns a `csrfTokenExtractor` that extracts token from the -// provided form parameter. -func csrfTokenFromForm(param string) csrfTokenExtractor { - return func(c echo.Context) (string, error) { - token := c.FormValue(param) - if token == "" { - return "", errors.New("missing csrf token in the form parameter") - } - return token, nil - } -} - -// csrfTokenFromQuery returns a `csrfTokenExtractor` that extracts token from the -// provided query parameter. -func csrfTokenFromQuery(param string) csrfTokenExtractor { - return func(c echo.Context) (string, error) { - token := c.QueryParam(param) - if token == "" { - return "", errors.New("missing csrf token in the query string") - } - return token, nil - } -} - func validateCSRFToken(token, clientToken string) bool { return subtle.ConstantTimeCompare([]byte(token), []byte(clientToken)) == 1 } diff --git a/vendor/github.com/labstack/echo/v4/middleware/extractor.go b/vendor/github.com/labstack/echo/v4/middleware/extractor.go new file mode 100644 index 00000000..a57ed4e1 --- /dev/null +++ b/vendor/github.com/labstack/echo/v4/middleware/extractor.go @@ -0,0 +1,184 @@ +package middleware + +import ( + "errors" + "fmt" + "github.com/labstack/echo/v4" + "net/textproto" + "strings" +) + +const ( + // extractorLimit is arbitrary number to limit values extractor can return. this limits possible resource exhaustion + // attack vector + extractorLimit = 20 +) + +var errHeaderExtractorValueMissing = errors.New("missing value in request header") +var errHeaderExtractorValueInvalid = errors.New("invalid value in request header") +var errQueryExtractorValueMissing = errors.New("missing value in the query string") +var errParamExtractorValueMissing = errors.New("missing value in path params") +var errCookieExtractorValueMissing = errors.New("missing value in cookies") +var errFormExtractorValueMissing = errors.New("missing value in the form") + +// ValuesExtractor defines a function for extracting values (keys/tokens) from the given context. +type ValuesExtractor func(c echo.Context) ([]string, error) + +func createExtractors(lookups string, authScheme string) ([]ValuesExtractor, error) { + if lookups == "" { + return nil, nil + } + sources := strings.Split(lookups, ",") + var extractors = make([]ValuesExtractor, 0) + for _, source := range sources { + parts := strings.Split(source, ":") + if len(parts) < 2 { + return nil, fmt.Errorf("extractor source for lookup could not be split into needed parts: %v", source) + } + + switch parts[0] { + case "query": + extractors = append(extractors, valuesFromQuery(parts[1])) + case "param": + extractors = append(extractors, valuesFromParam(parts[1])) + case "cookie": + extractors = append(extractors, valuesFromCookie(parts[1])) + case "form": + extractors = append(extractors, valuesFromForm(parts[1])) + case "header": + prefix := "" + if len(parts) > 2 { + prefix = parts[2] + } else if authScheme != "" && parts[1] == echo.HeaderAuthorization { + // backwards compatibility for JWT and KeyAuth: + // * we only apply this fix to Authorization as header we use and uses prefixes like "Bearer <token-value>" etc + // * previously header extractor assumed that auth-scheme/prefix had a space as suffix we need to retain that + // behaviour for default values and Authorization header. + prefix = authScheme + if !strings.HasSuffix(prefix, " ") { + prefix += " " + } + } + extractors = append(extractors, valuesFromHeader(parts[1], prefix)) + } + } + return extractors, nil +} + +// valuesFromHeader returns a functions that extracts values from the request header. +// valuePrefix is parameter to remove first part (prefix) of the extracted value. This is useful if header value has static +// prefix like `Authorization: <auth-scheme> <authorisation-parameters>` where part that we want to remove is `<auth-scheme> ` +// note the space at the end. In case of basic authentication `Authorization: Basic <credentials>` prefix we want to remove +// is `Basic `. In case of JWT tokens `Authorization: Bearer <token>` prefix is `Bearer `. +// If prefix is left empty the whole value is returned. +func valuesFromHeader(header string, valuePrefix string) ValuesExtractor { + prefixLen := len(valuePrefix) + // standard library parses http.Request header keys in canonical form but we may provide something else so fix this + header = textproto.CanonicalMIMEHeaderKey(header) + return func(c echo.Context) ([]string, error) { + values := c.Request().Header.Values(header) + if len(values) == 0 { + return nil, errHeaderExtractorValueMissing + } + + result := make([]string, 0) + for i, value := range values { + if prefixLen == 0 { + result = append(result, value) + if i >= extractorLimit-1 { + break + } + continue + } + if len(value) > prefixLen && strings.EqualFold(value[:prefixLen], valuePrefix) { + result = append(result, value[prefixLen:]) + if i >= extractorLimit-1 { + break + } + } + } + + if len(result) == 0 { + if prefixLen > 0 { + return nil, errHeaderExtractorValueInvalid + } + return nil, errHeaderExtractorValueMissing + } + return result, nil + } +} + +// valuesFromQuery returns a function that extracts values from the query string. +func valuesFromQuery(param string) ValuesExtractor { + return func(c echo.Context) ([]string, error) { + result := c.QueryParams()[param] + if len(result) == 0 { + return nil, errQueryExtractorValueMissing + } else if len(result) > extractorLimit-1 { + result = result[:extractorLimit] + } + return result, nil + } +} + +// valuesFromParam returns a function that extracts values from the url param string. +func valuesFromParam(param string) ValuesExtractor { + return func(c echo.Context) ([]string, error) { + result := make([]string, 0) + paramVales := c.ParamValues() + for i, p := range c.ParamNames() { + if param == p { + result = append(result, paramVales[i]) + if i >= extractorLimit-1 { + break + } + } + } + if len(result) == 0 { + return nil, errParamExtractorValueMissing + } + return result, nil + } +} + +// valuesFromCookie returns a function that extracts values from the named cookie. +func valuesFromCookie(name string) ValuesExtractor { + return func(c echo.Context) ([]string, error) { + cookies := c.Cookies() + if len(cookies) == 0 { + return nil, errCookieExtractorValueMissing + } + + result := make([]string, 0) + for i, cookie := range cookies { + if name == cookie.Name { + result = append(result, cookie.Value) + if i >= extractorLimit-1 { + break + } + } + } + if len(result) == 0 { + return nil, errCookieExtractorValueMissing + } + return result, nil + } +} + +// valuesFromForm returns a function that extracts values from the form field. +func valuesFromForm(name string) ValuesExtractor { + return func(c echo.Context) ([]string, error) { + if parseErr := c.Request().ParseForm(); parseErr != nil { + return nil, fmt.Errorf("valuesFromForm parse form failed: %w", parseErr) + } + values := c.Request().Form[name] + if len(values) == 0 { + return nil, errFormExtractorValueMissing + } + if len(values) > extractorLimit-1 { + values = values[:extractorLimit] + } + result := append([]string{}, values...) + return result, nil + } +} diff --git a/vendor/github.com/labstack/echo/v4/middleware/jwt.go b/vendor/github.com/labstack/echo/v4/middleware/jwt.go index 21e33ab8..bec5167e 100644 --- a/vendor/github.com/labstack/echo/v4/middleware/jwt.go +++ b/vendor/github.com/labstack/echo/v4/middleware/jwt.go @@ -1,3 +1,4 @@ +//go:build go1.15 // +build go1.15 package middleware @@ -5,12 +6,10 @@ package middleware import ( "errors" "fmt" - "net/http" - "reflect" - "strings" - "github.com/golang-jwt/jwt" "github.com/labstack/echo/v4" + "net/http" + "reflect" ) type ( @@ -22,7 +21,8 @@ type ( // BeforeFunc defines a function which is executed just before the middleware. BeforeFunc BeforeFunc - // SuccessHandler defines a function which is executed for a valid token. + // SuccessHandler defines a function which is executed for a valid token before middleware chain continues with next + // middleware or handler. SuccessHandler JWTSuccessHandler // ErrorHandler defines a function which is executed for an invalid token. @@ -32,6 +32,13 @@ type ( // ErrorHandlerWithContext is almost identical to ErrorHandler, but it's passed the current context. ErrorHandlerWithContext JWTErrorHandlerWithContext + // ContinueOnIgnoredError allows the next middleware/handler to be called when ErrorHandlerWithContext decides to + // ignore the error (by returning `nil`). + // This is useful when parts of your site/api allow public access and some authorized routes provide extra functionality. + // In that case you can use ErrorHandlerWithContext to set a default public JWT token value in the request context + // and continue. Some logic down the remaining execution chain needs to check that (public) token value then. + ContinueOnIgnoredError bool + // Signing key to validate token. // This is one of the three options to provide a token validation key. // The order of precedence is a user-defined KeyFunc, SigningKeys and SigningKey. @@ -61,16 +68,26 @@ type ( // to extract token from the request. // Optional. Default value "header:Authorization". // Possible values: - // - "header:<name>" + // - "header:<name>" or "header:<name>:<cut-prefix>" + // `<cut-prefix>` is argument value to cut/trim prefix of the extracted value. This is useful if header + // value has static prefix like `Authorization: <auth-scheme> <authorisation-parameters>` where part that we + // want to cut is `<auth-scheme> ` note the space at the end. + // In case of JWT tokens `Authorization: Bearer <token>` prefix we cut is `Bearer `. + // If prefix is left empty the whole value is returned. // - "query:<name>" // - "param:<name>" // - "cookie:<name>" // - "form:<name>" - // Multiply sources example: - // - "header: Authorization,cookie: myowncookie" - + // Multiple sources example: + // - "header:Authorization,cookie:myowncookie" TokenLookup string + // TokenLookupFuncs defines a list of user-defined functions that extract JWT token from the given context. + // This is one of the two options to provide a token extractor. + // The order of precedence is user-defined TokenLookupFuncs, and TokenLookup. + // You can also provide both if you want. + TokenLookupFuncs []ValuesExtractor + // AuthScheme to be used in the Authorization header. // Optional. Default value "Bearer". AuthScheme string @@ -95,15 +112,13 @@ type ( } // JWTSuccessHandler defines a function which is executed for a valid token. - JWTSuccessHandler func(echo.Context) + JWTSuccessHandler func(c echo.Context) // JWTErrorHandler defines a function which is executed for an invalid token. - JWTErrorHandler func(error) error + JWTErrorHandler func(err error) error // JWTErrorHandlerWithContext is almost identical to JWTErrorHandler, but it's passed the current context. - JWTErrorHandlerWithContext func(error, echo.Context) error - - jwtExtractor func(echo.Context) (string, error) + JWTErrorHandlerWithContext func(err error, c echo.Context) error ) // Algorithms @@ -120,13 +135,14 @@ var ( var ( // DefaultJWTConfig is the default JWT auth middleware config. DefaultJWTConfig = JWTConfig{ - Skipper: DefaultSkipper, - SigningMethod: AlgorithmHS256, - ContextKey: "user", - TokenLookup: "header:" + echo.HeaderAuthorization, - AuthScheme: "Bearer", - Claims: jwt.MapClaims{}, - KeyFunc: nil, + Skipper: DefaultSkipper, + SigningMethod: AlgorithmHS256, + ContextKey: "user", + TokenLookup: "header:" + echo.HeaderAuthorization, + TokenLookupFuncs: nil, + AuthScheme: "Bearer", + Claims: jwt.MapClaims{}, + KeyFunc: nil, } ) @@ -163,7 +179,7 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc { if config.Claims == nil { config.Claims = DefaultJWTConfig.Claims } - if config.TokenLookup == "" { + if config.TokenLookup == "" && len(config.TokenLookupFuncs) == 0 { config.TokenLookup = DefaultJWTConfig.TokenLookup } if config.AuthScheme == "" { @@ -176,25 +192,12 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc { config.ParseTokenFunc = config.defaultParseToken } - // Initialize - // Split sources - sources := strings.Split(config.TokenLookup, ",") - var extractors []jwtExtractor - for _, source := range sources { - parts := strings.Split(source, ":") - - switch parts[0] { - case "query": - extractors = append(extractors, jwtFromQuery(parts[1])) - case "param": - extractors = append(extractors, jwtFromParam(parts[1])) - case "cookie": - extractors = append(extractors, jwtFromCookie(parts[1])) - case "form": - extractors = append(extractors, jwtFromForm(parts[1])) - case "header": - extractors = append(extractors, jwtFromHeader(parts[1], config.AuthScheme)) - } + extractors, err := createExtractors(config.TokenLookup, config.AuthScheme) + if err != nil { + panic(err) + } + if len(config.TokenLookupFuncs) > 0 { + extractors = append(config.TokenLookupFuncs, extractors...) } return func(next echo.HandlerFunc) echo.HandlerFunc { @@ -206,48 +209,54 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc { if config.BeforeFunc != nil { config.BeforeFunc(c) } - var auth string - var err error + + var lastExtractorErr error + var lastTokenErr error for _, extractor := range extractors { - // Extract token from extractor, if it's not fail break the loop and - // set auth - auth, err = extractor(c) - if err == nil { - break + auths, err := extractor(c) + if err != nil { + lastExtractorErr = ErrJWTMissing // backwards compatibility: all extraction errors are same (unlike KeyAuth) + continue } - } - // If none of extractor has a token, handle error - if err != nil { - if config.ErrorHandler != nil { - return config.ErrorHandler(err) - } - - if config.ErrorHandlerWithContext != nil { - return config.ErrorHandlerWithContext(err, c) + for _, auth := range auths { + token, err := config.ParseTokenFunc(auth, c) + if err != nil { + lastTokenErr = err + continue + } + // Store user information from token into context. + c.Set(config.ContextKey, token) + if config.SuccessHandler != nil { + config.SuccessHandler(c) + } + return next(c) } - return err } - - token, err := config.ParseTokenFunc(auth, c) - if err == nil { - // Store user information from token into context. - c.Set(config.ContextKey, token) - if config.SuccessHandler != nil { - config.SuccessHandler(c) - } - return next(c) + // we are here only when we did not successfully extract or parse any of the tokens + err := lastTokenErr + if err == nil { // prioritize token errors over extracting errors + err = lastExtractorErr } if config.ErrorHandler != nil { return config.ErrorHandler(err) } if config.ErrorHandlerWithContext != nil { - return config.ErrorHandlerWithContext(err, c) + tmpErr := config.ErrorHandlerWithContext(err, c) + if config.ContinueOnIgnoredError && tmpErr == nil { + return next(c) + } + return tmpErr } - return &echo.HTTPError{ - Code: ErrJWTInvalid.Code, - Message: ErrJWTInvalid.Message, - Internal: err, + + // backwards compatible errors codes + if lastTokenErr != nil { + return &echo.HTTPError{ + Code: ErrJWTInvalid.Code, + Message: ErrJWTInvalid.Message, + Internal: err, + } } + return err // this is lastExtractorErr value } } } @@ -289,59 +298,3 @@ func (config *JWTConfig) defaultKeyFunc(t *jwt.Token) (interface{}, error) { return config.SigningKey, nil } - -// jwtFromHeader returns a `jwtExtractor` that extracts token from the request header. -func jwtFromHeader(header string, authScheme string) jwtExtractor { - return func(c echo.Context) (string, error) { - auth := c.Request().Header.Get(header) - l := len(authScheme) - if len(auth) > l+1 && strings.EqualFold(auth[:l], authScheme) { - return auth[l+1:], nil - } - return "", ErrJWTMissing - } -} - -// jwtFromQuery returns a `jwtExtractor` that extracts token from the query string. -func jwtFromQuery(param string) jwtExtractor { - return func(c echo.Context) (string, error) { - token := c.QueryParam(param) - if token == "" { - return "", ErrJWTMissing - } - return token, nil - } -} - -// jwtFromParam returns a `jwtExtractor` that extracts token from the url param string. -func jwtFromParam(param string) jwtExtractor { - return func(c echo.Context) (string, error) { - token := c.Param(param) - if token == "" { - return "", ErrJWTMissing - } - return token, nil - } -} - -// jwtFromCookie returns a `jwtExtractor` that extracts token from the named cookie. -func jwtFromCookie(name string) jwtExtractor { - return func(c echo.Context) (string, error) { - cookie, err := c.Cookie(name) - if err != nil { - return "", ErrJWTMissing - } - return cookie.Value, nil - } -} - -// jwtFromForm returns a `jwtExtractor` that extracts token from the form field. -func jwtFromForm(name string) jwtExtractor { - return func(c echo.Context) (string, error) { - field := c.FormValue(name) - if field == "" { - return "", ErrJWTMissing - } - return field, nil - } -} diff --git a/vendor/github.com/labstack/echo/v4/middleware/key_auth.go b/vendor/github.com/labstack/echo/v4/middleware/key_auth.go index 54f3b47f..e8a6b085 100644 --- a/vendor/github.com/labstack/echo/v4/middleware/key_auth.go +++ b/vendor/github.com/labstack/echo/v4/middleware/key_auth.go @@ -2,11 +2,8 @@ package middleware import ( "errors" - "fmt" - "net/http" - "strings" - "github.com/labstack/echo/v4" + "net/http" ) type ( @@ -15,15 +12,21 @@ type ( // Skipper defines a function to skip middleware. Skipper Skipper - // KeyLookup is a string in the form of "<source>:<name>" that is used + // KeyLookup is a string in the form of "<source>:<name>" or "<source>:<name>,<source>:<name>" that is used // to extract key from the request. // Optional. Default value "header:Authorization". // Possible values: - // - "header:<name>" + // - "header:<name>" or "header:<name>:<cut-prefix>" + // `<cut-prefix>` is argument value to cut/trim prefix of the extracted value. This is useful if header + // value has static prefix like `Authorization: <auth-scheme> <authorisation-parameters>` where part that we + // want to cut is `<auth-scheme> ` note the space at the end. + // In case of basic authentication `Authorization: Basic <credentials>` prefix we want to remove is `Basic `. // - "query:<name>" // - "form:<name>" // - "cookie:<name>" - KeyLookup string `yaml:"key_lookup"` + // Multiple sources example: + // - "header:Authorization,header:X-Api-Key" + KeyLookup string // AuthScheme to be used in the Authorization header. // Optional. Default value "Bearer". @@ -36,15 +39,20 @@ type ( // ErrorHandler defines a function which is executed for an invalid key. // It may be used to define a custom error. ErrorHandler KeyAuthErrorHandler + + // ContinueOnIgnoredError allows the next middleware/handler to be called when ErrorHandler decides to + // ignore the error (by returning `nil`). + // This is useful when parts of your site/api allow public access and some authorized routes provide extra functionality. + // In that case you can use ErrorHandler to set a default public key auth value in the request context + // and continue. Some logic down the remaining execution chain needs to check that (public) key auth value then. + ContinueOnIgnoredError bool } // KeyAuthValidator defines a function to validate KeyAuth credentials. - KeyAuthValidator func(string, echo.Context) (bool, error) - - keyExtractor func(echo.Context) (string, error) + KeyAuthValidator func(auth string, c echo.Context) (bool, error) // KeyAuthErrorHandler defines a function which is executed for an invalid key. - KeyAuthErrorHandler func(error, echo.Context) error + KeyAuthErrorHandler func(err error, c echo.Context) error ) var ( @@ -56,6 +64,21 @@ var ( } ) +// ErrKeyAuthMissing is error type when KeyAuth middleware is unable to extract value from lookups +type ErrKeyAuthMissing struct { + Err error +} + +// Error returns errors text +func (e *ErrKeyAuthMissing) Error() string { + return e.Err.Error() +} + +// Unwrap unwraps error +func (e *ErrKeyAuthMissing) Unwrap() error { + return e.Err +} + // KeyAuth returns an KeyAuth middleware. // // For valid key it calls the next handler. @@ -85,16 +108,9 @@ func KeyAuthWithConfig(config KeyAuthConfig) echo.MiddlewareFunc { panic("echo: key-auth middleware requires a validator function") } - // Initialize - parts := strings.Split(config.KeyLookup, ":") - extractor := keyFromHeader(parts[1], config.AuthScheme) - switch parts[0] { - case "query": - extractor = keyFromQuery(parts[1]) - case "form": - extractor = keyFromForm(parts[1]) - case "cookie": - extractor = keyFromCookie(parts[1]) + extractors, err := createExtractors(config.KeyLookup, config.AuthScheme) + if err != nil { + panic(err) } return func(next echo.HandlerFunc) echo.HandlerFunc { @@ -103,79 +119,62 @@ func KeyAuthWithConfig(config KeyAuthConfig) echo.MiddlewareFunc { return next(c) } - // Extract and verify key - key, err := extractor(c) - if err != nil { - if config.ErrorHandler != nil { - return config.ErrorHandler(err, c) + var lastExtractorErr error + var lastValidatorErr error + for _, extractor := range extractors { + keys, err := extractor(c) + if err != nil { + lastExtractorErr = err + continue + } + for _, key := range keys { + valid, err := config.Validator(key, c) + if err != nil { + lastValidatorErr = err + continue + } + if valid { + return next(c) + } + lastValidatorErr = errors.New("invalid key") } - return echo.NewHTTPError(http.StatusBadRequest, err.Error()) } - valid, err := config.Validator(key, c) - if err != nil { - if config.ErrorHandler != nil { - return config.ErrorHandler(err, c) + + // we are here only when we did not successfully extract and validate any of keys + err := lastValidatorErr + if err == nil { // prioritize validator errors over extracting errors + // ugly part to preserve backwards compatible errors. someone could rely on them + if lastExtractorErr == errQueryExtractorValueMissing { + err = errors.New("missing key in the query string") + } else if lastExtractorErr == errCookieExtractorValueMissing { + err = errors.New("missing key in cookies") + } else if lastExtractorErr == errFormExtractorValueMissing { + err = errors.New("missing key in the form") + } else if lastExtractorErr == errHeaderExtractorValueMissing { + err = errors.New("missing key in request header") + } else if lastExtractorErr == errHeaderExtractorValueInvalid { + err = errors.New("invalid key in the request header") + } else { + err = lastExtractorErr } + err = &ErrKeyAuthMissing{Err: err} + } + + if config.ErrorHandler != nil { + tmpErr := config.ErrorHandler(err, c) + if config.ContinueOnIgnoredError && tmpErr == nil { + return next(c) + } + return tmpErr + } + if lastValidatorErr != nil { // prioritize validator errors over extracting errors return &echo.HTTPError{ Code: http.StatusUnauthorized, - Message: "invalid key", - Internal: err, + Message: "Unauthorized", + Internal: lastValidatorErr, } - } else if valid { - return next(c) } - return echo.ErrUnauthorized - } - } -} - -// keyFromHeader returns a `keyExtractor` that extracts key from the request header. -func keyFromHeader(header string, authScheme string) keyExtractor { - return func(c echo.Context) (string, error) { - auth := c.Request().Header.Get(header) - if auth == "" { - return "", errors.New("missing key in request header") - } - if header == echo.HeaderAuthorization { - l := len(authScheme) - if len(auth) > l+1 && auth[:l] == authScheme { - return auth[l+1:], nil - } - return "", errors.New("invalid key in the request header") - } - return auth, nil - } -} - -// keyFromQuery returns a `keyExtractor` that extracts key from the query string. -func keyFromQuery(param string) keyExtractor { - return func(c echo.Context) (string, error) { - key := c.QueryParam(param) - if key == "" { - return "", errors.New("missing key in the query string") - } - return key, nil - } -} - -// keyFromForm returns a `keyExtractor` that extracts key from the form. -func keyFromForm(param string) keyExtractor { - return func(c echo.Context) (string, error) { - key := c.FormValue(param) - if key == "" { - return "", errors.New("missing key in the form") - } - return key, nil - } -} - -// keyFromCookie returns a `keyExtractor` that extracts key from the form. -func keyFromCookie(cookieName string) keyExtractor { - return func(c echo.Context) (string, error) { - key, err := c.Cookie(cookieName) - if err != nil { - return "", fmt.Errorf("missing key in cookies: %w", err) + return echo.NewHTTPError(http.StatusBadRequest, err.Error()) } - return key.Value, nil } } diff --git a/vendor/github.com/labstack/echo/v4/middleware/middleware.go b/vendor/github.com/labstack/echo/v4/middleware/middleware.go index a7ad73a5..f250ca49 100644 --- a/vendor/github.com/labstack/echo/v4/middleware/middleware.go +++ b/vendor/github.com/labstack/echo/v4/middleware/middleware.go @@ -12,10 +12,10 @@ import ( type ( // Skipper defines a function to skip middleware. Returning true skips processing // the middleware. - Skipper func(echo.Context) bool + Skipper func(c echo.Context) bool // BeforeFunc defines a function which is executed just before the middleware. - BeforeFunc func(echo.Context) + BeforeFunc func(c echo.Context) ) func captureTokens(pattern *regexp.Regexp, input string) *strings.Replacer { diff --git a/vendor/github.com/labstack/echo/v4/middleware/recover.go b/vendor/github.com/labstack/echo/v4/middleware/recover.go index 0dbe740d..a621a9ef 100644 --- a/vendor/github.com/labstack/echo/v4/middleware/recover.go +++ b/vendor/github.com/labstack/echo/v4/middleware/recover.go @@ -9,6 +9,9 @@ import ( ) type ( + // LogErrorFunc defines a function for custom logging in the middleware. + LogErrorFunc func(c echo.Context, err error, stack []byte) error + // RecoverConfig defines the config for Recover middleware. RecoverConfig struct { // Skipper defines a function to skip middleware. @@ -30,6 +33,10 @@ type ( // LogLevel is log level to printing stack trace. // Optional. Default value 0 (Print). LogLevel log.Lvl + + // LogErrorFunc defines a function for custom logging in the middleware. + // If it's set you don't need to provide LogLevel for config. + LogErrorFunc LogErrorFunc } ) @@ -41,6 +48,7 @@ var ( DisableStackAll: false, DisablePrintStack: false, LogLevel: 0, + LogErrorFunc: nil, } ) @@ -73,9 +81,18 @@ func RecoverWithConfig(config RecoverConfig) echo.MiddlewareFunc { if !ok { err = fmt.Errorf("%v", r) } - stack := make([]byte, config.StackSize) - length := runtime.Stack(stack, !config.DisableStackAll) + var stack []byte + var length int + if !config.DisablePrintStack { + stack = make([]byte, config.StackSize) + length = runtime.Stack(stack, !config.DisableStackAll) + stack = stack[:length] + } + + if config.LogErrorFunc != nil { + err = config.LogErrorFunc(c, err, stack) + } else if !config.DisablePrintStack { msg := fmt.Sprintf("[PANIC RECOVER] %v %s\n", err, stack[:length]) switch config.LogLevel { case log.DEBUG: diff --git a/vendor/github.com/labstack/echo/v4/router.go b/vendor/github.com/labstack/echo/v4/router.go index dc93e29c..a1de2d6e 100644 --- a/vendor/github.com/labstack/echo/v4/router.go +++ b/vendor/github.com/labstack/echo/v4/router.go @@ -1,6 +1,7 @@ package echo import ( + "bytes" "net/http" ) @@ -31,17 +32,18 @@ type ( kind uint8 children []*node methodHandler struct { - connect HandlerFunc - delete HandlerFunc - get HandlerFunc - head HandlerFunc - options HandlerFunc - patch HandlerFunc - post HandlerFunc - propfind HandlerFunc - put HandlerFunc - trace HandlerFunc - report HandlerFunc + connect HandlerFunc + delete HandlerFunc + get HandlerFunc + head HandlerFunc + options HandlerFunc + patch HandlerFunc + post HandlerFunc + propfind HandlerFunc + put HandlerFunc + trace HandlerFunc + report HandlerFunc + allowHeader string } ) @@ -68,6 +70,51 @@ func (m *methodHandler) isHandler() bool { m.report != nil } +func (m *methodHandler) updateAllowHeader() { + buf := new(bytes.Buffer) + buf.WriteString(http.MethodOptions) + + if m.connect != nil { + buf.WriteString(", ") + buf.WriteString(http.MethodConnect) + } + if m.delete != nil { + buf.WriteString(", ") + buf.WriteString(http.MethodDelete) + } + if m.get != nil { + buf.WriteString(", ") + buf.WriteString(http.MethodGet) + } + if m.head != nil { + buf.WriteString(", ") + buf.WriteString(http.MethodHead) + } + if m.patch != nil { + buf.WriteString(", ") + buf.WriteString(http.MethodPatch) + } + if m.post != nil { + buf.WriteString(", ") + buf.WriteString(http.MethodPost) + } + if m.propfind != nil { + buf.WriteString(", PROPFIND") + } + if m.put != nil { + buf.WriteString(", ") + buf.WriteString(http.MethodPut) + } + if m.trace != nil { + buf.WriteString(", ") + buf.WriteString(http.MethodTrace) + } + if m.report != nil { + buf.WriteString(", REPORT") + } + m.allowHeader = buf.String() +} + // NewRouter returns a new Router instance. func NewRouter(e *Echo) *Router { return &Router{ @@ -326,6 +373,7 @@ func (n *node) addHandler(method string, h HandlerFunc) { n.methodHandler.report = h } + n.methodHandler.updateAllowHeader() if h != nil { n.isHandler = true } else { @@ -362,13 +410,14 @@ func (n *node) findHandler(method string) HandlerFunc { } } -func (n *node) checkMethodNotAllowed() HandlerFunc { - for _, m := range methods { - if h := n.findHandler(m); h != nil { - return MethodNotAllowedHandler - } +func optionsMethodHandler(allowMethods string) func(c Context) error { + return func(c Context) error { + // Note: we are not handling most of the CORS headers here. CORS is handled by CORS middleware + // 'OPTIONS' method RFC: https://httpwg.org/specs/rfc7231.html#OPTIONS + // 'Allow' header RFC: https://datatracker.ietf.org/doc/html/rfc7231#section-7.4.1 + c.Response().Header().Add(HeaderAllow, allowMethods) + return c.NoContent(http.StatusNoContent) } - return NotFoundHandler } // Find lookup a handler registered for method and path. It also parses URL for path @@ -563,10 +612,16 @@ func (r *Router) Find(method, path string, c Context) { // use previous match as basis. although we have no matching handler we have path match. // so we can send http.StatusMethodNotAllowed (405) instead of http.StatusNotFound (404) currentNode = previousBestMatchNode - ctx.handler = currentNode.checkMethodNotAllowed() + + ctx.handler = NotFoundHandler + if currentNode.isHandler { + ctx.Set(ContextKeyHeaderAllow, currentNode.methodHandler.allowHeader) + ctx.handler = MethodNotAllowedHandler + if method == http.MethodOptions { + ctx.handler = optionsMethodHandler(currentNode.methodHandler.allowHeader) + } + } } ctx.path = currentNode.ppath ctx.pnames = currentNode.pnames - - return } diff --git a/vendor/github.com/mattermost/mattermost-server/v6/NOTICE.txt b/vendor/github.com/mattermost/mattermost-server/v6/NOTICE.txt index 0d3d8dd9..3f186ef7 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/NOTICE.txt +++ b/vendor/github.com/mattermost/mattermost-server/v6/NOTICE.txt @@ -4494,7 +4494,7 @@ SOFTWARE. This product contains 'archiver' by Matthew Holt -A library to handle direferen archive files (zip, rar, tar.gz...) +A library to handle different archive files (zip, rar, tar.gz...) * HOMEPAGE: * https://github.com/mholt/archiver diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/channel.go b/vendor/github.com/mattermost/mattermost-server/v6/model/channel.go index 20604700..dfa40347 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/channel.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/channel.go @@ -144,9 +144,9 @@ type ChannelSearchOpts struct { } type ChannelMemberCountByGroup struct { - GroupId string `db:"-" json:"group_id"` - ChannelMemberCount int64 `db:"-" json:"channel_member_count"` - ChannelMemberTimezonesCount int64 `db:"-" json:"channel_member_timezones_count"` + GroupId string `json:"group_id"` + ChannelMemberCount int64 `json:"channel_member_count"` + ChannelMemberTimezonesCount int64 `json:"channel_member_timezones_count"` } type ChannelOption func(channel *Channel) diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/channel_count.go b/vendor/github.com/mattermost/mattermost-server/v6/model/channel_count.go index 25329a15..17cea756 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/channel_count.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/channel_count.go @@ -17,7 +17,7 @@ type ChannelCounts struct { } func (o *ChannelCounts) Etag() string { - // we don't include CountsRoot in ETag calculation, since it's a deriviative + // we don't include CountsRoot in ETag calculation, since it's a derivative ids := []string{} for id := range o.Counts { ids = append(ids, id) diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/client4.go b/vendor/github.com/mattermost/mattermost-server/v6/model/client4.go index dd9de4d0..d4213d15 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/client4.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/client4.go @@ -1978,7 +1978,7 @@ func (c *Client4) GetBotsIncludeDeleted(page, perPage int, etag string) ([]*Bot, return bots, BuildResponse(r), nil } -// GetBotsOrphaned fetches the given page of bots, only including orphanded bots. +// GetBotsOrphaned fetches the given page of bots, only including orphaned bots. func (c *Client4) GetBotsOrphaned(page, perPage int, etag string) ([]*Bot, *Response, error) { query := fmt.Sprintf("?page=%v&per_page=%v&only_orphaned="+c.boolString(true), page, perPage) r, err := c.DoAPIGet(c.botsRoute()+query, etag) @@ -4438,6 +4438,9 @@ func (c *Client4) UpdateConfig(config *Config) (*Config, *Response, error) { } // MigrateConfig will migrate existing config to the new one. +// DEPRECATED: The config migrate API has been moved to be a purely +// mmctl --local endpoint. This method will be removed in a +// future major release. func (c *Client4) MigrateConfig(from, to string) (*Response, error) { m := make(map[string]string, 2) m["from"] = from diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/cloud.go b/vendor/github.com/mattermost/mattermost-server/v6/model/cloud.go index 7c63c138..90fc7f94 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/cloud.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/cloud.go @@ -70,6 +70,7 @@ type StripeSetupIntent struct { // ConfirmPaymentMethodRequest contains the fields for the customer payment update API. type ConfirmPaymentMethodRequest struct { StripeSetupIntentID string `json:"stripe_setup_intent_id"` + SubscriptionID string `json:"subscription_id"` } // Customer model represents a customer on the system. @@ -137,24 +138,25 @@ func (s *Subscription) GetWorkSpaceNameFromDNS() string { // Invoice model represents a cloud invoice type Invoice struct { - ID string `json:"id"` - Number string `json:"number"` - CreateAt int64 `json:"create_at"` - Total int64 `json:"total"` - Tax int64 `json:"tax"` - Status string `json:"status"` - Description string `json:"description"` - PeriodStart int64 `json:"period_start"` - PeriodEnd int64 `json:"period_end"` - SubscriptionID string `json:"subscription_id"` - Items []*InvoiceLineItem `json:"line_items"` + ID string `json:"id"` + Number string `json:"number"` + CreateAt int64 `json:"create_at"` + Total int64 `json:"total"` + Tax int64 `json:"tax"` + Status string `json:"status"` + Description string `json:"description"` + PeriodStart int64 `json:"period_start"` + PeriodEnd int64 `json:"period_end"` + SubscriptionID string `json:"subscription_id"` + Items []*InvoiceLineItem `json:"line_items"` + CurrentProductName string `json:"current_product_name"` } // InvoiceLineItem model represents a cloud invoice lineitem tied to an invoice. type InvoiceLineItem struct { PriceID string `json:"price_id"` Total int64 `json:"total"` - Quantity int64 `json:"quantity"` + Quantity float64 `json:"quantity"` PricePerUnit int64 `json:"price_per_unit"` Description string `json:"description"` Type string `json:"type"` diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/config.go b/vendor/github.com/mattermost/mattermost-server/v6/model/config.go index bec5afbe..d70b06b5 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/config.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/config.go @@ -126,7 +126,7 @@ const ( EmailSettingsDefaultFeedbackOrganization = "" - SupportSettingsDefaultTermsOfServiceLink = "https://mattermost.com/terms-of-service/" + SupportSettingsDefaultTermsOfServiceLink = "https://mattermost.com/terms-of-use/" SupportSettingsDefaultPrivacyPolicyLink = "https://mattermost.com/privacy-policy/" SupportSettingsDefaultAboutLink = "https://about.mattermost.com/default-about/" SupportSettingsDefaultHelpLink = "https://about.mattermost.com/default-help/" @@ -202,6 +202,7 @@ const ( DataRetentionSettingsDefaultMessageRetentionDays = 365 DataRetentionSettingsDefaultFileRetentionDays = 365 + DataRetentionSettingsDefaultBoardsRetentionDays = 365 DataRetentionSettingsDefaultDeletionJobStartTime = "02:00" DataRetentionSettingsDefaultBatchSize = 3000 @@ -771,7 +772,7 @@ func (s *ServiceSettings) SetDefaults(isUpdate bool) { } if s.ThreadAutoFollow == nil { - s.ThreadAutoFollow = NewBool(true) + s.ThreadAutoFollow = NewBool(false) } if s.CollapsedThreads == nil { @@ -1074,19 +1075,20 @@ type ReplicaLagSettings struct { } type SqlSettings struct { - DriverName *string `access:"environment_database,write_restrictable,cloud_restrictable"` - DataSource *string `access:"environment_database,write_restrictable,cloud_restrictable"` // telemetry: none - DataSourceReplicas []string `access:"environment_database,write_restrictable,cloud_restrictable"` - DataSourceSearchReplicas []string `access:"environment_database,write_restrictable,cloud_restrictable"` - MaxIdleConns *int `access:"environment_database,write_restrictable,cloud_restrictable"` - ConnMaxLifetimeMilliseconds *int `access:"environment_database,write_restrictable,cloud_restrictable"` - ConnMaxIdleTimeMilliseconds *int `access:"environment_database,write_restrictable,cloud_restrictable"` - MaxOpenConns *int `access:"environment_database,write_restrictable,cloud_restrictable"` - Trace *bool `access:"environment_database,write_restrictable,cloud_restrictable"` - AtRestEncryptKey *string `access:"environment_database,write_restrictable,cloud_restrictable"` // telemetry: none - QueryTimeout *int `access:"environment_database,write_restrictable,cloud_restrictable"` - DisableDatabaseSearch *bool `access:"environment_database,write_restrictable,cloud_restrictable"` - ReplicaLagSettings []*ReplicaLagSettings `access:"environment_database,write_restrictable,cloud_restrictable"` // telemetry: none + DriverName *string `access:"environment_database,write_restrictable,cloud_restrictable"` + DataSource *string `access:"environment_database,write_restrictable,cloud_restrictable"` // telemetry: none + DataSourceReplicas []string `access:"environment_database,write_restrictable,cloud_restrictable"` + DataSourceSearchReplicas []string `access:"environment_database,write_restrictable,cloud_restrictable"` + MaxIdleConns *int `access:"environment_database,write_restrictable,cloud_restrictable"` + ConnMaxLifetimeMilliseconds *int `access:"environment_database,write_restrictable,cloud_restrictable"` + ConnMaxIdleTimeMilliseconds *int `access:"environment_database,write_restrictable,cloud_restrictable"` + MaxOpenConns *int `access:"environment_database,write_restrictable,cloud_restrictable"` + Trace *bool `access:"environment_database,write_restrictable,cloud_restrictable"` + AtRestEncryptKey *string `access:"environment_database,write_restrictable,cloud_restrictable"` // telemetry: none + QueryTimeout *int `access:"environment_database,write_restrictable,cloud_restrictable"` + DisableDatabaseSearch *bool `access:"environment_database,write_restrictable,cloud_restrictable"` + MigrationsStatementTimeoutSeconds *int `access:"environment_database,write_restrictable,cloud_restrictable"` + ReplicaLagSettings []*ReplicaLagSettings `access:"environment_database,write_restrictable,cloud_restrictable"` // telemetry: none } func (s *SqlSettings) SetDefaults(isUpdate bool) { @@ -1144,6 +1146,10 @@ func (s *SqlSettings) SetDefaults(isUpdate bool) { s.DisableDatabaseSearch = NewBool(false) } + if s.MigrationsStatementTimeoutSeconds == nil { + s.MigrationsStatementTimeoutSeconds = NewInt(100000) + } + if s.ReplicaLagSettings == nil { s.ReplicaLagSettings = []*ReplicaLagSettings{} } @@ -2581,8 +2587,10 @@ func (bs *BleveSettings) SetDefaults() { type DataRetentionSettings struct { EnableMessageDeletion *bool `access:"compliance_data_retention_policy"` EnableFileDeletion *bool `access:"compliance_data_retention_policy"` + EnableBoardsDeletion *bool `access:"compliance_data_retention_policy"` MessageRetentionDays *int `access:"compliance_data_retention_policy"` FileRetentionDays *int `access:"compliance_data_retention_policy"` + BoardsRetentionDays *int `access:"compliance_data_retention_policy"` DeletionJobStartTime *string `access:"compliance_data_retention_policy"` BatchSize *int `access:"compliance_data_retention_policy"` } @@ -2596,6 +2604,10 @@ func (s *DataRetentionSettings) SetDefaults() { s.EnableFileDeletion = NewBool(false) } + if s.EnableBoardsDeletion == nil { + s.EnableBoardsDeletion = NewBool(false) + } + if s.MessageRetentionDays == nil { s.MessageRetentionDays = NewInt(DataRetentionSettingsDefaultMessageRetentionDays) } @@ -2604,6 +2616,10 @@ func (s *DataRetentionSettings) SetDefaults() { s.FileRetentionDays = NewInt(DataRetentionSettingsDefaultFileRetentionDays) } + if s.BoardsRetentionDays == nil { + s.BoardsRetentionDays = NewInt(DataRetentionSettingsDefaultBoardsRetentionDays) + } + if s.DeletionJobStartTime == nil { s.DeletionJobStartTime = NewString(DataRetentionSettingsDefaultDeletionJobStartTime) } diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/data_retention_policy.go b/vendor/github.com/mattermost/mattermost-server/v6/model/data_retention_policy.go index 0a1d318e..32102517 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/data_retention_policy.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/data_retention_policy.go @@ -6,8 +6,10 @@ package model type GlobalRetentionPolicy struct { MessageDeletionEnabled bool `json:"message_deletion_enabled"` FileDeletionEnabled bool `json:"file_deletion_enabled"` + BoardsDeletionEnabled bool `json:"boards_deletion_enabled"` MessageRetentionCutoff int64 `json:"message_retention_cutoff"` FileRetentionCutoff int64 `json:"file_retention_cutoff"` + BoardsRetentionCutoff int64 `json:"boards_retention_cutoff"` } type RetentionPolicy struct { diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/feature_flags.go b/vendor/github.com/mattermost/mattermost-server/v6/model/feature_flags.go index a2d53e34..6998a03a 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/feature_flags.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/feature_flags.go @@ -47,9 +47,6 @@ type FeatureFlags struct { // Determine whether when a user gets created, they'll have noisy notifications e.g. Send desktop notifications for all activity NewAccountNoisy bool - // Enable Boards Unfurl Preview - BoardsUnfurl bool - // Enable Calls plugin support in the mobile app CallsMobile bool @@ -70,6 +67,14 @@ type FeatureFlags struct { // A/B test for whether radio buttons or toggle button is more effective in in-screen invite to team modal ("none", "toggle") InviteToTeam string + + // Enable inline post editing + InlinePostEditing bool + + // Enable DataRetention for Boards + BoardsDataRetention bool + + NormalizeLdapDNs bool } func (f *FeatureFlags) SetDefaults() { @@ -86,7 +91,6 @@ func (f *FeatureFlags) SetDefaults() { f.GlobalHeader = true f.AddChannelButton = "by_team_name" f.NewAccountNoisy = false - f.BoardsUnfurl = true f.CallsMobile = false f.AutoTour = "none" f.BoardsFeatureFlags = "" @@ -94,6 +98,9 @@ func (f *FeatureFlags) SetDefaults() { f.GuidedChannelCreation = false f.ResendInviteEmailInterval = "" f.InviteToTeam = "none" + f.InlinePostEditing = false + f.BoardsDataRetention = false + f.NormalizeLdapDNs = false } func (f *FeatureFlags) Plugins() map[string]string { diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/post.go b/vendor/github.com/mattermost/mattermost-server/v6/model/post.go index d13fef0a..87c1f338 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/post.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/post.go @@ -6,6 +6,7 @@ package model import ( "encoding/json" "errors" + "io" "net/http" "regexp" "sort" @@ -227,6 +228,11 @@ func (o *Post) ToJSON() (string, error) { return string(b), err } +func (o *Post) EncodeJSON(w io.Writer) error { + o.StripActionIntegrations() + return json.NewEncoder(w).Encode(o) +} + type GetPostsSinceOptions struct { UserId string ChannelId string diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/post_list.go b/vendor/github.com/mattermost/mattermost-server/v6/model/post_list.go index 933d1f8f..bb28063a 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/post_list.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/post_list.go @@ -5,6 +5,7 @@ package model import ( "encoding/json" + "io" "sort" ) @@ -80,6 +81,11 @@ func (o *PostList) ToJSON() (string, error) { return string(b), err } +func (o *PostList) EncodeJSON(w io.Writer) error { + o.StripActionIntegrations() + return json.NewEncoder(w).Encode(o) +} + func (o *PostList) MakeNonNil() { if o.Order == nil { o.Order = make([]string, 0) diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/post_metadata.go b/vendor/github.com/mattermost/mattermost-server/v6/model/post_metadata.go index 0f9e61d3..6ccc1ebf 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/post_metadata.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/post_metadata.go @@ -14,7 +14,7 @@ type PostMetadata struct { // Files holds information about the file attachments on the post. Files []*FileInfo `json:"files,omitempty"` - // Images holds the dimensions of all external images in the post as a map of the image URL to its diemsnions. + // Images holds the dimensions of all external images in the post as a map of the image URL to its dimensions. // This includes image embeds (when the message contains a plaintext link to an image), Markdown images, images // contained in the OpenGraph metadata, and images contained in message attachments. It does not contain // the dimensions of any file attachments as those are stored in FileInfos. diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/post_search_results.go b/vendor/github.com/mattermost/mattermost-server/v6/model/post_search_results.go index 92e044a7..a3afc723 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/post_search_results.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/post_search_results.go @@ -5,6 +5,7 @@ package model import ( "encoding/json" + "io" ) type PostSearchMatches map[string][]string @@ -27,3 +28,8 @@ func (o *PostSearchResults) ToJSON() (string, error) { b, err := json.Marshal(©) return string(b), err } + +func (o *PostSearchResults) EncodeJSON(w io.Writer) error { + o.PostList.StripActionIntegrations() + return json.NewEncoder(w).Encode(o) +} diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/role.go b/vendor/github.com/mattermost/mattermost-server/v6/model/role.go index b8d75d4b..0dcb405c 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/role.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/role.go @@ -558,7 +558,7 @@ func (r *Role) GetChannelModeratedPermissions(channelType ChannelType) map[strin return moderatedPermissions } -// RolePatchFromChannelModerationsPatch Creates and returns a RolePatch based on a slice of ChannelModerationPatchs, roleName is expected to be either "members" or "guests". +// RolePatchFromChannelModerationsPatch Creates and returns a RolePatch based on a slice of ChannelModerationPatches, roleName is expected to be either "members" or "guests". func (r *Role) RolePatchFromChannelModerationsPatch(channelModerationsPatch []*ChannelModerationPatch, roleName string) *RolePatch { permissionsToAddToPatch := make(map[string]bool) diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/session.go b/vendor/github.com/mattermost/mattermost-server/v6/model/session.go index 72f8d646..36955583 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/session.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/session.go @@ -15,6 +15,7 @@ const ( SessionCookieToken = "MMAUTHTOKEN" SessionCookieUser = "MMUSERID" SessionCookieCsrf = "MMCSRF" + SessionCookieCloudUrl = "MMCLOUDURL" SessionCacheSize = 35000 SessionPropPlatform = "platform" SessionPropOs = "os" diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/team_member.go b/vendor/github.com/mattermost/mattermost-server/v6/model/team_member.go index cec0a6a6..70fd40c4 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/team_member.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/team_member.go @@ -69,6 +69,7 @@ type TeamMembersGetOptions struct { ViewRestrictions *ViewUsersRestrictions } +//msgp:ignore TeamInviteReminderData type TeamInviteReminderData struct { Interval string } diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/user.go b/vendor/github.com/mattermost/mattermost-server/v6/model/user.go index 0b691c6c..5035f9a5 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/user.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/user.go @@ -703,7 +703,7 @@ func IsValidUserRoles(userRoles string) bool { return true } -// Make sure you acually want to use this function. In context.go there are functions to check permissions +// Make sure you actually want to use this function. In context.go there are functions to check permissions // This function should not be used to check permissions. func (u *User) IsGuest() bool { return IsInRole(u.Roles, SystemGuestRoleId) @@ -713,13 +713,13 @@ func (u *User) IsSystemAdmin() bool { return IsInRole(u.Roles, SystemAdminRoleId) } -// Make sure you acually want to use this function. In context.go there are functions to check permissions +// Make sure you actually want to use this function. In context.go there are functions to check permissions // This function should not be used to check permissions. func (u *User) IsInRole(inRole string) bool { return IsInRole(u.Roles, inRole) } -// Make sure you acually want to use this function. In context.go there are functions to check permissions +// Make sure you actually want to use this function. In context.go there are functions to check permissions // This function should not be used to check permissions. func IsInRole(userRoles string, inRole string) bool { roles := strings.Split(userRoles, " ") diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/user_serial_gen.go b/vendor/github.com/mattermost/mattermost-server/v6/model/user_serial_gen.go index fb40b577..3bcb3cf7 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/user_serial_gen.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/user_serial_gen.go @@ -17,8 +17,8 @@ func (z *User) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err) return } - if zb0001 != 32 { - err = msgp.ArrayError{Wanted: 32, Got: zb0001} + if zb0001 != 33 { + err = msgp.ArrayError{Wanted: 33, Got: zb0001} return } z.Id, err = dc.ReadString() @@ -205,13 +205,18 @@ func (z *User) DecodeMsg(dc *msgp.Reader) (err error) { err = msgp.WrapError(err, "TermsOfServiceCreateAt") return } + z.DisableWelcomeEmail, err = dc.ReadBool() + if err != nil { + err = msgp.WrapError(err, "DisableWelcomeEmail") + return + } return } // EncodeMsg implements msgp.Encodable func (z *User) EncodeMsg(en *msgp.Writer) (err error) { - // array header, size 32 - err = en.Append(0xdc, 0x0, 0x20) + // array header, size 33 + err = en.Append(0xdc, 0x0, 0x21) if err != nil { return } @@ -389,14 +394,19 @@ func (z *User) EncodeMsg(en *msgp.Writer) (err error) { err = msgp.WrapError(err, "TermsOfServiceCreateAt") return } + err = en.WriteBool(z.DisableWelcomeEmail) + if err != nil { + err = msgp.WrapError(err, "DisableWelcomeEmail") + return + } return } // MarshalMsg implements msgp.Marshaler func (z *User) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.Require(b, z.Msgsize()) - // array header, size 32 - o = append(o, 0xdc, 0x0, 0x20) + // array header, size 33 + o = append(o, 0xdc, 0x0, 0x21) o = msgp.AppendString(o, z.Id) o = msgp.AppendInt64(o, z.CreateAt) o = msgp.AppendInt64(o, z.UpdateAt) @@ -449,6 +459,7 @@ func (z *User) MarshalMsg(b []byte) (o []byte, err error) { o = msgp.AppendInt64(o, z.BotLastIconUpdate) o = msgp.AppendString(o, z.TermsOfServiceId) o = msgp.AppendInt64(o, z.TermsOfServiceCreateAt) + o = msgp.AppendBool(o, z.DisableWelcomeEmail) return } @@ -460,8 +471,8 @@ func (z *User) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err) return } - if zb0001 != 32 { - err = msgp.ArrayError{Wanted: 32, Got: zb0001} + if zb0001 != 33 { + err = msgp.ArrayError{Wanted: 33, Got: zb0001} return } z.Id, bts, err = msgp.ReadStringBytes(bts) @@ -646,6 +657,11 @@ func (z *User) UnmarshalMsg(bts []byte) (o []byte, err error) { err = msgp.WrapError(err, "TermsOfServiceCreateAt") return } + z.DisableWelcomeEmail, bts, err = msgp.ReadBoolBytes(bts) + if err != nil { + err = msgp.WrapError(err, "DisableWelcomeEmail") + return + } o = bts return } @@ -664,7 +680,7 @@ func (z *User) Msgsize() (s int) { } else { s += msgp.StringPrefixSize + len(*z.RemoteId) } - s += msgp.Int64Size + msgp.BoolSize + msgp.StringPrefixSize + len(z.BotDescription) + msgp.Int64Size + msgp.StringPrefixSize + len(z.TermsOfServiceId) + msgp.Int64Size + s += msgp.Int64Size + msgp.BoolSize + msgp.StringPrefixSize + len(z.BotDescription) + msgp.Int64Size + msgp.StringPrefixSize + len(z.TermsOfServiceId) + msgp.Int64Size + msgp.BoolSize return } diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/utils.go b/vendor/github.com/mattermost/mattermost-server/v6/model/utils.go index e9170588..c88d9100 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/utils.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/utils.go @@ -76,7 +76,12 @@ func (sa StringArray) Equals(input StringArray) bool { // Value converts StringArray to database value func (sa StringArray) Value() (driver.Value, error) { - return json.Marshal(sa) + j, err := json.Marshal(sa) + if err != nil { + return nil, err + } + // non utf8 characters are not supported https://mattermost.atlassian.net/browse/MM-41066 + return string(j), err } // Scan converts database column value to StringArray @@ -117,6 +122,16 @@ func (m *StringMap) Scan(value interface{}) error { return errors.New("received value is neither a byte slice nor string") } +// Value converts StringMap to database value +func (m StringMap) Value() (driver.Value, error) { + j, err := json.Marshal(m) + if err != nil { + return nil, err + } + // non utf8 characters are not supported https://mattermost.atlassian.net/browse/MM-41066 + return string(j), err +} + func (si *StringInterface) Scan(value interface{}) error { if value == nil { return nil @@ -135,6 +150,16 @@ func (si *StringInterface) Scan(value interface{}) error { return errors.New("received value is neither a byte slice nor string") } +// Value converts StringInterface to database value +func (si StringInterface) Value() (driver.Value, error) { + j, err := json.Marshal(si) + if err != nil { + return nil, err + } + // non utf8 characters are not supported https://mattermost.atlassian.net/browse/MM-41066 + return string(j), err +} + var translateFunc i18n.TranslateFunc var translateFuncOnce sync.Once diff --git a/vendor/github.com/mattermost/mattermost-server/v6/model/version.go b/vendor/github.com/mattermost/mattermost-server/v6/model/version.go index 6020d5f8..673d4be9 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/model/version.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/model/version.go @@ -13,6 +13,9 @@ import ( // It should be maintained in chronological order with most current // release at the front of the list. var versions = []string{ + "6.4.2", + "6.4.1", + "6.4.0", "6.3.0", "6.2.0", "6.1.0", diff --git a/vendor/github.com/mattermost/mattermost-server/v6/shared/filestore/s3_overrides.go b/vendor/github.com/mattermost/mattermost-server/v6/shared/filestore/s3_overrides.go index e7b29b98..697809ee 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/shared/filestore/s3_overrides.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/shared/filestore/s3_overrides.go @@ -23,7 +23,7 @@ type customTransport struct { // RoundTrip implements the http.Roundtripper interface. func (t *customTransport) RoundTrip(req *http.Request) (*http.Response, error) { - // Rountrippers should not modify the original request. + // Roundtrippers should not modify the original request. newReq := req.Clone(context.Background()) *newReq.URL = *req.URL req.URL.Scheme = t.scheme diff --git a/vendor/github.com/mattermost/mattermost-server/v6/shared/mlog/mlog.go b/vendor/github.com/mattermost/mattermost-server/v6/shared/mlog/mlog.go index 0f4cc1fe..9b4bb820 100644 --- a/vendor/github.com/mattermost/mattermost-server/v6/shared/mlog/mlog.go +++ b/vendor/github.com/mattermost/mattermost-server/v6/shared/mlog/mlog.go @@ -352,7 +352,7 @@ func (l *Logger) RedirectStdLog(level Level, fields ...Field) func() { // RemoveTargets safely removes one or more targets based on the filtering method. // `f` should return true to delete the target, false to keep it. // When removing a target, best effort is made to write any queued log records before -// closing, with cxt determining how much time can be spent in total. +// closing, with ctx determining how much time can be spent in total. // Note, keep the timeout short since this method blocks certain logging operations. func (l *Logger) RemoveTargets(ctx context.Context, f func(ti TargetInfo) bool) error { return l.log.Logr().RemoveTargets(ctx, f) @@ -379,7 +379,7 @@ func (l *Logger) Flush() error { return l.log.Logr().FlushWithTimeout(ctx) } -// Flush forces all targets to write out any queued log records with the specfified timeout. +// Flush forces all targets to write out any queued log records with the specified timeout. func (l *Logger) FlushWithTimeout(ctx context.Context) error { return l.log.Logr().FlushWithTimeout(ctx) } diff --git a/vendor/github.com/slack-go/slack/README.md b/vendor/github.com/slack-go/slack/README.md index dbf73d4e..39b04ce8 100644 --- a/vendor/github.com/slack-go/slack/README.md +++ b/vendor/github.com/slack-go/slack/README.md @@ -1,9 +1,9 @@ Slack API in Go [![Go Reference](https://pkg.go.dev/badge/github.com/slack-go/slack.svg)](https://pkg.go.dev/github.com/slack-go/slack) =============== -This is the original Slack library for Go created by Norberto Lopes, transferred to a Github organization. +This is the original Slack library for Go created by Norberto Lopes, transferred to a GitHub organization. -[![Join the chat at https://gitter.im/go-slack/Lobby](https://badges.gitter.im/go-slack/Lobby.svg)](https://gitter.im/go-slack/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +You can also chat with us on the #slack-go, #slack-go-ja Slack channel on the Gophers Slack. ![logo](logo.png "icon") @@ -70,8 +70,15 @@ func main() { } ``` +## Minimal Socket Mode usage: + +See https://github.com/slack-go/slack/blob/master/examples/socketmode/socketmode.go + + ## Minimal RTM usage: +As mentioned in https://api.slack.com/rtm - for most applications, Socket Mode is a better way to communicate with Slack. + See https://github.com/slack-go/slack/blob/master/examples/websocket/websocket.go diff --git a/vendor/github.com/slack-go/slack/block_conv.go b/vendor/github.com/slack-go/slack/block_conv.go index c5378b60..1a2c57e9 100644 --- a/vendor/github.com/slack-go/slack/block_conv.go +++ b/vendor/github.com/slack-go/slack/block_conv.go @@ -2,9 +2,8 @@ package slack import ( "encoding/json" + "errors" "fmt" - - "github.com/pkg/errors" ) type sumtype struct { diff --git a/vendor/github.com/slack-go/slack/messages.go b/vendor/github.com/slack-go/slack/messages.go index 2f05f6d7..2cc31d5b 100644 --- a/vendor/github.com/slack-go/slack/messages.go +++ b/vendor/github.com/slack-go/slack/messages.go @@ -103,6 +103,7 @@ type Msg struct { ReplyCount int `json:"reply_count,omitempty"` Replies []Reply `json:"replies,omitempty"` ParentUserId string `json:"parent_user_id,omitempty"` + LatestReply string `json:"latest_reply,omitempty"` // file_share, file_comment, file_mention Files []File `json:"files,omitempty"` diff --git a/vendor/github.com/slack-go/slack/oauth.go b/vendor/github.com/slack-go/slack/oauth.go index d9aca5f3..94b6546d 100644 --- a/vendor/github.com/slack-go/slack/oauth.go +++ b/vendor/github.com/slack-go/slack/oauth.go @@ -61,10 +61,12 @@ type OAuthV2ResponseEnterprise struct { // OAuthV2ResponseAuthedUser ... type OAuthV2ResponseAuthedUser struct { - ID string `json:"id"` - Scope string `json:"scope"` - AccessToken string `json:"access_token"` - TokenType string `json:"token_type"` + ID string `json:"id"` + Scope string `json:"scope"` + AccessToken string `json:"access_token"` + ExpiresIn int `json:"expires_in"` + RefreshToken string `json:"refresh_token"` + TokenType string `json:"token_type"` } // GetOAuthToken retrieves an AccessToken diff --git a/vendor/github.com/slack-go/slack/webhooks_go112.go b/vendor/github.com/slack-go/slack/webhooks_go112.go index 4e0db0e4..0eb539ac 100644 --- a/vendor/github.com/slack-go/slack/webhooks_go112.go +++ b/vendor/github.com/slack-go/slack/webhooks_go112.go @@ -1,3 +1,4 @@ +//go:build !go1.13 // +build !go1.13 package slack @@ -6,27 +7,26 @@ import ( "bytes" "context" "encoding/json" + "fmt" "net/http" - - "github.com/pkg/errors" ) func PostWebhookCustomHTTPContext(ctx context.Context, url string, httpClient *http.Client, msg *WebhookMessage) error { raw, err := json.Marshal(msg) if err != nil { - return errors.Wrap(err, "marshal failed") + return fmt.Errorf("marshal failed: %v", err) } req, err := http.NewRequest(http.MethodPost, url, bytes.NewReader(raw)) if err != nil { - return errors.Wrap(err, "failed new request") + return fmt.Errorf("failed new request: %v", err) } req = req.WithContext(ctx) req.Header.Set("Content-Type", "application/json") resp, err := httpClient.Do(req) if err != nil { - return errors.Wrap(err, "failed to post webhook") + return fmt.Errorf("failed to post webhook: %v", err) } defer resp.Body.Close() diff --git a/vendor/github.com/slack-go/slack/webhooks_go113.go b/vendor/github.com/slack-go/slack/webhooks_go113.go index 99c243f5..021eac01 100644 --- a/vendor/github.com/slack-go/slack/webhooks_go113.go +++ b/vendor/github.com/slack-go/slack/webhooks_go113.go @@ -1,3 +1,4 @@ +//go:build go1.13 // +build go1.13 package slack @@ -6,26 +7,25 @@ import ( "bytes" "context" "encoding/json" + "fmt" "net/http" - - "github.com/pkg/errors" ) func PostWebhookCustomHTTPContext(ctx context.Context, url string, httpClient *http.Client, msg *WebhookMessage) error { raw, err := json.Marshal(msg) if err != nil { - return errors.Wrap(err, "marshal failed") + return fmt.Errorf("marshal failed: %w", err) } req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, bytes.NewReader(raw)) if err != nil { - return errors.Wrap(err, "failed new request") + return fmt.Errorf("failed new request: %w", err) } req.Header.Set("Content-Type", "application/json") resp, err := httpClient.Do(req) if err != nil { - return errors.Wrap(err, "failed to post webhook") + return fmt.Errorf("failed to post webhook: %w", err) } defer resp.Body.Close() diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index c67e9b7f..e644d9b2 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -719,7 +719,15 @@ func (sc *serverConn) canonicalHeader(v string) string { sc.canonHeader = make(map[string]string) } cv = http.CanonicalHeaderKey(v) - sc.canonHeader[v] = cv + // maxCachedCanonicalHeaders is an arbitrarily-chosen limit on the number of + // entries in the canonHeader cache. This should be larger than the number + // of unique, uncommon header keys likely to be sent by the peer, while not + // so high as to permit unreasonable memory usage if the peer sends an unbounded + // number of unique header keys. + const maxCachedCanonicalHeaders = 32 + if len(sc.canonHeader) < maxCachedCanonicalHeaders { + sc.canonHeader[v] = cv + } return cv } diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index 581999be..f135b0f7 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -1252,12 +1252,12 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { } continueTimeout := cc.t.expectContinueTimeout() - if continueTimeout != 0 && - !httpguts.HeaderValuesContainsToken( - req.Header["Expect"], - "100-continue") { - continueTimeout = 0 - cs.on100 = make(chan struct{}, 1) + if continueTimeout != 0 { + if !httpguts.HeaderValuesContainsToken(req.Header["Expect"], "100-continue") { + continueTimeout = 0 + } else { + cs.on100 = make(chan struct{}, 1) + } } // Past this point (where we send request headers), it is possible for diff --git a/vendor/golang.org/x/net/http2/writesched.go b/vendor/golang.org/x/net/http2/writesched.go index f24d2b1e..c7cd0017 100644 --- a/vendor/golang.org/x/net/http2/writesched.go +++ b/vendor/golang.org/x/net/http2/writesched.go @@ -32,7 +32,8 @@ type WriteScheduler interface { // Pop dequeues the next frame to write. Returns false if no frames can // be written. Frames with a given wr.StreamID() are Pop'd in the same - // order they are Push'd. No frames should be discarded except by CloseStream. + // order they are Push'd, except RST_STREAM frames. No frames should be + // discarded except by CloseStream. Pop() (wr FrameWriteRequest, ok bool) } @@ -52,6 +53,7 @@ type FrameWriteRequest struct { // stream is the stream on which this frame will be written. // nil for non-stream frames like PING and SETTINGS. + // nil for RST_STREAM streams, which use the StreamError.StreamID field instead. stream *stream // done, if non-nil, must be a buffered channel with space for diff --git a/vendor/golang.org/x/net/http2/writesched_random.go b/vendor/golang.org/x/net/http2/writesched_random.go index 9a7b9e58..f2e55e05 100644 --- a/vendor/golang.org/x/net/http2/writesched_random.go +++ b/vendor/golang.org/x/net/http2/writesched_random.go @@ -45,11 +45,11 @@ func (ws *randomWriteScheduler) AdjustStream(streamID uint32, priority PriorityP } func (ws *randomWriteScheduler) Push(wr FrameWriteRequest) { - id := wr.StreamID() - if id == 0 { + if wr.isControl() { ws.zero.push(wr) return } + id := wr.StreamID() q, ok := ws.sq[id] if !ok { q = ws.queuePool.get() @@ -59,7 +59,7 @@ func (ws *randomWriteScheduler) Push(wr FrameWriteRequest) { } func (ws *randomWriteScheduler) Pop() (FrameWriteRequest, bool) { - // Control frames first. + // Control and RST_STREAM frames first. if !ws.zero.empty() { return ws.zero.shift(), true } diff --git a/vendor/golang.org/x/net/publicsuffix/table.go b/vendor/golang.org/x/net/publicsuffix/table.go index 51f40b8e..fd3c3ca4 100644 --- a/vendor/golang.org/x/net/publicsuffix/table.go +++ b/vendor/golang.org/x/net/publicsuffix/table.go @@ -2,7 +2,7 @@ package publicsuffix -const version = "publicsuffix.org's public_suffix_list.dat, git revision 792f13d38c795cf910de96de4baac48f1fee3162 (2021-08-23T07:37:32Z)" +const version = "publicsuffix.org's public_suffix_list.dat, git revision 3c213aab32b3c014f171b1673d4ce9b5cd72bf1c (2021-11-26T23:05:53Z)" const ( nodesBitsChildren = 10 @@ -23,510 +23,510 @@ const ( ) // numTLD is the number of top level domains. -const numTLD = 1508 +const numTLD = 1504 // Text is the combined text of all labels. const text = "9guacuiababia-goracleaningroks-theatree164-balsfjordd-dnshome-we" + - "bserverdal-o-g-i-n4t3l3p0rtashkentatamotorsitestinggfarmerseinea" + - "stasiaetnaamesjevuemielnoboribetsucks3-ap-northeast-2ix4432-bals" + - "an-suedtirolkuszczytnoopencraftrainingdyniabruzzoologicalabamaga" + - "sakishimabaraogashimadachicagoboats3-ap-northeast-1kappchizip611" + - "6-b-datacentermezproxyzgorabogadobeaemcloud-fr1337birdartcenterp" + - "risecloudaccesscambridgeiseiroumuencheninohekinannestaditchyouri" + - "parachutingleezebirkenesoddtangenovaranzanquannefrankfurtcmember" + - "s3-website-ap-southeast-2birthplacebitbucketrzyninomiyakonojorpe" + - "landivtasvuodnakamagayahooguyurihonjournalistjohnirasakin-vpncas" + - "inord-odalombardynalias3-website-eu-west-1bjarkoyusuharabjerkrei" + - "mbamblebesbyenvironmentalconservationionjukudoyamaintenancebizen" + - "akanojohanamakinoharaustinnaumburgjerdrumcpeatonsbergjerstadotsu" + - "ruokakamigaharamswatch-and-clockerevistarnbergivestbytemark12bju" + - "gnieznord-frontierblackfridayusuisservehttpbin-butterbloombergba" + - "uernishiazaincheonishigovtcp4bloxcms3-website-sa-east-1bluebitem" + - "p-dnswedenishiharabmoattachments3-website-us-east-1bms3-website-" + - "us-west-1bmwedeployuufcfanishiizunazukindianapolis-a-bloggerbnrw" + - "egroweibolognagareyamakeuparaglidinglitcheltenham-radio-opensoci" + - "alomzaporizhzhegurindianmarketingliwicebomloabathsbcateringebuil" + - "dingloboavistanbulsan-sudtirolondonetskaratsuginamikatagamilanos" + - "hiroomglogoweirbondigitaloceanographicsxboxfordellogliastradingl" + - "oppenzaolbia-tempio-olbiatempioolbialystokkeliwebhostinglugsjcbn" + - "pparibashkiriabonnishikatakazakindielddanuorrindigenaklodzkodair" + - "abookinghostedpictetgoryuzawabookonlinewjerseyboomlajollamerican" + - "expressexyboschaefflerdalondrinamsskoganeindowapblogsiteleafamil" + - "ycompany-2bostik-serverrankoshigayachts3-website-us-west-2boston" + - "akijinsekikogentappsselfiparisor-fronishikatsuragit-reposts-and-" + - "telecommunicationsakyotanabellevuelosangelesjabbottjeldsundivtta" + - "svuotnakamurataiwanairforcechireadthedocscbgmbhartipschlesisches" + - "alangenishikawazukamisatohoboleslawieconomiastalowa-wolawabotani" + - "calgardeno-stagingminakamichiharabotanicgardenishimerabotanycath" + - "olicaxiaskimitsubatamibudejjuegoshikievennodesabaerobaticketsalo" + - "n-1bouncemerckmsdnipropetrovskjervoyageometre-experts-comptables" + - "altdalorenskogmodellingmxenishinomiyashironoddabounty-fullensake" + - "rrypropertiesaludiyboutiquebecommerce-shopitsitempurlotteboutire" + - "serve-onlinewmexicodyn-o-saurlandesalvadordalibabalena-devicesal" + - "zburgretakamatsukawabozen-sudtirolottokonamegatakatsukindustriab" + - "ozen-suedtirolouvrehabmerbplaceducatorprojectjmaxxxeroxfinitybra" + - "ndywinevalleybrasiliabresciabrindisibenikikugawashtenawdevcdnacc" + - "essobetsuitaijindustriesteamfamberkeleybristoloseyouriparliament" + - "jomelhusgardenishinoomotegohtawaramotoineppubtlsamegawabritishco" + - "lumbialowiezaganishinoshimatsunowruzhgorodeomniweatherchannelpus" + - "ercontentjxjampalacebroadcastlebtimnetzjavaldaostathelleluxembou" + - "rgrimstadrangedalublindesnesamnangerbroadwaybroke-itvedestrandra" + - "y-dnstracebrokerbronnoysundrayddns5ybrothermesaverdealerbrowsers" + - "afetymarketsampaleomurabrumunddalucaniabrunelastxn--0trq7p7nnish" + - "iokoppegardraydnsupdaterbrusselsamsclubartowellbeingzonebruxelle" + - "samsungripebryanskodjedugit-pagespeedmobilizeroticagliaricoharuh" + - "rbrynewportkmaxxn--11b4c3drivegarsheiheijinfinitinsureggioemilia" + - "romagnamsosnowiechernivtsiciliabuskerudrobaknoluoktachikawafflec" + - "elluciancrmadviseharag-cloud-charitychyattorneyagawakayamagazine" + - "kobayashikaoirmitakeharagusartsandnessjoenishitosashimizunaminam" + - "ibosognebuzentsujiiebuzzlgriwataraidrrbwesteuropenairbusantiques" + - "t-a-la-maisondre-landroidrudupontariobranconavstackareliancebzhi" + - "tomirbzzwestfalenishiwakintelligencecoloradoplateaudiopsysanokar" + - "umaifarsundyndns-homednsantabarbaracolumbusheycommunecommunity-p" + - "rochowicecomobaracomparemarkerryhotelsantacruzsantafedjeffersonc" + - "omsecaaskoyabearalvahkihokumakogenebakkeshibechambagriculturenne" + - "bugattiffanyaarborteaches-yogasawaracingrpartinternationalfirear" + - "msantamariakecondoshichinohealth-carereformemergencyahikobeardub" + - "aiduckdnsncfdyndns-ipartsantoandreamhostersanukintuitoyosatoyoka" + - "waconferenceconstructionconsuladoesntexisteingeekasaokamikitayam" + - "atsurinuyamashinatsukigatakasagotpantheonsiteconsultanthropology" + - "consultingruenoharacontactoyotapartycontagematsubaracontemporary" + - "arteducationalchikugodogadollsaobernardocontractorskenconventure" + - "shinodearthruherecifedexetercookingchannelsdvrdnsdojoburguidefen" + - "seljordyndns-mailcoolcooperativano-frankivskygearappasadenarashi" + - "nocopenhagencyclopedichofunatoriginstantcloudfrontdoorcoproducti" + - "onsaogoncarriercorporationcorsicahcesuoloansaotomeiwamashikokuch" + - "uocorvettenrissadonnagatorogersvp4cosenzakopanelblagrarchaeology" + - "eongbuk0cosidnsfor-better-thanawatchesapporocostumedicaltanisset" + - "taishinomakindlefrakkestadyndns-office-on-the-webercouchpotatofr" + - "iesardegnaroycoukashibatakasugainvestmentsardiniacouncilcouponsa" + - "rlcozoracqcxn--12cfi8ixb8lcranbrookuwanalyticsarpsborguitarsaruf" + - "utsunomiyawakasaikaitabashijonawatecrdyndns-picsasayamatta-varjj" + - "atoyotomiyazakinzais-a-candidatecreditcardyndns-remotewdyndns-se" + - "rverisigncreditunioncremonashgabadaddjaguarqhachinohedmarkashiha" + - "racrewhalingujoinvilleirvikashiwaracricketoyotsukaidocrimeast-ka" + - "zakhstanangercrotonecrownipassagensasebofagemologicallynxn--12co" + - "0c3b4evalled-aostamayufuettertdasnetzcrsaskatchewancruisesassari" + - "s-a-caterercuisinellancashirecipescaracalvinklein-berlindaskvoll" + - "pagesaudaculturalcentertainmentoyouracuneocupcakecuritibaghdadul" + - "toystre-slidrettozawacurvalledaostaobaomoriguchiharahkkeravjuedi" + - "schesapeakebayernuorochestercymruovatmallorcafederationcilla-spe" + - "ziacyonabarumemorialcyouthachiojiyaizuwakamatsubushikusakadogawa" + - "ferrarivneferrerotikagoshimalopolskanlandyndns-workshoparenakani" + - "ikawatanagurafetsundyndns1fgushikamifuranordreisa-hockeynutsirac" + - "usaintlouis-a-anarchistoireggio-emilia-romagnakatombetsumitakagi" + - "izefhvalerfidoomdnsiskinkyotobetsulikes-piedmonticellocalzonefie" + - "ldynnsauheradyndns-webhareidsbergentingulenfigueresinstagingwidd" + - "leitungsenfilateliafilegear-audnedalnfilegear-dealstahaugesunder" + - "seaportsinfolionetworkangerfilegear-gbizfilegear-iefilegear-jpmo" + - "rganfilegear-sg-1filminamiechizenfinalfinancefineartschulefinlan" + - "dynservebbsavannahgafinnoyfirebaseappatriafirenetrani-andria-bar" + - "letta-trani-andriafirenzefirestonefirewebhopocznordre-landynulme" + - "msettlersaveincloudyndns-wikirafirmdalegnicapebretonamicrolighti" + - "ngxn--1ctwolominamatargithubusercontentraniandriabarlettatranian" + - "driafishingokasellfylkesbiblackbaudcdn-edgestackhero-networkingg" + - "roupowiathletajimageandsoundandvision-riopretochigiessensiositel" + - "evision-webpaashorokanaiefitjarvodkagaminogatagajobojis-a-chefas" + - "tly-terrariumetacentrumeteorappassenger-associationfitnessettlem" + - "entranoyfjalerflekkefjordynv6flesbergflickragerokunohealthcareer" + - "schulserverflirfloginlinefloraflorencefloridatsunanjoetsuwanouch" + - "ikujogaszkolancasterfloripaderbornfloristanohatajimidsundynvpnpl" + - "us-4floromskogflowerschwarzgwangjuifminamifuranowtvallee-aostero" + - "yfltranslateflynnhosting-clusterfndyroyrvikingunmaniwakuratefnwk" + - "asukabedzin-addrammenuniversityfoodnetworkdalfor-ourfor-somedio-" + - "campidano-mediocampidanomediofor-theaterforexrothachirogatakamor" + - "iokakudamatsueforgotdnschweizforli-cesena-forlicesenaforlikescan" + - "dyn53forsalegoldpoint2thisamitsukeforsandasuoloftransportefortal" + - "fortextileikangerfortmissoulanciafortworthadanore-og-uvdalfosnes" + - "ciencecentersciencehistoryfotransurlfoxafozfranamizuhobby-sitefr" + - "ancaiserniafranziskanerimaringatlantajiris-a-conservativegascien" + - "tistordalfredrikstadtvscjohnsonfreeddnsfreebox-oscrapper-sitefre" + - "edesktoppdalfreemasonryfreemyiphosteurovisionfreesitefreetlscrap" + - "pingfreiburgfreseniusculturecreationfribourgfriuli-v-giuliafriul" + - "i-ve-giuliafriuli-vegiuliafriuli-venezia-giuliafriuli-veneziagiu" + - "liafriuli-vgiuliafriuliv-giuliafriulive-giuliafriulivegiuliafriu" + - "livenezia-giuliafriuliveneziagiuliafriulivgiuliafrlfroganscrysec" + - "uritytacticservehumourfrognfrolandfrom-akrehamnfrom-alfrom-arfro" + - "m-azimuthatogayabukijobservableusercontentrapaniizafrom-capetown" + - "news-stagingfrom-coffeedbackplaneappaviancargodaddyn-vpndnservei" + - "rchonanbulsan-suedtirolucernefrom-ctravelchannelfrom-dchoseikaru" + - "gamvikarlsoyfrom-deatnunjargafrom-flanderserveminecraftravelersi" + - "nsurancefrom-gaulardalfrom-hichisodegaurafrom-iafrom-idfrom-ilfr" + - "om-in-brbar1from-kservemp3from-kyowariasahikawafrom-langevagrige" + - "ntomologyeonggiehtavuoatnabudapest-a-la-masion-rancherkasydneyfr" + - "om-malselvendrelluciancrmadvancefrom-mdfrom-medizinhistorischese" + - "rvep2pfizerfrom-mifunefrom-mnfrom-modalenfrom-mservepicservequak" + - "efrom-mtnfrom-nctulanservesarcasmatartanddesignfrom-ndfrom-nefro" + - "m-nhktrdfrom-njservicesevastopolefrom-nminamiiseoullensvanguardf" + - "rom-nvallee-d-aosteigenfrom-nynysagaeroclubmedecincinnativeameri" + - "canantiquest-mon-blogueurodirumaceratabuseating-organichoshibuya" + - "habackyardsandvikcoromantovalle-daostavangerfrom-ohdattorelayfro" + - "m-oketogolffansevenassisicilyfrom-orfrom-padoval-daostavalleyfro" + - "m-pratogurafrom-ris-a-cpadualstackasumigaurayasudafrom-schoenbru" + - "nnfrom-sdscloudfrom-tnfrom-txn--1lqs03nfrom-utazurestaticappspac" + - "eusercontentrendhostingfrom-vald-aostarostwodzislawhoswholdingsm" + - "all-webredirectmeeresistancefrom-vtrentin-sud-tirolfrom-wafrom-w" + - "iardwebspacefrom-wvalleeaosteinkjerusalembroideryfrom-wyfrosinon" + - "efrostaplesewienfroyaitakahamalvikasuyanaizuerichardlillesandefj" + - "ordfruskydivingfstcgroupgfoggiafujiiderafujikawaguchikonefujimin" + - "okamoenairguardiannakadomarinebraskaunicommbankaszubyfujinomiyad" + - "attowebcampinashikiminohostfoldnavyfujiokayamamurogawafujisatosh" + - "onairlinedre-eikerfujisawafujishiroishidakabiratoridebianfujitsu" + - "rugashimandalfujiyoshidavvenjargap-northeast-3fukayabeatsharis-a" + - "-cubicle-slavellinodeobjectsharpharmacienshawaiijimarburgfukuchi" + - "yamadavvesiidappnodebalancertificationfukudomigawafukuis-a-democ" + - "ratrentin-sudtirolfukumitsubishigakirovogradoyfukuokazakiryuohku" + - "rafukuroishikarikaturindalfukusakisarazure-mobileirfjordfukuyama" + - "gatakaharussiafunabashiriuchinadazaifudaigojomedicinaharimalbork" + - "atowicefunagatakahashimamakishiwadafunahashikamiamakusatsumasend" + - "aisennangonohejis-a-designerfundaciofunkfeuerfuoiskujukuriyamang" + - "ooglecodespotrentin-sued-tirolfuosskoczowiiheyakumodernfurniture" + - "ggio-calabriafurubirafurudonostiaafurukawairportland-4-salernodu" + - "minamiizukaminokawanishiaizubangefusoftwarezzoologyfussagamihara" + - "futabayamaguchinomihachimanagementrentin-suedtirolfutboldlygoing" + - "nowhere-for-morenakasatsunairtelebitbridgestoneen-rootaruis-a-do" + - "ctorfuttsurugimperiafuturecmshellaspeziafuturehostingfuturemaili" + - "ngfvghangglidinghangoutsystemscloudsitehannanmokuizumodenakayama" + - "nnorth-kazakhstanhannorthflankautokeinotairestaurantrentino-a-ad" + - "igehanyuzenhapmircloudletshimojis-a-hard-workershimokawahappounz" + - "enharstadharvestcelebrationhasamansionshimokitayamattelekommunik" + - "ationhasaminami-alpshimonitayanagitappharmacyshimonosekikawahash" + - "banghasudahasura-apphdfcbankazohasvikazteleportlligatrentino-aad" + - "igehatoyamazakitahiroshimanxn--1lqs71dhatsukaichikaiseiyoichippu" + - "betsubetsugarusrcfastlylbanzaicloudappspotagerhattfjelldalhayash" + - "imamotobungotakadagestangeorgeorgiahazuminobusells-for-lesshimos" + - "uwalkis-a-hunterhelsinkitakamiizumisanofidelitysvardontexistmein" + - "-iservebeero-stagehembygdsforbundhemneshimotsukehemsedalhepforge" + - "blockshimotsumayfirstockholmestrandherokusslattuminamimakis-a-kn" + - "ightpointtohnoshoooshikamaishimodateheroyhgtvalleedaostehidorahi" + - "gashiagatsumagoianiahigashichichibunkyonanaoshimakanegasakilatir" + - "onthewifiatlassian-dev-myqnapcloudcontrolledogawarabikomaezakiru" + - "nogiftshinichinanhigashihiroshimanehigashiizumozakitakatakanezaw" + - "ahigashikagawahigashikagurasoedahigashikawakitaaikitakyushuaiahi" + - "gashikurumeetrentino-alto-adigehigashimatsushimaoris-a-landscape" + - "rugiahigashimatsuyamakitaakitadaitoigawahigashimurayamamotorcycl" + - "eshinjournalismailillehammerfeste-iphiladelphiaareadmyblogsytehi" + - "gashinarusells-for-ustkanmakitchenhigashinehigashiomitamamurausu" + - "kitamihamadahigashiosakasayamanakakogawahigashishirakawamatakaok" + - "almykiahigashisumiyoshikawaminamiaikitamotosumy-gatewayhigashits" + - "unorthwesternmutualhigashiurawa-mazowszexnetrentino-altoadigehig" + - "ashiyamatokoriyamanashifteditorxn--1qqw23ahigashiyodogawahigashi" + - "yoshinogaris-a-lawyerhiraizumisatohmapartmentshinjukumamotoyamas" + - "hikehirakatashinagawahiranairtrafficplexus-1hirarahiratsukaerutw" + - "entehirayakagehistorichouseshinkamigototalhitachiomiyagildeskali" + - "szhitachiotagophilatelyhitraeumtgeradegreehjartdalhjelmelandhole" + - "ckochikushinonsenergyholidayhomegoodshinshinotsurgeonshalloffame" + - "lbournehomeiphilipsynology-diskstationhomelinkyard-cloudjiffyres" + - "dalhomelinuxn--2m4a15ehomeofficehomesecuritymacaparecidahomesecu" + - "ritypchoyodobashichikashukujitawaravpagexlukowestus2homesenseeri" + - "nghomesklepphoenixn--2scrj9christiansburgrondarhomeunixn--30rr7y" + - "hondahongotembaixadahonjyoitakarazukaluganskazunoticeablevangerh" + - "ornindalhorsells-itrentino-s-tirolhortendofinternet-dnshinshiroh" + - "ospitalhoteleshintokushimahotelwithflightshintomikasaharahotmail" + - "hoyangerhoylandetroitskddiamondshinyoshitomiokamishihoronobeauxa" + - "rtsandcraftshiojirishirifujiedahumanitieshioyandexcloudhurdalhur" + - "umajis-a-liberalhyllestadhyogoris-a-libertarianhyugawarahyundaiw" + - "afuneis-uberleetrentino-sudtirolis-very-badajozis-a-painteractiv" + - "estfoldis-very-evillageis-very-goodyearis-very-niceis-very-sweet" + - "pepperis-with-thebandownloadisleofmanaustdaljenv-arubajddarchite" + - "cturealtorlandjeonnamerikawauejetztrentino-sued-tiroljevnakershu" + - "sdecorativeartshopwarendalenugjewelryjewishartgalleryjfkharkovao" + - "jgorajlljls-sto1jls-sto2jls-sto3jmphxn--32vp30hadselburgjnjaworz" + - "nosegawajoyentrentino-suedtiroljoyokaichibalashovhaebaruericsson" + - "gdalenviknakatsugawajpnjprshoujis-a-personaltrainerjurkoshimizum" + - "akiyosatokaizukamikoaniihamatamakawajimaritimoldell-ogliastrader" + - "koshunantankhmelnitskiyamarugame-hostyhostingkosugekotohiradomai" + - "nstitutekotourakouhokutamakiyosemitekounosupabasembokukiyosunnda" + - "lkouyamarylhurstjordalshalsenkouzushimasfjordenkozagawakozakizun" + - "okunimilitarykozowildlifestylekpnkppspdnshowtimeldalkrasnikahoku" + - "tokamachintaifun-dnsaliashwilliamhillkrasnodarkredstonekrelliank" + - "ristiansandcatsienarutolgakristiansundkrodsheradkrokstadelvalle-" + - "aostatic-accessigdalkryminamioguni5kumanotogawakumatorinotteroyk" + - "umejimashikis-a-republicancerresearchaeologicaliforniakumenantok" + - "igawakunisakis-a-rockstarachowicekunitachiarailwaykunitomigusuku" + - "leuvenetokashikis-a-socialistdlibestadkunneppuboliviajessheimper" + - "trixcdn77-secureggiocalabriakunstsammlungkunstunddesignkuokgroup" + - "ilotsilkhmelnytskyivaporcloudkuregruhostingkurgankurobeepilepsyk" + - "kylvenicekurogimimatakatoris-a-soxfankuroisogndalkuromatsunais-a" + - "-studentalkurotakikawasakis-a-teacherkassyno-dshiraois-a-linux-u" + - "sershirahamatonbetsurgerykushirogawakustanais-a-techietis-a-llam" + - "archeapigeelvinckfh-muensterkusuppliesimple-urlkutchanelverumina" + - "misanrikubetsupplykutnovecoregontrailroadkuzumakis-a-therapistoi" + - "akvafjordkvalsundkvamlidlugolekafjordvagsoygardendoftheinterneth" + - "nologykvanangenkvinesdalkvinnheradkviteseidatingkvitsoykwpspectr" + - "uminamitanekzmisakis-an-accountantshiraokamitondabayashiogamagor" + - "iziamisasaguris-an-actormisawamisconfusedmishimassivegridmissile" + - "wismillermisugitokorozawamitourismilezajskhplaystation-cloudyclu" + - "stermitoyoakemiuramiyazurecontainerdpolicemiyotamanomjondalenmlb" + - "fanmontrealestatefarmequipmentrentinoa-adigemonza-brianzapposird" + - "almonza-e-della-brianzaptokuyamasudamonzabrianzaramonzaebrianzam" + - "onzaedellabrianzamoonscaleforcemordoviamoriyamatsumaebashikshack" + - "netrentinoaadigemoriyoshiminamiashigaramormonstermoroyamatsumoto" + - "fukemortgagemoscowinbarclaycards3-external-1moseushistorymosjoen" + - "moskeneslupsklabudhabikinokawabarthagakhanamigawamosslzmosvikmps" + - "pbar2moteginowaniigatakahatakaishimogosenmoviemovimientokyotango" + - "uvichungnamdalseidfjordynathomebuiltwithdarkarmoymozilla-iotrent" + - "inoalto-adigemtranbymuginozawaonsenmuikaminoyamaxunispacemukoebe" + - "nhavnmulhouservegame-servermunakatanemuncienciamuosattemupimient" + - "aketomisatomobelementoraymurmansknx-serversicherungmurotorcraftr" + - "entinoaltoadigemusashinoharamuseetrentinos-tirolmuseumvereniging" + - "musicarbonia-iglesias-carboniaiglesiascarboniamutsuzawamy-vigorg" + - "emy-wanggoupilemyactivedirectorymyasustor-elvdalmycdmycloudnsmol" + - "arvikomaganemydattolocalhistorymyddnsgeekgalaxymydissentrentinos" + - "tirolmydobisshikis-an-actresshiratakahagithubpreviewsaikisofukus" + - "himangyshlakasamatsudopaashishikuis-a-musicianmydroboehringerike" + - "mydsmushcdn77-sslingmyeffectrentinosud-tirolmyfastblogermyfirewa" + - "llonieruchomoscienceandindustrynmyforuminamiuonumasoymyfritzmyft" + - "paccessnoasakakinokiamyhome-servermyjinomykolaivarggatrentinosud" + - "tirolmymailermymediapchurchaseljeepsondriodejaneirodoymyokohamam" + - "atsudamypepinbarclays3-fips-us-gov-west-1mypetsokndalmyphotoshib" + - "alatinombrendlyngeniwaizumiotsukumiyamazonawsglobalacceleratorah" + - "imeshimabaridagawakuyachimataikikonaikawachinaganoharamcoachampi" + - "onshiphoptobamadridnbloggerimo-siemenscaledekaasdaburmypictureso" + - "larssonmypsxn--3ds443gmysecuritycamerakermyshopblocksolognemysho" + - "pifymyspreadshoppingmythic-beastsolundbeckomakiyokawaramytis-a-b" + - "ookkeeperspectakasakitashiobaramytuleap-partnersomamyvncircustom" + - "er-ocimdbananarepublic66mywireitrentinosued-tirolplatterpioneerp" + - "lazaplcube-serverplumbingoplurinacionalpodhalepodlasiellaktyubin" + - "skiptveterinairealmpmnpodzonepohlpoivronpokerpokrovskommunalforb" + - "undpoliticarrdpolitiendapolkowicepoltavalle-d-aostaticsopotrenti" + - "nosuedtirolpomorzeszowindmillponpesaro-urbino-pesarourbinopesaro" + - "masvuotnaritakoelnponypordenonepornporsangerporsangugeporsgrunna" + - "nyokoshibahikariwanumatakinouepoznanpraxis-a-bruinsfanprdpresidi" + - "oprgmrprimetelemarkommuneprincipeprivatizehealthinsuranceprofesi" + - "onalprogressivestnesor-odalpromombetsupportrentinsud-tirolproper" + - "typrotectionprotonetrentinsudtirolprudentialpruszkowindowskrakow" + - "innersor-varangerprvcyberlevagangaviikanonjis-an-artistgstageprz" + - "eworskogpugliapulawypupippueblockbusterniiminamiawajikis-an-anar" + - "chistoricalsocietypvhagebostadpvtrentinsued-tirolpwcistrondheimm" + - "obilienissayokkaichiropractichernovtsyncloudurbanamexhibitioniss" + - "andiegomutashinainterhostsolutionsandoypythonanywherepaircraftin" + - "gvollolipopittsburghofficialpzqldqotoyohashimotoolsorfoldqponiat" + - "owadaqslgbtrentinsuedtirolqualifioappiwatequickconnectrentoyonak" + - "agyokutoyakolobrzegersundquicksytesorocabalestrandabergamoarekey" + - "machineustargardquipelementsorreisahayakawakamiichikawamisatotto" + - "ris-an-engineeringqvcitadeliverydyndns-at-homedepotenzamamidorit" + - "togitsumidatlantichirurgiens-dentistes-en-franceswidnikkokonoesw" + - "iebodzin-dsldswiftcoverswinoujscienceandhistoryswissmarterthanyo" + - "usynology-dsouthwest1-uslivinghistorytushuissier-justicetuvallea" + - "ostaverntuxfamilytwmailvevelstadvibo-valentiavibovalentiavideovi" + - "llasphinxn--3e0b707evinnicasacamdvrcampinagrandebuilderschmidtre" + - "-gauldalvinnytsiavipsinaappixolinovirginiavirtual-userveexchange" + - "virtualcloudvirtualservervirtualuserveftpizzavirtueeldomein-vigo" + - "rlicevirtuelvisakegawaviterboknowsitallvivolkenkundenvixn--3hcrj" + - "9civilisationisshingucciprianidyndns-at-workisboringrongausdalut" + - "skarpaczeladzvlaanderenvladikavkazimierz-dolnyvladimirvlogintoyo" + - "nezawavminanovologdanskongsvingervolvolkswagentspjelkavikomorots" + - "ukagawavolyngdalvoorlopervossevangenvotevotingvotoyonovps-hostro" + - "wiecivilizationiyodogawawithyoutuberspacekitagatargetmyipkomforb" + - "arcelonagawalbrzycharternopilawalesundgcanonoichinomiyakehimejib" + - "igawaustraliamuneues3-ap-south-1wiwatsukiyonortonwixsitewloclawe" + - "konskowolayangroupiemontewmcloudwmflabsrhtrevisojamisonwnextdire" + - "ctromsakatakkofuefukihabororosowawoodsideloittevaksdalworse-than" + - "dawowiospydebergwpdevcloudwpenginepoweredwphostedmailwpmucdnplan" + - "tsomnarviikamiokameokamakurazakitaurawpmudeveloperauniterois-cer" + - "tifiedunetlifyis-a-nascarfanwritesthisblogwroclawitdkoninjambylw" + - "tcirclerkstagets-itromsokamogawawtfastvps-serveronakanotoddenwuo" + - "zuwzmiuwajimaxn--45brj9civilwarmiasakuchinotsuchiurakawatchandcl" + - "ockaruizawaxn--45q11clanbibaidarmeniaxn--4gbriminingxn--4it168dx" + - "n--4it797konyvelohmusashimurayamarylandxn--4pvxs4allxn--54b7fta0" + - "ccldmailuxuryxn--55qw42gxn--55qx5dxn--5js045dxn--5rtp49cleverapp" + - "stmnxn--5rtq34kooris-a-photographerokuapphotographysioxn--5su34j" + - "936bgsgxn--5tzm5gxn--6btw5axn--6frz82gxn--6orx2rxn--6qq986b3xlxn" + - "--7t0a264clic20001wwwfarmsteadyndns-blogdnsanfranciscofreakunemu" + - "rorangecloudplatform0xn--80aaa0cvacationsrlxn--80adxhksrvaroyxn-" + - "-80ao21axn--80aqecdr1axn--80asehdbarefootballooningjovikaraganda" + - "ustrheimatunduhrennesoyokosukanramusementdllclstagehirnrtatarant" + - "ours3-ap-southeast-1xn--80aswgxn--80augustowithgoogleapiszxn--8l" + - "tr62kopervikhersonxn--8pvr4uxn--8y0a063axn--90a1aflakstadaokagak" + - "icks-assnasaarlandxn--90a3academiamicable-modemoneyxn--90aeropor" + - "talaheadjudaicadaquestorebaselectritonxn--90aishobarakawagoexn--" + - "90amcdirxn--90azhytomyravendbargainstancempresashibetsukuibmdisc" + - "ourses3-sa-east-1xn--9dbhblg6dietrusteexn--9dbq2axn--9et52uxn--9" + - "krt00axn--andy-iraxn--aroport-byaotsurnadalxn--asky-iraxn--aursk" + - "og-hland-jnbarreauctionfabricafjs3-us-east-2xn--avery-yuasakuhok" + - "ksundxn--b-5gaxn--b4w605ferdxn--balsan-sdtirol-nsbstorfjordxn--b" + - "ck1b9a5dre4clicketcloudcontrolappgafanxn--bdddj-mrabdxn--bearalv" + - "hki-y4axn--berlevg-jxaxn--bhcavuotna-s4axn--bhccavuotna-k7axn--b" + - "idr-5nachikatsuuraxn--bievt-0qa2xn--bjarky-fyasakaiminatoyookana" + - "zawaxn--bjddar-ptarnobrzegyptianxn--blt-elabourxn--bmlo-grainger" + - "xn--bod-2natalxn--bozen-sdtirol-2obanazawaxn--brnny-wuacademy-fi" + - "rewall-gatewayxn--brnnysund-m8accident-investigation-aptibleadpa" + - "gesquare7xn--brum-voagatrvestre-slidreportrogstadxn--btsfjord-9z" + - "axn--bulsan-sdtirol-nsbarrel-of-knowledgeappleborkarasjohkameyam" + - "atotakadauthgear-stagingjesdalimanowarudaukraanghkembuchikumagay" + - "agawakepnoipirangalsaceobiragrocerybnikeisenbahnatuurwetenschapp" + - "engineastcoastaldefenceastus2xn--c1avgxn--c2br7gxn--c3s14mincomc" + - "astresindevicenzaporizhzhiaxn--cck2b3barrell-of-knowledgecompute" + - "rhistoryofscience-fictionredumbrellaakesvuemieleccemrxn--cckwcxe" + - "tdxn--cesena-forl-mcbremangerxn--cesenaforl-i8axn--cg4bkis-found" + - "ationxn--ciqpnxn--clchc0ea0b2g2a9gcdxn--comunicaes-v6a2oxn--corr" + - "eios-e-telecomunicaes-ghc29axn--czr694barsycenterprisesakikuchik" + - "useihicampobassociatest-iservecounterstrikeu-1xn--czrs0try-snowp" + - "lowiczest-le-patronxn--czru2dxn--czrw28barsyonlinewhampshirealty" + - "dalpha-myqnapcloud66xn--d1acj3basicservercelliguriauthgearappspa" + - "cehosted-by-previderhclouddnslivefsnillfjorddnss3-ca-central-1xn" + - "--d1alfaromeoxn--d1atrycloudflareplantationxn--d5qv7z876clickris" + - "inglesangoxn--davvenjrga-y4axn--djrs72d6uyxn--djty4koryokamikawa" + - "nehonbetsurutaharaxn--dnna-grajewolterskluwerxn--drbak-wuaxn--dy" + - "ry-iraxn--e1a4clinichitachinakagawassamukawatarikuzentakatairave" + - "nnagasakimobetsuldaluccaravantaarparmatsuuraxn--eckvdtc9dxn--efv" + - "n9storjcloud-ver-jpchristmasakinderoyxn--efvy88haibarakitahataka" + - "nabeautysfjordxn--ehqz56nxn--elqq16hair-surveillancexn--eveni-0q" + - "a01gaxn--f6qx53axn--fct429kosaigawaxn--fhbeiarnxn--finny-yuaxn--" + - "fiq228c5hstpetersburgxn--fiq64basilicataniauthordalandds3-eu-cen" + - "tral-1xn--fiqs8streamscompute-1xn--fiqz9studioxn--fjord-lraxn--f" + - "jq720axn--fl-ziaxn--flor-jraxn--flw351exn--forl-cesena-fcbsstudy" + - "namisches-dnsortlandxn--forlcesena-c8axn--fpcrj9c3dxn--frde-gran" + - "drapidstuff-4-salexn--frna-woaraisaijosoyrovigotsukisosakitagawa" + - "xn--frya-hraxn--fzc2c9e2cliniquedapliernewyorkshirebungoonordest" + - "e-idchitosetoeigersundurhamburgroks-thisayamanobeokakegawaxn--fz" + - "ys8d69uvgmailxn--g2xx48clintonoshoesanjotelulubindaluzernxn--gck" + - "r3f0fauskedsmokorsetagayaseralingenoamishirasatogliattis-a-celti" + - "csfanxn--gecrj9clothingdustdatadetectksatxn--12c1fe0bradescotlan" + - "dyndns-freeboxosascoli-picenordkapparochernigovernmentlon-2xn--g" + - "gaviika-8ya47hakatanorfolkebibleksvikatsushikabeebyteapplinzis-a" + - "-financialadvisor-aurdalxn--gildeskl-g0axn--givuotna-8yasugitlab" + - "orxn--gjvik-wuaxn--gk3at1exn--gls-elacaixaxn--gmq050is-gonexn--g" + - "mqw5axn--gnstigbestellen-zvbrplsbxn--3oq18vl8pn36axn--gnstiglief" + - "ern-wobihirosakikamijimatsusakahoginankokubunjis-into-animegurow" + - "nproviderxn--h-2failxn--h1aeghakodatexn--h1ahnxn--h1alizxn--h2br" + - "eg3evenestufftoread-booksnesoruminamiyamashirokawanabelaudibleas" + - "ingxn--h2brj9c8cn-northwest-1xn--h3cuzk1discountysnestuttgartroa" + - "ndinosaurepbodynamic-dnsoundcastronomy-routerxn--hbmer-xqaxn--hc" + - "esuolo-7ya35basketballfinanzgorzeleccogladedyn-berlincolnavigati" + - "onavoizumizakiitatebayashiibahccavuotnagaraholtalenglandiscovery" + - "ggeeu-2xn--hery-iraxn--hgebostad-g3axn--hkkinen-5waxn--hmmrfeast" + - "a-s4accident-prevention-k3surreyxn--hnefoss-q1axn--hobl-iraxn--h" + - "oltlen-hxaxn--hpmir-xqaxn--hxt814exn--hyanger-q1axn--hylandet-54" + - "axn--i1b6b1a6a2exn--imr513nxn--indery-fyasuokannamiharuxn--io0a7" + - "is-into-carshisohugheshisuifuelluciancrmrecruitrentino-stirolxn-" + - "-j1adplatformshangrilaquilanxessooxn--j1aefbsbxn--1ck2e1bar0emma" + - "fann-arboretumbriamallamaceiobbcg12038xn--j1ael8batochiokinoshim" + - "aizurugbyglandroverhallahppiacenzachpomorskienavuotnapleskns3-us" + - "-gov-west-1xn--j1amhakonexn--j6w193gxn--jlq480n2rgxn--jlq61u9w7b" + - "atsfjordishakotanayorovnobserverxn--jlster-byatominamidaitomanch" + - "esterxn--jrpeland-54axn--jvr189miniserverxn--k7yn95exn--karmy-yu" + - "axn--kbrq7oxn--kcrx77d1x4axn--kfjord-iuaxn--klbu-woaxn--klt787dx" + - "n--kltp7dxn--kltx9axn--klty5xn--3pxu8konsulatrobeeldengeluidvare" + - "servdxn--koluokta-7ya57hakubahcavuotnagaivuotnagaokakyotambabydg" + - "oszczecinemagnetnedalipaywhirlxn--kprw13dxn--kpry57dxn--kput3is-" + - "into-cartoonshitaramaxn--krager-gyatsukanoyaltakashimarnardalxn-" + - "-kranghke-b0axn--krdsherad-m8axn--krehamn-dxaxn--krjohka-hwab49j" + - "devcloudfunctionshizukuishimofusaitoshimatsuzakis-a-patsfanxn--k" + - "snes-uuaxn--kvfjord-nxaxn--kvitsy-fyatsushiroxn--kvnangen-k0axn-" + - "-l-1fairwindsusakis-an-entertainerxn--l1accentureklamborghinikol" + - "aeventsusonoxn--laheadju-7yawaraxn--langevg-jxaxn--lcvr32dxn--ld" + - "ingen-q1axn--leagaviika-52bauhauspostman-echocolatemasekd1xn--le" + - "sund-huaxn--lgbbat1ad8jdfaststacksaves-the-whalessandria-trani-b" + - "arletta-andriatranibarlettaandriaxn--lgrd-poacctrysiljanxn--lhpp" + - "i-xqaxn--linds-pramericanartunespeedpartnerxn--lns-qlavagiskexn-" + - "-loabt-0qaxn--lrdal-sraxn--lrenskog-54axn--lt-liacngrossetouchih" + - "ayaakasakawaharaxn--lten-granexn--lury-iraxn--m3ch0j3axn--mely-i" + - "raxn--merker-kuaxn--mgb2ddesuzakanagawaxn--mgb9awbfbx-oslocuscou" + - "ntryestateofdelawareclaimsavonarusawaxn--mgba3a3ejtunkongsbergxn" + - "--mgba3a4f16axn--mgba3a4fra1-deltaitogakushimotoganexn--mgba7c0b" + - "bn0axn--mgbaakc7dvfbxostrowwlkpmguovdageaidnulvikashiwazakiwielu" + - "nnerxn--mgbaam7a8hakuis-a-geekatsuyamarshallstatebankaufentigerx" + - "n--mgbab2bdxn--mgbah1a3hjkrdxn--mgbai9a5eva00bellunord-aurdalvda" + - "laskanittedallasalleangaviikadenagahamaroyerxn--mgbai9azgqp6jeju" + - "niperxn--mgbayh7gpalermomahachijolsterxn--mgbbh1a71exn--mgbc0a9a" + - "zcgxn--mgbca7dzdoxn--mgbcpq6gpa1axn--mgberp4a5d4a87gxn--mgberp4a" + - "5d4arxn--mgbgu82axn--mgbi4ecexposedxn--mgbpl2fhskypexn--mgbqly7c" + - "0a67fbcnpyatigorskolecznagasukexn--mgbqly7cvafr-1xn--mgbt3dhdxn-" + - "-mgbtf8flapymnturystykaneyamazoexn--mgbtx2beneventodayombolzano-" + - "altoadigeologyomitanoceanographiqueu-3xn--mgbx4cd0abbvieeexn--mi" + - "x082fedorainfraclouderaxn--mix891fedorapeoplegallodingenxn--mjnd" + - "alen-64axn--mk0axin-the-bandais-into-gamessinazawaxn--mk1bu44cns" + - "annanxn--mkru45is-leetrentino-sud-tirolxn--mlatvuopmi-s4axn--mli" + - "-tlavangenxn--mlselv-iuaxn--moreke-juaxn--mori-qsakuragawaxn--mo" + - "sjen-eyawatahamaxn--mot-tlazioxn--mre-og-romsdal-qqbuseranishiar" + - "itakurashikis-lostre-toteneis-a-nursellsyourhomeftphonefosshirak" + - "okamiminershiranukamisunagawaxn--msy-ula0hakusanagochijiwadefini" + - "mamateramochizukinkobierzycexn--mtta-vrjjat-k7afedoraprojectozsd" + - "elmenhorstalbansaxoxn--muost-0qaxn--mxtq1minisitexn--ngbc5azdxn-" + - "-ngbe9e0axn--ngbrxn--41axn--nit225kosakaerodromegallupaascolipic" + - "eno-ipifony-1xn--nmesjevuemie-tcbalsan-sudtirollagdenesnaaseinet" + - "-freaksuzukananiikappudoxn--nnx388axn--nodessakurais-not-certifi" + - "edxn--nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn--ntsq17gxn--ntter" + - "y-byaeservehalflifeinsurancexn--nvuotna-hwaxn--nyqy26axn--o1ache" + - "rnihivgubsuzukis-bytomaritimekeepingxn--o3cw4haldenxn--o3cyx2axn" + - "--od0algxn--od0aq3bentleyonagoyautomotivelandeportexasnesoddenma" + - "rkhangelskjakdnepropetrovskiervaapsteiermarkanzakiwakunigamihokk" + - "aidovre-eikerxn--ogbpf8flatangerxn--oppegrd-ixaxn--ostery-fyaxn-" + - "-osyro-wuaxn--otu796dxn--p1acfeiraquarelleaseeklogeschokokekscho" + - "koladenxn--p1ais-savedxn--pgbs0dhlx3xn--porsgu-sta26fermockasser" + - "versaillescholarshipschoolsztynsettsurfashionxn--pssu33lxn--pssy" + - "2uxn--q7ce6axn--q9jyb4cntmparsannohelplfinancialvivanovoldaxn--q" + - "cka1pmckinseyxn--qqqt11minnesotaketakayamassa-carrara-massacarra" + - "ramassabusinessebykleclerchromediatechnologyxn--qxa6axn--qxamste" + - "rdamnserverbaniaxn--rady-iraxn--rdal-poaxn--rde-ulaxn--rdy-0naba" + - "ris-slickhakassiaxn--rennesy-v1axn--rhkkervju-01aferraraxn--rhol" + - "t-mragowoltlab-democraciaxn--rhqv96gxn--rht27zxn--rht3dxn--rht61" + - "exn--risa-5naturalhistorymuseumcenterxn--risr-iraxn--rland-uuaxn" + - "--rlingen-mxaxn--rmskog-byaxn--rny31halsaitamatsukuris-a-greenxn" + - "--rovu88beppublishproxyonagunicloudiskussionsbereichattanooganor" + - "ddalimitedisrechtranakaiwamizawawsmpplanetariumcpreservationfsho" + - "strodawarautoscanadaeguambulancentralus-2xn--rros-granvindafjord" + - "xn--rskog-uuaxn--rst-0naturalsciencesnaturellesvalbardunloppacif" + - "icitichiryukyuragifuchungbukharaumalatvuopmicrosoftbankariyamein" + - "forumzxn--rsta-framercanvasvcivilaviationissedaluroyxn--rvc1e0am" + - "3exn--ryken-vuaxn--ryrvik-byaxn--s-1faithammarfeastafricapitalon" + - "ewspaperxn--s9brj9collectionxn--sandnessjen-ogbeskidyn-ip24lima-" + - "cityeatselinogradimo-i-rana4u2-localhostrolekaniepce12hpalmasera" + - "ti234xn--sandy-yuaxn--sdtirol-n2axn--seral-lraxn--ses554gxn--sgn" + - "e-graphoxn--42c2d9axn--skierv-utazasveioxn--skjervy-v1axn--skjk-" + - "soaxn--sknit-yqaxn--sknland-fxaxn--slat-5naturbruksgymnxn--slt-e" + - "labcieszynh-serveblogspotaribeiraogakibichuoxn--smla-hraxn--smna" + - "-gratangentlentapisa-geekoseis-a-playershiftcryptonomichigangwon" + - "xn--snase-nraxn--sndre-land-0cbestbuyshouses3-us-west-1xn--snes-" + - "poaxn--snsa-roaxn--sr-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn" + - "--sr-varanger-ggbetainaboxfusejnyanagawalmartattoolforgerockartu" + - "zyoriikarasjokarasuyamarriottaxihuanhlfanhs3-us-west-2xn--srfold" + - "-byaxn--srreisa-q1axn--srum-gratis-a-bulls-fanxn--stfold-9xaxn--" + - "stjrdal-s1axn--stjrdalshalsen-sqbhzcasadelamonedanceu-4xn--stre-" + - "toten-zcbieidskoguchikuzenikonanporocelotenkawaveroykenflfanpach" + - "igasakids3-eu-west-1xn--t60b56axn--tckwebthingsvelvikomvuxn--3bs" + - "t00minamiminowaxn--tiq49xqyjelasticbeanstalkharkivanylvenneslask" + - "errylogisticshizuokamitsuexn--tjme-hraxn--tn0agrinetbankosherbro" + - "okegawaxn--tnsberg-q1axn--tor131oxn--trany-yuaxn--trentin-sd-tir" + - "ol-rzbielawaltervistainaioirasebastopologyeongnamegawafaicloudin" + - "eat-urlimoliseminevje-og-hornnes3-website-ap-northeast-1xn--tren" + - "tin-sdtirol-7vbiellair-traffic-controlleyoshiokanumazuryukiiyama" + - "nouchikuhokuryugasakitanakagusukumodumeloyalistoragextraspace-to" + - "-rentalstomakomaibaravocatanzarowbq-aurskog-holandingivingjemnes" + - "3-ap-southeast-2xn--trentino-sd-tirol-c3bieszczadygeyachiyodaeje" + - "onbukcoalwaysdatabaseballangenkainanaejrietisalatinabenonicbcn-n" + - "orth-1xn--trentino-sdtirol-szbievat-band-campaniavoues3-eu-west-" + - "2xn--trentinosd-tirol-rzbifukagawashingtondclk3xn--trentinosdtir" + - "ol-7vbigv-infolldalivornow-dns3-website-ap-southeast-1xn--trenti" + - "nsd-tirol-6vbihorologyukuhashimoichinosekigaharaxarnetflixilovec" + - "ollegefantasyleaguernseyokotebetsuikirkenes3-eu-west-3utilities-" + - "1xn--trentinsdtirol-nsbikedaemonmoutheworkpccweddinglassassinati" + - "onalheritagexn--trgstad-r1axn--trna-woaxn--troms-zuaxn--tysvr-vr" + - "axn--uc0atvestre-totennishiawakuraxn--uc0ay4axn--uist22hamurakam" + - "igoris-a-gurunusualpersonxn--uisz3gxn--unjrga-rtarumizusawaxn--u" + - "nup4yxn--uuwu58axn--vads-jraxn--valle-aoste-ebbtuscanyxn--valle-" + - "d-aoste-ehbodoes-itcouldbeworldxn--valleaoste-e7axn--valledaoste" + - "-ebbvadsoccertmgrazerbaijan-mayengerdalcesvizzeraxn--vard-jraxn-" + - "-vegrshei-c0axn--vermgensberater-ctbitsvn-reposouthcarolinarviko" + - "monoticiashowaxn--vermgensberatung-pwblogoiplatter-appinkomatsus" + - "himarumorimachidaxn--vestvgy-ixa6oxn--vg-yiabkhaziaxn--vgan-qoax" + - "n--vgsy-qoa0jelenia-goraxn--vgu402colognexus-3xn--vhquvestvagoyx" + - "n--vler-qoaxn--vre-eiker-k8axn--vrggt-xqadxn--vry-yla5gxn--vuq86" + - "1bilbaokinawashirosatobishimagentositecnologiazurewebsiteshikaga" + - "miishibukawakkanaibetsubamericanfamilydsmynasushiobarackmazeplay" + - "okozebinagisochildrensgardenaval-d-aosta-valleyolasitebinordland" + - "evelopmentatsunobninskaracoldwarszawaustevollillyboltateshinanom" + - "achimkentateyamajudygarlanddnskingitpagefrontappalmspringsakeret" + - "rosnubaltimore-og-romsdalp1xn--w4r85el8fhu5dnraxn--w4rs40lxn--wc" + - "vs22dxn--wgbh1colonialwilliamsburgroundhandlingroznyxn--wgbl6axn" + - "--xhq521billustrationrenderxn--xkc2al3hye2axn--xkc2dl3a5ee0hands" + - "onyxn--y9a3aquariumintereisenxn--yer-znaturhistorischeswidnicart" + - "oonartdecologiaxn--yfro4i67oxn--ygarden-p1axn--ygbi2ammxn--45br5" + - "cylxn--ystre-slidre-ujbiocpanamatsushigexn--zbx025dxn--zf0ao64ax" + - "n--zf0avxlxn--zfr164bipanasonicasertaipeidsvollombardiadembetsuk" + - "ubankaratexnbayxz" + "bservercellikes-piedmonticellocalzoneastasiaetnaamesjevuemielnod" + + "umcpeastcoastaldefenceastus2038birdartcenterprisecloudaccesscamb" + + "ridgeiseiroumuenchenishiazaindielddanuorrindigenamsosnowiecherni" + + "vtsiciliabirkenesoddtangenovaragusarts3-website-eu-west-1birthpl" + + "acebitbucketrzynishigovtatsunocelotenkawabjarkoyoshiokanumazuryu" + + "kindowapblogsiteleafamilycompany-2bjerkreimbaltimore-og-romsdalp" + + "ha-myqnapcloud66bjugnieznorddalombardynalias3-website-sa-east-1b" + + "lackfridayukuhashimoichinosekigaharabloombergbauernishiharabloxc" + + "ms3-website-us-east-1bluebitemasekd1bmoattachments3-website-us-w" + + "est-1bms3-website-us-west-2bmweeklylotteryurihonjournalistjohnis" + + "hiizunazukindustriabnrwegroweibolognagareyamakeupowiathletajimag" + + "eandsoundandvision-riopretochigiftsalangenishikatakatsukindustri" + + "esteamfamberkeleyusuharabomloabaths-heilbronnoysundivttasvuotnak" + + "aniikawatanagurabondigitaloceanspacesalon-1bonnishikatsuragit-re" + + "posts-and-telecommunicationsaltdalomzaporizhzhegurinfinitinsureg" + + "ruhostingloboavistanbulsan-sudtirolondonetskaratsuginamikatagami" + + "hokkaidovre-eikerbookinghostedpictetnedalondrinamsskoganeintelli" + + "gencebookonlinewjerseyusuisservegame-serverboomlajollamericanexp" + + "ressexyuufcfanishikawazukamisatokaizukameyamatotakadaboschaeffle" + + "rdalorenskoglogoweirbostik-serveronagasakikuchikuseihicampobasso" + + "ciatest-iservecounterstrikebostonakijinsekikogentappsselfiparach" + + "utingloppenzaolbia-tempio-olbiatempioolbialystokkeliwebhostinglu" + + "gsjcbnpparibashkiriabotanicalgardeno-stagingmbhartipschlesisches" + + "aludiyuzawabotanicgardenishimerabotanychernovtsyncloudrangedalot" + + "tokorozawabouncemerckmsdnipropetrovskjervoyageometre-experts-com" + + "ptablesalvadordalibabalena-devicesalzburgminakamichiharabounty-f" + + "ullensakerrypropertiesamegawaboutiquebecommerce-shopitsitemp-dns" + + "watch-and-clockerboutireserve-onlinewmexicodyn-o-saurlandesamnan" + + "gerbozen-sudtirolouvreisenishinomiyashironocparaglidingmodelling" + + "mxboxfordelmenhorstalbansampaleoddabozen-suedtirolpusercontentat" + + "toolforgerockartuzybplaceducatorprojectaxihuanishinoomotegohtawa" + + "ramotoineppubtlsamsclubartowellbeingzonebrandywinevalleybrasilia" + + "bresciabrindisibenikikugawashtenawdevcdnaccessobetsuitagajobserv" + + "ableusercontentcmeloyalistoragebristoloseyouriparisor-fronishino" + + "shimatsumotofukebritishcolumbialowiezaganquannefrankfurtcp4broad" + + "castlebtimnetzlgretakaharussiabroadwaybroke-itvedestrandray-dnst" + + "racebrokerbrothermesaverdealerbrowsersafetymarketsamsungrimstadr" + + "ayddns5ybrumunddalublindesnesandnessjoenishiokoppegardraydnsupda" + + "terbrunelastxenishitosashimizunaminamibosognebrusselsandoybruxel" + + "lesandvikcoromantovalle-daostavangerbryanskodjedugit-pagespeedmo" + + "bilizeroticagliaricoharuhrbrynewportgorybuskerudrobaknoluoktachi" + + "kawafflecellclstagehirnishiwakinterhostsolutionsanfranciscofreak" + + "unekobayashikaoirmembersangomniweatherchannelucaniabuzentsujiieb" + + "uzzwesteuropenairbusantiquest-a-la-maisondre-landroidrrbwestfale" + + "nissandiegomurabzhitomirbzzcoloradoplateaudiopsysantacruzsantafe" + + "djeffersoncolumbusheycommunecommunity-prochowicecomobaranzancomp" + + "aremarkerryhotelsantamariakecomsecaaskoyabearalvahkievennodesaba" + + "erobaticketsantoandreamhostersanukintuitjxjavaldaostathellevange" + + "rcondoshichinohealth-carereformemergencyahabaghdadultkmaxxn--0tr" + + "q7p7nnconferenceconstructionconsuladogadollsaobernardoconsultant" + + "hropologyconsultingrossetouchihayaakasakawaharacontactksatxn--11" + + "b4c3dyndns-blogdnsaogoncarriercontagematsubaraumalatvuopmicrosof" + + "tbankasaokamikoaniihamatamakawajimaritimodumemorialcontemporarya" + + "rteducationalchikugodonnagatorogersvp4contractorskenconventuresh" + + "inodearthruherecipescaracalvinklein-berlindaskvollcookingchannel" + + "sdvrdnsdojoetsuwanouchikujogaszkolancashireclaimsaotomeiwamashik" + + "okuchuocoolcooperativano-frankivskygearapparochernigovernmentlon" + + "-2copenhagencyclopedichitosetoeidsvollucernecoproductionsapporoc" + + "orporationcorsicahcesuoloansardegnaroycorvettempurlcosenzakopane" + + "lblagrarchaeologyeongbuk0cosidnsfor-better-thanawatchandclockash" + + "ibatakasakiwakunigamilanotairestaurantmparsardiniacostumedicalta" + + "nissettaipeigersundyndns-freeboxosascoli-picenordlandyndns-homed" + + "nsarlcouchpotatofriesarpsborgroundhandlingroznycoukashiharacounc" + + "ilcouponsarufutsunomiyawakasaikaitabashijonawatecozoravennaharim" + + "alborkashiwaracqcxn--12c1fe0bradescotlandyndns-ipartinuyamashina" + + "tsukigatakaokalmykiacranbrookuwanalyticsxn--12cfi8ixb8lcrdyndns-" + + "mailcreditcardyndns-office-on-the-webercreditunioncremonashgabad" + + "addjaguarqhachinohedmarkashiwazakiwielunnercrewfarsundyndns-pics" + + "asayamatta-varjjatoyosatoyokawacricketoyotapartsasebofagemologic" + + "allynxn--12co0c3b4evalled-aostakinouecrimeast-kazakhstanangercro" + + "tonecrownipartycrsaskatchewancruisesassarinvestmentsaudacuisinel" + + "lancasterculturalcentertainmentoyotomiyazakinzais-a-candidatecun" + + "eocupcakecuritibackyardsauheradyndns-remotewdyndns-serverdalcurv" + + "alledaostakkokonoecymruovatmallorcafederation-webpaashorokanaiec" + + "yonabarumemsettlersavannahgacyouthachiojiyaitakahashimamakisosak" + + "itagawaferraraferrarivneferrerotikagoshimalopolskanlandyndns-wik" + + "irafetsundyndns-workshoparenakanojohanamakinoharafgujoinvilleitu" + + "ngsenfhvalerfidoomdnsiskinkyotobetsulikescandyn53fieldyndns1figu" + + "eresinstagingulenfilateliafilegear-audnedalnfilegear-dealstahaug" + + "esunderseaportsinfolionetworkangerfilegear-gbizfilegear-iefilege" + + "ar-jpmorganfilegear-sg-1filminamifuranofinalfinancefineartschule" + + "finlandynnsaveincloudyndns-webhareidsbergentingrpasadenarashinof" + + "innoyfirebaseappassenger-associationfirenetoyourafirenzefireston" + + "efirewebhopocznordreisa-hockeynutazurestaticappspaceusercontento" + + "ystre-slidrettozawafirmdalegoldpoint2thisamitsukefishingolffansc" + + "hulserverfitjarvodkagaminogiessennanjobojis-a-catererfitnessettl" + + "ementozsdeloittenrissagaeroclubmedecincinnativeamericanantiquest" + + "-mon-blogueurodirumaceratabitorderimo-siemenscaledekaascolipicen" + + "oboribetsuckschwarzgwangjuifminamiiserniafjalerfldrvallee-aoster" + + "oyflekkefjordynservebbsaves-the-whalessandria-trani-barletta-and" + + "riatranibarlettaandriaflesbergunmaniwakurateflickragerokunohealt" + + "hcareerschweizflirfloginlinefloraflorencefloridatsunangojomedici" + + "nakaiwamizawatchesciencecentersciencehistoryfloripaderbornfloris" + + "tanohataitogliattis-a-celticsfanfloromskoguovdageaidnulvikasukab" + + "edzin-addrammenuorochesterflowerscientistordalfltrani-andria-bar" + + "letta-trani-andriaflynnhosting-clusterfndynulmetacentrumeteorapp" + + "assagensavonarusawafnwkasumigaurayasudafoodnetworkdalfor-ourfor-" + + "somedio-campidano-mediocampidanomediofor-theaterforexrothachirog" + + "atakahatakaishimogosenforgotdnscjohnsonforli-cesena-forlicesenaf" + + "orlillehammerfeste-ipatriaforsaleikangerforsandasuoloftraniandri" + + "abarlettatraniandriafortalfortexascrapper-sitefortmissoulanciafo" + + "rtworthadanorfolkebibleluxembourgushikamifuranore-og-uvdalfosnes" + + "crappingwiddleksvikasuyanaizuerichardlillyfotranoyfoxafozfranami" + + "zuhobby-sitextileirfjordynv6francaiseharafranziskanerimaringatla" + + "ntaiwanairforcechireadthedocscbgxn--1ctwolominamataobaomoriguchi" + + "haraffleentry-snowplowiczeladzfredrikstadtvscrysecuritytacticser" + + "vehalflifeinsurancefreeddnsfreebox-oservehttpbin-butterfreedeskt" + + "oppdalfreemasonryfreemyiphosteurovisionfreesitefreetlservehumour" + + "freiburgfreseniuscultureggio-calabriafribourgfriuli-v-giuliafriu" + + "li-ve-giuliafriuli-vegiuliafriuli-venezia-giuliafriuli-veneziagi" + + "uliafriuli-vgiuliafriuliv-giuliafriulive-giuliafriulivegiuliafri" + + "ulivenezia-giuliafriuliveneziagiuliafriulivgiuliafrlfroganservei" + + "rchonanbulsan-suedtirolukowestus2frognfrolandynvpnpluscountryest" + + "ateofdelawarecreationfrom-akrehamnfrom-alfrom-arfrom-azimuthatog" + + "ayabukihokumakogenglandyroyrvikingruenoharafrom-capetownnews-sta" + + "gingfrom-coffeedbackplaneappaviancargodaddyn-vpndnserveminecraft" + + "ranslatefrom-ctransportefrom-dchoseikarugamvikariyaltakasagotsuk" + + "isofukushimangyshlakasamatsudopaasnesoddenmarkhangelskjakdneprop" + + "etrovskiervaapsteiermarkarlsoyfrom-deatnuniversityfrom-flanderse" + + "rvemp3from-gaulardalfrom-hichisodegaurafrom-iafrom-idfrom-ilfrom" + + "-in-brbar0from-kservep2pfizerfrom-kyowariasahikawafrom-langevagr" + + "igentomologyeonggiehtavuoatnabudapest-a-la-masion-rancherkasydne" + + "yfrom-malselvendrellfrom-mdfrom-medizinhistorischeservepicserveq" + + "uakefrom-midsundfrom-mnfrom-modalenfrom-mservesarcasmatartanddes" + + "ignfrom-mtnfrom-nchoshibuyachtsanjotelulubindaluroyfrom-ndfrom-n" + + "efrom-nhktransurlfrom-njservicesevastopolefrom-nminamiizukaminok" + + "awanishiaizubangefrom-nvallee-d-aosteigenfrom-nynysagamiharafrom" + + "-ohdattorelayfrom-oketogonohejis-a-chefastly-terrariuminamiechiz" + + "enfrom-orfrom-padoval-daostavalleyfrom-pratogurafrom-ris-a-conse" + + "rvativegasevenassisicilyfrom-schoenbrunnfrom-sdscloudfrom-tnfrom" + + "-txn--1lqs03nfrom-utsiracusaikirovogradoyfrom-vald-aostarostwodz" + + "islawhalingfrom-vtrapaniizafrom-wafrom-wiardwebspacefrom-wvallee" + + "aosteinkjerusalembroideryfrom-wyfrosinonefrostaplesewhoswholding" + + "small-webredirectmeeresistancefroyahooguyfruskydivingfstcgroupgf" + + "oggiafujiiderafujikawaguchikonefujiminokamoenairguardiannakadoma" + + "rineat-urlfujinomiyadattowebcampinashikiminohostfoldnavyfujiokay" + + "amalvikaszubyfujisatoshonairlinebraskaunicommbankatowicefujisawa" + + "fujishiroishidakabiratoridebianfujitsurugashimamurogawafujiyoshi" + + "davvenjargap-northeast-3fukayabeatsharis-a-cpadualstackatsushika" + + "beebyteapplinzis-a-cubicle-slavellinodeobjectsharpharmacienshawa" + + "iijimarburgfukuchiyamadavvesiidappnodebalancertificationfukudomi" + + "gawafukuis-a-democratravelchannelfukumitsubishigakiryuohkurafuku" + + "okazakisarazure-mobileirvikatsuyamarriottravelersinsurancefukuro" + + "ishikarikaturindalfukusakishiwadazaifudaigokaseljordfukuyamagata" + + "jimifunefunabashiriuchinadafunagatajiris-a-designerfunahashikami" + + "amakusatsumasendaisenergyfundaciofunkfeuerfuoiskujukuriyamandalf" + + "uosskoczowienfurnitureggio-emilia-romagnakasatsunairportland-4-s" + + "alernogatabusebastopologyeongnamegawafaicloudinedre-eikerfurubir" + + "afurudonostiaafurukawairtelebitbridgestoneen-rootaruis-a-doctorf" + + "usoftwarezzoologyfussaintlouis-a-anarchistoireggiocalabriafutaba" + + "yamaguchinomihachimanagementrdfutboldlygoingnowhere-for-morenaka" + + "tombetsumitakagiizefuttsurugimperiafuturecmshellaspeziafuturehos" + + "tingfuturemailingfvghangglidinghangoutsystemscloudsitehannanmoku" + + "izumodenakayamansionshimojis-a-greenhannorthwesternmutualhanyuze" + + "nhapmircloudletshimokawahappounjargaharstadharvestcelebrationhas" + + "amanxn--1lqs71dhasaminami-alpshimokitayamattelekommunikationhash" + + "banghasudahasura-appharmacyshimonitayanagitapphdfcbankazohasvika" + + "zteleportlligatrendhostinghatoyamazakitahiroshimaoris-a-gurunusu" + + "alpersonhatsukaichikaiseiyoichippubetsubetsugarunzenhattfjelldal" + + "hayashimamotobungotakadagestangeorgeorgiahazuminobusellfylkesbib" + + "lackbaudcdn-edgestackhero-networkinggroupliguriahelsinkitakamiiz" + + "umisanofidelitysvardontexistmein-iservebeero-stagehembygdsforbun" + + "dhemneshimonosekikawahemsedalhepforgeblockshimosuwalkis-a-hard-w" + + "orkershimotsukeheroyhgtvalleedaostehidorahigashiagatsumagoianiah" + + "igashichichibunkyonanaoshimakanegasakilatironrenderhigashihirosh" + + "imanehigashiizumozakitakatakamoriokakudamatsuehigashikagawahigas" + + "hikagurasoedahigashikawakitaaikitakyushuaiahigashikurumeetrentin" + + "-sud-tirolhigashimatsushimapartmentshimotsumayfirstockholmestran" + + "dhigashimatsuyamakitaakitadaitoigawahigashimurayamamotorcycleshi" + + "nichinanhigashinarusells-for-lesshinjournalismailillesandefjordh" + + "igashinehigashiomitamamurausukitamihamadahigashiosakasayamanakak" + + "ogawahigashishirakawamatakanabeautysfjordhigashisumiyoshikawamin" + + "amiaikitamotosumy-gatewayhigashitsunortonhigashiurawa-mazowszexn" + + "etlifyis-a-hunterhigashiyamatokoriyamanashifteditorxn--1qqw23ahi" + + "gashiyodogawahigashiyoshinogaris-a-knightpointtohoboleslawiecono" + + "miastalowa-wolawawsmpplanetariuminamimakis-a-landscaperugiahirai" + + "zumisatohnoshoooshikamaishimodatehirakatashinagawahiranairtraffi" + + "cplexus-1hirarahiratsukaerusrcfastlylbananarepublic66hirayaizuwa" + + "kamatsubushikusakadogawahistorichouseshinjukumamotoyamasfjordenh" + + "itachiomiyagildeskaliszhitachiotagophiladelphiaareadmyblogsytehi" + + "traeumtgeradell-ogliastraderhjartdalhjelmelandholeckochikushinon" + + "senasakuchinotsuchiurakawaholidayhomegoodshinkamigototalhomeiphi" + + "latelyhomelinkyard-cloudjiffyresdalhomelinuxn--2m4a15ehomeoffice" + + "homesecuritymacaparecidahomesecuritypchoyodobashichikashukujitaw" + + "araholtalenissayokkaichiropractichirurgiens-dentistes-en-franceh" + + "omesenseeringhomesklepphilipsynology-diskstationhomeunixn--2scrj" + + "9christiansburgripehondahongotembaixadahonjyoitakanezawahorninda" + + "lhorsells-for-ustkanmakitaurahortendofinternet-dnshinshinotsurge" + + "onshalloffamelbournehospitalhoteleshinshirohotelwithflightshinto" + + "kushimahotmailhoyangerhoylandetroitskazunoticiashintomikasaharah" + + "umanitieshinyoshitomiokamishihoronobeauxartsandcraftshiojirishir" + + "ifujiedahurdalhurumajis-a-lawyerhyllestadhyogoris-a-liberalhyuga" + + "warahyundaiwafuneis-uberleetrentin-suedtirolis-very-badajozis-a-" + + "nursells-itrentin-sudtirolis-very-evillageis-very-goodyearis-ver" + + "y-niceis-very-sweetpepperis-with-thebandownloadisleofmanaustdalj" + + "env-arubajddarchitecturealtorlandjeonnamerikawauejetztrentino-a-" + + "adigejevnakershusdecorativeartshitaramajewelryjewishartgalleryjf" + + "kharkivanylvenneslaskerrylogisticshizukuishimofusakakinokiajgora" + + "jlljls-sto1jls-sto2jls-sto3jmphoenixn--30rr7yjnjaworznoshiroomgj" + + "oyentrentino-aadigejoyokaichibalashovhadselburgjpnjprshizuokamit" + + "suejurkoshimizumakiyosatokamachintaifun-dnsaliashoujis-a-persona" + + "ltrainerkoshunantankhmelnitskiyamarshallstatebankharkovaokosugek" + + "otohiradomainstitutekotourakouhokutamakiyosemitekounosupabasells" + + "yourhomeftphotographysiokouyamarylandkouzushimarylhurstjordalsha" + + "lsenkozagawakozakiyosunndalkozowiiheyakagekpnkppspbar2krasnikaho" + + "kutokashikizunokunimilitarykrasnodarkredstonekrelliankristiansan" + + "dcatshowakristiansundkrodsheradkrokstadelvalle-aostatic-accessho" + + "wtimeldalkryminamioguni5kumanotteroykumatorinovecoregontrailroad" + + "kumejimashikekumenantokonamegatakashimashikis-a-photographerokus" + + "sldkunisakis-a-playershiftcryptonomichigangwonkunitachiarailwayk" + + "unitomigusukukis-a-republicancerresearchaeologicaliforniakunnepp" + + "uboliviajessheimpertrixcdn77-secureggioemiliaromagnaklodzkodaira" + + "kunstsammlungkunstunddesignkuokgrouphxn--3bst00minamisanrikubets" + + "upplykurehabmerkurgankurobeepilepsykkylvenicekurogimimatakasugai" + + "s-a-rockstarachowicekuroisogndalkuromatsunais-a-socialistdlibest" + + "adkurotakikawasakis-a-soxfankushirogawakustanais-a-studentalkusu" + + "pplieshwildlifestylekutchanelkutnow-dnsienarutomobelementoraykuz" + + "umakis-a-teacherkassyno-dshirakofuefukihabororoshiranukamisunaga" + + "wakvafjordkvalsundkvamlidlugolekafjordvagsoygardendoftheinternet" + + "flixilovecollegefantasyleaguernseykvanangenkvinesdalkvinnheradkv" + + "iteseidatingkvitsoykwpspdnsigdalkzmisasaguris-an-accountantshira" + + "ois-a-linux-usershioyandexcloudmisawamisconfusedmishimassa-carra" + + "ra-massacarraramassabusinessebykleclerchromediatechnologymissile" + + "zajskhmelnytskyivaporcloudmisugitokuyamassivegridmitakeharamitou" + + "rismilemitoyoakemiuramiyazurecontainerdpolicemiyotamanomjondalen" + + "mlbfanmontrealestatefarmequipmentrentino-s-tirolmonza-brianzappo" + + "siiitesilkhplaystation-cloudyclustermonza-e-della-brianzaptokyot" + + "angouvichungnamdalseidfjordurbanamexhibitionissedalutskarmoymonz" + + "abrianzaramonzaebrianzamonzaedellabrianzamoonscaleforcemordoviam" + + "oriyamasudamoriyoshiminamiashigaramormonstermoroyamatsumaebashik" + + "shacknetrentino-stirolmortgagemoscowilliamhillmoseushistorymosjo" + + "enmoskenesimple-urlmossirdalmosviklabudhabikinokawabarthaebaruer" + + "icssongdalenviknakatsugawamoteginowaniigatakahamangooglecodespot" + + "rentino-sud-tirolmoviemovimientolgamozilla-iotrentino-sudtirolmt" + + "ranbymuginozawaonsensiositemuikaminoyamaxunispacemukoebenhavnmul" + + "houseminemunakatanemuncienciamuosattemupiemontemurmanskmpspawnex" + + "tdirectrentino-alto-adigemurotorcraftrentino-sued-tirolmusashino" + + "haramuseetrentino-suedtirolmuseumverenigingmusicarbonia-iglesias" + + "-carboniaiglesiascarboniamutsuzawamy-vigorlicemy-wanggoupilemyac" + + "tivedirectorymyasustor-elvdalmycdmycloudnslupsknx-serversicherun" + + "gmydattolocalhistorymyddnsgeekgalaxymydissentrentinoa-adigemydob" + + "isshikis-an-actormydroboehringerikemydslzmyeffectrentinoaadigemy" + + "fastblogermyfirewallonieruchomoscienceandindustrynmyforuminamita" + + "nemyfritzmyftpaccessmolaquilansmushcdn77-sslingmyhome-servermyji" + + "nomykolaivarggatrentinoalto-adigemymailermymediapchurchaseljeeps" + + "ondriodejaneirodoymyokohamamatsudamypepilotsnoasakataketomisatos" + + "himatsuzakis-an-actresshiraokamitondabayashiogamagoriziamypetsok" + + "ndalmyphotoshibalatinoopencraftrainingmypicturesolarssonmypsxn--" + + "3ds443gmysecuritycamerakermyshopblocksolognemyshopifymyspreadsho" + + "ppingmythic-beastsolundbeckomaganemytis-a-bookkeeperspectakarazu" + + "kaluganskomakiyokawaramytuleap-partnersomamyvncircustomer-ocimdb" + + "amblebesbyeniwaizumiotsukumiyamazonawsglobalacceleratorahimeshim" + + "abaridagawakuyachimataijibmdevelopmentashkentatamotorsitestingla" + + "dedyn-berlincolnavigationavoizumizakiitatebayashiibahccavuotnaga" + + "rag-cloud-charitydalipaywhirlimitedgcanonoichinomiyakebinagisoch" + + "ildrensgardenavuotnapleskns3-eu-west-2mywirepaircraftingvollolip" + + "opimientakayamatsuuraplatter-appinbarcelonagawalbrzycharternopil" + + "awalesundiscountysnes3-eu-west-3utilities-1platterpinkomatsushim" + + "arugame-hostyhostingplazaplcube-serverplumbingoplurinacionalpodh" + + "alepodlasiellaktyubinskiptveterinairealmpmnpodzonepohlpoivronpok" + + "erpokrovskommunalforbundpoliticarrdpolitiendapolkowicepoltavalle" + + "-d-aostaticsopotrentinos-tirolpomorzeszowinbarclaycards3-externa" + + "l-1ponpesaro-urbino-pesarourbinopesaromasvuotnaritakoelnponypord" + + "enonepornporsangerporsangugeporsgrunnanyokoshibahikariwanumataka" + + "zakis-an-artistgstagepoznanpraxis-a-bruinsfanprdpreservationpres" + + "idioprgmrprimetelemarkommuneprincipeprivatizehealthinsuranceprof" + + "esionalprogressivestnesor-odalpromombetsupportrentinostirolprope" + + "rtyprotectionprotonetrentinosud-tirolprudentialpruszkowindmillpr" + + "vcyberlevagangaviikanonjis-an-engineeringprzeworskogpugliapulawy" + + "pupioneerpvhagebostadpvtrentinosudtirolpwcistrondheimmobilieniss" + + "hingucciprianidurhamburgriwataraidynathomebuiltwithdarkarpaczest" + + "-le-patroniyodogawapythonanywherepbodynamic-dnsor-varangerpzqldq" + + "otoyohashimotoolsorfoldqponiatowadaqslgbtrentinosued-tirolqualif" + + "ioappippueblockbusterniiminamiawajikis-an-anarchistoricalsociety" + + "quickconnectrentinosuedtirolquicksytesorocabalestrandabergamoare" + + "keymachineustargardquipelementsorreisahayakawakamiichikawamisato" + + "ttoris-an-entertainerswedenswidnicartoonartdecologiaswidnikkokam" + + "iminersouthcarolinarvikomonotogawaswiebodzin-dslattuminanoswinou" + + "jscienceandhistoryswissmarterthanyoutwentesynology-dsouthwest1-u" + + "slivinghistorytularvikongsbergtunesowatunkongsvingerturystykaney" + + "amazoetuscanytushuissier-justicetuvalleaostaverntuxfamilytwmailv" + + "ibo-valentiavibovalentiavideovillaspectruminamiyamashirokawanabe" + + "laudibleasingvinnicasacamdvrcampinagrandebuilderschmidtre-gaulda" + + "lvinnytsiavipsinaappittsburghofficialvirginiavirtual-userveexcha" + + "ngevirtualcloudvirtualservervirtualuserveftpiwatevirtuelvisakuho" + + "kksundviterboknowsitallvivolkenkundenvixn--3hcrj9civilaviationth" + + "ewifiatlassian-dev-myqnapcloudcontrolledogawarabikomaezakirunoip" + + "irangalsaceomutashinainternationalfirearmsannanvlaanderennesoyvl" + + "adikavkazimierz-dolnyvladimirvlogintoyonezawavmincomcastresindev" + + "icenzaporizhzhiavologdanskoninjambylvolvolkswagentspeedpartnervo" + + "lyngdalvoorlopervossevangenvotevotingvotoyonovps-hostrowiecivili" + + "sationwithgoogleapiszwithyoutuberspacekitagatamayufuettertdasnet" + + "zwiwatsukiyonosegawawixsitewloclawekonsulatrobeeldengeluidvarese" + + "rvdwmcloudwmflabspydebergwoodsideltairavpagexlworse-thandawowind" + + "owskrakowinnersphinxn--3e0b707ewpdevcloudwpenginepoweredwphosted" + + "mailwpmucdnpixolinodeusercontentrentinoaltoadigewpmudeveloperaun" + + "iterois-foundationwritesthisblogwroclawiospjelkavikomorotsukagaw" + + "awtcirclerkstagets-itrentoyonakagyokutoyakolobrzegersundwtfastvp" + + "s-serverisignwuozuwzmiuwajimaxn--45q11civilwarmiasadoesntexistei" + + "ngeekaruizawaxn--4gbriminingxn--4it168dxn--4it797kooris-a-painte" + + "ractivestfoldxn--4pvxs4allxn--54b7fta0cclanbibaidarmeniaxn--55qw" + + "42gxn--55qx5dxn--5js045dxn--5rtp49cldmailuxuryxn--5rtq34kopervik" + + "hersonxn--5su34j936bgsgxn--5tzm5gxn--6btw5axn--6frz82gxn--6orx2r" + + "xn--6qq986b3xlxn--7t0a264cleverappstmnxn--80aaa0cvacationsrhtren" + + "tinsud-tirolxn--80adxhksrlxn--80ao21axn--80aqecdr1axn--80asehdba" + + "refootballooninglassassinationalheritagebinordre-landiscourses3-" + + "sa-east-1xn--80aswgxn--80augustowitdkonskowolayangrouphonefossho" + + "pwarendalenugxn--8ltr62koryokamikawanehonbetsurutaharaxn--8pvr4u" + + "xn--8y0a063axn--90a1affinitylotterybnikeisenbahnxn--90a3academia" + + "micable-modemoneyxn--90aeroportalaheadjudaicadaquesrvaroyxn--90a" + + "ishobarakawagoexn--90amcdirxn--90azhytomyravendbargainstances3-u" + + "s-east-2xn--9dbhblg6dietrevisojamisonxn--9dbq2axn--9et52uxn--9kr" + + "t00axn--andy-iraxn--aroport-byaotsurnadalxn--asky-iraxn--aurskog" + + "-hland-jnbarreauctioncilla-speziauthgear-stagingjesdalimanowarud" + + "aurskog-holandinggfarmerseineatonsbergitpagefrontappalmspringsak" + + "erevistarnbergivestbytemark12xn--avery-yuasakuragawaxn--b-5gaxn-" + + "-b4w605ferdxn--balsan-sdtirol-nsbstorebaselectrentinsudtirolxn--" + + "bck1b9a5dre4clicketcloudcontrolapparmatsushigexn--bdddj-mrabdxn-" + + "-bearalvhki-y4axn--berlevg-jxaxn--bhcavuotna-s4axn--bhccavuotna-" + + "k7axn--bidr-5nachikatsuuraxn--bievt-0qa2xn--bjarky-fyasakaiminat" + + "oyookanazawaxn--bjddar-ptargetmyipizzaxn--blt-elabourxn--bmlo-gr" + + "aingerxn--bod-2natalxn--bozen-sdtirol-2obanazawaxn--brnny-wuacad" + + "emy-firewall-gatewayxn--brnnysund-m8accident-investigation-aptib" + + "leadpagesquare7xn--brum-voagatritonxn--btsfjord-9zaxn--bulsan-sd" + + "tirol-nsbarrel-of-knowledgeappleborkaragandauthgearappspacehoste" + + "d-by-previderhclouddnslivegarsheiheijibigawaustevoll-o-g-i-n4t3l" + + "3p0rtarnobrzegyptianatuurwetenschappenginebetsuikirkenes3-ap-sou" + + "th-1xn--c1avgxn--c2br7gxn--c3s14miniserverxn--cck2b3barrell-of-k" + + "nowledgecomputerhistoryofscience-fictionfabricafjs3-us-gov-west-" + + "1xn--cckwcxetdxn--cesena-forl-mcbremangerxn--cesenaforl-i8axn--c" + + "g4bkis-gonexn--ciqpnxn--clchc0ea0b2g2a9gcdxn--comunicaes-v6a2oxn" + + "--correios-e-telecomunicaes-ghc29axn--czr694barsycenterprisesaki" + + "joburgleezebizenakanotoddenayorovnobirauthordalanddnss3-ap-south" + + "east-2xn--czrs0troandinosaureplantationxn--czru2dxn--czrw28barsy" + + "onlinewhampshirebungoonord-frontierxn--d1acj3basicserversaillesj" + + "abbottatarantours3-us-west-1xn--d1alfaromeoxn--d1atrogstadxn--d5" + + "qv7z876clickrisinglesannohelplfinancialuzernxn--davvenjrga-y4axn" + + "--djrs72d6uyxn--djty4kosaigawaxn--dnna-grajewolterskluwerxn--drb" + + "ak-wuaxn--dyry-iraxn--e1a4clinichitachinakagawassamukawatarikuze" + + "ntakatainaioiraseating-organicbcn-north-1xn--eckvdtc9dxn--efvn9s" + + "torfjordxn--efvy88haibarakitahatakamatsukawaxn--ehqz56nxn--elqq1" + + "6hair-surveillancexn--eveni-0qa01gaxn--f6qx53axn--fct429kosakaer" + + "odromegallupaasdaburxn--fhbeiarnxn--finny-yuaxn--fiq228c5hstorjc" + + "loud-ver-jpchristmasakinderoyxn--fiq64basilicataniautomotiveland" + + "ds3-ca-central-1xn--fiqs8stpetersburgxn--fiqz9streamscompute-1xn" + + "--fjord-lraxn--fjq720axn--fl-ziaxn--flor-jraxn--flw351exn--forl-" + + "cesena-fcbsstudioxn--forlcesena-c8axn--fpcrj9c3dxn--frde-grandra" + + "pidstudynamisches-dnsortlandxn--frna-woaraisaijosoyrovigotpanthe" + + "onsitexn--frya-hraxn--fzc2c9e2cliniquedapliernewyorkshirecifedex" + + "eterxn--fzys8d69uvgmailxn--g2xx48clintonoshoesanokarumaifarmstea" + + "dyndns-at-homedepotenzamamidorittogakushimotoganexn--gckr3f0faus" + + "kedsmokorsetagayaseralingenoamishirasatogitsumidatlantichofunato" + + "riginstantcloudfrontdoorxn--gecrj9clothingdustdatadetectjmaxxxer" + + "oxfinityxn--ggaviika-8ya47hakatanorth-kazakhstanxn--gildeskl-g0a" + + "xn--givuotna-8yasugitlaborxn--gjvik-wuaxn--gk3at1exn--gls-elacai" + + "xaxn--gmq050is-into-animegurownproviderxn--gmqw5axn--gnstigbeste" + + "llen-zvbrplsbxn--3pxu8konyvelohmusashimurayamarumorimachidaxn--g" + + "nstigliefern-wobihirosakikamijimatsunowtvestre-totennishiawakura" + + "xn--h-2failxn--h1aeghakodatexn--h1ahnxn--h1alizxn--h2breg3evenes" + + "tuff-4-salexn--h2brj9c8cn-northwest-1xn--h3cuzk1diherokuappkomfo" + + "rbar1xn--hbmer-xqaxn--hcesuolo-7ya35basketballfinanzjampalacehim" + + "ejiiyamanouchikuhokuryugasakitanakagusukumodernfshostrodawarauto" + + "scanadaeguambulancentralus-2xn--hery-iraxn--hgebostad-g3axn--hkk" + + "inen-5waxn--hmmrfeasta-s4accident-prevention-k3stufftoread-books" + + "nesoruminamiuonumasoyxn--hnefoss-q1axn--hobl-iraxn--holtlen-hxax" + + "n--hpmir-xqaxn--hxt814exn--hyanger-q1axn--hylandet-54axn--i1b6b1" + + "a6a2exn--imr513nxn--indery-fyasuokannamiharuxn--io0a7is-into-car" + + "shiratakahagithubpreviewsaitamatsukuris-a-llamarcheapigeelvinckd" + + "diamondshirahamatonbetsurgeryxn--j1adplantsomnarviikamiokameokam" + + "akurazakitashiobaraxn--j1aefbsbxn--1ck2e1banzaicloudappspotagerx" + + "n--j1ael8batochiokinoshimaintenancempresashibetsukuin-vpncasadel" + + "amonedancemrxn--j1amhakonexn--j6w193gxn--jlq480n2rgxn--jlq61u9w7" + + "batsfjordiscoveryokoteu-1xn--jlster-byatominamidaitomanchesterxn" + + "--jrpeland-54axn--jvr189minisitexn--k7yn95exn--karmy-yuaxn--kbrq" + + "7oxn--kcrx77d1x4axn--kfjord-iuaxn--klbu-woaxn--klt787dxn--kltp7d" + + "xn--kltx9axn--klty5xn--41axn--koluokta-7ya57hakubahcavuotnagaivu" + + "otnagaokakyotambabydgoszczecinemagnethnologyxn--kprw13dxn--kpry5" + + "7dxn--kput3is-into-cartoonshishikuis-a-musicianxn--krager-gyatsu" + + "kanoyakumoldellogliastradingxn--kranghke-b0axn--krdsherad-m8axn-" + + "-krehamn-dxaxn--krjohka-hwab49jdevcloudfunctionshisohugheshisuif" + + "uelveruminamiminowaxn--ksnes-uuaxn--kvfjord-nxaxn--kvitsy-fyatsu" + + "shiroxn--kvnangen-k0axn--l-1fairwindstuttgartrentinsued-tirolxn-" + + "-l1accentureklamborghinikolaeventsurreyxn--laheadju-7yawaraxn--l" + + "angevg-jxaxn--lcvr32dxn--ldingen-q1axn--leagaviika-52bauhauspost" + + "man-echocolatelevisionflashdrivefsncfdishakotanhlfanhsbcasertail" + + "scalecznagasukeu-2xn--lesund-huaxn--lgbbat1ad8jdfaststacksaxoxn-" + + "-lgrd-poacctromsakegawaxn--lhppi-xqaxn--linds-pramericanartromso" + + "kamogawaxn--lns-qlavagiskexn--loabt-0qaxn--lrdal-sraxn--lrenskog" + + "-54axn--lt-liacngroks-thisayamanobeokakegawaxn--lten-granexn--lu" + + "ry-iraxn--m3ch0j3axn--mely-iraxn--merker-kuaxn--mgb2ddesusakis-b" + + "ytomaritimekeepingxn--mgb9awbfbx-oslodingenxn--mgba3a3ejtrusteex" + + "n--mgba3a4f16axn--mgba3a4fra1-deportevaksdalxn--mgba7c0bbn0axn--" + + "mgbaakc7dvfbxostrowwlkpmguidefinimamateramochizukindlegallocus-4" + + "xn--mgbaam7a8hakuis-a-financialadvisor-aurdalxn--mgbab2bdxn--mgb" + + "ah1a3hjkrdxn--mgbai9a5eva00bellunord-odalvdalaskanittedallasalle" + + "angaviikadenagahamaroyerxn--mgbai9azgqp6jejuniperxn--mgbayh7gpal" + + "ermomahachijolsterxn--mgbbh1a71exn--mgbc0a9azcgxn--mgbca7dzdoxn-" + + "-mgbcpq6gpa1axn--mgberp4a5d4a87gxn--mgberp4a5d4arxn--mgbgu82axn-" + + "-mgbi4ecexposedxn--mgbpl2fhskypexn--mgbqly7c0a67fbcnpyatigorskol" + + "efrakkestadyndns-at-workisboringrondarxn--mgbqly7cvafr-1xn--mgbt" + + "3dhdxn--mgbtf8flapymntrvestre-slidretrosnubarclays3-fips-us-gov-" + + "west-1xn--mgbtx2beneventodayokozeu-3xn--mgbx4cd0abbvieeexn--mix0" + + "82fedorainfraclouderaxn--mix891fedorapeoplegnicapebretonamicroli" + + "ghtinguitarschokokekschokoladenxn--mjndalen-64axn--mk0axin-the-b" + + "andais-into-gamessinazawaxn--mk1bu44cnsantabarbaraxn--mkru45is-l" + + "eetrentin-sued-tirolxn--mlatvuopmi-s4axn--mli-tlavangenxn--mlsel" + + "v-iuaxn--moreke-juaxn--mori-qsakurais-lostre-toteneis-a-nascarfa" + + "nxn--mosjen-eyawatahamaxn--mot-tlazioxn--mre-og-romsdal-qqbusera" + + "nishiaritakurashikis-not-certifiedxn--msy-ula0hakusanagochijiwad" + + "egreexn--mtta-vrjjat-k7aflakstadaokagakicks-assnasaarlandxn--muo" + + "st-0qaxn--mxtq1minnesotaketakatoris-a-techietis-a-libertarianxn-" + + "-ngbc5azdxn--ngbe9e0axn--ngbrxn--42c2d9axn--nit225koseis-a-patsf" + + "anxn--nmesjevuemie-tcbalsan-sudtirollagdenesnaaseinet-freaksuson" + + "oxn--nnx388axn--nodessakyotanabellevuelosangelesuzakanagawaxn--n" + + "qv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn--ntsq17gxn--nttery-byaes" + + "eoullensvanguardxn--nvuotna-hwaxn--nyqy26axn--o1achernihivgubsuz" + + "ukananiikappudoxn--o3cw4haldenxn--o3cyx2axn--od0algxn--od0aq3ben" + + "tleyolasiteu-4lima-cityeatselinogradimo-i-rana4u2-localhostrolek" + + "aniepce12hpalmaserati234xn--ogbpf8flatangerxn--oppegrd-ixaxn--os" + + "tery-fyaxn--osyro-wuaxn--otu796dxn--p1acfedoraprojectoyotsukaido" + + "xn--p1ais-savedxn--pgbs0dhlx3xn--porsgu-sta26feiraquarelleaseekl" + + "ogescholarshipschoolsztynsettsurfashionxn--pssu33lxn--pssy2uxn--" + + "q7ce6axn--q9jyb4cntjomelhusgardenxn--qcka1pmckinseyxn--qqqt11min" + + "tereitrentino-altoadigexn--qxa6axn--qxamsterdamnserverbaniaxn--r" + + "ady-iraxn--rdal-poaxn--rde-ulaxn--rdy-0nabaris-slickfh-muensterx" + + "n--rennesy-v1axn--rhkkervju-01afermockasserverrankoshigayamein-v" + + "igorgexn--rholt-mragowoltlab-democraciaxn--rhqv96gxn--rht27zxn--" + + "rht3dxn--rht61exn--risa-5naturalhistorymuseumcenterxn--risr-irax" + + "n--rland-uuaxn--rlingen-mxaxn--rmskog-byaxn--rny31halsaitohmanno" + + "rthflankaufentigerxn--rovu88beppublishproxyombolzano-altoadigeol" + + "ogyomitanobninskarasjohkamikitayamatsurincheonikonanporobserverx" + + "n--rros-granvindafjordxn--rskog-uuaxn--rst-0naturalsciencesnatur" + + "ellesuzukis-certifiedxn--rsta-framercanvasvalbardunloppacificita" + + "deliveryggeexn--rvc1e0am3exn--ryken-vuaxn--ryrvik-byaxn--s-1fait" + + "hammarfeastafricapitalonewspaperxn--s9brj9collectionxn--sandness" + + "jen-ogbeskidyn-ip24xn--sandy-yuaxn--sdtirol-n2axn--seral-lraxn--" + + "ses554gxn--sgne-graphoxn--45br5cylxn--skierv-utazasvcitichiryuky" + + "uragifuchungbukharahkkeravjuegoshikimobetsuldaluccaravantaarparl" + + "iamentjeldsundrudupontariobranconavstackareliancexn--skjervy-v1a" + + "xn--skjk-soaxn--sknit-yqaxn--sknland-fxaxn--slat-5naturbruksgymn" + + "xn--slt-elabcieszynh-serveblogspotaribeiraogakibichuoxn--smla-hr" + + "axn--smna-gratangentlentapisa-geekosherbrookegawaxn--snase-nraxn" + + "--sndre-land-0cbestbuyshouses3-us-west-2xn--snes-poaxn--snsa-roa" + + "xn--sr-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-varanger-g" + + "gbetainaboxfusejnyanagawalmartateshinanomachimkentateyamaveroyke" + + "nebakkeshibechambagriculturealtychyattorneyagawakepnombrendlynge" + + "nflfanpachigasakids3-eu-central-1xn--srfold-byaxn--srreisa-q1axn" + + "--srum-gratis-a-bulls-fanxn--stfold-9xaxn--stjrdal-s1axn--stjrda" + + "lshalsen-sqbhzcasinordeste-idcateringebuildinglitcheltenham-radi" + + "o-opensocialimolisembokuleuvenetokigawavocatanzaroweddingjovikan" + + "zakitchenaval-d-aosta-valleyboltarumizusawaustinnaumburgivingjem" + + "nes3-ap-southeast-1xn--stre-toten-zcbieidskoguchikuzenvironmenta" + + "lconservationionjukudoyamaizurugbyglandroverhallaakesvuemielecce" + + "vje-og-hornnes3-website-ap-northeast-1xn--t60b56axn--tckwebthing" + + "sveioxn--tiq49xqyjelasticbeanstalkhakassiaxn--tjme-hraxn--tn0agr" + + "ocerydxn--tnsberg-q1axn--tor131oxn--trany-yuaxn--trentin-sd-tiro" + + "l-rzbielawaltervistaikikonaikawachinaganoharamcoachampionshiphop" + + "tobamadridnbloggerxn--trentin-sdtirol-7vbiellahppiacenzachpomors" + + "kieninohekinannestadiskussionsbereichattanooganordkappgafaninomi" + + "yakonojorpelandisrechtranakamagayahikobeardubaiduckdnsnillfjordi" + + "tchyouripanamatsusakahoginankokubunjindianapolis-a-bloggerxn--tr" + + "entino-sd-tirol-c3bieszczadygeyachiyodaejeonbukcoalwaysdatabaseb" + + "allangenkainanaejrietisalatinabeno-ipifony-1xn--trentino-sdtirol" + + "-szbievat-band-campaniavoues3-eu-west-1xn--trentinosd-tirol-rzbi" + + "fukagawashingtondclk3xn--trentinosdtirol-7vbigv-infolldalivornow" + + "ruzhgorodeoceanographics3-website-ap-southeast-1xn--trentinsd-ti" + + "rol-6vbihorologyonagoyaxarnetbankaracoldwarszawaustraliamusement" + + "dllpages3-ap-northeast-2ix4432-balsan-suedtirolkuszczytnord-aurd" + + "alp16-b-datacentermezproxyzgorabruzzoologicalabamagasakishimabar" + + "aogashimadachicagoboats3-ap-northeast-1kappchizip611xn--trentins" + + "dtirol-nsbikedaemonmoutheworkpccwedeployonagunicloudivtasvuodnak" + + "amurataishinomakinkobierzycextraspace-to-rentalstomakomaibarazur" + + "ewebsiteshikagamiishibukawakkanaibetsubamericanfamilydsmynasushi" + + "obarackmazeplayokosukanraustrheimatunduhrennebugattiffanyaarbort" + + "eaches-yogasawaracingjerdrumcprequalifymeinforumzgorzeleccogjers" + + "tadotsuruokakamigaharaukraanghkembuchikumagayagawakayamagentosit" + + "ecnologiajudygarlanddnskingdyniamunemurorangecloudplatform0emmaf" + + "ann-arboretumbriamallamaceiobbcg120001wwwbq-abogadobeaemcloud-fr" + + "1337xn--trgstad-r1axn--trna-woaxn--troms-zuaxn--tysvr-vraxn--uc0" + + "atvestvagoyxn--uc0ay4axn--uist22hamurakamigoris-a-geekautokeinot" + + "iceablewismillerxn--uisz3gxn--unjrga-rtargithubusercontentryclou" + + "dflareportrentinsuedtirolxn--unup4yxn--uuwu58axn--vads-jraxn--va" + + "lle-aoste-ebbtrysiljanxn--valle-d-aoste-ehbodoes-itcouldbeworldx" + + "n--valleaoste-e7axn--valledaoste-ebbvadsoccertmgrazerbaijan-maye" + + "ngerdalcesvelvikomvuxn--32vp30hagakhanamigawaxn--vard-jraxn--veg" + + "rshei-c0axn--vermgensberater-ctbitsvizzeraxn--vermgensberatung-p" + + "wblogoiplatformshangrilanxessooxn--vestvgy-ixa6oxn--vg-yiabkhazi" + + "axn--vgan-qoaxn--vgsy-qoa0jelenia-goraxn--vgu402colognexus-3xn--" + + "vhquvevelstadxn--vler-qoaxn--vre-eiker-k8axn--vrggt-xqadxn--vry-" + + "yla5gxn--vuq861bilbaokinawashirosatobishimagazineues3-website-ap" + + "-southeast-2xn--w4r85el8fhu5dnraxn--w4rs40lxn--wcvs22dxn--wgbh1c" + + "olonialwilliamsburgrongausdalvivanovoldaxn--wgbl6axn--xhq521bill" + + "ustrationredumbrellair-traffic-controlleyoriikarasjokarasuyamarn" + + "ardalombardiadembetsukubankaratexn--xkc2al3hye2axn--xkc2dl3a5ee0" + + "handsonyxn--y9a3aquariumisakis-a-therapistoiaxn--yer-znaturhisto" + + "rischesvn-reposoundcastronomy-routerxn--yfro4i67oxn--ygarden-p1a" + + "xn--ygbi2ammxn--45brj9civilizationxn--ystre-slidre-ujbioceanogra" + + "phiquexn--zbx025dxn--zf0ao64axn--zf0avxlxn--zfr164bipanasonicath" + + "olicaxiaskimitsubatamibudejjuedischesapeakebayernirasakindianmar" + + "ketingliwicexnbayxz" // nodes is the list of nodes. Each node is represented as a uint32, which // encodes the node's children, wildcard bit and node type (as an index into @@ -546,1819 +546,1820 @@ const text = "9guacuiababia-goracleaningroks-theatree164-balsfjordd-dnshome-we" // [15 bits] text index // [ 6 bits] text length var nodes = [...]uint32{ - 0x3346c3, - 0x358784, - 0x2ed746, - 0x21cb43, - 0x21cb46, - 0x399c86, - 0x3c3043, - 0x221ec4, - 0x205687, - 0x2ed388, + 0x330b03, + 0x3b6e44, + 0x2e8c86, + 0x350003, + 0x350006, + 0x392c06, + 0x3b9283, + 0x21a084, + 0x3deb07, + 0x2e88c8, 0x1a000c2, - 0x1f44d87, - 0x385a09, - 0x2e460a, - 0x2e460b, - 0x238883, - 0x241b45, - 0x2204502, - 0x204504, - 0x2cdbc3, - 0x252f05, - 0x2602142, - 0x36c683, - 0x2a20c04, - 0x202145, - 0x2e03702, - 0x219e8e, - 0x267743, - 0x3bdcc6, - 0x3203f42, - 0x2ed8c7, - 0x244206, - 0x3603802, - 0x2979c3, - 0x235c86, - 0x21d4c8, - 0x29e686, - 0x3aa2c4, + 0x1f42f07, + 0x37f0c9, + 0x2ddc4a, + 0x2ddc4b, + 0x233b83, + 0x236ac5, + 0x2213c82, + 0x3d6204, + 0x2c8983, + 0x231c05, + 0x2601ac2, + 0x367443, + 0x2a2ffc4, + 0x201ac5, + 0x2e06482, + 0x20648e, + 0x25b543, + 0x3b32c6, + 0x3204782, + 0x3e57c7, + 0x23a206, + 0x3603682, + 0x2909c3, + 0x22c386, + 0x2691c8, + 0x295546, + 0x276dc4, 0x3a00b02, - 0x354109, - 0x224ac7, - 0x3804c6, - 0x3704c9, - 0x391a48, - 0x24fcc4, - 0x349446, - 0x3d4146, - 0x3e01902, - 0x2fe906, - 0x218e0f, - 0x3e960e, - 0x311c44, - 0x228685, - 0x339845, - 0x3b1ec9, - 0x24a949, - 0x236487, - 0x207a06, - 0x207943, - 0x4204302, - 0x216183, - 0x2b990a, - 0x4604d03, - 0x347a45, - 0x314102, - 0x3ac849, - 0x4e01d42, - 0x20ad44, - 0x2ffcc6, - 0x258405, - 0x37ce44, - 0x5721084, - 0x205d83, - 0x241004, - 0x5a016c2, - 0x300b84, - 0x5e02084, - 0x35030a, + 0x350889, + 0x21a3c7, + 0x2ff486, + 0x369ac9, + 0x2ca948, + 0x246004, + 0x320146, + 0x3d8b46, + 0x3e01c02, + 0x2fc746, + 0x212d4f, + 0x3d99ce, + 0x2e4804, + 0x20d105, + 0x335fc5, + 0x3a8989, + 0x2427c9, + 0x22cb87, + 0x2239c6, + 0x22edc3, + 0x4216302, + 0x216303, + 0x2a868a, + 0x4615c43, + 0x3456c5, + 0x2f45c2, + 0x3a5c49, + 0x4e028c2, + 0x208844, + 0x3c9a86, + 0x2968c5, + 0x376c04, + 0x570fdc4, + 0x2028c3, + 0x235fc4, + 0x5a01942, + 0x357344, + 0x5e01a04, + 0x214f0a, 0x6200882, - 0x2631c7, - 0x2339c8, - 0x7a0c502, - 0x33e407, - 0x237c44, - 0x36ddc7, - 0x237c45, - 0x387787, - 0x35ca86, - 0x2a1784, - 0x3b9245, - 0x27a907, - 0x9218682, - 0x2fea83, - 0x9620102, - 0x3dabc3, - 0x9a0f202, - 0x289b85, + 0x20bd07, + 0x3be8c8, + 0x7a08b82, + 0x33a387, + 0x22da04, + 0x31b047, + 0x22da05, + 0x380e47, + 0x34d986, + 0x358c84, + 0x36af05, + 0x274707, + 0x9205982, + 0x2b0403, + 0x961f9c2, + 0x3d3583, + 0x9a03602, + 0x254845, 0x9e00202, - 0x37fe84, - 0x23cfc5, - 0x311b87, - 0x30420e, - 0x2ca444, - 0x28fac4, - 0x204243, - 0x324fc9, - 0x2ec50b, - 0x2fd348, - 0x335848, - 0x33b708, - 0x3d6448, - 0xa37030a, - 0x387687, - 0x2542c6, - 0xa61cb82, - 0x378743, - 0x3e0b43, - 0x3e2084, - 0x378783, - 0x397143, - 0x1740a82, - 0xaa02742, - 0x292d05, - 0x35a086, - 0x2aa1c4, - 0x3a9487, - 0x251c86, - 0x2da804, - 0x3c5787, - 0x202743, - 0xb6e7fc2, - 0xba1da82, - 0xbe16c02, - 0x21db46, + 0x3793c4, + 0x3ccb05, + 0x2e4747, + 0x2b294e, + 0x2c3904, + 0x235044, + 0x207843, + 0x301889, + 0x306acb, + 0x391a88, + 0x331f88, + 0x337bc8, + 0x3ceec8, + 0xa36990a, + 0x380d47, + 0x3f3ac6, + 0xa65a502, + 0x3de703, + 0x3e32c3, + 0x3e4884, + 0x3de743, + 0x354783, + 0x173ec82, + 0xaa08a42, + 0x28b785, + 0x2ac746, + 0x2a29c4, + 0x3a1f47, + 0x237906, + 0x2d7f04, + 0x3bb3c7, + 0x221bc3, + 0xb6e2082, + 0xba69782, + 0xbe16d82, + 0x217b46, 0xc200282, - 0x3676c5, - 0x341fc3, - 0x3dc584, - 0x305544, - 0x305545, - 0x3f2583, - 0xc60bec3, - 0xca0aa82, - 0x20e485, - 0x20e48b, - 0x30f70b, - 0x211d44, - 0x20ed49, - 0x20fdc4, - 0xce10482, - 0x210cc3, - 0x211243, - 0xd211f02, - 0x216f8a, - 0xd602642, - 0x204785, - 0x2f8cca, - 0x24f984, - 0x2139c3, - 0x2153c4, - 0x218043, - 0x218044, - 0x218047, - 0x219285, - 0x21a286, - 0x21ae86, - 0x21cbc3, - 0x2234c8, - 0x215a03, - 0xda03ac2, - 0x365d08, - 0x29e90b, - 0x22c908, - 0x22d286, - 0x22d907, - 0x22f608, + 0x266485, + 0x3401c3, + 0x3d7244, + 0x303a84, + 0x303a85, + 0x3f1d43, + 0xc650b03, + 0xca05a42, + 0x207fc5, + 0x207fcb, + 0x31228b, + 0x206204, + 0x208909, + 0x209544, + 0xce09902, + 0x20a143, + 0x20a6c3, + 0xd20b4c2, + 0x21710a, + 0xd60b782, + 0x3d6485, + 0x2f258a, + 0x245cc4, + 0x20d603, + 0x20e404, + 0x211443, + 0x211444, + 0x211447, + 0x213d45, + 0x214506, + 0x2156c6, + 0x217503, + 0x21b748, + 0x21e083, + 0xda02fc2, + 0x241708, + 0x2957cb, + 0x224788, + 0x225106, + 0x225287, + 0x227b48, 0xf201002, - 0xf629b02, - 0x27f688, - 0x23b007, - 0x213f05, - 0xfb1cc08, - 0xffb11c8, - 0x285f03, - 0x235504, - 0x399d02, - 0x10235982, - 0x1060b282, - 0x10e36f02, - 0x236f03, - 0x11203d82, - 0x315983, - 0x254ac4, - 0x203d83, - 0x24fc84, - 0x25198b, - 0x2063c3, - 0x301806, - 0x26c004, - 0x2d85ce, - 0x3259c5, - 0x279e08, - 0x3bddc7, - 0x3bddca, - 0x23c843, - 0x358587, - 0x2ec6c5, - 0x23c844, - 0x266e86, - 0x266e87, - 0x376204, - 0x1171c644, - 0x3f3784, - 0x251584, - 0x209f46, - 0x213cc3, - 0x213cc8, - 0x21ff08, - 0x2a55c3, - 0x216f43, - 0x34d4c4, - 0x35ee03, - 0x11e06282, - 0x12227e82, - 0x205206, - 0x349543, - 0x27b604, - 0x12611582, - 0x211583, - 0x23d283, - 0x21f9c2, - 0x12a045c2, - 0x2e0c86, - 0x22ad87, - 0x233747, - 0x2fc645, - 0x3b7c84, - 0x2e0085, - 0x2d5187, - 0x3594c9, - 0x3b1646, - 0x2fc546, - 0x13a12f82, - 0x320588, - 0x32c046, - 0x333c45, - 0x317507, - 0x3bb044, - 0x3bb045, - 0x3bf004, - 0x3bf008, - 0x13e02882, - 0x14200482, - 0x38e506, + 0xf620302, + 0x27a748, + 0x3dab47, + 0x31ba45, + 0xfb1ba48, + 0xfedf508, + 0x27d5c3, + 0x22bfc4, + 0x392c82, + 0x1022cdc2, + 0x10668142, + 0x10e2d3c2, + 0x22d3c3, + 0x11201782, + 0x313a43, + 0x24a844, + 0x201783, + 0x245fc4, + 0x23760b, + 0x202f03, + 0x2f9446, + 0x214d84, + 0x2d368e, + 0x2ff905, + 0x273c08, + 0x3b33c7, + 0x3b33ca, + 0x231543, + 0x3b6c47, + 0x306c85, + 0x231544, + 0x25c046, + 0x25c047, + 0x36ff44, + 0x1171b484, + 0x381dc4, + 0x238904, + 0x3c1386, + 0x20f543, + 0x3c1748, + 0x3f2f08, + 0x29dc43, + 0x2170c3, + 0x34a7c4, + 0x35b203, + 0x11e02dc2, + 0x12621942, + 0x202986, + 0x320243, + 0x23a9c4, + 0x12a13282, + 0x213283, + 0x3818c3, + 0x218442, + 0x12e03402, + 0x2d95c6, + 0x22b987, + 0x2ff287, + 0x2f5d45, + 0x3cb8c4, + 0x370c05, + 0x2c9747, + 0x3582c9, + 0x2df986, + 0x2f5c46, + 0x13e04102, + 0x30f188, + 0x32a0c6, + 0x22ad85, + 0x3b1f07, + 0x3b5d04, + 0x3b5d05, + 0x3a24c4, + 0x3a24c8, + 0x14205202, + 0x14600482, + 0x238ac6, 0x200488, - 0x3402c5, - 0x357386, - 0x361608, - 0x3653c8, - 0x14605985, - 0x1722f8c4, - 0x2849c7, - 0x17607e42, - 0x17b6e3c2, - 0x18e0b642, - 0x2ffdc5, - 0x19a9a145, - 0x27a446, - 0x3dafc7, - 0x3e6887, - 0x19e1a043, - 0x34af07, - 0x28f9c8, - 0x27a38d49, - 0x21a047, - 0x239447, - 0x34be48, - 0x239fc6, - 0x23c346, - 0x23e30c, - 0x24000a, - 0x2404c7, - 0x241a0b, - 0x242707, - 0x24270e, - 0x27e43444, - 0x243544, - 0x245687, - 0x38df47, - 0x249e06, - 0x249e07, - 0x33bfc7, - 0x288583, - 0x28203682, - 0x24c806, - 0x24c80a, - 0x24d24b, - 0x24e8c7, - 0x24f505, - 0x250943, - 0x250cc6, - 0x250cc7, - 0x21d9c3, - 0x28600102, - 0x2512ca, - 0x28b347c2, - 0x28fa8a82, - 0x2924a282, - 0x2963cc82, - 0x254705, - 0x255504, - 0x2a203402, - 0x300c05, - 0x24d843, - 0x3cabc5, - 0x205104, - 0x22f4c4, - 0x2e3a86, - 0x267ac6, - 0x20e683, - 0x3d8a84, - 0x35cd43, - 0x2b2101c2, - 0x22dc84, - 0x22dc86, - 0x25bb85, - 0x2bc906, - 0x317608, - 0x215b84, - 0x3289c8, - 0x38f745, - 0x294ec8, - 0x2de106, - 0x318747, - 0x282a44, - 0x2c682a46, - 0x2ca24dc3, - 0x3ad7c3, - 0x2c5608, - 0x33c744, - 0x2ce15487, - 0x28b246, - 0x2f55c9, - 0x36ea08, - 0x371dc8, - 0x37b1c4, - 0x223403, - 0x2304c2, - 0x2d664842, - 0x2da30902, - 0x329e83, - 0x2de057c2, - 0x21d944, - 0x29ef86, - 0x241543, - 0x2d1ec7, - 0x20cec3, - 0x2ca508, - 0x231645, - 0x2724c3, - 0x23cf45, - 0x23d084, - 0x3bad46, - 0x2366c6, - 0x311ac6, - 0x2e2904, - 0x242ac3, - 0x2e217e02, - 0x2e642185, - 0x200843, + 0x33e305, + 0x353686, + 0x35d788, + 0x361888, + 0x14a02c45, + 0x176204c4, + 0x2576c7, + 0x17a08fc2, + 0x17f547c2, + 0x19202202, + 0x3c9b85, + 0x19ee9e05, + 0x274246, + 0x2dc247, + 0x3e8c07, + 0x1a206643, + 0x321c47, + 0x289a48, + 0x2822e709, + 0x206647, + 0x22ef07, + 0x349208, + 0x22f706, + 0x231046, + 0x23240c, + 0x23324a, + 0x233bc7, + 0x23698b, + 0x237c87, + 0x237c8e, + 0x286391c4, + 0x2392c4, + 0x23b287, + 0x271d87, + 0x240086, + 0x240087, + 0x332dc7, + 0x21dac3, + 0x28a2dd42, + 0x243106, + 0x24310a, + 0x2439cb, + 0x2457c7, + 0x247105, + 0x2473c3, + 0x247746, + 0x247747, + 0x2696c3, + 0x28e00102, + 0x247e0a, + 0x29330c02, + 0x297a1542, + 0x29a41402, + 0x29e31982, + 0x24a485, + 0x24b704, + 0x2aa54302, + 0x3573c5, + 0x231bc3, + 0x374145, + 0x361b84, + 0x226f84, + 0x2dd186, + 0x25cb86, + 0x2081c3, + 0x3d1404, + 0x358fc3, + 0x2ba023c2, + 0x225604, + 0x225606, + 0x24fd45, + 0x399fc6, + 0x3b2008, + 0x21de44, + 0x257208, + 0x3267c5, + 0x28e348, + 0x2d8d86, + 0x2b9b07, + 0x27cf44, + 0x2d67cf46, + 0x2da1a6c3, + 0x3a5603, + 0x371008, + 0x338504, + 0x2de0e4c7, + 0x2862c6, + 0x2f0109, + 0x302208, + 0x375208, + 0x381944, + 0x2180c3, + 0x228b02, + 0x2e656442, + 0x2ea014c2, + 0x328243, 0x2ee060c2, - 0x21c0c3, - 0x300a45, - 0x2f226783, - 0x2fa410c9, - 0x2fe00942, - 0x30612002, - 0x29fe85, - 0x221206, - 0x2bd3c6, - 0x3171c8, - 0x3171cb, - 0x34fb0b, - 0x2fc845, - 0x2e8549, + 0x269644, + 0x295e46, + 0x2328c3, + 0x2cb1c7, + 0x3dc083, + 0x2c39c8, + 0x3816c5, + 0x26aa03, + 0x3cca85, + 0x3ccbc4, + 0x3b1c06, + 0x3b7406, + 0x2e4686, + 0x2db944, + 0x238043, + 0x2f25f042, + 0x2f637105, + 0x200843, + 0x2fe02c02, + 0x20f343, + 0x258c05, + 0x3021f603, + 0x30a36089, + 0x30e00942, + 0x3160b5c2, + 0x299245, + 0x2193c6, + 0x2924c6, + 0x30d788, + 0x30d78b, + 0x34cc8b, + 0x2f5f45, + 0x2e2609, 0x1601082, - 0x2cee08, - 0x20f044, - 0x30e01b42, - 0x346043, - 0x316e82c6, - 0x31a02182, - 0x3d6a48, - 0x31e0a842, - 0x2738ca, - 0x32679783, - 0x32f86046, - 0x31de08, - 0x221b86, - 0x396707, - 0x219007, - 0x3d3cca, - 0x24fa04, - 0x36c404, - 0x385109, - 0x333bd905, - 0x219ec6, - 0x2115c3, - 0x2872c4, - 0x33601d04, - 0x201d07, - 0x33bae987, - 0x264f44, - 0x2424c5, - 0x27a508, - 0x256007, - 0x256287, - 0x33e1b5c2, - 0x2ae1c4, - 0x2a99c8, - 0x259284, - 0x25d444, - 0x25d845, - 0x25d987, - 0x34b68049, - 0x23be84, - 0x25f649, - 0x2607c8, - 0x262104, - 0x262107, - 0x264643, - 0x265cc7, - 0x34e00bc2, - 0x16ccd82, - 0x266946, - 0x2c48c7, - 0x2672c4, - 0x268887, - 0x269387, - 0x26a303, - 0x352698c2, - 0x215ac2, - 0x26b7c3, - 0x26b7c4, - 0x26b7cb, - 0x335948, - 0x215ac4, - 0x26ca05, - 0x26e147, - 0x2fa885, - 0x34deca, - 0x270903, - 0x35605b02, - 0x2727c4, - 0x274309, - 0x277c03, - 0x277cc7, - 0x244b49, - 0x20e288, - 0x203743, - 0x291e47, - 0x244603, - 0x299704, - 0x29adc9, - 0x29dc86, - 0x32b303, - 0x203f82, - 0x2ccb83, - 0x2ccb87, - 0x39ab45, - 0x3a3c06, - 0x2d1704, - 0x39b945, - 0x2927c3, - 0x21f0c6, - 0x2094c3, - 0x20ef42, - 0x25c904, - 0x35a03942, - 0x35f339c3, - 0x36206582, - 0x243b43, - 0x21b304, - 0x25a807, - 0x2a8606, - 0x201cc2, - 0x36601c82, - 0x372004, - 0x36e181c2, - 0x37203d02, - 0x2af084, - 0x2af085, - 0x20db45, - 0x3d4d06, - 0x37607282, - 0x370985, - 0x3dccc5, - 0x207283, - 0x2feb46, - 0x2140c5, - 0x21dac2, - 0x363205, - 0x21dac4, - 0x222343, - 0x222583, - 0x37a0e002, - 0x27ab07, - 0x26e304, - 0x26e309, - 0x2871c4, - 0x299fc3, - 0x2c97c8, - 0x37e99fc4, - 0x299fc6, - 0x2bc303, - 0x23f783, - 0x20f583, - 0x3830f1c2, - 0x317442, - 0x38600642, - 0x343e08, - 0x2157c8, - 0x3c9706, - 0x3b6e45, - 0x230185, - 0x349707, - 0x38a62fc5, - 0x216e82, - 0x38eaca82, - 0x39200042, - 0x28f288, - 0x3204c5, - 0x309c84, - 0x242e05, - 0x24ad47, - 0x3df244, - 0x25aec2, - 0x3963ff82, - 0x35a8c4, - 0x362607, - 0x2a0407, - 0x387744, - 0x3e1243, - 0x2a5504, - 0x2a5508, - 0x39a3c686, - 0x266d0a, - 0x3af884, - 0x2a9408, - 0x242344, - 0x22da06, - 0x2aca44, - 0x3000c6, - 0x26e5c9, - 0x2bba87, - 0x3a80c3, - 0x39e01742, - 0x2830c3, - 0x210682, - 0x3a209bc2, - 0x257c86, - 0x28adc8, - 0x2bd547, - 0x317a89, - 0x2bd709, - 0x2bf805, - 0x2c0d09, - 0x2c2005, - 0x2c3205, - 0x2c3fc8, - 0x3a616c44, - 0x3aa16c47, - 0x239803, - 0x2c41c7, - 0x239806, - 0x2c4e47, - 0x2bb585, - 0x2390c3, - 0x3ae30fc2, - 0x213c04, - 0x3b20e9c2, - 0x3b607142, - 0x376406, - 0x233945, - 0x2c7e07, - 0x33be43, - 0x3d6e44, - 0x213903, - 0x23ad43, - 0x3ba06502, - 0x3c202502, - 0x399d84, - 0x269883, - 0x30e905, - 0x3c613f82, - 0x3ce04182, - 0x3a0fc6, - 0x304144, - 0x310f44, - 0x310f4a, - 0x3d6005c2, - 0x20f2c3, - 0x22838a, - 0x231a48, - 0x3da5c204, + 0x2e8f88, + 0x203f04, + 0x31e01342, + 0x3441c3, + 0x32671f46, + 0x32a01b02, + 0x3cf4c8, + 0x32e04c02, + 0x26c74a, + 0x336220c3, + 0x33f7f706, + 0x31cec8, + 0x219d46, + 0x38f207, + 0x212f47, + 0x3d86ca, + 0x245d44, + 0x3671c4, + 0x37e709, + 0x343b2f05, + 0x2064c6, + 0x2132c3, + 0x255ec4, + 0x346e2504, + 0x33b487, + 0x34ba6807, + 0x280984, + 0x35dec5, + 0x274308, + 0x24c387, + 0x24c607, + 0x34e0fd02, + 0x31f0c4, + 0x2a21c8, + 0x24e304, + 0x251604, + 0x2519c5, + 0x251b07, + 0x35b51789, + 0x253144, + 0x253e09, + 0x2554c8, + 0x255c44, + 0x255c47, + 0x256243, + 0x256d47, + 0x35e00bc2, + 0x16c5fc2, + 0x25bb06, + 0x2bdd07, + 0x25c384, + 0x25de87, + 0x25f687, + 0x260483, + 0x362596c2, + 0x21e142, + 0x2619c3, + 0x2619c4, + 0x2619cb, + 0x332088, + 0x21e144, + 0x262c05, + 0x264687, + 0x2f3d05, + 0x32920a, + 0x267c83, + 0x36608102, + 0x23e644, + 0x26d209, + 0x270c43, + 0x270d07, + 0x3613c9, + 0x34f6c8, + 0x264d43, + 0x28a7c7, + 0x291103, + 0x292644, + 0x293349, + 0x297786, + 0x2ae103, + 0x208782, + 0x2c5dc3, + 0x2c5dc7, + 0x389d85, + 0x357186, + 0x212804, + 0x395305, + 0x28b243, + 0x217746, + 0x272fc3, + 0x208b02, + 0x250ac4, + 0x36a34382, + 0x36e34383, + 0x372030c2, + 0x20bfc3, + 0x215b44, + 0x252a07, + 0x2a0786, + 0x26d1c2, + 0x3766d602, + 0x3b2204, + 0x37e115c2, + 0x3820c782, + 0x20c784, + 0x20c785, + 0x33c345, + 0x3c3dc6, + 0x38610202, + 0x2fdf45, + 0x3323c5, + 0x2e9d43, + 0x2fc986, + 0x210205, + 0x217ac2, + 0x35e485, + 0x217ac4, + 0x21dd83, + 0x21dfc3, + 0x38a074c2, + 0x274907, + 0x2556c4, + 0x2556c9, + 0x255dc4, + 0x2b6943, + 0x2c2c88, + 0x38ee9c84, + 0x2e9c86, + 0x2b4843, + 0x263643, + 0x205503, + 0x393034c2, + 0x38c902, + 0x39600642, + 0x341f88, + 0x3d2408, + 0x3c01c6, + 0x29a7c5, + 0x2bb385, + 0x3c7f87, + 0x39a86e45, + 0x2062c2, + 0x39ea4542, + 0x3a200042, + 0x287c08, + 0x30f0c5, + 0x308604, + 0x389605, + 0x394147, + 0x29ee04, + 0x2594c2, + 0x3a6331c2, + 0x356044, + 0x30f447, + 0x2997c7, + 0x380e04, + 0x3e3a43, + 0x29db84, + 0x29db88, + 0x3aa31386, + 0x25beca, + 0x351644, + 0x2a1c08, + 0x2372c4, + 0x225386, + 0x2a4504, + 0x3c9e86, + 0x255989, + 0x2b3fc7, + 0x3a0dc3, + 0x3ae17382, + 0x27e1c3, + 0x209b02, + 0x3b20af02, + 0x254606, + 0x285e48, + 0x2b6687, + 0x35f289, + 0x2b6849, + 0x2b8005, + 0x2b9fc9, + 0x2bb4c5, + 0x2bc045, + 0x2bd508, + 0x3b610084, + 0x3ba10087, + 0x22f2c3, + 0x2bd707, + 0x22f2c6, + 0x2be1c7, + 0x2b3805, + 0x22ea83, + 0x3be29602, + 0x381d04, + 0x3c21fec2, + 0x3c615fc2, + 0x37cd06, + 0x3be845, + 0x2c1107, + 0x2fd603, + 0x354704, + 0x201603, + 0x3be503, + 0x3ca03042, + 0x3d601442, + 0x392d04, + 0x259683, + 0x30d445, + 0x3da04142, + 0x3e206a42, + 0x389806, + 0x2fbf04, + 0x30ecc4, + 0x30ecca, + 0x3ea005c2, + 0x252383, + 0x20ce0a, + 0x20fc88, + 0x3ee503c4, 0x2005c3, - 0x251a83, - 0x2d1fc9, - 0x27cfc9, - 0x231c06, - 0x3de0bc83, - 0x23bb4d, - 0x23dbc6, - 0x2497cb, - 0x3e20b882, - 0x349288, - 0x432235c2, - 0x43603202, - 0x2c6405, - 0x43a040c2, - 0x2b3307, - 0x209a83, - 0x214288, - 0x43e01ac2, - 0x32a7c4, - 0x22cc83, - 0x24d946, - 0x22b9c4, - 0x216f03, - 0x45202382, - 0x2fc7c4, - 0x2cb785, - 0x2cc787, - 0x290943, - 0x2cd143, - 0x1626b42, - 0x2cd803, - 0x2cde03, - 0x45600c02, - 0x279504, - 0x242cc6, - 0x363983, - 0x2ce203, - 0x45a5cf02, - 0x25cf08, - 0x2cf5c4, - 0x2206c6, - 0x393f87, - 0x391d06, - 0x2c5584, - 0x53e01782, - 0x2396cb, - 0x3cdfce, - 0x222f8f, - 0x2e0403, - 0x546dbe82, - 0x164f082, - 0x54a04082, - 0x2b6103, - 0x3cc144, - 0x220243, - 0x359746, - 0x248286, - 0x2b46c7, - 0x390e44, - 0x54e21342, - 0x55232ac2, - 0x309345, - 0x3e4e07, - 0x3cedc6, - 0x5567a6c2, - 0x390744, - 0x2d4783, - 0x55a0af02, - 0x55f82443, - 0x2d5b84, - 0x2dbdc9, - 0x562e3dc2, - 0x5661c4c2, - 0x259605, - 0x56ae42c2, - 0x57203e02, - 0x3698c7, - 0x385c8b, - 0x218dc5, - 0x2682c9, - 0x26f6c6, - 0x57609004, - 0x379289, - 0x377647, - 0x393347, - 0x237b43, - 0x2fe046, - 0x37ea87, - 0x21e803, - 0x2b93c6, - 0x57e16202, - 0x5820b602, - 0x21cd43, - 0x3aca05, - 0x3b14c7, - 0x248386, - 0x39aac5, - 0x26e284, - 0x2ba945, - 0x3141c4, - 0x58609a42, - 0x2e2544, - 0x2d4544, - 0x3a73cd, - 0x2d4549, - 0x260e88, - 0x259884, - 0x3ebb05, - 0x3b80c7, - 0x3d1184, - 0x370c87, - 0x22c4c5, - 0x58abea84, - 0x2be3c5, - 0x58e768c4, - 0x31a606, - 0x3dadc5, - 0x592032c2, - 0x336a83, - 0x251f83, - 0x2459c4, - 0x2459c5, - 0x20d706, - 0x38de05, - 0x26eb44, - 0x59713103, - 0x59a14746, - 0x223d05, - 0x225845, - 0x3daec4, - 0x304c03, - 0x3af90c, - 0x59ecc882, - 0x5a200b42, - 0x5a612a82, - 0x222043, - 0x222044, - 0x5aa0fe02, - 0x302888, - 0x22be04, - 0x3301c6, - 0x5ae24902, - 0x5b216902, - 0x5b603f02, - 0x2a4a45, - 0x300346, - 0x238044, - 0x2361c6, - 0x212506, - 0x26ac03, - 0x5ba9d60a, - 0x299f05, - 0x2b98c3, - 0x213606, - 0x5be13609, - 0x22e147, - 0x3c8548, - 0x391909, - 0x3bfe88, - 0x2a3c46, - 0x20a2c3, - 0x5c205942, - 0x3b0148, - 0x5c6593c2, - 0x5ca00ec2, - 0x2384c3, - 0x2fc3c5, - 0x2b1244, - 0x2bdf89, - 0x23ca84, - 0x255308, - 0x5d20b4c3, - 0x5d66b484, - 0x221248, - 0x5da15142, - 0x23d8c2, - 0x3397c5, - 0x3bba89, - 0x214e43, - 0x32eb84, - 0x3f0484, - 0x2202c3, - 0x29558a, - 0x5df9b302, - 0x5e213a42, - 0x2e7f43, - 0x39d383, - 0x161c182, - 0x377f43, - 0x5e62ab02, - 0x5ea01942, - 0x5ee30944, - 0x296ac6, - 0x281884, - 0x28f0c3, - 0x3da783, - 0x5f30c783, - 0x24d5c6, - 0x339b85, - 0x2eba87, - 0x2eb9c6, - 0x2ec108, - 0x2ec306, - 0x201944, - 0x2b2dcb, - 0x2eea43, - 0x2eea45, - 0x5f60ffc2, - 0x369bc2, - 0x5fa54782, - 0x5fe0d3c2, - 0x221383, - 0x60282182, - 0x282183, - 0x2f0343, - 0x60a067c2, - 0x60ef3c06, - 0x2f4005, - 0x2b7346, - 0x6127c082, - 0x61611282, - 0x61a225c2, - 0x61e736c2, - 0x622130c2, - 0x62602202, - 0x21c603, - 0x3a9686, - 0x62a25a04, - 0x3b52c6, - 0x2907c4, - 0x2ec4c3, - 0x63603642, - 0x201f42, - 0x238cc3, - 0x63a14883, - 0x3cec47, - 0x3dacc7, - 0x6965c3c7, - 0x316147, - 0x218943, - 0x69a7a004, - 0x327e04, - 0x327e0a, - 0x3e69c5, - 0x69e31a82, - 0x268843, - 0x6a200602, - 0x262243, - 0x283083, - 0x6aa00582, - 0x28f944, - 0x349904, - 0x3cb645, - 0x32bd85, - 0x311f06, - 0x311186, - 0x6ae18882, - 0x6b2025c2, - 0x2fb405, - 0x2b7052, - 0x326ac6, - 0x22a783, - 0x22a786, - 0x269b85, - 0x1616fc2, - 0x73611f42, - 0x336783, - 0x211f43, - 0x2ac1c3, - 0x73a17a02, - 0x21fe83, - 0x73e07982, - 0x230983, - 0x37b608, - 0x248803, - 0x248806, - 0x3e8187, - 0x3271c6, - 0x3271cb, - 0x290707, - 0x313084, - 0x74600e82, - 0x3a3b45, - 0x74a14843, - 0x247043, - 0x20b8c5, - 0x218843, - 0x75218846, - 0x2ac403, - 0x203584, + 0x237703, + 0x2cb2c9, + 0x26b289, + 0x20fe46, + 0x3f211e43, + 0x32054d, + 0x230886, + 0x247a4b, + 0x3f605cc2, + 0x31ff88, + 0x4421b842, + 0x44602802, + 0x2bfe45, + 0x44a02b82, + 0x2aaac7, + 0x20adc3, + 0x2103c8, + 0x44e04b02, + 0x2bc5c4, + 0x224b03, + 0x2440c6, + 0x230a84, + 0x217083, + 0x46201d02, + 0x2f5ec4, + 0x2c4c45, + 0x2c59c7, + 0x288e83, + 0x2c7003, + 0x16c76c2, + 0x2c76c3, + 0x2c7b43, + 0x46600c02, + 0x221e44, + 0x34d006, + 0x27d843, + 0x2c7fc3, + 0x46a510c2, + 0x2510c8, + 0x2c8c84, + 0x3b6686, + 0x38ca87, + 0x3ae1c6, + 0x370f84, + 0x54e01302, + 0x22f18b, + 0x2c650e, + 0x21b1cf, + 0x3a9cc3, + 0x556d5782, + 0x1646c82, + 0x55a06002, + 0x242443, + 0x3bf3c4, + 0x288983, + 0x358546, + 0x389c06, + 0x3c3087, + 0x244804, + 0x55e19502, + 0x56229d02, + 0x307cc5, + 0x302d47, + 0x3ba846, + 0x566744c2, + 0x389544, + 0x2cda83, + 0x56a06982, + 0x56f7bc03, + 0x2ce904, + 0x2d56c9, + 0x572dd4c2, + 0x57639842, + 0x24e685, + 0x57add802, + 0x58204fc2, + 0x363ec7, + 0x37f34b, + 0x212d05, + 0x248009, + 0x265e06, + 0x5861cd44, + 0x3c58c9, + 0x3e7587, + 0x38be47, + 0x22d903, + 0x2f8406, + 0x325a07, + 0x2721c3, + 0x2c0686, + 0x58e0d9c2, + 0x5922a2c2, + 0x3b7203, + 0x3a5e05, + 0x2df807, + 0x38ffc6, + 0x389d05, + 0x255644, + 0x2b2085, + 0x311944, + 0x59601282, + 0x2db584, + 0x26b184, + 0x26b18d, + 0x2d92c9, + 0x393f88, + 0x201284, + 0x267945, + 0x2ff707, + 0x3c22c4, + 0x2fe247, + 0x226505, + 0x59ab7284, + 0x2ba645, + 0x59e6f904, + 0x318046, + 0x2dc045, + 0x5a2663c2, + 0x22a283, + 0x30cf03, + 0x23b5c4, + 0x23b5c5, + 0x21c2c6, + 0x389e45, + 0x264cc4, + 0x5a700ec3, + 0x5aa10886, + 0x20a8c5, + 0x218f45, + 0x2dc144, + 0x3516c3, + 0x3516cc, + 0x5aec5ac2, + 0x5b200b42, + 0x5b606b42, + 0x20f743, + 0x20f744, + 0x5ba09582, + 0x2fa4c8, + 0x2665c4, + 0x32ea06, + 0x5be1a202, + 0x5c2065c2, + 0x5c605e42, + 0x29d5c5, + 0x3ca106, + 0x35ed44, + 0x22c8c6, + 0x20bac6, + 0x228343, + 0x5ca9748a, + 0x2e9bc5, + 0x2a8643, + 0x225ac6, + 0x5cff3f49, + 0x225ac7, + 0x28f848, + 0x2ca809, + 0x3a3348, + 0x29ca06, + 0x206a83, + 0x5d202042, + 0x3a7ac8, + 0x5d64e442, + 0x5da00ec2, + 0x23ddc3, + 0x2dfa85, + 0x2a7d84, + 0x2bd2c9, + 0x231784, + 0x235ac8, + 0x5e209b43, + 0x5e65f304, + 0x219408, + 0x5eac7f42, + 0x230582, + 0x335f45, + 0x234e09, + 0x206543, + 0x32c584, + 0x3a7f44, + 0x255a83, + 0x28e94a, + 0x5ef94cc2, + 0x5f20d682, + 0x2e2003, + 0x396ec3, + 0x160f402, + 0x3b3083, + 0x5f61cf02, + 0x5fa01502, + 0x5fe28f84, + 0x28f406, + 0x27c704, + 0x287a43, + 0x208483, + 0x6030b843, + 0x243d46, + 0x336305, + 0x2e6947, + 0x2e6886, + 0x2e7588, + 0x2e7786, + 0x220084, + 0x2a9ccb, + 0x2ea443, + 0x2ea445, + 0x606066c2, + 0x3641c2, + 0x60a4a502, + 0x60e03c42, + 0x206e83, + 0x6127d202, + 0x27d203, + 0x2eaf83, + 0x61a03302, + 0x61eee6c6, + 0x2eeac5, + 0x29acc6, + 0x62275a82, + 0x6260a702, + 0x62a1e002, + 0x62e070c2, + 0x6320f8c2, + 0x63601b82, + 0x24b083, + 0x3d3446, + 0x63a94744, + 0x3ac646, + 0x288d04, + 0x301843, + 0x646024c2, + 0x2018c2, + 0x22e683, + 0x64a109c3, + 0x3d3687, + 0x2dbf47, + 0x6aa50587, + 0x314207, + 0x212343, + 0x6ae73e04, + 0x2ecf44, + 0x2ecf4a, + 0x3e8d45, + 0x6b20fcc2, + 0x25de43, + 0x6b600602, + 0x22b643, + 0x27e183, + 0x6be00582, + 0x2899c4, + 0x335904, + 0x3afb45, + 0x3226c5, + 0x22d006, + 0x2b9286, + 0x6c212282, + 0x6c601f42, + 0x2c6d85, + 0x29a9d2, + 0x2ad8c6, + 0x203d43, + 0x3d1f46, + 0x366905, + 0x1617142, + 0x74a0b502, + 0x3baec3, + 0x20b503, + 0x2afb03, + 0x74e03902, + 0x218903, + 0x75216282, + 0x228fc3, + 0x3afdc8, + 0x243503, + 0x243506, + 0x3ea507, + 0x333ac6, + 0x333acb, + 0x288c47, + 0x300e44, + 0x75a00e82, + 0x3570c5, + 0x75e01883, + 0x23c483, + 0x3c52c5, + 0x212243, + 0x76612246, + 0x2b1343, + 0x22c284, 0x2003c6, - 0x334046, - 0x7564acc3, - 0x285c07, - 0x244747, - 0x2b54c5, - 0x24eb06, - 0x21cc03, - 0x782cebc3, - 0x78607002, - 0x78a30704, - 0x3f3589, - 0x21b645, - 0x3af684, - 0x303a08, - 0x23d505, - 0x78e407c5, - 0x24f689, - 0x380583, - 0x3dca84, - 0x792035c2, - 0x221583, - 0x79681142, - 0x281146, - 0x168e5c2, - 0x79a15882, - 0x2a4948, - 0x2a54c3, - 0x2be307, - 0x39fc85, - 0x2fddc5, - 0x331a0b, - 0x2fddc6, - 0x331c06, - 0x24bb04, - 0x218386, - 0x79f00dc8, - 0x26c0c3, - 0x274003, - 0x274004, - 0x3e4d44, - 0x304e07, - 0x31ea05, - 0x7a324e02, - 0x7a608782, - 0x7ae08785, - 0x2e6ac4, - 0x2e6acb, - 0x305448, - 0x268f84, - 0x7b25cf42, - 0x7b609ec2, - 0x209ec3, - 0x306744, - 0x306a05, - 0x307387, - 0x7bb097c4, - 0x21bd84, - 0x7be05442, - 0x38a3c9, - 0x30a905, - 0x219085, - 0x30b185, - 0x7c205443, - 0x244e04, - 0x244e0b, - 0x30be44, - 0x30c10b, - 0x30c6c5, - 0x2230ca, - 0x30ce88, - 0x30d08a, - 0x30d883, - 0x30d88a, - 0x7ca1b482, - 0x7ce21e42, - 0x7d229a83, - 0x7d6cc442, - 0x310c43, - 0x7db129c2, - 0x7df42742, - 0x313e44, - 0x223606, - 0x235f05, - 0x317483, - 0x23b886, - 0x212c85, - 0x235804, - 0x7e200902, - 0x21d784, - 0x2e81ca, - 0x2cb0c7, - 0x351e86, - 0x2516c7, - 0x24c843, - 0x2d5bc8, - 0x34c64b, - 0x226445, - 0x3f05c5, - 0x3f05c6, - 0x304704, - 0x236d08, - 0x2221c3, - 0x28b8c4, - 0x3d4047, - 0x312cc6, - 0x346906, - 0x2d840a, - 0x25f6c4, - 0x2a1a8a, - 0x7e6f7b86, - 0x2f7b87, - 0x26ca87, - 0x28db44, - 0x28db49, - 0x230dc5, - 0x377483, - 0x236883, - 0x7ea06f83, - 0x234344, - 0x7ee00682, - 0x366906, - 0x7f2d9445, - 0x22a9c5, - 0x246646, - 0x215084, - 0x7f601a42, - 0x246744, - 0x7fe03b02, - 0x379105, - 0x230f44, - 0x8122ea03, - 0x81611f82, - 0x211f83, - 0x3bb206, - 0x81a02fc2, - 0x339288, - 0x22dfc4, - 0x22dfc6, - 0x39dc06, - 0x81e6e204, - 0x220f05, - 0x22f7c8, - 0x230007, - 0x286287, - 0x28628f, - 0x2a98c6, - 0x247943, - 0x249f84, - 0x234c03, - 0x22db44, - 0x3a23c4, - 0x8220b242, - 0x2625c3, - 0x33fc03, - 0x82606382, + 0x3dd9c6, + 0x76a1f143, + 0x3545c7, + 0x360fc7, + 0x2abc05, + 0x329dc6, + 0x20a903, + 0x796c88c3, + 0x79a06702, + 0x79e28d44, + 0x3f2d09, + 0x222b85, + 0x23d9c4, + 0x2fb7c8, + 0x245ac5, + 0x7a247285, + 0x260fc9, + 0x2ff543, + 0x3d7744, + 0x7a6020c2, + 0x219743, + 0x7aa795c2, + 0x2795c6, + 0x1686f42, + 0x7ae06fc2, + 0x29d4c8, + 0x29db43, + 0x2ba587, + 0x333d45, + 0x2cc285, + 0x2cc28b, + 0x2f8186, + 0x2cc486, + 0x244f04, + 0x211786, + 0x7b2f8a08, + 0x2622c3, + 0x267103, + 0x267104, + 0x302c84, + 0x30e087, + 0x341845, + 0x7b768e82, + 0x7ba04f82, + 0x7c204f85, + 0x2d23c4, + 0x2e32cb, + 0x303988, + 0x271c84, + 0x7c634dc2, + 0x7ca71c02, + 0x373dc3, + 0x304c84, + 0x304f45, + 0x3058c7, + 0x7cf08144, + 0x20f004, + 0x7d202b02, + 0x383b89, + 0x3096c5, + 0x212fc5, + 0x30a245, + 0x7d619683, + 0x23ab84, + 0x23ab8b, + 0x30af04, + 0x30b1cb, + 0x30b785, + 0x21b30a, + 0x30bec8, + 0x30c0ca, + 0x30c943, + 0x30c94a, + 0x7de15cc2, + 0x7e21a002, + 0x7e620283, + 0x7eb0e9c2, + 0x30e9c3, + 0x7ef104c2, + 0x7f340942, + 0x3115c4, + 0x21b886, + 0x22c605, + 0x3db3c6, + 0x3c1f05, + 0x30f784, + 0x7f600902, + 0x269484, + 0x2e228a, + 0x2c4587, + 0x3be686, + 0x237347, + 0x243143, + 0x2ce948, + 0x3ed24b, + 0x2d61c5, + 0x21d505, + 0x21d506, + 0x3a8084, + 0x3b7a48, + 0x214143, + 0x2a7e84, + 0x3d8a47, + 0x300a86, + 0x3e2106, + 0x2d34ca, + 0x23d704, + 0x23d70a, + 0x7fb70486, + 0x370487, + 0x262c87, + 0x267784, + 0x267789, + 0x229405, + 0x3e7503, + 0x20c4c3, + 0x7fe22b03, + 0x80200682, + 0x239ac6, + 0x806d7105, + 0x3d2185, + 0x236746, + 0x2c7e84, + 0x80a12482, + 0x236844, + 0x81210002, + 0x3c5745, + 0x229584, + 0x82627103, + 0x82a0b542, + 0x20b543, + 0x3b5ec6, + 0x82e04842, + 0x39ac48, + 0x225944, + 0x225946, + 0x33ca86, + 0x83264744, + 0x20e905, + 0x2203c8, + 0x225c47, + 0x228087, + 0x22808f, + 0x2a20c6, + 0x23ae03, + 0x23f044, + 0x227543, + 0x2254c4, + 0x382e44, + 0x8363f602, + 0x2a0f03, + 0x33d7c3, + 0x83a02ec2, + 0x202ec3, + 0x269703, + 0x213dca, + 0x31bc07, + 0x3a60cc, + 0x3a6386, + 0x251e86, + 0x259307, + 0x83e5d447, + 0x263789, + 0x84241844, + 0x84a06ec2, + 0x84e01042, + 0x2d3886, + 0x3543c4, + 0x2d4746, + 0x26abc8, + 0x3a5ec4, + 0x33da06, + 0x292485, + 0x8567e608, + 0x247843, + 0x282245, + 0x285c83, + 0x2130c3, + 0x2130c4, + 0x26b683, + 0x85a51502, + 0x85e00e02, + 0x3e73c9, + 0x28cb45, + 0x28cec4, + 0x298ac5, + 0x203544, + 0x2e6f07, + 0x35ea45, + 0x8661bc04, + 0x2f9f48, + 0x2c9bc6, + 0x2cf104, + 0x2cff48, + 0x86a01a42, + 0x2e3184, + 0x31c344, + 0x351387, + 0x86e04ac4, + 0x201cc2, + 0x87210a82, + 0x24e583, + 0x24e584, + 0x239803, + 0x38f6c5, + 0x87655182, + 0x2f4a85, + 0x27ccc2, + 0x317585, + 0x2e1085, + 0x87a03d02, + 0x381844, + 0x87e03c82, + 0x3e49c6, + 0x2d7c06, + 0x234f48, + 0x296048, + 0x37cc84, + 0x2f8bc5, + 0x8822a9c9, + 0x2e90c4, + 0x3ef104, + 0x2776c3, + 0x20e7c3, + 0x8860e7c5, + 0x275485, + 0x2e9f04, + 0x2b26c2, + 0x3315c3, + 0x88a02e82, + 0x88e01982, + 0x39a705, + 0x285b07, + 0x283d44, + 0x2caa09, + 0x2e23c9, + 0x202183, + 0x286d88, + 0x2a8c49, + 0x222607, + 0x8933d845, + 0x359b86, + 0x35b2c6, + 0x35c0c5, + 0x2d93c5, + 0x89605682, + 0x259205, + 0x2d8f88, + 0x2d5fc6, + 0x89b0b9c7, + 0x3a6744, + 0x371587, + 0x3b1106, + 0x89e0de02, + 0x21bfc6, + 0x317485, + 0x8a2429c2, + 0x8a618b82, + 0x27aec6, + 0x8aa99987, + 0x8ae38742, + 0x21a043, + 0x23e186, + 0x2d8e44, + 0x269c46, + 0x341606, + 0x2fdb0a, + 0x350145, + 0x21ef46, + 0x21f983, + 0x21f984, + 0x8b2021c2, + 0x32a083, + 0x8b60f782, + 0x333883, + 0x8ba0d084, + 0x2dfbc4, + 0x8bedfbca, 0x206383, - 0x21da03, - 0x21930a, - 0x31cdc7, - 0x3ae24c, - 0x3ae506, - 0x25dd06, - 0x269507, - 0x82a6ffc7, - 0x272589, - 0x82f65e44, - 0x836213c2, - 0x83a01042, - 0x2d87c6, - 0x285a04, - 0x2db286, - 0x277f48, - 0x3acac4, - 0x33a6c6, - 0x2bd385, - 0x842833c8, - 0x250dc3, - 0x287385, - 0x28d283, - 0x219183, - 0x219184, - 0x272983, - 0x846291c2, - 0x84a00e02, - 0x377349, - 0x2936c5, - 0x293a44, - 0x29f705, - 0x20f144, - 0x2eadc7, - 0x3637c5, - 0x85223984, - 0x302308, - 0x2cf686, - 0x2d4a04, - 0x2d4a08, - 0x85601a82, - 0x2dc104, - 0x31d504, - 0x354fc7, - 0x85a01a84, - 0x202342, - 0x85e14942, - 0x220203, - 0x259504, - 0x243a83, - 0x396bc5, - 0x8621e7c2, - 0x2f93c5, - 0x2827c2, - 0x319cc5, - 0x2e6805, - 0x8662c602, - 0x23d204, - 0x86a075c2, - 0x3e21c6, - 0x212f06, - 0x3bbbc8, - 0x29c8c8, - 0x376384, - 0x300f85, - 0x312649, - 0x2cef44, - 0x3effc4, - 0x27c243, - 0x289f03, - 0x86e89f05, - 0x26ed05, - 0x29a244, - 0x2a7382, - 0x334a03, - 0x87206342, - 0x87601b82, - 0x338d45, - 0x28d107, - 0x20d944, - 0x391b09, - 0x2e8309, - 0x28e403, - 0x28e408, - 0x2ab4c9, - 0x3d3b47, - 0x87b3a505, - 0x35d3c6, - 0x35da06, - 0x35eec5, - 0x2d4645, - 0x87e02802, - 0x202805, - 0x2e0788, - 0x2e1306, - 0x8830c907, - 0x3ae8c4, - 0x2df487, - 0x3a8246, - 0x88609202, - 0x20d406, - 0x31934a, - 0x319bc5, - 0x88a15982, - 0x88e37dc2, - 0x27fe06, - 0x892a05c7, - 0x89603382, - 0x221e83, - 0x3f38c6, - 0x2de1c4, - 0x253846, - 0x324bc6, - 0x20184a, - 0x336e05, - 0x3c7b06, - 0x3c8703, - 0x3c8704, - 0x89a05e02, - 0x32c003, - 0x89e22082, - 0x32bc83, - 0x8a228604, - 0x2dfc04, - 0x8a7b188a, - 0x219d83, - 0x387c47, - 0x3de4c6, - 0x328b44, - 0x2372c2, - 0x2184c2, - 0x8aa007c2, - 0x2ef983, - 0x26c847, + 0x2096c7, + 0x366c46, + 0x3888c4, + 0x22cec2, + 0x2298c2, + 0x8c2007c2, + 0x30fc43, + 0x262a47, 0x2007c7, - 0x29b784, - 0x220d87, - 0x307486, - 0x23b147, - 0x21dc44, - 0x223f05, - 0x2031c5, - 0x8ae09b02, - 0x226b06, - 0x22b203, - 0x231282, - 0x231286, - 0x8b229b42, - 0x8b649902, - 0x254905, - 0x8ba021c2, - 0x8be019c2, - 0x398c45, - 0x2eed85, - 0x313b85, - 0x8c673143, - 0x2f2505, - 0x2fde87, - 0x2bb945, - 0x336fc5, - 0x279f04, - 0x240646, - 0x253004, - 0x8ca008c2, - 0x8d6d0e85, - 0x215e07, - 0x203788, - 0x27b8c6, - 0x27b8cd, - 0x27cd89, - 0x27cd92, - 0x33c805, - 0x3465c3, - 0x8da0ea02, - 0x3247c4, - 0x23dc43, - 0x38a6c5, - 0x31a945, - 0x8de2ccc2, - 0x272503, - 0x8e25c442, - 0x8ea2b942, - 0x8ee00082, - 0x3f4005, - 0x3a81c3, - 0x8f20dfc2, - 0x8f60ba42, - 0x28f906, - 0x26b54a, - 0x22a743, - 0x245943, - 0x2ed243, - 0x91203342, - 0x9fa096c2, - 0xa0203b42, - 0x207882, - 0x334809, - 0x2e31c4, - 0x283dc8, - 0xa0627e42, - 0xa0e01102, - 0x271dc5, - 0x241e48, - 0x24d048, - 0x2f29cc, - 0x246143, - 0xa1276282, - 0xa160b382, - 0x2dac86, - 0x31be45, - 0x2f4e83, - 0x26aa06, - 0x31bf86, - 0x251a43, - 0x31d443, - 0x31d886, - 0x31f304, - 0x2637c6, - 0x3afc04, - 0x31f9c4, - 0x32134a, - 0xa1a561c2, - 0x2647c5, - 0x32290a, - 0x322845, - 0x323904, - 0x323a06, - 0x323b84, - 0x221846, - 0xa1e02402, - 0x21c7c6, - 0x325785, - 0x3c7987, - 0x3d0286, - 0x269704, - 0x2f5107, - 0x20d445, - 0x2477c7, - 0x22abc7, - 0x22abce, - 0x290106, - 0x248b85, - 0x2080c7, - 0x3dcb47, - 0x212105, - 0x2152c4, - 0x333502, - 0x28ac87, - 0x28d304, - 0x260644, - 0x2d568b, - 0xa22270c3, - 0x30dcc7, - 0x2270c4, - 0x30dfc7, - 0x224303, - 0x35680d, - 0x328848, - 0xa2656bc4, - 0x256bc5, - 0x3e1685, - 0x329083, - 0xa2a2dec2, - 0x32bfc3, - 0x32c803, - 0x2159c4, - 0x226c85, - 0x226d87, - 0x3c8786, - 0x39b403, - 0x2313cb, - 0x377b8b, - 0x2b87cb, - 0x2c144b, - 0x2c1d8a, - 0x3cce4b, - 0x3012cb, - 0x31c20c, - 0x31fdcb, - 0x36a851, - 0x37e70a, - 0x3c120b, - 0x3f1dcc, - 0x32d34b, - 0x32e2ca, - 0x32e94a, - 0x32fd0e, - 0x33034b, - 0x33060a, - 0x331d91, - 0x3321ca, - 0x3326cb, - 0x332c0e, - 0x334acc, - 0x334f4b, - 0x33520e, - 0x33558c, - 0x33750a, - 0x33870c, - 0xa2f3948a, - 0x339cc8, - 0x33a989, - 0x33c9ca, - 0x33cc4a, - 0x33cecb, - 0x33f38e, - 0x33fed1, - 0x34a749, - 0x34a98a, - 0x34b6cb, - 0x34cd4d, - 0x34dbca, - 0x34e396, - 0x34f70b, - 0x350b8a, - 0x3514ca, - 0x35250b, - 0x353f89, - 0x357189, - 0x358b0d, - 0x35994b, - 0x35b40b, - 0x35b8c9, - 0x35bf0e, - 0x35c54a, - 0x35d18a, - 0x35d7ca, - 0x35decb, - 0x35e70b, - 0x35f98d, - 0x36130d, - 0x362e90, - 0x36334b, - 0x363e4c, - 0x36514b, - 0x3693cb, - 0x36ce0e, - 0x36e0cb, - 0x36e0cd, - 0x3745cb, - 0x37504f, - 0x37540b, - 0x375dca, - 0x377889, - 0x37a2c9, - 0xa337a64b, - 0x37a90e, - 0x37ac8e, - 0x37c54b, - 0x37d2cf, - 0x38078b, - 0x380a4b, - 0x380d0a, - 0x385889, - 0x38820f, - 0x38d40c, - 0x38d9cc, - 0x38e94e, - 0x38ef8f, - 0x38f34e, - 0x38fd10, - 0x39010f, - 0x39110e, - 0x391fcc, - 0x3922d1, - 0x392712, - 0x393b11, - 0x39414e, - 0x39498b, - 0x39498e, - 0x394d0f, - 0x3950ce, - 0x395450, - 0x395853, - 0x395d11, - 0x39614c, - 0x39644e, - 0x3968cc, - 0x396d13, - 0x3977d0, - 0x397c4c, - 0x397f4c, - 0x39880b, - 0x39998e, - 0x399e8b, - 0x39a5cb, - 0x39bc8c, - 0x3a280a, - 0x3a2c4c, - 0x3a2f4c, - 0x3a3249, - 0x3a560b, - 0x3a58c8, - 0x3a6089, - 0x3a608f, - 0x3a7acb, - 0xa37a890a, - 0x3ab34c, - 0x3ac28b, - 0xa3bac549, - 0x3ad1c8, - 0x3ad58b, - 0x3aee0a, - 0x3af08a, - 0x3af30b, - 0x3afecc, - 0x3b1b09, - 0x3b1d48, - 0x3b464b, - 0x3b6f8b, - 0x3bcd0e, - 0x3be20b, - 0x3c0b8b, - 0x3cc50b, - 0x3cc7c9, - 0x3cd3cd, - 0x3dfeca, - 0x3e3357, - 0x3e4398, - 0x3e6b89, - 0x3e7dcb, - 0x3ed6d4, - 0x3edbcb, - 0x3ee14a, - 0x3eed0a, - 0x3eef8b, - 0x3ef6d0, - 0x3efad1, - 0x3f00ca, - 0x3f13cd, - 0x3f1acd, - 0x3f328b, - 0x226c03, - 0xa3e05503, - 0x21a846, - 0x209545, - 0x2f0b07, - 0x2c6b06, - 0xa420b2c2, - 0x2c0209, - 0x23b684, - 0x2fcdc8, - 0x206ec3, - 0x324707, - 0xa4603482, - 0x2c7e43, - 0xa4a079c2, - 0x2e8dc6, - 0x2e9b84, - 0x230ac4, - 0x204e83, - 0xa52e4302, - 0xa562fd04, - 0x28da87, - 0xa5a371c2, - 0x21a043, - 0x358c3, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x113508, - 0x208c43, + 0x295284, + 0x230147, + 0x3059c6, + 0x3dac87, + 0x217c44, + 0x21c505, + 0x210785, + 0x8c60ae42, + 0x361dc6, + 0x2309c3, + 0x231d02, + 0x231d06, + 0x8ca20342, + 0x8ce3d942, + 0x24a685, + 0x8d201b42, + 0x8d60c642, + 0x8df925c5, + 0x2e3e85, + 0x311305, + 0x8e26bfc3, + 0x2d9e05, + 0x2f8247, + 0x2b6cc5, + 0x350305, + 0x273d04, + 0x245946, + 0x254f84, + 0x8e6008c2, + 0x8f2b5585, + 0x37b547, + 0x2f8788, + 0x28e506, + 0x28e50d, + 0x28fa09, + 0x28fa12, + 0x387e05, + 0x391543, + 0x8f609a02, + 0x324704, + 0x230903, + 0x318785, + 0x319345, + 0x8fa24b42, + 0x26aa43, + 0x8fe50602, + 0x90624302, + 0x90a00082, + 0x3ee585, + 0x3a0ec3, + 0x90e07482, + 0x91205fc2, + 0x289986, + 0x277a0a, + 0x2056c3, + 0x23b543, + 0x2f0ac3, + 0x92e02642, + 0xa1641d82, + 0xa1e18182, + 0x2046c2, + 0x330c49, + 0x2dc8c4, + 0x3a0208, + 0xa2221902, + 0xa2a01102, + 0x282145, + 0x236dc8, + 0x32b148, + 0x2f0d4c, + 0x23ba43, + 0xa2e6f2c2, + 0xa320c302, + 0x2d4146, + 0x31a605, + 0x2ef943, + 0x273706, + 0x31a746, + 0x2376c3, + 0x31c283, + 0x31c946, + 0x31de04, + 0x20c306, + 0x3ec744, + 0x31e5c4, + 0x320bca, + 0xa364c542, + 0x2563c5, + 0x3229ca, + 0x322905, + 0x3236c4, + 0x3237c6, + 0x323944, + 0x219a06, + 0xa3a01d82, + 0x39e8c6, + 0x302045, + 0x3bd5c7, + 0x3c9246, + 0x259504, + 0x2efc47, + 0x21c005, + 0x25d2c7, + 0x22b7c7, + 0x22b7ce, + 0x288646, + 0x243885, + 0x204a07, + 0x3c2c87, + 0x20b6c5, + 0x214404, + 0x244b82, + 0x285d07, + 0x293244, + 0x24cf44, + 0x2e78cb, + 0xa3e20b83, + 0x326f07, + 0x220b84, + 0x327207, + 0x21c903, + 0x352b0d, + 0x326648, + 0xa424d404, + 0x24d405, + 0x3e3e85, + 0x326e83, + 0xa4625842, + 0x32a043, + 0x32ae03, + 0x21e044, + 0x361f45, + 0x362047, + 0x21fa06, + 0x394dc3, + 0x233e8b, + 0x3727cb, + 0x2aeccb, + 0x2badcb, + 0x2c78ca, + 0x2d594b, + 0x2f8f0b, + 0x3274cc, + 0x31e9cb, + 0x36534a, + 0x39c74b, + 0x3b558c, + 0x3f130b, + 0x32b74a, + 0x32c34a, + 0x32d68e, + 0x32de0b, + 0x32e0ca, + 0x32f191, + 0x32f5ca, + 0x32facb, + 0x33000e, + 0x33130c, + 0x33168b, + 0x33194e, + 0x331ccc, + 0x33324a, + 0x33500c, + 0xa4b35c0a, + 0x336448, + 0x336e49, + 0x33894a, + 0x338bca, + 0x338e4b, + 0x33cf4e, + 0x33df11, + 0x348109, + 0x34834a, + 0x348a8b, + 0x34a04d, + 0x34aeca, + 0x34b516, + 0x34c88b, + 0x34e18a, + 0x34e9ca, + 0x34f8cb, + 0x350709, + 0x353489, + 0x354a4d, + 0x35520b, + 0x356b8b, + 0x357509, + 0x357b4e, + 0x35874a, + 0x35940a, + 0x35994a, + 0x35a2cb, + 0x35ab0b, + 0x35b8cd, + 0x35d48d, + 0x35e110, + 0x35e5cb, + 0x35fc4c, + 0x36160b, + 0x3639cb, + 0x367bce, + 0x3682cb, + 0x3682cd, + 0x36e30b, + 0x36ed8f, + 0x36f14b, + 0x36fb0a, + 0x3724c9, + 0x374309, + 0xa4f7468b, + 0x37494e, + 0x374cce, + 0x37638b, + 0x37708f, + 0x379b0b, + 0x379dcb, + 0x37a08a, + 0x37ef49, + 0x38280f, + 0x386b0c, + 0x38748c, + 0x387ace, + 0x387fcf, + 0x38838e, + 0x388b10, + 0x388f0f, + 0x38a00e, + 0x38ab4c, + 0x38ae51, + 0x38b292, + 0x38c611, + 0x38cc4e, + 0x38d48b, + 0x38d48e, + 0x38d80f, + 0x38dbce, + 0x38df50, + 0x38e353, + 0x38e811, + 0x38ec4c, + 0x38ef4e, + 0x38f3cc, + 0x38f813, + 0x390990, + 0x390e0c, + 0x39110c, + 0x39218b, + 0x39290e, + 0x392e0b, + 0x39354b, + 0x39564c, + 0x39b18a, + 0x39bf4c, + 0x39c24c, + 0x39c549, + 0x39e04b, + 0x39e308, + 0x39eec9, + 0x39eecf, + 0x3a07cb, + 0xa53a13ca, + 0x3a360c, + 0x3a454b, + 0xa57a4809, + 0x3a5008, + 0x3a53cb, + 0x3a6c8a, + 0x3a6f0a, + 0x3a718b, + 0x3a784c, + 0x3a85c9, + 0x3a8808, + 0x3ab9cb, + 0x3ae48b, + 0x3b230e, + 0x3b380b, + 0x3b4f0b, + 0x3c698b, + 0x3c6c49, + 0x3c714d, + 0x3e264a, + 0x3e6257, + 0x3e6a98, + 0x3e8f09, + 0x3ea14b, + 0x3eb314, + 0x3eb80b, + 0x3ebd8a, + 0x3eca0a, + 0x3ecc8b, + 0x3ee810, + 0x3eec11, + 0x3ef20a, + 0x3f090d, + 0x3f100d, + 0x3f2a0b, + 0x361ec3, + 0xa5bd5603, + 0x27d646, + 0x286845, + 0x2eb907, + 0x2de506, + 0xa5e3c402, + 0x2b8a09, + 0x3db1c4, + 0x2f64c8, + 0x222a43, + 0x324647, + 0xa62428c2, + 0x2c1143, + 0xa6603642, + 0x2e2ec6, + 0x2e5184, + 0x229104, + 0x3d6b83, + 0xa6edd842, + 0xa7201844, + 0x2676c7, + 0xa762c082, + 0x206643, + 0x2cd03, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x11c748, + 0x21d783, 0x2000c2, - 0x1c3448, - 0x20b642, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x219303, - 0x345796, - 0x373113, - 0x220c09, - 0x2848c8, - 0x3a39c9, - 0x322a86, - 0x35a910, - 0x3d24d3, - 0x312d88, - 0x291087, - 0x29ba47, - 0x2ba68a, - 0x3b95c9, - 0x336809, - 0x265a0b, - 0x35ca86, - 0x335a4a, - 0x22d286, - 0x23a103, - 0x27aa45, - 0x213cc8, - 0x29464d, - 0x2ffe8c, - 0x325447, - 0x3bc70d, - 0x22f8c4, - 0x23e08a, - 0x23fb4a, - 0x24000a, - 0x2ae887, - 0x249c47, - 0x24e084, - 0x282a46, - 0x325944, - 0x226788, - 0x23cac9, - 0x3171c6, - 0x3171c8, - 0x25248d, - 0x2e8549, - 0x31de08, - 0x219007, - 0x254b4a, - 0x2c48c6, - 0x3766c4, - 0x212747, - 0x366b0a, - 0x3ee84e, - 0x262fc5, - 0x2a014b, - 0x2ef6c9, - 0x27cfc9, - 0x2098c7, - 0x2098ca, - 0x36df07, - 0x3ce109, - 0x233e08, - 0x20bc0b, - 0x2fc3c5, - 0x260d4a, - 0x222389, - 0x370e0a, - 0x20700b, - 0x21264b, - 0x265795, - 0x2dbfc5, - 0x219085, - 0x244e0a, - 0x27468a, - 0x36f207, - 0x2190c3, - 0x2d8748, - 0x2f2d4a, - 0x22dfc6, - 0x271ec9, - 0x2833c8, - 0x2d4a04, - 0x28e189, - 0x29c8c8, - 0x2de047, - 0x2d0e86, - 0x215e07, - 0x2cfb07, - 0x24d3c5, - 0x262e0c, - 0x256bc5, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x20b642, - 0x21a043, - 0x214883, - 0x208c43, - 0x24acc3, - 0x21a043, - 0x214883, - 0x248803, - 0x24acc3, - 0x1e0283, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x1c3448, - 0x20b642, - 0x21a043, - 0x238b87, - 0x33f84, - 0x214883, - 0x3b284, - 0x24acc3, - 0x12c85, - 0x20b642, - 0x203142, - 0x313002, - 0x201ac2, - 0x203cc2, - 0x20ea82, - 0x1874a, - 0x12c105, - 0x12c10a, - 0x152aa49, - 0x14bd4b, - 0x5f887, - 0x1bc3c6, - 0xa5286, - 0x67409, - 0x12b1c7, - 0x3504, - 0x14a150a, - 0x1540e, - 0x134309, - 0x482ea03, - 0x9e747, - 0x152986, + 0x1b9688, + 0x202202, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x213dc3, + 0x343916, + 0x36c653, + 0x22ffc9, + 0x2575c8, + 0x356f49, + 0x322b46, + 0x356090, + 0x3ed4d3, + 0x300b48, + 0x289647, + 0x293c47, + 0x2b1dca, + 0x36b289, + 0x3d3dc9, + 0x25364b, + 0x34d986, + 0x33218a, + 0x225106, + 0x22f843, + 0x274845, + 0x3c1748, + 0x28dacd, + 0x3c9c4c, + 0x301d07, + 0x31ec4d, + 0x2204c4, + 0x23218a, + 0x232d8a, + 0x23324a, + 0x31f787, + 0x23fec7, + 0x244ac4, + 0x27cf46, + 0x2ff884, + 0x21f608, + 0x2317c9, + 0x30d786, + 0x30d788, + 0x24848d, + 0x2e2609, + 0x31cec8, + 0x212f47, + 0x24a8ca, + 0x2bdd06, + 0x37cfc4, + 0x21dc07, + 0x239cca, + 0x23f70e, + 0x286e45, + 0x29950b, + 0x30f989, + 0x26b289, + 0x20ac07, + 0x20ac0a, + 0x31b187, + 0x2c6649, + 0x3eaa48, + 0x37360b, + 0x2dfa85, + 0x393e4a, + 0x21ddc9, + 0x2fe3ca, + 0x215e8b, + 0x21db0b, + 0x2533d5, + 0x2f6985, + 0x212fc5, + 0x23ab8a, + 0x2722ca, + 0x3107c7, + 0x213003, + 0x2d3808, + 0x2ed6ca, + 0x225946, + 0x25f809, + 0x27e608, + 0x2cf104, + 0x286b09, + 0x296048, + 0x2d8cc7, + 0x2b5586, + 0x37b547, + 0x2ca047, + 0x243b45, + 0x2a174c, + 0x24d405, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x202202, + 0x206643, + 0x2109c3, + 0x21d783, + 0x21f143, + 0x206643, + 0x2109c3, + 0x243503, + 0x21f143, + 0x1e2a03, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x1b9688, + 0x202202, + 0x206643, + 0x22e547, + 0x2b044, + 0x2109c3, + 0x1dadc4, + 0x21f143, + 0x1c1f05, + 0x202202, + 0x201482, + 0x300dc2, + 0x204b02, + 0x206282, + 0x2061c2, + 0x1214a, + 0x12a185, + 0x12a18a, + 0x1528d09, + 0x14910b, + 0x54047, + 0x1b1786, + 0x9d286, + 0x5c4c9, + 0xadfc7, + 0xf8504, + 0x15adf8a, + 0xe44e, + 0x18150c, + 0x1ddc89, + 0x4827103, + 0x95607, + 0x1106, 0xf83, - 0x127dc5, + 0xecf05, 0xc1, - 0x521a043, - 0x226783, - 0x204703, - 0x20f583, - 0x20bc83, - 0x214e43, - 0x2f4006, - 0x214883, - 0x24acc3, - 0x23ae43, - 0x1c3448, + 0x221bc3, + 0x5206643, + 0x2392c4, + 0x21f603, + 0x3d6403, + 0x205503, + 0x211e43, + 0x206543, + 0x2eeac6, + 0x29acc6, + 0x2109c3, + 0x21f143, + 0x2b6006, + 0x236e83, + 0x1b9688, 0x200984, - 0x26b247, - 0x204ec3, - 0x271984, - 0x206f43, - 0x209943, - 0x20f583, - 0xf5d87, - 0x1bfd04, - 0x2d03, - 0x1bee85, + 0x25f0c7, + 0x3d6bc3, + 0x291904, + 0x20aa83, + 0x20ac83, + 0x205503, + 0xf08c7, + 0x1a31c4, + 0x1d45c3, + 0x1a2345, 0x66000c2, - 0xbec3, - 0x6a0b642, - 0x6e99909, - 0x709f509, - 0x9fa0d, - 0x9fd4d, - 0x313002, - 0x5c204, - 0x1beec9, - 0x10210c, + 0x50b03, + 0x6a02202, + 0x6e92849, + 0x70988c9, + 0x98dcd, + 0x9910d, + 0x300dc2, + 0x503c4, + 0x1a2389, + 0xf9d4c, 0x2003c2, - 0x765c108, - 0x10b844, - 0x32b843, - 0x1c3448, - 0x8d304, - 0x1419002, + 0x76502c8, + 0x10a904, + 0x3295c3, + 0x1b9688, + 0x93244, + 0x1412f42, 0x14005c2, - 0x1419002, - 0x151fbc6, - 0x2405c3, - 0x2507c3, - 0x7e1a043, - 0x23e084, - 0x8626783, - 0x8e0f583, - 0x206502, - 0x25c204, - 0x214883, - 0x2100c3, - 0x201802, - 0x24acc3, - 0x225542, - 0x313783, - 0x202fc2, - 0x201683, - 0x224e43, - 0x20d442, - 0x1c3448, - 0x82a2449, - 0x10210c, - 0x29083, - 0x2405c3, - 0x21ff08, - 0x8a100c3, - 0x201802, - 0x313783, - 0x202fc2, - 0x201683, - 0x224e43, - 0x20d442, - 0x3ae507, - 0x313783, - 0x202fc2, - 0x201683, - 0x224e43, - 0x20d442, - 0x21a043, - 0x2742, - 0x13cc3, - 0x1b42, - 0xa842, - 0x1c82, - 0x5942, - 0x3342, - 0x5502, - 0x20bec3, - 0x21a043, - 0x226783, - 0x20f583, - 0x25c204, - 0x20bc83, - 0x214e43, - 0x225a04, - 0x214883, - 0x24acc3, - 0x204d42, - 0x205443, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x1a42, - 0xc503, - 0x7982, - 0x20bec3, - 0x20b642, - 0x21a043, - 0x226783, - 0x20f583, - 0x25c204, - 0x214883, - 0x24acc3, - 0x33a505, - 0x22ccc2, + 0x1412f42, + 0x151e7c6, + 0x233cc3, + 0x276803, + 0x7e06643, + 0x232184, + 0x861f603, + 0x8e05503, + 0x203042, + 0x2503c4, + 0x2109c3, + 0x21bf83, + 0x201582, + 0x21f143, + 0x219142, + 0x310f03, + 0x204842, + 0x2019c3, + 0x21a743, + 0x2059c2, + 0x1b9688, + 0x829b1c9, + 0xf9d4c, + 0x22403, + 0x233cc3, + 0x3f2f08, + 0x8a1bf83, + 0x201582, + 0x310f03, + 0x204842, + 0x2019c3, + 0x21a743, + 0x2059c2, + 0x3a6387, + 0x310f03, + 0x204842, + 0x2019c3, + 0x21a743, + 0x2059c2, + 0x206643, + 0x8a42, + 0xf543, + 0x1342, + 0x4c02, + 0x6d602, + 0x2042, + 0x2642, + 0x13142, + 0x250b03, + 0x206643, + 0x21f603, + 0x205503, + 0x2503c4, + 0x211e43, + 0x206543, + 0x294744, + 0x2109c3, + 0x21f143, + 0x215c82, + 0x219683, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x12482, + 0xab643, + 0x16282, + 0x250b03, + 0x202202, + 0x206643, + 0x21f603, + 0x205503, + 0x2503c4, + 0x2109c3, + 0x21f143, + 0x33d845, + 0x224b42, 0x2000c2, - 0x1c3448, - 0xaf12412, - 0xb2d9f88, - 0x10210c, - 0x1470708, - 0x16b8a, - 0x5985, - 0x53c7, - 0x20f583, - 0x201601, + 0x1b9688, + 0xae2a792, + 0xb3c2588, + 0xf9d4c, + 0x147e248, + 0x16d0a, + 0x2c45, + 0x1d54c7, + 0x205503, + 0x202701, 0x2009c1, - 0x202d01, - 0x201501, + 0x2026c1, + 0x202741, 0x200a41, - 0x22d881, + 0x226181, 0x200a01, - 0x205c41, - 0x24a501, + 0x232041, + 0x202781, 0x200001, 0x2000c1, 0x200201, - 0x14f985, - 0x1c3448, + 0x14cb05, + 0x1b9688, 0x200101, 0x200cc1, 0x200501, @@ -2372,7511 +2373,7524 @@ var nodes = [...]uint32{ 0x200ec1, 0x200581, 0x2003c1, - 0x2015c1, - 0x207a81, + 0x201401, + 0x207141, 0x200401, 0x200741, 0x2007c1, 0x200081, 0x201101, 0x200f81, - 0x202d81, - 0x203481, - 0x2033c1, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x20b642, - 0x21a043, - 0x226783, + 0x208f81, + 0x205381, + 0x201841, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x202202, + 0x206643, + 0x21f603, 0x2003c2, - 0x24acc3, - 0xf5d87, - 0x89207, - 0x38286, - 0x473ca, - 0x9e208, - 0x6bd08, - 0x6c747, - 0xc8b04, - 0x177f46, - 0xfaf05, - 0x1a4045, - 0xb8743, - 0x1b506, - 0x5f986, - 0x265a04, - 0x33e2c7, - 0x1c3448, - 0x2eef84, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0xb642, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x339688, - 0x3496c4, - 0x241004, - 0x211d44, - 0x2dab87, - 0x2f1a07, - 0x21a043, - 0x24354b, - 0x3b43ca, - 0x3a9b07, - 0x3f11c8, - 0x21e908, - 0x226783, - 0x33ba07, - 0x204703, - 0x217b48, - 0x225d89, - 0x25c204, - 0x20bc83, - 0x297b48, - 0x214e43, - 0x2eeb8a, - 0x2f4006, - 0x3b52c7, - 0x214883, - 0x2fe146, - 0x3e4088, - 0x24acc3, - 0x25e906, - 0x30568d, - 0x3070c8, - 0x30be4b, - 0x30f646, - 0x20d847, - 0x223305, - 0x3e890a, - 0x365905, - 0x26ec0a, - 0x22ccc2, + 0x21f143, + 0xf08c7, + 0x82b87, + 0x34106, + 0x3c80a, + 0x97d08, + 0x61f08, + 0x62947, + 0xc1e04, + 0x1ddf06, + 0xf4245, + 0x1cf805, + 0xaec43, + 0x15d46, + 0x54146, + 0x214f04, + 0x33a247, + 0x1b9688, + 0x2e4084, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x2202, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x335e08, + 0x3c7f44, + 0x235fc4, + 0x206204, + 0x2d4047, + 0x2ec587, + 0x206643, + 0x2392cb, + 0x3ab74a, + 0x388787, + 0x315b08, + 0x2afec8, + 0x21f603, + 0x373887, + 0x3d6403, + 0x203a48, + 0x20b289, + 0x2503c4, + 0x211e43, + 0x25ce88, + 0x206543, + 0x2ea58a, + 0x2eeac6, + 0x3ac647, + 0x2109c3, + 0x3becc6, + 0x2bea08, + 0x21f143, + 0x264506, + 0x303bcd, + 0x305608, + 0x30af0b, + 0x3121c6, + 0x33c047, + 0x217fc5, + 0x3dcfca, + 0x233d45, + 0x27538a, + 0x224b42, 0x200f83, - 0x260644, + 0x24cf44, 0x200006, - 0x3c3043, - 0x2b3c83, - 0x2332c3, - 0x23ac83, - 0x3ec3c3, - 0x201902, - 0x3a52c5, - 0x2bfbc9, - 0x204d03, - 0x24da43, - 0x205d83, - 0x20cb03, + 0x3b9283, + 0x2b4c83, + 0x38a7c3, + 0x23c0c3, + 0x3dd203, + 0x201c02, + 0x3a1085, + 0x2b83c9, + 0x215c43, + 0x2441c3, + 0x2028c3, + 0x213743, 0x200201, - 0x2ced07, - 0x2f2345, - 0x3ca803, - 0x262603, - 0x3f2583, - 0x211d44, - 0x33be83, - 0x214188, - 0x377ac3, - 0x31c8cd, - 0x2901c8, - 0x2200c6, - 0x304103, - 0x38bc43, - 0x3af583, - 0xde1a043, - 0x240908, - 0x243544, - 0x24a083, - 0x24e8c3, + 0x2e8e87, + 0x2d9c45, + 0x3c12c3, + 0x266483, + 0x3f1d43, + 0x206204, + 0x2fd643, + 0x2102c8, + 0x372703, + 0x31b70d, + 0x288708, + 0x3f30c6, + 0x2fbec3, + 0x385383, + 0x3a7403, + 0xde06643, + 0x234788, + 0x2392c4, + 0x240c03, + 0x2457c3, 0x200106, - 0x252c48, - 0x242ec3, - 0x220ac3, - 0x2c5383, - 0x224dc3, - 0x3e8943, - 0x21c0c3, - 0x226783, - 0x20ff83, - 0x25aa43, - 0x265883, - 0x2307c3, - 0x340403, - 0x213703, - 0x201d03, - 0x3ac745, - 0x2673c4, - 0x268507, - 0x2698c2, - 0x26a803, - 0x26ee86, - 0x270683, - 0x270a03, - 0x28e3c3, - 0x378803, - 0x221943, - 0x201c83, - 0x2ad347, - 0xea0f583, - 0x240243, - 0x20afc3, - 0x211983, - 0x231a43, - 0x21cb03, - 0x22b2c5, - 0x388583, - 0x24e349, + 0x249248, + 0x2023c3, + 0x21ce03, + 0x2be703, + 0x21a6c3, + 0x3dd003, + 0x20f343, + 0x21f603, + 0x216503, + 0x24e0c3, + 0x2534c3, + 0x228e03, + 0x33e443, + 0x39bac3, + 0x244bc3, + 0x3a5b45, + 0x25c484, + 0x25db07, + 0x2596c2, + 0x260983, + 0x265506, + 0x267a83, + 0x267d83, + 0x286d43, + 0x3de7c3, + 0x219b03, + 0x33b403, + 0x2a4e07, + 0xea05503, + 0x20ffc3, + 0x206a43, + 0x2036c3, + 0x20fc83, + 0x34ffc3, + 0x369d05, + 0x382b83, + 0x24dd09, 0x200c03, - 0x31ac43, - 0xee5b543, - 0x22bd83, - 0x203c83, - 0x219608, - 0x2bfb06, - 0x3785c6, - 0x2ca886, - 0x271607, - 0x2252c3, - 0x2384c3, - 0x214e43, - 0x29e306, - 0x20ffc2, - 0x2f33c3, - 0x344245, - 0x214883, - 0x32ad07, - 0x1608c43, - 0x2a1943, - 0x241a83, - 0x241503, - 0x247043, - 0x24acc3, - 0x366386, - 0x3bfdc6, - 0x389a83, - 0x3407c3, - 0x205443, - 0x21dcc3, - 0x31d4c3, - 0x310483, - 0x314143, - 0x212c85, - 0x2423c3, - 0x2423c6, - 0x21bd03, - 0x3c3688, - 0x236883, - 0x236889, - 0x263988, - 0x224888, - 0x22e2c5, - 0x23c04a, - 0x23d60a, - 0x24174b, - 0x245088, - 0x2ce083, - 0x216ec3, - 0x314183, - 0x2edd03, - 0x315888, - 0x334d83, - 0x3c8704, - 0x205e02, - 0x23fac3, - 0x265603, + 0x319643, + 0xee4f703, + 0x266543, + 0x206243, + 0x211a08, + 0x2b8306, + 0x3de586, + 0x2c3d46, + 0x268d87, + 0x213ac3, + 0x23ddc3, + 0x206543, + 0x297e06, + 0x2066c2, + 0x2eddc3, + 0x3423c5, + 0x2109c3, + 0x328fc7, + 0x161d783, + 0x23d5c3, + 0x236a03, + 0x2364c3, + 0x23c483, + 0x21f143, + 0x23e806, + 0x3a3286, + 0x383183, + 0x3cbd03, + 0x219683, + 0x217cc3, + 0x31c303, + 0x30e243, + 0x3118c3, + 0x3c1f05, + 0x237343, + 0x35ddc6, + 0x20ef83, + 0x3b98c8, + 0x20c4c3, + 0x3b75c9, + 0x20c4c8, + 0x21a188, + 0x21e605, + 0x22f40a, + 0x2302ca, + 0x232acb, + 0x234448, + 0x325383, + 0x217043, + 0x311903, + 0x2f2983, + 0x313948, + 0x336c83, + 0x21f984, + 0x2021c2, + 0x240b83, + 0x260e43, 0x2007c3, - 0x3af603, - 0x283143, - 0x23ae43, - 0x22ccc2, - 0x2233c3, - 0x246143, - 0x31fd43, - 0x321d84, - 0x260644, - 0x2355c3, - 0x1c3448, - 0xe31e00c, - 0xe6ea545, - 0xdefc5, + 0x23d943, + 0x2976c3, + 0x236e83, + 0x224b42, + 0x218083, + 0x23ba43, + 0x31e943, + 0x321744, + 0x24cf44, + 0x224343, + 0x1b9688, + 0xe31d0cc, + 0xe658b05, + 0xde305, 0x2000c2, 0x200b02, - 0x201902, - 0x2029c2, + 0x201c02, + 0x206182, 0x200202, - 0x205202, - 0x244b02, - 0x201b42, + 0x2011c2, + 0x278d02, + 0x201342, 0x200382, - 0x203f02, - 0x215142, - 0x20d3c2, - 0x282182, - 0x207002, - 0x20ea82, - 0x2035c2, - 0x216402, - 0x205442, - 0x24bf42, - 0x209982, + 0x205e42, + 0x2c7f42, + 0x203c42, + 0x27d202, + 0x206702, + 0x2061c2, + 0x2020c2, + 0x201402, + 0x202b02, + 0x245342, + 0x203f42, 0x200682, - 0x217ac2, - 0x201a42, - 0x206382, + 0x2039c2, + 0x212482, + 0x202ec2, 0x201042, - 0x230802, - 0x2019c2, + 0x20e7c2, + 0x20c642, 0xc2, 0xb02, - 0x1902, - 0x29c2, + 0x1c02, + 0x6182, 0x202, - 0x5202, - 0x44b02, - 0x1b42, + 0x11c2, + 0x78d02, + 0x1342, 0x382, - 0x3f02, - 0x15142, - 0xd3c2, - 0x82182, - 0x7002, - 0xea82, - 0x35c2, - 0x16402, - 0x5442, - 0x4bf42, - 0x9982, + 0x5e42, + 0xc7f42, + 0x3c42, + 0x7d202, + 0x6702, + 0x61c2, + 0x20c2, + 0x1402, + 0x2b02, + 0x45342, + 0x3f42, 0x682, - 0x17ac2, - 0x1a42, - 0x6382, + 0x39c2, + 0x12482, + 0x2ec2, 0x1042, - 0x30802, - 0x19c2, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, + 0xe7c2, + 0xc642, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, 0xf82, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0xa0789, - 0xb642, - 0x20b642, - 0x24acc3, - 0x10a1a043, - 0x20f583, - 0x1b1749, - 0x214e43, - 0xf5d07, - 0x2445c2, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x16e83, - 0x214883, - 0x24acc3, - 0x79c2, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x99b49, + 0x2202, + 0x202202, + 0x21f143, + 0x10a06643, + 0x205503, + 0xdfa89, + 0x206543, + 0xf0847, + 0x2232c2, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x17003, + 0x2109c3, + 0x21f143, + 0x3642, 0x2001c2, - 0x1427d45, - 0x14f985, - 0x213c82, - 0x1c3448, - 0xb642, - 0x242882, - 0x206442, - 0x10210c, - 0x20da42, - 0x231a82, - 0x218882, - 0x1a4045, + 0x1421805, + 0x14cb05, + 0x2886c2, + 0x1b9688, + 0x2202, + 0x237e02, + 0x202f82, + 0xf9d4c, + 0x2104c2, + 0x20fcc2, + 0x212282, + 0x1cf805, 0x200dc2, - 0x201802, - 0x217a02, - 0x208e02, - 0x2035c2, - 0x24a242, - 0x214942, - 0x2b60c2, - 0x11a7f604, + 0x201582, + 0x203902, + 0x201542, + 0x2020c2, + 0x2413c2, + 0x210a82, + 0x242402, + 0x11a7a6c4, 0x142, - 0xf5d87, - 0x15943, - 0x1db18d, - 0xfaf89, - 0xf140b, - 0xfdd48, - 0x73ec9, - 0x11b446, - 0x20f583, - 0x1c3448, - 0x1bfd04, - 0x2d03, - 0x1bee85, - 0x1c3448, - 0x1ec6c7, - 0x12c5ea87, - 0x13269384, - 0x6d446, - 0x1beec9, - 0xbea8e, - 0x10210c, - 0x146087, - 0x15bc683, - 0x13602142, - 0x149f49, - 0x1ed5c4, + 0xf08c7, + 0x42983, + 0xdc40d, + 0xf42c9, + 0x1280b, + 0xf8108, + 0x66fc9, + 0x122ece45, + 0x119e46, + 0x137d09, + 0x205503, + 0x1b9688, + 0x1a31c4, + 0x1d45c3, + 0x1a2345, + 0x1b9688, + 0x1dd507, + 0x13053907, + 0x1365f684, + 0x63646, + 0x1a2389, + 0xb728e, + 0xf9d4c, + 0x144207, + 0x15b5c83, + 0x13a01ac2, + 0x147849, + 0x1d5004, 0x2000c2, - 0x265a04, - 0x20b642, - 0x21a043, - 0x203142, - 0x226783, - 0x26dc3, + 0x214f04, + 0x202202, + 0x206643, + 0x201482, + 0x21f603, + 0xfd03, 0x200382, - 0x2eef84, - 0x20bc83, - 0x2593c2, - 0x214883, - 0x18882, + 0x2e4084, + 0x211e43, + 0x24e442, + 0x2109c3, + 0x12282, 0x2003c2, - 0x24acc3, - 0x219086, - 0x33d48f, - 0x733483, - 0x1c3448, - 0x20b642, - 0x204703, - 0x20f583, - 0x214e43, - 0x14bdabc7, - 0x14a7606, - 0x1f3d06, - 0xf2389, - 0x14fcd6c8, - 0x1e6304, - 0x152cab0a, - 0x163988, - 0x15c16a87, - 0xd9f88, - 0xbea88, - 0x15e86cb, - 0x147fb0a, - 0x16070943, - 0x103189, - 0x1650b188, - 0x16b8e487, - 0x1463d4a, - 0x1507c07, - 0xba74b, - 0x16e8a2cc, - 0x16bf05, - 0xdc4c5, - 0x123409, - 0x1dbf44, - 0x11d443, - 0x156cac45, - 0x12ee43, - 0x15a35ac3, - 0x12ee43, - 0x15942, - 0x21c2, - 0xba42, - 0xba42, - 0x3d82, - 0xba42, - 0x3342, - 0x45c2, - 0x101c2, - 0x14f985, - 0xf5d87, - 0x1e6304, - 0x109484, - 0x20b642, - 0x21a043, - 0x20f583, - 0x214883, + 0x21f143, + 0x212fc6, + 0x33940f, + 0x7de983, + 0x1b9688, + 0x202202, + 0x3d6403, + 0x205503, + 0x206543, + 0x14fd3587, + 0x1572a46, + 0x1ee286, + 0xd9c89, + 0x153c7448, + 0x1e8684, + 0x156c3fca, + 0x7d848, + 0x16016c07, + 0x1c2588, + 0xb7288, + 0x15dcd8b, + 0x147abca, + 0x16467cc3, + 0xfac49, + 0x1690a248, + 0x16e38a47, + 0x14eb44a, + 0x1506147, + 0xb1e8b, + 0x1729e38c, + 0x164685, + 0xe0405, + 0x1231c9, + 0x1029c4, + 0x11c283, + 0x15ac4105, + 0x12c843, + 0x15e2c1c3, + 0x12c843, + 0x42982, + 0x1b42, + 0x5fc2, + 0x5fc2, + 0x1782, + 0x5fc2, + 0x2642, + 0x3402, + 0x23c2, + 0x14cb05, + 0xf08c7, + 0x1e8684, + 0x107e04, + 0x202202, + 0x206643, + 0x205503, + 0x2109c3, 0x2000c2, - 0x209582, - 0x20aa82, - 0x17e1a043, - 0x24a202, - 0x226783, + 0x2087c2, + 0x205a42, + 0x18206643, + 0x241382, + 0x21f603, 0x200bc2, - 0x203942, - 0x20f583, - 0x216e82, - 0x261042, - 0x22fcc2, - 0x20ad02, - 0x2a4fc2, + 0x234382, + 0x205503, + 0x2062c2, + 0x2697c2, + 0x2208c2, + 0x207002, + 0x29cfc2, 0x200802, - 0x204142, - 0x201742, - 0x21dd82, - 0x209bc2, - 0x4484c, - 0x2cd142, - 0x283382, - 0x22b242, - 0x202582, - 0x214e43, - 0x201942, - 0x214883, - 0x20b482, - 0x24fdc2, - 0x24acc3, - 0x24dac2, - 0x206382, - 0x2213c2, + 0x203582, + 0x217382, + 0x20bd82, + 0x20af02, + 0x1610cc, + 0x2c7002, + 0x27e5c2, + 0x230a02, + 0x201f02, + 0x206543, + 0x201502, + 0x2109c3, + 0x239e02, + 0x246102, + 0x21f143, + 0x244242, + 0x202ec2, + 0x206ec2, 0x200e02, - 0x22c602, - 0x215982, - 0x209b02, - 0x25c442, - 0x22b282, - 0x33060a, - 0x375dca, - 0x3a8f8a, - 0x3f43c2, - 0x2039c2, - 0x22b982, - 0x182fe909, - 0x187d6f0a, - 0x154be47, - 0x18a00fc2, - 0x1446b83, - 0x2902, - 0x1d6f0a, - 0x16e3ce, - 0x2346c4, - 0x107245, - 0x1921a043, - 0x4b8c3, - 0x226783, - 0x2607c4, - 0x20f583, - 0x25c204, - 0x20bc83, - 0x145e89, - 0x51fc6, - 0x214e43, - 0x100d44, - 0x1443, - 0x214883, - 0x9bf05, - 0x208c43, - 0x24acc3, - 0x1440704, - 0x2423c3, - 0x195547c4, - 0xd2a48, + 0x203d02, + 0x2429c2, + 0x20ae42, + 0x250602, + 0x230a42, + 0x32e0ca, + 0x36fb0a, + 0x3a1a4a, + 0x3f4442, + 0x205382, + 0x369cc2, + 0x186fc749, + 0x18b547ca, + 0x1549207, + 0x18e00fc2, + 0x143bfc3, + 0x4942, + 0x1547ca, + 0x1685ce, + 0x204884, + 0x105785, + 0x19606643, + 0x42dc3, + 0x21f603, + 0x2554c4, + 0x205503, + 0x2503c4, + 0x211e43, + 0x144009, + 0x1d4086, + 0x206543, + 0xf8984, + 0x146ec3, + 0x2109c3, + 0x1f45, + 0x21d783, + 0x21f143, + 0x1445a04, + 0x237343, + 0x1994e6c4, + 0xcbd48, 0x200f83, - 0x1c3448, - 0x6502, - 0x1527143, - 0x1333c6, - 0x1577ec4, - 0x4c85, - 0x1dbd4a, - 0x138682, - 0x1a00578d, - 0x1bdcc6, - 0x152051, - 0x1a6fe909, - 0x15d4ca, - 0x4d08, - 0x167d48, - 0x152e8e, - 0x89e53, - 0x210a78c7, - 0x1d42, - 0x148210, - 0x152c8c, - 0xfea94, - 0x1b87c7, - 0x24c0e, - 0x14f98b, - 0x1519cb, - 0x1c740a, - 0x133907, - 0x1c3448, - 0xb3d88, - 0xf747, - 0x21422bcb, - 0x23e46, - 0x26647, - 0x3ac2, - 0xef7cd, - 0x13e705, - 0x1d647, - 0x133c4a, - 0x1402cc, - 0x14048f, - 0xae74f, - 0x16e3c2, - 0xb642, - 0x9a148, - 0x21903e8c, - 0x1b204a, - 0x21f656ca, - 0xf638a, - 0x86cca, - 0x8ffc8, - 0x2d785, - 0x728c8, - 0xf6848, - 0x1ec688, - 0x153648, - 0x101c2, - 0xae4cf, - 0x1427dcd, - 0x6d8b, - 0xd5448, - 0x42b87, - 0x5940a, - 0x3e7cb, - 0xa9cc9, - 0x59307, - 0xf8506, - 0x2d688, - 0x3d7cc, - 0x1e9987, - 0x244ca, - 0xa3c8, - 0x11780e, - 0x12078e, - 0x13374b, - 0x16600b, - 0x3828b, - 0x3d309, - 0x4318b, - 0x4864d, - 0x4b94b, - 0x4ca4d, - 0x4cdcd, - 0x5a30a, - 0x6048b, - 0x56a0b, - 0x5a045, - 0x221cd710, - 0x80392, - 0x33011, - 0x176752, - 0x35f8f, - 0x7f7cf, - 0x15118d, - 0x85250, - 0xa842, - 0x22620948, - 0x1e9808, - 0x64f50, - 0x12c88e, - 0x22b77a85, - 0x5e68b, - 0x144f90, - 0xaaecb, - 0x1bc3cc, - 0x729ca, - 0x1661c9, - 0x735c8, - 0x78887, - 0x78bc7, - 0x78d87, - 0x79cc7, - 0x7b747, - 0x7bc07, - 0x7c307, - 0x7c747, - 0x7d207, - 0x7d587, - 0x7da47, - 0x7dc07, - 0x7ddc7, - 0x7df87, - 0x7e307, - 0x7e687, - 0x7ff87, - 0x80807, - 0x812c7, - 0x81587, - 0x81747, - 0x81a47, - 0x82047, - 0x82247, - 0x82bc7, - 0x82d87, - 0x82f47, - 0x83207, - 0x83847, - 0x83fc7, - 0x86b07, - 0x86f47, - 0x87747, - 0x87907, - 0x87f47, - 0x882c7, - 0x88c87, - 0x89087, - 0x893c7, - 0x89587, - 0x899c7, - 0x8a5c7, - 0x8b707, - 0x8bcc7, - 0x8be87, - 0x8c307, - 0x8cc47, - 0xef42, - 0xf694a, - 0x1b308, - 0x1c41cc, - 0x124c87, - 0x58f85, - 0x61591, - 0x7286, - 0x137bca, - 0x99fca, - 0x6d446, - 0x3f78b, - 0x642, - 0x3c691, - 0x131809, - 0xab8c9, - 0xace06, - 0x1742, - 0x70d0a, - 0xbf0c9, - 0xbf80f, - 0xbfe0e, - 0xc1bc8, - 0x22f53092, - 0x18208, - 0x232737c7, - 0xc468f, - 0x7142, - 0x178409, - 0x10044a, - 0x2361a389, - 0xdaec9, - 0xdaecc, - 0x19a4b, - 0x5824e, - 0x11c0c, - 0x102e8f, - 0x1c980e, - 0x50fcc, - 0x64d49, - 0x71a11, - 0x88448, - 0x92f12, - 0x94d8d, - 0x993cd, - 0x9ee4b, - 0x167f15, - 0x191549, - 0x1b6d0a, - 0x1df109, - 0xa27d0, - 0xa914b, - 0xb1c8f, - 0xb928b, - 0xc710c, - 0xc77d0, - 0xdfdca, - 0xf884d, - 0x12b38e, - 0x19f6ca, - 0xc8bcc, - 0xcf7d4, - 0x131491, - 0x1c470b, - 0xd82cf, - 0xd930d, - 0xda3ce, - 0xddf0c, - 0xde64c, - 0xdfacb, - 0xe1c0e, - 0xe4490, - 0xe534b, - 0xf740d, - 0x10fd8f, - 0x10eacc, - 0x11704e, - 0x185451, - 0x12ae8c, - 0x169d07, - 0x16bb8d, - 0x17600c, - 0x180f50, - 0x19b74d, - 0x19c3c7, - 0x1a5c90, - 0x1b3048, - 0xc814b, - 0xca18f, - 0x1c4448, - 0x57b8d, - 0x119c50, - 0x182fc9, - 0x23bcd6c8, - 0x23ece206, - 0xcf503, - 0x1ade89, - 0xade49, - 0xd4345, - 0xaf02, - 0x59889, - 0x6de0a, - 0x242933c6, - 0x14933cd, - 0x24706444, - 0x1e4986, - 0x28b4a, - 0x2af0d, - 0x24ae5b8b, - 0x1e9e08, - 0x24c65589, - 0x24343, - 0x17c7ca, - 0xf53d1, - 0xf5809, - 0xf6307, - 0xf7148, - 0xf8b87, - 0x736c8, - 0xae5cb, - 0x13b509, - 0x101590, - 0x101a4c, - 0x101ec9, - 0x10210c, - 0x2530250d, - 0x1037c8, - 0x103cc5, - 0x1d0fc8, - 0x1a4f4a, - 0x1b8ec7, - 0x25c2, - 0x25679555, - 0x145c8a, - 0x13e549, - 0x1ef4c8, - 0xae009, - 0x9605, - 0x12ab8a, - 0x1a07, - 0xa050f, - 0x16bf8b, - 0x1ec90c, - 0x30712, - 0xc0906, - 0x1580588, - 0x8e5c5, - 0x11d688, - 0x1e4acb, - 0xe6ad1, - 0x179d47, - 0x6e40a, - 0x18784c, - 0x25b0b045, - 0x1b72cc, - 0x25d129ce, - 0x142743, - 0x19ec86, - 0x4a242, - 0x11468b, - 0x11564a, - 0x151640c, - 0x1e9d08, - 0x4cc08, - 0x263ef546, - 0x17ef87, - 0x23f8e, - 0x1534c7, - 0x3b02, + 0x1b9688, + 0x3042, + 0x1533a43, + 0x1de8c6, + 0x15dde84, + 0x1d6985, + 0x1027ca, + 0x134f82, + 0x1a5dec0d, + 0x1b32c6, + 0x6f51, + 0x1aafc749, + 0x159c8a, + 0x1d6a08, + 0x8c1c8, + 0x145cce, + 0x54b13, + 0x21572d07, + 0x28c2, + 0x13a810, + 0x145acc, + 0xfc8d4, + 0xb0407, + 0x1a50e, + 0x14cb0b, + 0x14eecb, + 0x1bd04a, + 0x342c7, + 0x1b9688, + 0xb4d88, + 0x8ec7, + 0x2181ae0b, + 0x1c446, + 0x1f4c7, 0x2fc2, - 0x188850, - 0x77e47, - 0x77f4f, - 0x1b506, - 0xa8b4e, - 0xb424b, - 0x5e0c8, - 0xaa089, - 0x150652, - 0x11dccd, - 0x11e848, - 0xf12c9, - 0x1a718d, - 0xe889, - 0x782cb, - 0x7ae88, - 0x7e488, - 0x80f88, - 0x81bc9, - 0x81dca, - 0x8254c, - 0x2398a, - 0xe094a, - 0x11d507, - 0x43a8a, - 0xf90c8, - 0x1d3e0d, - 0x62ad1, - 0x266da6c6, - 0x16d20b, - 0x3b48c, - 0xff48, - 0x1dc8c9, - 0x16548d, - 0x79f10, - 0x150dcc, - 0x15450d, - 0x10384f, - 0xba42, - 0x1df30d, - 0x3342, - 0x96c2, - 0x11d44a, - 0x26bd0d0a, - 0x32e4a, - 0x26e8bfc8, - 0x137aca, - 0x12460b, - 0x126c47, - 0x1b41cc, - 0x120a0c, - 0x12940a, - 0x2712968f, - 0x129a4c, - 0x129d47, - 0x12b70e, - 0x275f4285, - 0x1eab88, - 0x79c2, - 0x1424dc3, - 0x1aa0494e, - 0x1b2029ce, - 0x1bb2658a, - 0x1c33718e, - 0x1ca082ce, - 0x1d353c8c, - 0x154be47, - 0x155d589, - 0x1446b83, - 0x1db5ce8c, - 0x1e20a849, - 0x1ebd7e09, - 0x1f3dbb49, - 0x2902, - 0x4891, - 0x2911, - 0x1264cd, - 0x1370d1, - 0x1d4fd1, - 0x153bcf, - 0x15cdcf, - 0x1cc20c, - 0x1d7d4c, - 0x1dba8c, - 0xec7cd, - 0xfd515, - 0x13c14c, - 0x13e80c, - 0x179ed0, - 0x1c5acc, - 0x1c8a8c, - 0x1d17d9, - 0x1d9759, - 0x8019, - 0xa594, - 0xf8d4, - 0x107d4, - 0x10d54, - 0x1a994, - 0x1fa0fb89, - 0x20010a89, - 0x20b3e8c9, - 0x1ae88649, - 0x2902, - 0x1b688649, - 0x2902, - 0x800a, - 0x2902, - 0x1be88649, - 0x2902, - 0x800a, - 0x2902, - 0x1c688649, - 0x2902, - 0x1ce88649, - 0x2902, - 0x1d688649, - 0x2902, - 0x800a, - 0x2902, - 0x1de88649, - 0x2902, - 0x800a, - 0x2902, - 0x1e688649, - 0x2902, - 0x1ee88649, - 0x2902, - 0x800a, - 0x2902, - 0x1f688649, - 0x2902, - 0x800a, - 0x2902, - 0x1fe88649, - 0x2902, - 0x20688649, - 0x2902, - 0x20e88649, - 0x2902, - 0x800a, - 0x2902, + 0x10fa8d, + 0x149b45, + 0x69347, + 0x2ad8a, + 0x13e30c, + 0x13e4cf, + 0x11f64f, + 0x1547c2, + 0x2202, + 0xe9e08, + 0x21cfbc4c, + 0x1a8b0a, + 0x22361b8a, + 0xf10ca, + 0x800ca, + 0x88508, + 0x26085, + 0x6b5c8, + 0xf1588, + 0x1dd4c8, + 0x146488, + 0x23c2, + 0x11f3cf, + 0x142188d, + 0x140e4d2, + 0x1ccf8b, + 0xc9a08, + 0x38107, + 0x4e48a, + 0x12bccb, + 0xa24c9, + 0x4e387, + 0x76706, + 0x25f88, + 0x3048c, + 0x1d9d47, + 0x1caca, + 0x7908, + 0x15f00e, + 0x19028e, + 0x3410b, + 0x3e48b, + 0x3ed0b, + 0x41a09, + 0x42e4b, + 0x4334d, + 0x44d4b, + 0x4978d, + 0x49b0d, + 0x5250a, + 0x4cd8b, + 0x4d24b, + 0x52185, + 0x225c7490, + 0x2c68f, + 0x7a88f, + 0x10ff4d, + 0x57f50, + 0x4c02, + 0x22a2fd08, + 0x1d9bc8, + 0x80990, + 0x12ae8e, + 0x22f726c5, + 0x5314b, + 0x143110, + 0x59bc5, + 0xa380b, + 0x1b178c, + 0x6b6ca, + 0x3e649, + 0x6c448, + 0x72547, + 0x72887, + 0x72a47, + 0x73ac7, + 0x75207, + 0x75607, + 0x77787, + 0x77c87, + 0x78187, + 0x78507, + 0x789c7, + 0x78b87, + 0x78d47, + 0x78f07, + 0x79287, + 0x79747, + 0x7b047, + 0x7b507, + 0x7c107, + 0x7c407, + 0x7c5c7, + 0x7c8c7, + 0x7d0c7, + 0x7d2c7, + 0x7dcc7, + 0x7de87, + 0x7e047, + 0x7e447, + 0x7ea87, + 0x7f447, + 0x7ff07, + 0x80347, + 0x81087, + 0x81247, + 0x81887, + 0x81c07, + 0x82607, + 0x82a07, + 0x82d47, + 0x82f07, + 0x83347, + 0x83a47, + 0x842c7, + 0x846c7, + 0x84887, + 0x84d07, + 0x85647, + 0xf168a, + 0x15b48, + 0x1ba40c, + 0x1416c7, + 0x98385, + 0x1e1a51, + 0x14d146, + 0x12428a, + 0xe9c8a, + 0x63646, + 0x15cdcb, + 0x642, + 0x31391, + 0x168c89, + 0xd1e49, + 0xa48c6, + 0x17382, + 0x6808a, + 0xb78c9, + 0xb800f, + 0xb860e, + 0xbac08, + 0x23345ed2, + 0x11608, + 0x2366c647, + 0xbdacf, + 0x15fc2, + 0x1de3c9, + 0x1ca20a, + 0x23a14609, + 0xd4389, + 0xd438c, + 0x604b, + 0x9670e, + 0x1cdb8c, + 0xfa94f, + 0x1c02ce, + 0x56a4c, + 0x80789, + 0x81d91, + 0x8b988, + 0x8c392, + 0x8e20d, + 0x9198d, + 0x95d0b, + 0x18a455, + 0x1e0b49, + 0x9a68a, + 0x9ecc9, + 0xa3d50, + 0xae18b, + 0xb0a0f, + 0xc054b, + 0xc0bcc, + 0x19bb50, + 0x17094a, + 0x17a88d, + 0x197cce, + 0xc1eca, + 0x12cd4c, + 0xc9d14, + 0xd1ad1, + 0xd228b, + 0xd338f, + 0xd6fcd, + 0xd7ace, + 0xd8b8c, + 0xda10c, + 0x19b84b, + 0x1ef70e, + 0xddad0, + 0xf218b, + 0xf728d, + 0x11290f, + 0x1090cc, + 0x10d60e, + 0x115111, + 0x1b124c, + 0x14b107, + 0x16430d, + 0x16fd4c, + 0x17a2d0, + 0x19510d, + 0x195f07, + 0x199490, + 0x1a9b08, + 0xc144b, + 0xc364f, + 0x1ba688, + 0x5450d, + 0x117510, + 0x17c789, + 0x23fc7448, + 0x242c7fc6, + 0xc8bc3, + 0x1aa949, + 0xa5909, + 0xcd6c5, + 0x6982, + 0x1289, + 0x4e90a, + 0x2468c846, + 0x148c84d, + 0x24b283d1, + 0x24f04984, + 0x1e7086, + 0x2294a, + 0x1ec4d, + 0x252e098b, + 0x1da1c8, + 0x25460dc9, + 0x1c943, + 0x14880a, + 0xeff11, + 0xf0349, + 0xf1047, + 0xf1ec8, + 0xf2447, + 0x6c548, + 0x70cb, + 0x1379c9, + 0xf91d0, + 0xf968c, + 0xf9b09, + 0xf9d4c, + 0x25afa14d, + 0xfb588, + 0xfba85, + 0x88088, + 0x19dc8a, + 0x16ab87, + 0x1f42, + 0x25e21e95, + 0x143e0a, + 0x149989, + 0xa5ac8, + 0x11ef09, + 0x86905, + 0x128e4a, + 0xfdcc7, + 0x998cf, + 0x16470b, + 0x13ba0c, + 0x28d52, + 0x126a06, + 0x14ff548, + 0x86f45, + 0x1282c8, + 0x10154b, + 0xe32d1, + 0x100507, + 0x557ca, + 0x180f0c, + 0x2630a105, + 0x1ae7cc, + 0x265104ce, + 0x140943, + 0x198e46, + 0x413c2, + 0x111e8b, + 0x11370a, + 0x15144cc, + 0x1da0c8, + 0x49948, + 0x26aa5b46, + 0x125f07, + 0x1c58e, + 0x146307, + 0x10002, + 0x4842, + 0x5a590, + 0x6aac7, + 0x6abcf, + 0x15d46, + 0xaa4ce, + 0xbc10b, + 0x5a3c8, + 0xa2889, + 0x15252, + 0x11cd8d, + 0x11d908, + 0x126c9, + 0x6af4d, + 0x6b909, + 0x6cd4b, + 0x70e88, + 0x77f88, + 0x79408, + 0x7bc89, + 0x7be8a, + 0x7ca4c, + 0x1bc0a, + 0xe3007, + 0xe824a, + 0x11c347, + 0x3980a, + 0xf4788, + 0x1d880d, + 0xa1411, + 0x26ed7dc6, + 0x16cbcb, + 0x1dafcc, + 0x1be08, + 0x1d7589, + 0x16194d, + 0x73d10, + 0x6a28c, + 0x1e1e4d, + 0xfb60f, + 0x5fc2, + 0x9eecd, + 0x2642, + 0x41d82, + 0x11c28a, + 0x272948ca, + 0x2a08a, + 0x276849c8, + 0x12418a, + 0x12454b, + 0x125507, + 0x1ab54c, + 0x19050c, + 0x1277ca, + 0x27927a4f, + 0x127e0c, + 0x128107, + 0x12948e, + 0x27df4305, + 0x1a20c8, + 0x3642, + 0x141a6c3, + 0x1afc660e, + 0x1b7d428e, + 0x1bf47e8a, + 0x1c7c414e, + 0x1cf4de0e, + 0x1d75910c, + 0x1549207, + 0x1559d49, + 0x143bfc3, + 0x1dfbf54c, + 0x1e604c09, + 0x1ef00749, + 0x1f7025c9, + 0x4942, + 0x1d6591, + 0x1d41d1, + 0x147dcd, + 0x1c4091, + 0x14dd51, + 0x15904f, + 0x1bf48f, + 0x1d06cc, + 0x10068c, + 0x10250c, + 0x106d8d, + 0x191c55, + 0x132f4c, + 0x137f0c, + 0x149c50, + 0x15040c, + 0x1bb70c, + 0x1c6359, + 0x1d25d9, + 0x1eacd9, + 0x4954, + 0x7ad4, + 0x9054, + 0x9c54, + 0xa1d4, + 0x1fe07d89, + 0x20409309, + 0x20f37fc9, + 0x1b28bb89, + 0x4942, + 0x1ba8bb89, + 0x4942, + 0x494a, + 0x4942, + 0x1c28bb89, + 0x4942, + 0x494a, + 0x4942, + 0x1ca8bb89, + 0x4942, + 0x1d28bb89, + 0x4942, + 0x1da8bb89, + 0x4942, + 0x494a, + 0x4942, + 0x1e28bb89, + 0x4942, + 0x494a, + 0x4942, + 0x1ea8bb89, + 0x4942, + 0x1f28bb89, + 0x4942, + 0x494a, + 0x4942, + 0x1fa8bb89, + 0x4942, + 0x494a, + 0x4942, + 0x2028bb89, + 0x4942, + 0x20a8bb89, + 0x4942, + 0x2128bb89, + 0x4942, + 0x494a, + 0x4942, 0x1400401, - 0x152045, - 0x1c7404, - 0x1412f43, - 0x15f2603, - 0x141d983, - 0x94ec4, - 0x13b848, - 0x494e, - 0x29ce, - 0x9280e, - 0x12658a, - 0x13718e, - 0x82ce, - 0x153c8c, - 0x15ce8c, - 0xa849, - 0x1d7e09, - 0x1dbb49, - 0xfb89, - 0x10a89, - 0x13e8c9, - 0xfd70d, - 0x11009, - 0x1ac49, - 0x150a84, - 0x1720c4, - 0x199884, - 0x1cacc4, - 0xbaa04, - 0x1b9944, - 0x1e6a84, - 0x69004, - 0x1b404, - 0x642c4, - 0x334c9, - 0x334cc, - 0x159186, - 0x15918e, - 0x94ec4, - 0x159bf43, - 0x7e87, - 0x149440c, - 0x4d03, - 0x642c4, - 0xa842, - 0x51887, - 0x103e88, - 0x191dc8, - 0x4fd44, - 0x1cb8c6, - 0x54d47, - 0xe8b44, - 0x11c0c6, - 0x216c2, - 0x2d81, - 0x1d3a44, - 0x89cc6, - 0x22603, - 0xa842, - 0x4d03, - 0xe0143, - 0x30503, - 0x14743, - 0x117783, - 0x30705, - 0x83382, - 0x151682, - 0x1bf708, - 0xfa807, - 0x15743, - 0x13b587, - 0x101c2, - 0xf2389, + 0x6f45, + 0x1bd044, + 0x1414fc3, + 0x141da83, + 0x1469683, + 0x8e344, + 0x137d08, + 0x1c660e, + 0x1d428e, + 0x8b28e, + 0x147e8a, + 0x1c414e, + 0x14de0e, + 0x15910c, + 0x1bf54c, + 0x4c09, + 0x100749, + 0x1025c9, + 0x7d89, + 0x9309, + 0x137fc9, + 0x149d0d, + 0x9f09, + 0xa489, + 0x175544, + 0x182384, + 0x192804, + 0x1a2284, + 0xb2144, + 0x16b604, + 0x1e8e04, + 0x189f04, + 0x15c44, + 0x4ac44, + 0xff009, + 0xff00c, + 0x157f86, + 0x157f8e, + 0x8e344, + 0x1595903, + 0x2b447, + 0x148d88c, + 0x15e42, + 0x15c43, + 0x4ac44, + 0x4c02, + 0x37507, + 0xfbc48, + 0x1ae288, + 0x46084, + 0x5746, + 0x13a4c7, + 0xe2c44, + 0x127386, + 0x19882, + 0x8f81, + 0x22504, + 0x54986, + 0x27303, + 0x4c02, + 0x15c43, + 0x124403, + 0x28b43, + 0xe983, + 0x1c80c3, + 0x28d45, + 0x7e5c2, + 0x14eb82, + 0x1a2bc8, + 0xf3c87, + 0x56603, + 0x137a47, + 0x23c2, + 0xd9c89, 0x2000c2, - 0x20b642, - 0x203142, - 0x21b5c2, + 0x202202, + 0x201482, + 0x20fd02, 0x200382, 0x2003c2, - 0x202fc2, - 0x21a043, - 0x226783, - 0x20f583, - 0x231a43, - 0x214883, - 0x24acc3, - 0x1c3448, - 0x21a043, - 0x226783, - 0x214883, - 0x24acc3, - 0x13b83, - 0x20f583, - 0x5c204, + 0x204842, + 0x206643, + 0x21f603, + 0x205503, + 0x20fc83, + 0x2109c3, + 0x21f143, + 0x1b9688, + 0x206643, + 0x21f603, + 0x211e43, + 0x262784, + 0x21f143, + 0x206643, + 0x21f603, + 0x2109c3, + 0x21f143, + 0xbd03, + 0x205503, + 0x503c4, 0x2000c2, - 0x20bec3, - 0x29a1a043, - 0x3acb47, - 0x20f583, - 0x222043, - 0x225a04, - 0x214883, - 0x24acc3, - 0x228d8a, - 0x219085, - 0x205443, - 0x249902, - 0x1c3448, - 0x29eea54a, + 0x250b03, + 0x2a206643, + 0x3a5f47, + 0x205503, + 0x20f743, + 0x294744, + 0x2109c3, + 0x21f143, + 0x3b6f0a, + 0x212fc5, + 0x219683, + 0x23d942, + 0x1b9688, + 0x2a6e5b4a, 0xc01, - 0x1c3448, - 0xb642, - 0x140242, - 0x2a66530b, - 0x2aa1c1c4, - 0x106385, - 0x1405985, - 0x103e86, - 0x2ae05985, - 0x6a043, - 0xa7343, - 0x1bfd04, - 0x2d03, - 0x1bee85, - 0x14f985, - 0x1c3448, - 0x26647, - 0x1a043, - 0x38d4d, - 0x2b647207, + 0x1b9688, + 0x2202, + 0x13e282, + 0x2ae60b4b, + 0x2b20f444, + 0x1048c5, + 0x1402c45, + 0xfbc46, + 0x2b602c45, + 0x5fb83, + 0xb2683, + 0x1a31c4, + 0x1d45c3, + 0x1a2345, + 0x14cb05, + 0x1b9688, + 0x1f4c7, + 0x6643, + 0x2e70d, + 0x2be3c647, 0xcc6, - 0x2b953ac5, - 0x1b7892, + 0x2c14dc45, + 0x1cb4d2, 0xd87, - 0x2f38a, - 0x2cf48, - 0x2f287, - 0x170aca, - 0x1becc8, - 0x7ac47, - 0x15ef8f, - 0x574c7, - 0x68e06, - 0x144f90, - 0x148e0c6, - 0x5058f, - 0x1bc09, - 0x1e4a04, - 0x2bc00e4e, - 0x51bc9, - 0x7e0c6, - 0xeb09, - 0x119186, - 0x9dc6, - 0xc3acc, - 0x3e9ca, - 0xa9e47, - 0x115f4a, - 0x1249, - 0x10514c, - 0x2b74a, - 0x5b00a, - 0x1beec9, - 0x1e4986, - 0xa9f0a, - 0x11edca, - 0xb6b4a, - 0x16f909, - 0xf4dc8, - 0xf5046, - 0xfb54d, - 0x10210c, - 0x6700b, - 0xd4905, - 0x2c38a7cc, - 0x146087, - 0x1e3989, - 0xdea07, - 0xbe494, - 0x11a04b, - 0xd528a, - 0x1504ca, - 0xbc64d, - 0x1524809, - 0x11da8c, - 0x11e64b, - 0x16a157, - 0x16ac95, - 0x3983, - 0x3983, - 0x38286, - 0x3983, - 0x103e88, - 0x15ee43, - 0x53544, - 0x1f184, - 0x1f18c, - 0x6a303, - 0x14b6c07, - 0xf79cd, - 0xaa045, - 0x151e183, - 0x1536ac8, - 0x67409, - 0x1b1749, - 0x30705, - 0x1e4acb, - 0x1c49cb, - 0x150ed43, - 0x150ed48, - 0x152986, - 0x145a4c7, - 0xa2a47, - 0x2d0a7789, - 0x14746, - 0xbec3, - 0x1c3448, - 0xb642, - 0x607c4, - 0x10210c, - 0x31d03, - 0x13a505, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x205d83, - 0x21a043, - 0x226783, - 0x204703, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x319283, + 0x26e4a, + 0x24dc8, + 0x26d47, + 0xfe08a, + 0x1b42c8, + 0x74a47, + 0x15c18f, + 0x4ed47, + 0x71b06, + 0x143110, + 0x1486a46, + 0x124c8f, + 0xee89, + 0x1e7104, + 0x2c400e4e, + 0x2ca0d84c, + 0x37849, + 0x79046, + 0x6bb89, + 0x116a86, + 0x173cc6, + 0xbc98c, + 0x12beca, + 0xa2647, + 0x11400a, + 0x146cc9, + 0x10368c, + 0x2410a, + 0x4deca, + 0x1a2389, + 0x1e7086, + 0xa270a, + 0x1aae8a, + 0xad3ca, + 0x1f06c9, + 0xef888, + 0xefb86, + 0xf4bcd, + 0xf9d4c, + 0x55f8b, + 0xdd585, + 0x2d322c8c, + 0x144207, + 0x1f0189, + 0xda4c7, + 0xba714, + 0x117a8b, + 0xc984a, + 0x150ca, + 0xb500d, + 0x1524749, + 0x11cb4c, + 0x11d70b, + 0x164c57, + 0x165ed5, + 0x7903, + 0x7903, + 0x34106, + 0x7903, + 0x2ce04b02, + 0x28d45, + 0xfbc48, + 0x15b243, + 0x49f04, + 0x17804, + 0x1780c, + 0x60483, + 0x14ad487, + 0x1702cd, + 0x15205, + 0x142a2c3, + 0x142a2c8, + 0x5c4c9, + 0xdfa89, + 0x28d45, + 0x10154b, + 0xd254b, + 0x1509343, + 0x1509348, + 0x1106, + 0x14526c7, + 0xa3fc7, + 0x2e172bc9, + 0x10886, + 0x50b03, + 0x1b9688, + 0x2202, + 0x554c4, + 0xf9d4c, + 0xff43, + 0x13d845, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x2028c3, + 0x206643, + 0x21f603, + 0x3d6403, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x2d2003, 0x200f83, - 0x205d83, - 0x265a04, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x211b43, - 0x212f03, - 0x249902, - 0x2e8a7885, - 0x1437143, - 0x21a043, - 0x226783, - 0x226dc3, - 0x204703, - 0x20f583, - 0x25c204, - 0x20de83, - 0x2384c3, - 0x214e43, - 0x214883, - 0x24acc3, - 0x205443, - 0x2f629e03, - 0x30609, - 0xb642, - 0x3f3903, - 0x3021a043, - 0x226783, - 0x259f43, - 0x20f583, - 0x224b03, - 0x2384c3, - 0x24acc3, - 0x205fc3, - 0x3c80c4, - 0x1c3448, - 0x30a1a043, - 0x226783, - 0x2c1c83, - 0x20f583, - 0x214e43, - 0x225a04, - 0x214883, - 0x24acc3, - 0x227603, - 0x1c3448, - 0x3121a043, - 0x226783, - 0x204703, - 0x10210c, - 0x208c43, - 0x24acc3, - 0x1c3448, - 0x154be47, - 0x20bec3, - 0x21a043, - 0x226783, - 0x20f583, - 0x25c204, - 0x225a04, - 0x214883, - 0x24acc3, - 0x14f985, - 0xf5d87, - 0xbe6cb, - 0x32241546, - 0xf5c04, - 0xd4905, - 0x1470708, - 0x2facd, - 0x1cd6c8, - 0x32a407c5, - 0x2af84, - 0xb642, - 0x18b43, - 0x159085, - 0x445c2, - 0x35cc45, - 0x1c3448, - 0x343341cd, - 0x3460510a, - 0x3982, - 0x20883, - 0x10210c, - 0x17290f, - 0x1b5c2, - 0x94ec4, - 0x642c4, - 0xb642, + 0x2028c3, + 0x214f04, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x2330c3, + 0x214f83, + 0x23d942, + 0x2f972cc5, + 0x142d603, + 0x206643, + 0x21f603, + 0x20fd03, + 0x3d6403, + 0x205503, + 0x2503c4, + 0x33c683, + 0x23ddc3, + 0x206543, + 0x2109c3, + 0x21f143, + 0x219683, + 0x30623443, + 0x28c49, + 0x2202, + 0x23e1c3, + 0x31206643, + 0x21f603, + 0x24ec43, + 0x205503, + 0x21a403, + 0x23ddc3, + 0x21f143, + 0x202b03, + 0x3eda84, + 0x1b9688, + 0x31a06643, + 0x21f603, + 0x2bacc3, + 0x205503, + 0x206543, + 0x294744, + 0x2109c3, + 0x21f143, + 0x2210c3, + 0x1b9688, + 0x32206643, + 0x21f603, + 0x3d6403, + 0xf9d4c, + 0x21d783, + 0x21f143, + 0x1b9688, + 0x1549207, + 0x250b03, + 0x206643, + 0x21f603, + 0x205503, + 0x2503c4, + 0x294744, + 0x2109c3, + 0x21f143, + 0x14cb05, + 0xf08c7, + 0xba94b, + 0x332328c6, + 0xf0744, + 0xdd585, + 0x147e248, + 0x206cd, + 0x1c7448, + 0x33a47285, + 0x1ecc4, + 0x2202, + 0x1c36c3, + 0x157e85, + 0x232c2, + 0x34db45, + 0x1b9688, + 0x353ddb4d, + 0x357d520a, + 0x7902, + 0x21483, + 0xf9d4c, + 0x16be4f, + 0xfd02, + 0x8e344, + 0x4ac44, + 0x2202, 0x2000c2, - 0x20bec3, - 0x21a043, - 0x20f583, - 0x25c204, - 0x214e43, - 0x225a04, - 0x214883, - 0x24acc3, - 0x205443, - 0x21a043, - 0x226783, - 0x214883, - 0x24acc3, - 0x12c85, - 0x339e48, - 0x265a04, - 0x3d4506, - 0x3d7c06, - 0x1c3448, - 0x320543, - 0x23ab49, - 0x318455, - 0x11845f, - 0x21a043, - 0x9ebc7, - 0x221b92, - 0x18dc86, - 0x190485, - 0x729ca, - 0x1661c9, - 0x22194f, - 0xf5207, - 0x2eef84, - 0x225105, - 0x31aa10, - 0x284ac7, - 0x10210c, - 0x208c43, - 0x2a1948, - 0x64146, - 0x2937ca, - 0x2311c4, - 0x30ad83, - 0x249902, - 0x30614b, - 0x1c3203, - 0x226783, - 0x20f583, - 0x197184, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x310783, - 0x20b642, - 0x3cc83, - 0x100b04, - 0x214883, - 0x24acc3, - 0x36846ac5, - 0x1dc686, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, - 0x222043, - 0x222383, - 0x24acc3, - 0xbec3, - 0x20b642, - 0x21a043, - 0x226783, - 0x214883, - 0x24acc3, - 0x26c02, + 0x250b03, + 0x206643, + 0x205503, + 0x2503c4, + 0x206543, + 0x294744, + 0x2109c3, + 0x21f143, + 0x219683, + 0x206643, + 0x21f603, + 0x2109c3, + 0x21f143, + 0x1c1f05, + 0x3365c8, + 0x214f04, + 0x3c2986, + 0x3d0586, + 0x1b9688, + 0x30f143, + 0x3be309, + 0x2b9815, + 0xb981f, + 0x206643, + 0x95a87, + 0x219d52, + 0x187746, + 0x189285, + 0x6b6ca, + 0x3e649, + 0x219b0f, + 0xefd47, + 0x2e4084, + 0x2243c5, + 0x319410, + 0x2577c7, + 0xf9d4c, + 0x21d783, + 0x23d5c8, + 0x4aac6, + 0x28cc4a, + 0x229804, + 0x309b43, + 0x23d942, + 0x30468b, + 0x1b9443, + 0x21f603, + 0x205503, + 0x18fc84, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x30e543, + 0x202202, + 0x31983, + 0x58cc4, + 0x2109c3, + 0x21f143, + 0x3783bf05, + 0x1d7346, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, + 0x20f743, + 0x21ddc3, + 0x21f143, + 0x50b03, + 0x202202, + 0x206643, + 0x21f603, + 0x2109c3, + 0x21f143, + 0x31e02, 0x2000c2, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x5985, - 0x6a0c9, - 0x4d03, - 0x265a04, - 0x21a043, - 0x226783, - 0x230944, - 0x214883, - 0x24acc3, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x13bf09, - 0x11d44, - 0x21a043, - 0x101c2, - 0x226783, - 0x204703, - 0x211983, - 0x214e43, - 0x214883, - 0x24acc3, - 0x19c2, - 0x21a043, - 0x226783, - 0x20f583, - 0x3b9544, - 0x25c204, - 0x214883, - 0x24acc3, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x2c45, + 0x74fc9, + 0x141eccb, + 0x15c43, + 0x214f04, + 0x206643, + 0x21f603, + 0x228f84, + 0x2109c3, + 0x21f143, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x132d09, + 0x6204, + 0x206643, + 0x23c2, + 0x21f603, + 0x3d6403, + 0x2036c3, + 0x206543, + 0x2109c3, + 0x21f143, + 0xc642, + 0x206643, + 0x21f603, + 0x205503, + 0x36b204, + 0x2503c4, + 0x2109c3, + 0x21f143, 0x200f83, - 0x2742, - 0x20b642, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x161243, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x37ee83, - 0xf2c3, - 0x22043, - 0x214883, - 0x24acc3, - 0x3a086, - 0x33060a, - 0x34e149, - 0x369a8b, - 0x369eca, - 0x375dca, - 0x386bcb, - 0x39b20a, - 0x3a280a, - 0x3a8f8a, - 0x3a920b, - 0x3ce989, - 0x3de04a, - 0x3de88b, - 0x3ede8b, - 0x3f2fca, - 0x6282, - 0x21a043, - 0x226783, - 0x204703, - 0x214e43, - 0x214883, - 0x24acc3, - 0x610b, - 0x12c887, - 0x73b48, - 0x1a72c4, - 0x1e6304, - 0xa2388, - 0xf9b06, - 0xae706, - 0x23b87, - 0x12a947, - 0x3589, - 0x1c3448, - 0x21a043, - 0x727c4, - 0x278884, - 0x204e42, - 0x225a04, - 0x252f05, - 0x205d83, - 0x265a04, - 0x21a043, - 0x243544, - 0x226783, - 0x2607c4, - 0x2eef84, - 0x25c204, - 0x2384c3, - 0x214883, - 0x24acc3, - 0x2cf905, - 0x211b43, - 0x205443, - 0x236d03, - 0x223984, - 0x333344, - 0x246c85, - 0x1c3448, - 0x3ebc44, - 0x209f46, - 0x3bf004, - 0x20b642, - 0x230b07, - 0x256387, - 0x25d444, - 0x2fa885, - 0x39b945, - 0x239805, - 0x25c204, - 0x2716c8, - 0x2680c6, - 0x32f248, - 0x2f8245, - 0x2fc3c5, - 0x27a004, - 0x24acc3, - 0x30b844, - 0x385bc6, - 0x219183, - 0x223984, - 0x26ed05, - 0x259804, - 0x2b7944, - 0x249902, - 0x3a1ec6, - 0x3c1786, - 0x31be45, + 0x8a42, + 0x202202, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x15d3c3, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x325e03, + 0x52383, + 0xf743, + 0x2109c3, + 0x21f143, + 0x2f7c6, + 0x32e0ca, + 0x34b2c9, + 0x36408b, + 0x3649ca, + 0x36fb0a, + 0x38028b, + 0x394bca, + 0x39b18a, + 0x3a1a4a, + 0x3a1ccb, + 0x3c7d89, + 0x3dfe4a, + 0x3e02cb, + 0x3ebacb, + 0x3f274a, + 0x2dc2, + 0x206643, + 0x21f603, + 0x3d6403, + 0x206543, + 0x2109c3, + 0x21f143, + 0x2c4b, + 0x12ae87, + 0x6c9c8, + 0x6b084, + 0x1e8684, + 0x9b108, + 0xf2f86, + 0x7206, + 0x3bb07, + 0x128c07, + 0xf8589, + 0x1b9688, + 0x206643, + 0x3e644, + 0x272544, + 0x20b082, + 0x294744, + 0x231c05, + 0x2028c3, + 0x214f04, + 0x206643, + 0x2392c4, + 0x21f603, + 0x2554c4, + 0x2e4084, + 0x2503c4, + 0x23ddc3, + 0x2109c3, + 0x21f143, + 0x29f085, + 0x2330c3, + 0x219683, + 0x27b403, + 0x21bc04, + 0x3de844, + 0x23c0c5, + 0x1b9688, + 0x3c3704, + 0x3c1386, + 0x3a24c4, + 0x202202, + 0x229147, + 0x24c707, + 0x251604, + 0x2f3d05, + 0x395305, + 0x22f2c5, + 0x2503c4, + 0x268e48, + 0x238646, + 0x365588, + 0x276445, + 0x2dfa85, + 0x273e04, + 0x21f143, + 0x30a904, + 0x37f286, + 0x2130c3, + 0x21bc04, + 0x275485, + 0x24e884, + 0x2adec4, + 0x23d942, + 0x257106, + 0x3b5b46, + 0x31a605, 0x2000c2, - 0x20bec3, - 0xf9c86, - 0x3be0b642, - 0x220ac4, - 0x1981c4, - 0x6f005, + 0x250b03, + 0xf3106, + 0x3ce02202, + 0x21ce04, + 0x191384, + 0x65685, 0x200382, - 0x214e43, - 0x2736c2, - 0x214883, + 0x206543, + 0x3d2070c2, + 0x2109c3, 0x2003c2, - 0x308746, - 0x219303, - 0x1e4905, + 0x3070c6, + 0x213dc3, + 0x1e7005, 0x200f83, - 0x1c3448, - 0x1c3448, - 0x20f583, - 0x10210c, + 0x1b9688, + 0x14f8cc3, + 0x1b9688, + 0x205503, + 0xf9d4c, 0x2000c2, - 0x3ca0b642, - 0x20f583, - 0x27dd43, - 0x20de83, - 0x21c1c4, - 0x214883, - 0x24acc3, - 0x1c3448, - 0xc0847, + 0x3de02202, + 0x205503, + 0x278cc3, + 0x33c683, + 0x20f444, + 0x2109c3, + 0x21f143, + 0x1b9688, + 0x126947, + 0x5860a, 0x2000c2, - 0x3d20b642, - 0x21a043, - 0x214883, - 0x24acc3, + 0x3e602202, + 0x206643, + 0x2109c3, + 0x21f143, 0x682, - 0x20ea02, - 0x22ccc2, - 0x222043, - 0x305103, + 0x209a02, + 0x224b42, + 0x20f743, + 0x303643, 0x2000c2, - 0x14f985, - 0x1c3448, - 0xf5d87, - 0x20b642, - 0x226783, - 0x2607c4, - 0x207783, - 0x20f583, - 0x211983, - 0x214e43, - 0x214883, - 0x21c243, - 0x24acc3, - 0x2190c3, - 0xd2a48, + 0x14cb05, + 0x1b9688, + 0xf08c7, + 0x202202, + 0x21f603, + 0x2554c4, + 0x203b43, + 0x205503, + 0x2036c3, + 0x206543, + 0x2109c3, + 0x20f4c3, + 0x21f143, + 0x213003, + 0xcbd48, 0xf83, - 0x147593, - 0x14b954, - 0x14f985, - 0xf5d87, - 0x2f389, - 0x11c806, - 0x16f34b, - 0x38286, - 0x6bb47, - 0x1bc006, + 0x145213, + 0x148d14, + 0x14cb05, + 0xf08c7, + 0x26e49, + 0x11b646, + 0x11090b, + 0x34106, + 0x61d47, + 0x1dbac6, 0x649, - 0x16278a, - 0x9e0cd, - 0x1dae8c, - 0x11f74a, - 0xab348, - 0x1a4045, - 0x2f3c8, - 0x1b506, - 0x1d9206, - 0x5f986, - 0x20a842, - 0x178884, - 0xe0146, - 0x14e754e, - 0x5086, - 0x7a60c, - 0x3e6a760b, - 0x14f985, - 0x15278b, - 0x3eb67b87, - 0x3ef67b8a, - 0x3f3d9144, - 0x88c9, - 0xfdc8, - 0x1c75c7, - 0x2de11, - 0x130dca, - 0x21a043, - 0x3f694308, - 0x170a45, - 0x1a0e88, - 0x36604, - 0x6e005, - 0xb8647, - 0x3f9d6d46, - 0xe044b, - 0x3ffc7cc9, - 0x181c5, - 0x61586, - 0x168e86, - 0xa528a, - 0xd184c, - 0x1ca843, - 0x1e6304, - 0x403d2484, - 0x67409, - 0x113107, - 0x10070a, - 0x14ea449, + 0x18540a, + 0x97bcd, + 0xdc10c, + 0x11e34a, + 0xa8ac8, + 0x1cf805, + 0x26e88, + 0x15d46, + 0x1d1b86, + 0x54146, + 0x204c02, + 0x26c4, + 0x170cc6, + 0x14e160e, + 0x1d5186, + 0x7440c, + 0x3fb72a4b, + 0x14cb05, + 0x14fb4b, + 0x3fe8c007, + 0x4028c00a, + 0x407d1ac4, + 0x50c9, + 0x9548, + 0x1bd207, + 0x25791, + 0x13064a, + 0x206643, + 0x40a8d788, + 0xfe005, + 0x1896c8, + 0x1b7344, + 0x4eb05, + 0xaeb47, + 0x1a9d0b, + 0x40e1f109, + 0x115c5, + 0x1702c6, + 0x163486, + 0x9d28a, + 0x10320c, + 0x1c1303, + 0x1e8684, + 0x413ed484, + 0x5c4c9, + 0x100ec7, + 0x588ca, + 0x14e5a49, 0x605, - 0x120703, - 0x406420c7, - 0x9bf05, - 0x1573546, - 0x14638c6, - 0x3f84c, - 0x10d308, - 0x40930fc5, - 0x40c4a243, - 0x113844, - 0x1d78b, - 0x14b0cb, - 0x4125ac0c, - 0x142d843, - 0xd61c8, - 0x1c49cb, - 0xb8509, - 0xd5603, - 0x124908, - 0x1428a86, - 0x9e747, - 0x41765489, - 0x42af0c48, - 0xbaf47, - 0xdc4ca, - 0x42f6a688, - 0x11e30d, - 0x1cc989, - 0x112c8, - 0x4d03, - 0x1486089, - 0x642c4, - 0x187d45, - 0x47143, - 0x38286, - 0x103e88, - 0x6502, - 0x1b404, - 0xaa345, - 0x1addc4, - 0x1437dc3, - 0x24dc7, - 0x41a24dc3, - 0x41fb8246, - 0x42244e04, - 0x42601b07, - 0x103e84, - 0x17ef87, - 0x103e84, - 0x17ef87, - 0x103e84, - 0x103e84, - 0x17ef87, - 0x5989, + 0x10f303, + 0x41637047, + 0x1f45, + 0x156ca86, + 0x140c406, + 0x15ce8c, + 0x10c348, + 0x41930845, + 0x41c413c3, + 0x110fc4, + 0x6948b, + 0x121e0b, + 0x4224f04c, + 0x1426143, + 0xcef48, + 0xd254b, + 0xaea09, + 0xd9143, + 0x124848, + 0x1422886, + 0x95607, + 0x42761949, + 0x30147, + 0x43aeba48, + 0xa19c4, + 0x1178c7, + 0xe040a, + 0x43f65188, + 0x11d3cd, + 0x1c6e09, + 0x1d7808, + 0x15c43, + 0x14493c9, + 0x4ac44, + 0x97c5, + 0x3c583, + 0x34106, + 0x3042, + 0x15c44, + 0x2a385, + 0x1aa884, + 0x142db83, + 0x1a6c7, + 0x42a1a6c3, + 0x42fcc386, + 0x4323ab84, + 0x436fddc7, + 0xfbc44, + 0x125f07, + 0xfbc44, + 0x125f07, + 0xfbc44, + 0xfbc44, + 0x125f07, + 0x1dee09, 0x41, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, 0x2000c2, - 0x20b642, - 0x20f583, - 0x206502, - 0x214883, - 0x24acc3, - 0x219303, - 0x38ef8f, - 0x38f34e, - 0x1c3448, - 0x21a043, - 0x52a87, - 0x226783, - 0x20f583, - 0x20bc83, - 0x214883, - 0x24acc3, - 0x4fc4, - 0x2e44, + 0x202202, + 0x205503, + 0x203042, + 0x2109c3, + 0x21f143, + 0x213dc3, + 0x387fcf, + 0x38838e, + 0x1b9688, + 0x206643, + 0x49087, + 0x21f603, + 0x205503, + 0x211e43, + 0x2109c3, + 0x21f143, + 0x1d50c4, + 0x1d4704, 0xa04, - 0x203a83, - 0x203a87, - 0x203f42, - 0x27ee89, + 0x220fc3, + 0x3d5787, + 0x204782, + 0x279f49, 0x200b02, - 0x388b4b, - 0x2b154a, - 0x2b7d09, + 0x25a88b, + 0x2ed3ca, + 0x3289c9, 0x200542, - 0x2369c6, - 0x25ed95, - 0x388c95, - 0x261ad3, - 0x389213, - 0x204302, - 0x22bb45, - 0x3ea8cc, - 0x287c8b, - 0x269e45, - 0x2029c2, - 0x314102, - 0x377546, - 0x201d42, - 0x29ca06, - 0x36640d, - 0x3a3dcc, - 0x3cd784, + 0x3b7706, + 0x25fd95, + 0x25a9d5, + 0x264ed3, + 0x25af53, + 0x216302, + 0x228645, + 0x3c340c, + 0x2815cb, + 0x259e85, + 0x206182, + 0x2f45c2, + 0x2f45c6, + 0x2028c2, + 0x296186, + 0x23e88d, + 0x258d4c, + 0x3c7504, 0x200882, - 0x214202, - 0x2932c8, + 0x210342, + 0x28c748, 0x200202, - 0x202f06, - 0x3a480f, - 0x202f10, - 0x2ff204, - 0x25ef55, - 0x261c53, - 0x217143, - 0x35c78a, - 0x392b47, - 0x398a89, - 0x315cc7, - 0x21da82, + 0x33d3c6, + 0x39d54f, + 0x3d47d0, + 0x2fd044, + 0x25ff55, + 0x265053, + 0x214ec3, + 0x35898a, + 0x38b6c7, + 0x392409, + 0x313d87, + 0x269782, 0x200282, - 0x3d2386, - 0x20b102, - 0x1c3448, - 0x211f02, - 0x202642, - 0x2121c7, - 0x398e07, - 0x398e11, - 0x225505, - 0x22550e, - 0x225fcf, - 0x203ac2, - 0x227547, - 0x227708, + 0x3caa06, + 0x206202, + 0x1b9688, + 0x20b4c2, + 0x20b782, + 0x20b787, + 0x3aeb47, + 0x3aeb51, + 0x21d0c5, + 0x21d0ce, + 0x21e8cf, + 0x202fc2, + 0x221007, + 0x2211c8, 0x201002, - 0x229b02, - 0x2143c6, - 0x2143cf, - 0x27b1d0, - 0x236f02, - 0x203d82, - 0x230c48, - 0x203d83, - 0x29b148, - 0x247d4d, - 0x2063c3, - 0x3d7a48, - 0x26c00f, - 0x26c3ce, - 0x35018a, - 0x2f4111, - 0x2f4590, - 0x3b0b8d, - 0x3b0ecc, - 0x3f3787, - 0x35c907, - 0x3d45c9, - 0x216f42, - 0x205202, - 0x26d8cc, - 0x26dbcb, - 0x2045c2, - 0x2dfc86, - 0x212f82, - 0x200482, - 0x36e3c2, - 0x20b642, - 0x239244, - 0x246887, - 0x203682, - 0x24d507, - 0x24f347, - 0x215942, - 0x218402, - 0x252945, + 0x220302, + 0x210506, + 0x21050f, + 0x2711d0, + 0x22d3c2, + 0x201782, + 0x229288, + 0x201783, + 0x26d748, + 0x23decd, + 0x202f03, + 0x3d03c8, + 0x26220f, + 0x2625ce, + 0x214d8a, + 0x2eebd1, + 0x2ef050, + 0x2deecd, + 0x2df20c, + 0x381dc7, + 0x358b07, + 0x3c2a49, + 0x2170c2, + 0x2011c2, + 0x263b4c, + 0x263e4b, 0x203402, - 0x2d0bce, - 0x215b8d, - 0x226783, - 0x25880e, - 0x231e8d, - 0x34cc83, - 0x2017c2, - 0x2990c4, - 0x211542, - 0x22e042, - 0x3add05, - 0x3b3c47, - 0x257682, - 0x21b5c2, - 0x25f487, - 0x267788, - 0x2698c2, - 0x28e646, - 0x26d74c, - 0x26da8b, - 0x205b02, - 0x274b0f, - 0x274ed0, - 0x2752cf, - 0x275695, - 0x275bd4, - 0x2760ce, - 0x27644e, - 0x2767cf, - 0x276b8e, - 0x276f14, - 0x277413, - 0x2778cd, - 0x28ce09, - 0x2a0083, - 0x206582, - 0x364805, - 0x207786, + 0x39ba06, + 0x204102, + 0x200482, + 0x3547c2, + 0x202202, + 0x22ec04, + 0x23bcc7, + 0x22dd42, + 0x243c87, + 0x246f47, + 0x242982, + 0x211802, + 0x248f45, + 0x254302, + 0x2b52ce, + 0x37b2cd, + 0x21f603, + 0x2936ce, + 0x2d49cd, + 0x374243, + 0x202482, + 0x240dc4, + 0x213242, + 0x202442, + 0x3aa7c5, + 0x24c1c7, + 0x24dc42, + 0x20fd02, + 0x253c47, + 0x25c848, + 0x2596c2, + 0x286fc6, + 0x2639cc, + 0x263d0b, + 0x208102, + 0x26db4f, + 0x26df10, + 0x26e30f, + 0x26e6d5, + 0x26ec14, + 0x26f10e, + 0x26f48e, + 0x26f80f, + 0x26fbce, + 0x26ff54, + 0x270453, + 0x27090d, + 0x285809, + 0x299443, + 0x2030c2, + 0x360605, + 0x2045c6, 0x200382, - 0x2e4f47, - 0x20f583, + 0x2f7c47, + 0x205503, 0x200642, - 0x38bcc8, - 0x2f4351, - 0x2f4790, - 0x204182, - 0x29f347, - 0x2040c2, - 0x271107, - 0x20af02, - 0x254e89, - 0x377507, - 0x29f808, - 0x3d6b86, - 0x305003, - 0x39e645, - 0x20b602, + 0x233488, + 0x2eee11, + 0x2ef250, + 0x206a42, + 0x298707, + 0x202b82, + 0x259887, + 0x206982, + 0x33a609, + 0x2f4587, + 0x298bc8, + 0x3cf606, + 0x303543, + 0x398805, + 0x22a2c2, 0x2004c2, - 0x34cb85, - 0x370845, - 0x209a42, - 0x237743, - 0x352b07, - 0x3d9487, - 0x203c82, - 0x39ac04, - 0x20a243, - 0x3f3b89, - 0x20a248, - 0x212a82, - 0x20fe02, - 0x22e807, - 0x3584c5, - 0x285788, - 0x286547, - 0x20ddc3, - 0x2dffc6, - 0x3b0a0d, - 0x3b0d8c, - 0x3a1086, - 0x206442, - 0x205942, + 0x3c5ec5, + 0x3dbd85, + 0x201282, + 0x211f83, + 0x2a1a47, + 0x3d1e07, + 0x201702, + 0x3878c4, + 0x207783, + 0x3ee109, + 0x207788, + 0x206b42, + 0x209582, + 0x22bb07, + 0x3b6b85, + 0x258488, + 0x228347, + 0x225ac3, + 0x370b46, + 0x2ded4d, + 0x2df0cc, + 0x3898c6, + 0x202f82, + 0x202042, 0x200ec2, - 0x26be8f, - 0x26c28e, - 0x39b9c7, - 0x2024c2, - 0x214e45, - 0x214e46, - 0x22ab02, - 0x201942, - 0x2a0d06, - 0x24fb03, - 0x3d1206, - 0x2e8b05, - 0x2e8b0d, - 0x2e9095, - 0x2e990c, - 0x2e9c8d, - 0x2e9fd2, - 0x20d3c2, - 0x282182, - 0x10210c, - 0x202202, - 0x379cc6, - 0x211ac6, - 0x4429eb44, - 0x2025c2, - 0x207806, - 0x217a02, - 0x254405, - 0x203cc2, - 0x215c89, - 0x2161cc, - 0x21650b, + 0x26208f, + 0x26248e, + 0x395387, + 0x201e42, + 0x23d4c5, + 0x23d4c6, + 0x21cf02, + 0x201502, + 0x29a0c6, + 0x245e43, + 0x3c2346, + 0x2e2c05, + 0x2e2c0d, + 0x2e3915, + 0x2e4f0c, + 0x2e528d, + 0x2e55d2, + 0x203c42, + 0x27d202, + 0xf9d4c, + 0x201b82, + 0x300486, + 0x3cda46, + 0x45295a04, + 0x201f42, + 0x204646, + 0x203902, + 0x25f385, + 0x206282, + 0x2b5409, + 0x21634c, + 0x21668b, 0x2003c2, - 0x268908, - 0x201982, - 0x207002, - 0x287a46, - 0x2885c5, - 0x394447, - 0x358845, - 0x27a8c5, - 0x204d82, - 0x22f482, - 0x2035c2, - 0x2b1f87, - 0x30880d, - 0x308b8c, - 0x2517c7, - 0x28e5c2, - 0x216402, - 0x379688, - 0x259a08, - 0x327448, - 0x3c4404, - 0x2e1e87, - 0x3064c3, - 0x209ec2, - 0x211b42, - 0x309589, - 0x317c07, - 0x205442, - 0x288085, - 0x221e42, - 0x223c42, - 0x30f203, - 0x30f206, - 0x310482, - 0x313702, + 0x25df08, + 0x205842, + 0x206702, + 0x281386, + 0x28bb05, + 0x38cf47, + 0x33e845, + 0x2746c5, + 0x207202, + 0x226f42, + 0x2020c2, + 0x2b0d07, + 0x30718d, + 0x30750c, + 0x237447, + 0x286f42, + 0x201402, + 0x3cac08, + 0x201408, + 0x2ec9c8, + 0x3ba644, + 0x3ef987, + 0x304a03, + 0x271c02, + 0x20bc02, + 0x307f09, + 0x35f407, + 0x202b02, + 0x2819c5, + 0x21a002, + 0x21ec82, + 0x30dd03, + 0x30dd06, + 0x30e242, + 0x310e82, 0x200402, - 0x234586, - 0x357f07, - 0x21d602, + 0x204746, + 0x240d07, + 0x201182, 0x200902, - 0x29af8f, - 0x25864d, - 0x2db38e, - 0x231d0c, - 0x20c802, - 0x2026c2, - 0x3d69c5, - 0x32eb06, - 0x201d82, - 0x209982, + 0x26d58f, + 0x29350d, + 0x296b0e, + 0x2d484c, + 0x208ac2, + 0x202b42, + 0x3cf445, + 0x32c506, + 0x225402, + 0x203f42, 0x200682, - 0x232004, - 0x354204, - 0x360a46, - 0x202fc2, - 0x29bdc7, - 0x234683, - 0x249088, - 0x249a48, - 0x250e47, - 0x38e646, - 0x201a82, - 0x232603, - 0x232607, - 0x2875c6, - 0x2d6385, - 0x257ec8, - 0x2075c2, - 0x2fc8c7, - 0x230802, - 0x2a7382, - 0x206342, - 0x2030c9, - 0x209202, - 0x111908, - 0x201682, - 0x2b0b43, - 0x336e87, - 0x201b02, - 0x21634c, - 0x21664b, - 0x3a1106, - 0x30f905, - 0x4462b803, - 0x2021c2, + 0x2282c4, + 0x2dfa04, + 0x35ccc6, + 0x204842, + 0x293fc7, + 0x204843, + 0x23b6c8, + 0x23da88, + 0x2478c7, + 0x2611c6, + 0x201a42, + 0x204083, + 0x204087, + 0x282486, + 0x2d9985, + 0x283508, + 0x203c82, + 0x2f5fc7, + 0x20e7c2, + 0x2b26c2, + 0x202e82, + 0x21ea49, + 0x20de02, + 0x18b88, 0x2019c2, - 0x2d7cc6, - 0x234b83, - 0x3b92c7, - 0x20ea42, + 0x25b383, + 0x3501c7, + 0x202a42, + 0x2164cc, + 0x2167cb, + 0x389946, + 0x312485, + 0x45606b83, + 0x201b42, + 0x20c642, + 0x2d0a06, + 0x2274c3, + 0x36af87, + 0x26bac2, 0x2008c2, - 0x25ec15, - 0x388e55, - 0x261993, - 0x389393, - 0x279a47, - 0x28b891, - 0x295090, - 0x29a312, - 0x29d851, - 0x2a1cc8, - 0x2a1cd0, - 0x2a5d0f, - 0x2b1313, - 0x2b7ad2, - 0x2c3490, - 0x376b8f, - 0x39c552, - 0x2c83d1, - 0x2cb893, - 0x2ce352, - 0x2e874f, - 0x2eb08e, - 0x2efed2, - 0x2f2f91, - 0x2f384f, - 0x2f6dce, - 0x2f96d1, - 0x2fbd50, - 0x3047d2, - 0x307e91, - 0x30ca90, - 0x30d4cf, - 0x310811, - 0x314290, - 0x314d46, - 0x327a47, - 0x2284c7, - 0x2027c2, - 0x296485, - 0x3e0bc7, - 0x22ccc2, - 0x205a42, - 0x3d0f05, - 0x20c703, - 0x378306, - 0x3089cd, - 0x308d0c, - 0x207882, - 0x3ea74b, - 0x287b4a, - 0x28a70a, - 0x22ba49, - 0x2d6e8b, - 0x30798d, - 0x28668c, - 0x31ae8a, - 0x25018c, - 0x25360b, - 0x269c8c, - 0x28414e, - 0x28c48b, - 0x2acb0c, - 0x2ccf43, - 0x37ef06, - 0x36a682, - 0x227e42, - 0x26fd83, + 0x25fc15, + 0x25ab95, + 0x264d93, + 0x25b0d3, + 0x284447, + 0x2a7e51, + 0x2c2290, + 0x396092, + 0x2c16d1, + 0x2c4d48, + 0x2c4d50, + 0x2c810f, + 0x2ed193, + 0x3a8152, + 0x2e2810, + 0x2e71cf, + 0x2e9fd2, + 0x2eab51, + 0x2ed913, + 0x2ee252, + 0x2f1b0f, + 0x2f2c0e, + 0x2f53d2, + 0x3287d1, + 0x3063cf, + 0x30bb4e, + 0x30c511, + 0x30e5d0, + 0x311a12, + 0x3132d1, + 0x330f10, + 0x33db4f, + 0x37eb11, + 0x3e2250, + 0x32a506, + 0x3385c7, + 0x20cf47, + 0x204042, + 0x290285, + 0x319187, + 0x224b42, + 0x202d02, + 0x294ac5, + 0x223683, + 0x3de2c6, + 0x30734d, + 0x30768c, + 0x2046c2, + 0x3c328b, + 0x28148a, + 0x283b8a, + 0x230b09, + 0x2cfa4b, + 0x305ecd, + 0x22848c, + 0x31988a, + 0x2464cc, + 0x249fcb, + 0x259ccc, + 0x27f5ce, + 0x284e8b, + 0x2a45cc, + 0x2cad83, + 0x325e86, + 0x365182, + 0x221902, + 0x25eb03, 0x201102, - 0x220983, - 0x2da0c6, - 0x275847, - 0x2dd0c6, - 0x3b2208, - 0x352988, - 0x32cb46, - 0x20b382, - 0x31b80d, - 0x31bb4c, - 0x34b287, - 0x31f587, - 0x226402, - 0x2216c2, - 0x209142, - 0x292602, - 0x33f716, - 0x344395, - 0x347056, - 0x34d093, - 0x34d752, - 0x35e9d3, - 0x35f512, - 0x3c048f, - 0x3cfb98, - 0x3d1e17, - 0x3d5419, - 0x3d7198, - 0x3d8058, - 0x3d8bd7, - 0x3d9d97, - 0x3dc056, - 0x3e0713, - 0x3e0d95, - 0x3e17d2, - 0x3e1c53, - 0x16f02, - 0x44a03584, - 0x44fcd6c8, - 0x5985, - 0x20b642, - 0x214883, - 0x445c2, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x225a04, - 0x214883, - 0x24acc3, - 0x219303, + 0x22fd43, + 0x3c26c6, + 0x26e887, + 0x2d69c6, + 0x3a8cc8, + 0x201108, + 0x214786, + 0x20c302, + 0x319fcd, + 0x31a30c, + 0x321fc7, + 0x31e187, + 0x211202, + 0x219882, + 0x204002, + 0x28b082, + 0x33d2d6, + 0x342515, + 0x344cd6, + 0x34a393, + 0x34aa52, + 0x35add3, + 0x35b452, + 0x3b480f, + 0x3c8b58, + 0x3ca497, + 0x3cde99, + 0x3cfb18, + 0x3d09d8, + 0x3d1557, + 0x3d2c17, + 0x3d6d16, + 0x3e2e93, + 0x3e3595, + 0x3e3fd2, + 0x3e4453, + 0x17082, + 0x45a2c284, + 0x45fc7448, + 0x2c45, + 0x202202, + 0x2109c3, + 0x232c2, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x294744, + 0x2109c3, + 0x21f143, + 0x213dc3, 0x2000c2, - 0x204502, - 0x45ea6b05, - 0x462a6305, - 0x46653946, - 0x1c3448, - 0x46ace985, - 0x20b642, - 0x203142, - 0x46f25e05, - 0x47294c85, - 0x47695b87, - 0x47af7ec9, - 0x47fbb404, + 0x213c82, + 0x46e9f385, + 0x4724bf85, + 0x47669d46, + 0x1b9688, + 0x47ac8685, + 0x202202, + 0x201482, + 0x47f69f05, + 0x4828e105, + 0x4868ef07, + 0x48a760c9, + 0x48fb60c4, 0x200382, 0x200642, - 0x4826ab45, - 0x486a6449, - 0x48baaf08, - 0x48ec7645, - 0x49359c47, - 0x4961e1c8, - 0x49b14945, - 0x49eb0206, - 0x4a2564c9, - 0x4a78d7c8, - 0x4aade488, - 0x4aeb0c4a, - 0x4b23cdc4, - 0x4b6bd045, - 0x4bab9cc8, - 0x4be59605, - 0x21f082, - 0x4c2024c3, - 0x4c6bbc86, - 0x4ca4c1c8, - 0x4ceffb06, - 0x4d358048, - 0x4d7a9686, - 0x4da43e44, - 0x4de01f42, - 0x4e6ee3c7, - 0x4eac2644, - 0x4ee909c7, - 0x4f3e8187, + 0x4925b745, + 0x4969ea09, + 0x49a11008, + 0x49ec0a45, + 0x4a355507, + 0x4a613388, + 0x4ab1db05, + 0x4aea6d46, + 0x4b24c849, + 0x4b79ecc8, + 0x4bad8288, + 0x4bea778a, + 0x4c3cc904, + 0x4c6b5cc5, + 0x4cab3ac8, + 0x4ce4e685, + 0x217702, + 0x4d201e43, + 0x4d6b41c6, + 0x4da48908, + 0x4dfc98c6, + 0x4e214888, + 0x4e7d3446, + 0x4ea52d84, + 0x4ee018c2, + 0x4f6e9907, + 0x4fabbb04, + 0x4fe88f07, + 0x503ea507, 0x2003c2, - 0x4f6b54c5, - 0x4fa84804, - 0x4ffb69c7, - 0x50247947, - 0x50698f06, - 0x50a1a705, - 0x50eaf707, - 0x513ce308, - 0x51663b07, - 0x51ac4449, - 0x51eeed85, - 0x52316ec7, - 0x526a6146, - 0x2af8b, - 0x52a33c88, - 0x22ec0d, - 0x261089, - 0x28970b, - 0x2a66cb, - 0x2bf2cb, - 0x2cd90b, - 0x32ed0b, - 0x32efcb, - 0x32f9c9, - 0x33088b, - 0x330b4b, - 0x33110b, - 0x33244a, - 0x33298a, - 0x332f8c, - 0x337e8b, - 0x33848a, - 0x34ac0a, - 0x354ace, - 0x35570e, - 0x355a8a, - 0x358e4a, - 0x35a38b, - 0x35a64b, - 0x35b14b, - 0x37ca4b, - 0x37d04a, - 0x37dd0b, - 0x37dfca, - 0x37e24a, - 0x37e4ca, - 0x39c14b, - 0x3a360b, - 0x3a678e, - 0x3a6b0b, - 0x3aeb4b, - 0x3b034b, - 0x3b490a, - 0x3b4b89, - 0x3b4dca, - 0x3b66ca, - 0x3cf58b, - 0x3deb4b, - 0x3df64a, - 0x3e014b, - 0x3e660b, - 0x3f2a0b, - 0x52e96f08, - 0x5329d189, - 0x536b8389, - 0x53afcdc8, - 0x3607c5, - 0x203ec3, - 0x267c44, - 0x397685, - 0x3bb146, - 0x3574c5, - 0x29c844, - 0x2e4e48, - 0x328f45, - 0x2a88c4, - 0x206a87, - 0x2b74ca, - 0x325b4a, - 0x39bac7, - 0x23f147, - 0x2f7287, - 0x26acc7, - 0x3bfb05, - 0x3bbd86, - 0x249647, - 0x2606c4, - 0x2d2d86, - 0x302a46, - 0x3cb6c5, - 0x37b304, - 0x2b5106, - 0x2b6407, - 0x22ef06, - 0x320307, - 0x242d03, - 0x3cb3c6, - 0x230e85, - 0x295c87, - 0x27e84a, - 0x362244, - 0x21b988, - 0x2c3d89, - 0x381307, - 0x356306, - 0x28d588, - 0x3e8509, - 0x3622c4, - 0x287144, - 0x2d01c5, - 0x225908, - 0x2e7187, - 0x3138c9, - 0x23de88, - 0x321f06, - 0x240646, - 0x2b1a08, - 0x37bb06, - 0x2a6305, - 0x298fc6, - 0x290d88, - 0x297a46, - 0x26cc0b, - 0x2a2e06, - 0x2b3f8d, - 0x209805, - 0x2c2506, - 0x21e285, - 0x2d0389, - 0x32a287, - 0x214cc8, - 0x2c2ac6, - 0x2b2549, - 0x3a3886, - 0x27e7c5, - 0x21e4c6, - 0x2e4146, - 0x2eb409, - 0x2d4e06, - 0x214f47, - 0x2ac7c5, - 0x204343, - 0x264a45, - 0x2d2bc7, - 0x3db5c6, - 0x209709, - 0x253946, - 0x299206, - 0x24db09, - 0x2989c9, - 0x2ba547, - 0x36b208, - 0x2a4649, - 0x296108, - 0x2e5606, - 0x2f4b85, - 0x28f48a, - 0x299286, - 0x3d0646, - 0x2ee305, - 0x266b88, - 0x3af747, - 0x23c48a, - 0x262186, - 0x328245, - 0x313fc6, - 0x2a71c7, - 0x3561c7, - 0x2aec85, - 0x27e985, - 0x27b046, - 0x27bd86, - 0x285d86, - 0x245f84, - 0x297389, - 0x29f106, - 0x2ed9ca, - 0x21f648, - 0x316bc8, - 0x325b4a, - 0x24c385, - 0x2b6345, - 0x2093c8, - 0x32c608, - 0x24e687, - 0x2dd546, - 0x342288, - 0x220247, - 0x296808, - 0x2d3dc6, - 0x299c88, - 0x2ad906, - 0x2f83c7, - 0x317e46, - 0x2b5106, - 0x234eca, - 0x2392c6, - 0x2f4b89, - 0x371946, - 0x21230a, - 0x243e49, - 0x3091c6, - 0x2d5a44, - 0x3648cd, - 0x294ac7, - 0x20b986, - 0x2de345, - 0x3a3905, - 0x39dc06, - 0x383609, - 0x39fe87, - 0x291786, - 0x376546, - 0x27d809, - 0x360d04, - 0x3092c4, - 0x3ec208, - 0x38fb86, - 0x2ac248, - 0x2f20c8, - 0x288a47, - 0x2ff509, - 0x3d5d07, - 0x2ce84a, - 0x30a04f, - 0x24eaca, - 0x3d67c5, - 0x290fc5, - 0x214c85, - 0x2ff147, - 0x292403, - 0x36b408, - 0x23a546, - 0x23a649, - 0x359646, - 0x22a647, - 0x2b2309, - 0x214bc8, - 0x2d0547, - 0x32cfc3, - 0x360845, - 0x2a6d05, - 0x245dcb, - 0x2596c4, - 0x381204, - 0x28ec46, - 0x32d187, - 0x39e18a, - 0x25d687, - 0x2318c7, - 0x294c85, - 0x3dc5c5, - 0x391749, - 0x2b5106, - 0x25d50d, - 0x300285, - 0x2d1d83, - 0x208e03, - 0x220b45, - 0x342b85, - 0x28d588, - 0x291f47, - 0x24b286, - 0x2b8006, - 0x235205, - 0x241387, - 0x3d30c7, - 0x267f87, - 0x2bd0ca, - 0x3cb488, - 0x245f84, - 0x2977c7, - 0x293e47, - 0x367346, - 0x2acf87, - 0x36da88, - 0x362948, - 0x29c146, - 0x23f388, - 0x2d4e84, - 0x249646, - 0x28d846, - 0x302c46, - 0x349986, - 0x2198c4, - 0x26ad86, - 0x2dd246, - 0x2b1146, - 0x234ec6, - 0x208cc6, - 0x2fe846, - 0x24b188, - 0x2cfec8, - 0x2f16c8, - 0x3576c8, - 0x209346, - 0x20f0c5, - 0x264a06, - 0x2c76c5, - 0x338e87, - 0x23df45, - 0x2180c3, - 0x312185, - 0x320d44, - 0x208e05, - 0x201983, - 0x35b707, - 0x2e5188, - 0x3203c6, - 0x2c57cd, + 0x506abc05, + 0x50a57504, + 0x50f70607, + 0x5123ae07, + 0x51692306, + 0x51a8eb05, + 0x51ea5f87, + 0x522c8d48, + 0x5260c647, + 0x52abdf89, + 0x52ee3e85, + 0x53314f87, + 0x5369e706, + 0x1eccb, + 0x53bdcc08, + 0x231e4d, + 0x269809, + 0x28308b, + 0x29c10b, + 0x2b7acb, + 0x3e550b, + 0x32c70b, + 0x32c9cb, + 0x32d349, + 0x32e34b, + 0x32e60b, + 0x32eb8b, + 0x32f84a, + 0x32fd8a, + 0x33038c, + 0x33434b, + 0x334d8a, + 0x3485ca, + 0x350e8e, + 0x351f8e, + 0x35230a, + 0x354d8a, + 0x355b0b, + 0x355dcb, + 0x3568cb, + 0x37680b, + 0x376e0a, + 0x377acb, + 0x377d8a, + 0x37800a, + 0x37828a, + 0x395c8b, + 0x39ca0b, + 0x39f5ce, + 0x39f94b, + 0x3a69cb, + 0x3a7ccb, + 0x3abc8a, + 0x3abf09, + 0x3ac14a, + 0x3ada4a, + 0x3c854b, + 0x3e058b, + 0x3e140a, + 0x3e28cb, + 0x3e898b, + 0x3f218b, + 0x53e90e08, + 0x54297009, + 0x546ae889, + 0x54af64c8, + 0x35ca45, + 0x20ba83, + 0x256884, + 0x382285, + 0x3b5e06, + 0x3537c5, + 0x295fc4, + 0x2f7b48, + 0x326d45, + 0x2a0a44, + 0x3cb1c7, + 0x2ada4a, + 0x2ffa8a, + 0x395487, + 0x241d07, + 0x2f2007, + 0x25b8c7, + 0x3a2fc5, + 0x275b46, + 0x2d6e47, + 0x24cfc4, + 0x2cd406, + 0x2fb206, + 0x3afbc5, + 0x381a84, + 0x2ab846, + 0x2acc87, + 0x2269c6, + 0x30ef07, + 0x2a0303, + 0x3c4ac6, + 0x2294c5, + 0x28f007, + 0x27990a, + 0x233584, + 0x20ec08, + 0x2bd889, + 0x2c5787, + 0x334c06, + 0x2e9a48, + 0x3ea889, + 0x23a704, + 0x280544, + 0x213785, + 0x2d1508, + 0x2e1247, + 0x311049, + 0x2455c8, + 0x3218c6, + 0x245946, + 0x2a84c8, + 0x375946, + 0x24bf85, + 0x2923c6, + 0x289348, + 0x25cd86, + 0x262e0b, + 0x29b606, + 0x2aa20d, + 0x20ab45, + 0x2bb9c6, + 0x20e0c5, + 0x235249, + 0x371cc7, + 0x210e08, + 0x2be906, + 0x2a9449, + 0x356e06, + 0x279885, + 0x213686, + 0x2f3f06, + 0x2e62c9, + 0x2cde86, + 0x2c7d47, + 0x2b1705, + 0x211d03, + 0x262f85, + 0x3c2447, + 0x375406, + 0x20aa49, + 0x269d46, + 0x2805c6, + 0x244289, + 0x291dc9, + 0x2b1c87, + 0x366448, + 0x29d849, + 0x28ff08, + 0x2de7c6, + 0x2ef645, + 0x287e0a, + 0x280646, + 0x3542c6, + 0x2e9845, + 0x25bd48, + 0x351507, + 0x23118a, + 0x255cc6, + 0x24a205, + 0x311746, + 0x29fa47, + 0x334ac7, + 0x31fb85, + 0x279a45, + 0x271046, + 0x275786, + 0x27d446, + 0x2390c4, + 0x291209, + 0x2984c6, + 0x3e58ca, + 0x21ac08, + 0x314c88, + 0x2ffa8a, + 0x248ac5, + 0x2acbc5, + 0x3cc688, + 0x384008, + 0x241147, + 0x39b706, + 0x340488, + 0x3f3247, + 0x28f148, + 0x2cd306, + 0x292bc8, + 0x2a53c6, + 0x2765c7, + 0x35f646, + 0x2ab846, + 0x22780a, + 0x22ec86, + 0x2ef649, + 0x2fef06, + 0x20b8ca, + 0x252d89, + 0x307b46, + 0x2ce7c4, + 0x3606cd, + 0x28df47, + 0x3c5386, + 0x2d8145, + 0x356e85, + 0x33ca86, + 0x2c6a49, + 0x2da647, + 0x28a106, + 0x37ce46, + 0x278789, + 0x24bec4, + 0x307c44, + 0x3bdc48, + 0x35fac6, + 0x2b1188, + 0x2f6dc8, + 0x261787, + 0x2fd349, + 0x3ce787, + 0x2c854a, + 0x3089cf, + 0x3a4d8a, + 0x3cf245, + 0x289585, + 0x20cb45, + 0x2fcf87, + 0x28ae83, + 0x366648, + 0x273146, + 0x273249, + 0x358446, + 0x3667c7, + 0x2a9209, + 0x210d08, + 0x235407, + 0x32b3c3, + 0x35cac5, + 0x29f585, + 0x238f0b, + 0x24e744, + 0x315904, + 0x2875c6, + 0x32b587, + 0x39834a, + 0x280ec7, + 0x3467c7, + 0x28e105, + 0x3d7285, + 0x28f689, + 0x2ab846, + 0x280d4d, + 0x3ca045, + 0x2cb083, + 0x21da03, + 0x22ff05, + 0x340d85, + 0x2e9a48, + 0x28a8c7, + 0x2405c6, + 0x2ae506, + 0x22bcc5, + 0x236347, + 0x36a2c7, + 0x238507, + 0x2b5d4a, + 0x3c4b88, + 0x2390c4, + 0x2907c7, + 0x28d2c7, + 0x362686, + 0x2a4a47, + 0x31ad08, + 0x3855c8, + 0x27ed46, + 0x241f48, + 0x2cdf04, + 0x2d6e46, + 0x267486, + 0x2fb406, + 0x335986, + 0x211cc4, + 0x25b986, + 0x2d6b46, + 0x2a7c86, + 0x227806, + 0x3cbf86, + 0x2fc686, + 0x2404c8, + 0x2c92c8, + 0x2ec248, + 0x3539c8, + 0x3cc606, + 0x2034c5, + 0x294106, + 0x2c0ac5, + 0x39a847, + 0x245685, + 0x2114c3, + 0x3202c5, + 0x3ec504, + 0x3cc0c5, + 0x2200c3, + 0x3525c7, + 0x2dd908, + 0x30efc6, + 0x2bf20d, + 0x289546, + 0x2a7205, + 0x21ea43, + 0x2d2c89, + 0x24c046, + 0x2a6546, + 0x2afb84, + 0x3a4d07, + 0x347b06, + 0x2da905, + 0x261643, + 0x212584, + 0x28d486, + 0x3aae04, + 0x3bd448, + 0x208249, + 0x27f209, + 0x2b0f8a, + 0x2b2e8d, + 0x233907, + 0x394fc6, + 0x226f84, + 0x2760c9, + 0x295048, + 0x296e86, + 0x23cb06, + 0x2a4a47, + 0x370046, + 0x21d946, + 0x2fe906, + 0x3ea58a, + 0x213388, + 0x22a685, + 0x2fe709, + 0x3d92ca, + 0x318ec8, + 0x2ac448, + 0x2a64c8, + 0x3721cc, + 0x32cc45, + 0x2ae788, + 0x2ce3c6, + 0x36f986, + 0x2dec07, + 0x280dc5, + 0x25ccc5, + 0x27f0c9, + 0x2053c7, + 0x273205, + 0x21fd07, + 0x21da03, + 0x2e1c05, + 0x21b548, + 0x263307, + 0x2ac309, + 0x2cf105, + 0x2fb984, + 0x329e48, + 0x3d8147, + 0x2355c8, + 0x20e208, + 0x397bc5, + 0x273046, + 0x213a46, + 0x3af7c9, + 0x267587, + 0x2c0f06, + 0x3bf107, + 0x203b83, + 0x3b60c4, + 0x3cd5c5, + 0x236484, + 0x24dc84, + 0x24bc07, + 0x278647, + 0x28a2c4, + 0x2ac150, + 0x346947, + 0x3d7285, + 0x3dc28c, + 0x20dfc4, + 0x2bedc8, + 0x2764c9, + 0x2c4ac6, + 0x324988, + 0x256584, + 0x2878c8, + 0x2e0c46, + 0x227688, + 0x2ad246, + 0x2e93cb, + 0x3b9a85, + 0x3cd448, + 0x208684, + 0x20868a, + 0x2ac309, 0x290f86, - 0x2b06c5, - 0x2030c3, - 0x2d9949, - 0x360e86, - 0x2afcc6, - 0x21e5c4, - 0x24ea47, - 0x3db7c6, - 0x328485, - 0x258dc3, - 0x20e744, - 0x294006, - 0x3bbe84, - 0x3c7808, - 0x3da549, - 0x29c609, - 0x2b960a, - 0x25588d, - 0x38c147, - 0x39b606, - 0x22f4c4, - 0x2f7ec9, - 0x29b548, - 0x29d006, - 0x2476c6, - 0x2acf87, - 0x2f7746, - 0x222986, - 0x371346, - 0x3e820a, - 0x21e1c8, - 0x237505, - 0x371149, - 0x3e8f0a, - 0x398548, - 0x2b5d08, - 0x2afc48, - 0x3034cc, - 0x331385, - 0x2b8288, - 0x2d4046, - 0x375c46, - 0x2e5a47, - 0x25d585, - 0x299145, - 0x29c4c9, - 0x20f447, - 0x23a605, - 0x229507, - 0x208e03, - 0x2e7b45, - 0x229bc8, - 0x2ee7c7, - 0x2b5bc9, - 0x3e4245, - 0x303bc4, - 0x322fc8, - 0x248007, - 0x2d0708, - 0x257148, - 0x39f5c5, - 0x279386, - 0x2b8106, - 0x23ef49, - 0x28d947, - 0x2c7c06, - 0x3cbe87, - 0x20bd43, - 0x3bb404, - 0x36b845, - 0x2414c4, - 0x24e2c4, - 0x298447, - 0x27d6c7, - 0x291944, - 0x2b5a10, - 0x325f87, - 0x3dc5c5, - 0x20d0cc, - 0x256f04, - 0x2c4c48, - 0x2f82c9, - 0x2cb606, - 0x324a48, - 0x264984, - 0x28ef48, - 0x234386, - 0x234d48, - 0x2b69c6, - 0x2cf24b, - 0x3c3845, - 0x36b6c8, - 0x21b184, - 0x3da98a, - 0x2b5bc9, - 0x268b86, - 0x3b0888, - 0x29ed45, - 0x2d8f44, - 0x2c4b46, - 0x267e48, - 0x296f08, - 0x33d7c6, - 0x37b484, - 0x28f406, - 0x3d5d87, - 0x2908c7, - 0x2acf8f, - 0x34fcc7, - 0x39f007, - 0x375b05, - 0x336705, - 0x2ba209, - 0x2ed686, - 0x295dc5, - 0x298cc7, - 0x2eac88, - 0x245c05, - 0x317e46, - 0x21f488, - 0x2ffb0a, - 0x20bfc8, - 0x2a0a87, - 0x30a486, - 0x371106, + 0x3011c8, + 0x295c05, + 0x3c27c4, + 0x2becc6, + 0x2383c8, + 0x290e08, + 0x339746, + 0x34d704, + 0x287d86, + 0x3ce807, + 0x288e07, + 0x2a4a4f, + 0x34ce47, + 0x3991c7, + 0x36f845, + 0x3da505, + 0x2b1949, + 0x2e8bc6, + 0x28ec45, + 0x2920c7, + 0x2e6dc8, + 0x238d45, + 0x35f646, + 0x21aa48, + 0x3c98ca, + 0x24d6c8, + 0x299e47, + 0x308e06, + 0x2fe6c6, 0x2003c3, - 0x21c543, - 0x3e90c9, - 0x2a44c9, - 0x2c4346, - 0x3e4245, - 0x303348, - 0x3b0888, - 0x2b4d48, - 0x3713cb, - 0x2c5a07, - 0x326909, - 0x2ad208, - 0x2402c4, - 0x3d2a08, - 0x2a4189, - 0x2c7f05, - 0x2632c7, - 0x3bb485, - 0x296e08, - 0x2a698b, - 0x2af450, - 0x2c2145, - 0x21b0cc, - 0x24b445, - 0x294d03, - 0x2d78c6, - 0x2dc744, - 0x29ce86, - 0x2b6407, - 0x209344, - 0x3c4c48, - 0x36b2cd, - 0x3b0745, - 0x255d84, - 0x364644, - 0x39ed49, - 0x2af188, - 0x33ab87, - 0x234408, - 0x297448, - 0x291a85, - 0x3e9407, - 0x291a07, - 0x23a907, - 0x27e989, - 0x33bb89, - 0x264346, - 0x3b10c6, - 0x298d86, - 0x32e605, - 0x3cb204, - 0x3d8606, - 0x3da306, - 0x291ac8, - 0x2a6e8b, - 0x362107, - 0x22f4c4, - 0x3db706, - 0x3f3e07, - 0x2fe445, - 0x300645, - 0x28de04, - 0x33bb06, - 0x3d8688, - 0x2f7ec9, - 0x257906, - 0x29b348, - 0x328546, - 0x36c748, - 0x2df20c, - 0x291946, - 0x2b038d, - 0x2b080b, - 0x215005, - 0x3d3207, - 0x2d4f06, - 0x356088, - 0x2643c9, - 0x2c5d08, - 0x3dc5c5, - 0x2adb87, - 0x296208, - 0x3b85c9, - 0x21d3c6, - 0x25780a, - 0x355e08, - 0x2c5b4b, - 0x3a044c, - 0x28f048, - 0x292c06, - 0x348c48, - 0x2ff787, - 0x3581c9, - 0x2a634d, - 0x2b5006, - 0x2d0048, - 0x2cfd89, - 0x2da988, - 0x299d88, - 0x2ddc4c, - 0x2df647, - 0x2e0bc7, - 0x27e7c5, - 0x2b9f47, - 0x2eab48, - 0x2c4bc6, - 0x26990c, - 0x30c788, - 0x2ecb08, - 0x357986, - 0x333f87, - 0x264544, - 0x3576c8, - 0x29e40c, - 0x258b0c, - 0x3d6845, - 0x3cb747, - 0x37b406, - 0x333f06, - 0x3a5388, - 0x227984, - 0x22ef0b, - 0x2025cb, - 0x30a486, - 0x36b147, - 0x3495c5, - 0x287085, - 0x22f046, - 0x29ed05, - 0x259685, - 0x2ebf47, - 0x2298c9, - 0x206744, - 0x24a0c5, - 0x30f585, - 0x21a5c8, - 0x361c45, - 0x2e1149, - 0x2c6447, - 0x2c644b, - 0x308f06, - 0x24aec9, - 0x37b248, - 0x292e05, - 0x23aa08, - 0x33bbc8, - 0x367a47, - 0x234187, - 0x2984c9, - 0x234c87, - 0x2a2bc9, - 0x2bd90c, - 0x2c4348, - 0x3a0289, - 0x2deb87, - 0x297509, - 0x228087, - 0x3a0548, - 0x2ff6c5, - 0x2495c6, - 0x2de388, - 0x30a588, - 0x3e8dc9, - 0x2596c7, - 0x2b9805, - 0x3d4209, - 0x3a84c6, - 0x2a6144, - 0x315186, - 0x24c048, - 0x252787, - 0x2a7088, - 0x23f449, - 0x32dc47, - 0x2b4e86, - 0x3d2d44, - 0x312209, - 0x3e9288, - 0x357847, - 0x29ab46, - 0x2a6dc6, - 0x3d05c4, - 0x381b86, - 0x208d83, - 0x203ec9, - 0x3c3806, - 0x23f6c5, - 0x2b8006, - 0x2d0845, - 0x296688, - 0x220787, - 0x297d46, - 0x325e46, - 0x316bc8, - 0x2ba387, - 0x2b5045, - 0x2b5808, - 0x3def48, - 0x355e08, - 0x24b305, - 0x249646, - 0x29c3c9, - 0x23edc4, - 0x30fa8b, - 0x22268b, - 0x237409, - 0x208e03, - 0x26e945, - 0x39bfc6, - 0x24bbc8, - 0x311244, - 0x3203c6, - 0x2bd209, - 0x3762c5, - 0x2ebe86, - 0x248006, - 0x217604, - 0x2c26ca, - 0x23f608, - 0x30a586, - 0x37fdc5, - 0x3eb247, - 0x342dc7, - 0x279384, - 0x2228c7, - 0x23df04, - 0x23df06, - 0x20d183, - 0x27e985, - 0x2ca445, - 0x34ff08, - 0x297985, - 0x291689, - 0x2bba87, - 0x35750b, - 0x2bba8c, - 0x2bc08a, - 0x359c47, - 0x206b43, - 0x2902c8, - 0x309285, - 0x245c85, - 0x360904, - 0x3a0446, - 0x2f82c6, - 0x381bc7, - 0x28884b, - 0x2198c4, - 0x3aae84, - 0x2e4a84, - 0x2ea9c6, - 0x209344, - 0x225a08, - 0x360705, - 0x255ec5, - 0x2b4c87, - 0x3d3309, - 0x342b85, - 0x39dc0a, - 0x2ac6c9, - 0x2ab14a, - 0x3e8349, - 0x328744, - 0x376605, - 0x2f7848, - 0x3b6a8b, - 0x2d01c5, - 0x2f2246, - 0x24f404, - 0x291bc6, - 0x32dac9, - 0x3f3f07, - 0x253b08, - 0x255c06, - 0x3d5d07, - 0x296f08, - 0x386686, - 0x3d2dc4, - 0x270b47, - 0x391445, - 0x3a0a47, - 0x264884, - 0x2d4e86, - 0x342f08, - 0x2b09c8, - 0x3e4e07, - 0x32cc48, - 0x2ad9c5, - 0x208c44, - 0x325a48, - 0x2d79c4, - 0x2174c5, - 0x3a5184, - 0x220347, - 0x29f1c7, - 0x297648, - 0x2d0886, - 0x297905, - 0x291488, - 0x20c1c8, - 0x2b9549, - 0x222986, - 0x23c508, - 0x3da80a, - 0x2fe4c8, - 0x314945, - 0x264c06, - 0x2ac588, - 0x2adc4a, - 0x237f47, - 0x29b985, - 0x2a9588, - 0x2c0644, - 0x266c06, - 0x2e1a48, - 0x208cc6, - 0x3dfcc8, - 0x26cf47, - 0x206986, - 0x2d5a44, - 0x2445c7, - 0x2d1044, - 0x32da87, - 0x357b8d, - 0x237485, - 0x38340b, - 0x258d86, - 0x268a08, - 0x3636c4, - 0x285f86, - 0x294006, - 0x348f87, - 0x2b004d, - 0x30e947, - 0x2d1cc8, - 0x2a0f85, + 0x213b83, + 0x3d9489, + 0x29d6c9, + 0x2bde86, + 0x2cf105, + 0x23d0c8, + 0x3011c8, + 0x2ab488, + 0x2fe98b, + 0x2bf447, + 0x325149, + 0x2a4cc8, + 0x2738c4, + 0x205bc8, + 0x29c409, + 0x2c1205, + 0x20be07, + 0x3b6145, + 0x290d08, + 0x29f20b, + 0x2a5cd0, + 0x2bb605, + 0x21590c, + 0x240785, + 0x28e183, + 0x2d0606, + 0x2d6144, + 0x27fd86, + 0x2acc87, + 0x20df44, + 0x2d27c8, + 0x36650d, + 0x39b545, + 0x233944, + 0x360444, + 0x398f09, + 0x2a9f48, + 0x337047, + 0x2e0cc8, + 0x2912c8, + 0x28a405, + 0x3d97c7, + 0x28a387, + 0x3be0c7, + 0x279a49, + 0x373a09, + 0x24acc6, + 0x2df406, + 0x292186, + 0x32dac5, + 0x3c4904, + 0x3d0f86, + 0x3d3186, + 0x28a448, + 0x29f70b, + 0x23a547, + 0x226f84, + 0x347a46, + 0x3ee387, + 0x2fc285, + 0x258805, + 0x2266c4, + 0x373986, + 0x3d1008, + 0x2760c9, + 0x251846, + 0x294e48, + 0x2da9c6, + 0x367508, + 0x37130c, + 0x28a2c6, + 0x2a6ecd, + 0x2a734b, + 0x2c7e05, + 0x36a407, + 0x2cdf86, + 0x334988, + 0x24ad49, + 0x2bf748, + 0x3d7285, + 0x2a5647, + 0x290008, + 0x25d109, + 0x2690c6, + 0x26694a, + 0x334708, + 0x2bf58b, + 0x2dad8c, + 0x2879c8, + 0x28b686, + 0x3dc788, + 0x3c9547, + 0x3b6889, + 0x29e90d, + 0x2ab746, + 0x2c9448, + 0x2c9189, + 0x2d3e48, + 0x292cc8, + 0x2d780c, + 0x2d8707, + 0x2d9507, + 0x279885, + 0x2d1187, + 0x2e6c88, + 0x2bed46, + 0x2516cc, + 0x30b848, + 0x2e7b88, + 0x353c86, + 0x3dd907, + 0x24aec4, + 0x3539c8, + 0x2939cc, + 0x297f0c, + 0x3cf2c5, + 0x3afc47, + 0x34d686, + 0x3dd886, + 0x3a1148, + 0x221444, + 0x2269cb, + 0x258fcb, + 0x308e06, + 0x366387, + 0x34d885, + 0x280485, + 0x226b06, + 0x295bc5, + 0x24e705, + 0x223247, + 0x2200c9, + 0x203284, + 0x240c45, + 0x312105, + 0x3aab88, + 0x34f385, + 0x2d5e09, + 0x2bfe87, + 0x2bfe8b, + 0x307886, + 0x240209, + 0x3819c8, + 0x28b885, + 0x3be1c8, + 0x373a48, + 0x28bec7, + 0x22b247, + 0x24bc89, + 0x2275c7, + 0x29b3c9, + 0x2bcc4c, + 0x2bde88, + 0x2dabc9, + 0x2ddec7, + 0x291389, + 0x221b47, + 0x2dae88, + 0x3c9485, + 0x2d6dc6, + 0x2d8188, + 0x246748, + 0x3d9189, + 0x24e747, + 0x3ade05, + 0x3d8c09, + 0x387046, + 0x29e704, + 0x32a946, + 0x248788, + 0x253a87, + 0x29f908, + 0x242009, + 0x2b64c7, + 0x2ab5c6, + 0x205f04, + 0x320349, + 0x3d9648, + 0x353b47, + 0x37b106, + 0x29f646, + 0x354244, + 0x2d17c6, + 0x23be43, + 0x3d5bc9, + 0x3b9a46, + 0x275dc5, + 0x2ae506, + 0x235705, + 0x290488, + 0x3b6747, + 0x240ec6, + 0x369f46, + 0x314c88, + 0x2b1ac7, + 0x2ab785, + 0x2abf48, + 0x3e0988, + 0x334708, + 0x240645, + 0x2d6e46, + 0x27efc9, + 0x3af644, + 0x31260b, + 0x21d64b, + 0x22a589, + 0x21da03, + 0x264ac5, + 0x320a46, + 0x244fc8, + 0x2b9344, + 0x30efc6, + 0x2b5e89, + 0x37cbc5, + 0x223186, + 0x3d8146, + 0x20cc04, + 0x2fae0a, + 0x275d08, + 0x246746, + 0x379305, + 0x2055c7, + 0x340fc7, + 0x273044, + 0x21d887, + 0x245644, + 0x245646, + 0x206503, + 0x279a45, + 0x2c3905, + 0x214b08, + 0x290985, + 0x28a009, + 0x2b3fc7, + 0x35380b, + 0x2b3fcc, + 0x2b45ca, + 0x355507, + 0x210cc3, + 0x288808, + 0x307c05, + 0x238dc5, + 0x35cb84, + 0x2dad86, + 0x2764c6, + 0x2d1807, + 0x26158b, + 0x211cc4, + 0x210f84, + 0x2e0ec4, + 0x2e5fc6, + 0x20df44, 0x2d1608, - 0x2e7106, - 0x2ada48, - 0x23da86, - 0x20ce47, - 0x2251c9, - 0x3636c7, - 0x29d2c8, - 0x289b05, - 0x235288, - 0x333e45, - 0x317d85, - 0x378d45, - 0x21e503, - 0x299044, - 0x2a9785, - 0x2564c9, - 0x381986, - 0x36db88, - 0x3a13c5, - 0x2d3047, - 0x32a58a, - 0x2ebdc9, - 0x2e404a, - 0x2f1748, - 0x22934c, - 0x298d4d, - 0x3777c3, - 0x3dfbc8, - 0x20e705, - 0x2ff8c6, - 0x214a46, - 0x364585, - 0x3cbf89, - 0x3ea105, - 0x291488, - 0x26fa46, - 0x37a4c6, - 0x2bac89, - 0x233387, - 0x2a6c46, - 0x32a508, - 0x302b48, - 0x2fcfc7, - 0x2eb64e, - 0x2e7345, - 0x3b84c5, - 0x208bc8, - 0x3b90c7, - 0x229942, - 0x2dda04, - 0x29cd8a, - 0x357908, - 0x33bd06, - 0x2b2448, - 0x2b8106, - 0x336588, - 0x2c7c08, - 0x317d44, - 0x2d3805, - 0x7bf004, - 0x7bf004, - 0x7bf004, - 0x204043, - 0x206586, - 0x291946, - 0x2b6dcc, - 0x2069c3, - 0x264886, - 0x20d144, - 0x360e08, - 0x2bd045, - 0x29ce86, - 0x2b9dc8, - 0x2f2cc6, - 0x297cc6, - 0x21d148, - 0x36b8c7, - 0x234a49, - 0x32438a, - 0x263b44, - 0x23df45, - 0x313885, - 0x360b86, - 0x38c186, - 0x3d3746, - 0x385306, - 0x234b84, - 0x234b8b, - 0x23dd04, - 0x22a6c5, - 0x2c7005, - 0x288b06, - 0x20ac08, - 0x298c07, - 0x204284, - 0x273443, - 0x2c0145, - 0x315047, - 0x298b0b, - 0x34fe07, - 0x2b9cc8, - 0x2d8147, - 0x281406, - 0x261348, - 0x2d75cb, - 0x3975c6, - 0x210249, - 0x2d7745, - 0x32cfc3, - 0x2ebe86, - 0x26ce48, - 0x211903, - 0x2a17c3, - 0x233d86, - 0x2b8106, - 0x3848ca, - 0x292c45, - 0x293e4b, - 0x2b7f4b, - 0x242e83, - 0x201f03, + 0x35c985, + 0x28ac85, + 0x2ab3c7, + 0x36a509, + 0x340d85, + 0x33ca8a, + 0x2b1609, + 0x2a88ca, + 0x3ea6c9, + 0x318884, + 0x37cf05, + 0x370148, + 0x3706cb, + 0x213785, + 0x2d9b46, + 0x247004, + 0x28a546, + 0x2b6349, + 0x3ee487, + 0x269f08, + 0x2b3206, + 0x3ce787, + 0x290e08, + 0x37fd46, + 0x205f84, + 0x267ec7, + 0x38a345, + 0x399b87, + 0x256484, + 0x2cdf06, + 0x341108, + 0x2a7508, + 0x302d47, + 0x34d3c8, + 0x2a5485, + 0x21d784, + 0x2ff988, + 0x316684, + 0x20cac5, + 0x3a0f44, + 0x3f3347, + 0x298587, + 0x2914c8, + 0x235746, + 0x290905, + 0x289e08, + 0x24d8c8, + 0x2b0ec9, + 0x21d946, + 0x231208, + 0x20850a, + 0x2fc308, + 0x31db05, + 0x256906, + 0x2b14c8, + 0x2a570a, + 0x35ec47, + 0x295485, + 0x2a1d88, + 0x2b8e44, + 0x25bdc6, + 0x2d9f48, + 0x3cbf86, + 0x3c38c8, + 0x2a6747, + 0x3cb0c6, 0x2ce7c4, - 0x32a3c7, - 0x26cec4, - 0x23ee44, - 0x2d3ec4, - 0x2fe7c8, - 0x37fd08, - 0x21c4c9, - 0x2eee08, - 0x378fc7, - 0x234ec6, - 0x36d7cf, - 0x2e7486, - 0x2f0e44, - 0x37fb4a, - 0x314f47, - 0x2d1146, - 0x2a6189, - 0x21c445, - 0x27be45, - 0x21c586, - 0x2353c3, - 0x2c0689, - 0x21e346, - 0x23f209, - 0x39e186, - 0x27e985, - 0x3d6c45, - 0x206043, - 0x347e48, - 0x33ad47, - 0x23a544, - 0x360c88, - 0x3aac04, - 0x3e3f86, - 0x2d78c6, - 0x24a886, - 0x36b589, - 0x245c05, - 0x2b5106, - 0x2839c9, - 0x2e6246, - 0x2fe846, - 0x3b2f06, - 0x204105, - 0x3a5186, - 0x20ce44, - 0x2ff6c5, - 0x2de384, - 0x2d2586, - 0x300244, - 0x2027c3, - 0x29b605, - 0x241f48, - 0x235707, - 0x3112c9, - 0x29b888, - 0x2b17d1, - 0x24808a, - 0x30a3c7, - 0x26d086, - 0x20d144, - 0x2de488, - 0x3e5088, - 0x2b198a, - 0x2e0f0d, - 0x21e4c6, - 0x21d246, - 0x244686, - 0x2aeb07, - 0x2d1d85, - 0x325147, - 0x360d45, - 0x2c6584, - 0x3d1306, - 0x249487, - 0x2c038d, - 0x2ac4c7, - 0x2e4d48, - 0x291789, - 0x264b06, - 0x21d345, - 0x245b84, - 0x24c146, - 0x2ff406, - 0x357a86, - 0x2b2cc8, - 0x216143, - 0x209503, - 0x3ead45, - 0x262286, - 0x2c7bc5, - 0x255e08, - 0x2b65ca, - 0x279484, - 0x360e08, - 0x2afc48, - 0x32a787, - 0x234009, - 0x2d9c88, - 0x2c44c7, - 0x2dd3c6, - 0x208cca, - 0x24c1c8, - 0x322e89, - 0x2af248, - 0x21fb49, - 0x362b47, - 0x3837c5, - 0x3715c6, - 0x2c4a48, - 0x297088, - 0x359f08, - 0x217608, - 0x22a6c5, - 0x204584, - 0x240a08, - 0x24f184, - 0x3e8144, - 0x27e985, - 0x2a8907, - 0x3d30c9, - 0x348d87, - 0x23c545, - 0x28ee46, - 0x37f5c6, - 0x20ad04, - 0x2bb106, - 0x294284, - 0x293b86, - 0x3d2e86, - 0x211746, - 0x3dc5c5, - 0x255cc7, - 0x206b43, - 0x32e089, - 0x3169c8, - 0x2f7dc4, - 0x2f7dcd, - 0x2b0ac8, - 0x2f6108, - 0x322e06, - 0x2252c9, - 0x2ebdc9, - 0x32d7c5, - 0x2b66ca, - 0x2abc0a, - 0x3cd0cc, - 0x3cd246, - 0x28fec6, - 0x2e7a86, - 0x3a1209, - 0x2ffb06, - 0x2ba3c6, - 0x3ea1c6, - 0x3576c8, - 0x20bfc6, - 0x2f060b, - 0x2a8a85, - 0x255ec5, - 0x2909c5, - 0x3ebf86, - 0x208c83, - 0x24a806, - 0x2ac447, - 0x2de345, - 0x3c35c5, - 0x3a3905, - 0x2fb286, - 0x32d884, - 0x33ee46, - 0x2a8e89, - 0x3ebe0c, - 0x2c62c8, - 0x267dc4, - 0x38d6c6, - 0x258e86, - 0x26ce48, - 0x3b0888, - 0x3ebd09, - 0x3eb247, - 0x38f8c9, - 0x288146, - 0x237004, - 0x361784, - 0x2987c4, - 0x296f08, - 0x3d2f0a, - 0x342b06, - 0x3759c7, - 0x3a0cc7, - 0x24afc5, - 0x2bb8c4, - 0x2a4146, - 0x2d1dc6, - 0x220883, - 0x316807, - 0x257048, - 0x32d90a, - 0x358908, - 0x358048, - 0x300285, - 0x22e485, - 0x362205, - 0x24b386, - 0x24f886, - 0x350045, - 0x204109, - 0x2bb6cc, - 0x318007, - 0x2b1a08, - 0x2a2f45, - 0x7bf004, - 0x2ca484, - 0x2ee904, - 0x213346, - 0x2b8e4e, - 0x27bec7, - 0x2aed05, - 0x23ed4c, - 0x2b4587, - 0x249407, - 0x24de49, - 0x21ba49, - 0x29b985, - 0x3169c8, - 0x29c3c9, - 0x355cc5, - 0x2de288, - 0x3ce506, - 0x325cc6, - 0x243e44, - 0x2ce008, - 0x255783, - 0x206184, - 0x2c01c5, - 0x3a5b07, - 0x355145, - 0x3da6c9, - 0x2a398d, - 0x2b3046, - 0x3f3684, - 0x2dd4c8, - 0x22970a, - 0x3cba07, - 0x246205, - 0x2061c3, - 0x2b810e, - 0x347f4c, - 0x398647, - 0x2b9007, - 0x4e3a4e47, - 0x136c46, - 0x2af84, - 0x203f43, - 0x2ffb45, - 0x2ee905, - 0x2b2808, - 0x2afa89, - 0x267cc6, - 0x26cec4, - 0x30a306, - 0x390c0b, - 0x2fa98c, - 0x26e6c7, - 0x2f08c5, - 0x3dee48, - 0x2fcd85, - 0x37fb47, - 0x2ee3c7, - 0x255785, - 0x208c83, - 0x246384, - 0x3638c5, - 0x206645, - 0x206646, - 0x2a4d08, - 0x249487, - 0x214d46, - 0x3d04c6, - 0x378c86, - 0x2d5009, - 0x3e9507, - 0x267b46, - 0x2fab06, - 0x23ccc6, - 0x2c2605, - 0x2185c6, - 0x3b7205, - 0x361cc8, - 0x2a81cb, - 0x2a36c6, - 0x3a0d04, - 0x2fefc9, - 0x2bba84, - 0x3ce488, - 0x318dc7, - 0x299c84, - 0x2d9148, - 0x2e0704, - 0x2c2644, - 0x2f7d05, - 0x3b0786, - 0x2fe707, - 0x234643, - 0x2b4f45, - 0x250504, - 0x3b8506, - 0x32d848, - 0x20bec5, - 0x2a7e89, - 0x359c45, - 0x264888, - 0x23ec07, - 0x3c3908, - 0x2d8d87, - 0x39f0c9, - 0x26ac06, - 0x2e4346, - 0x2a4784, - 0x30f9c5, - 0x3de58c, - 0x2909c7, - 0x290e87, - 0x38bdc8, - 0x2b3046, - 0x2ac384, - 0x327b84, - 0x298349, - 0x2e7b86, - 0x2b2387, - 0x3490c4, - 0x2bb206, - 0x3b7645, - 0x2ee247, - 0x2f0586, - 0x2576c9, - 0x2cec47, - 0x2acf87, - 0x2bab06, - 0x29aa85, - 0x295708, - 0x21e1c8, - 0x37be06, - 0x20bf05, - 0x3936c6, - 0x206b03, - 0x2b2689, - 0x3d34ce, - 0x2d7fc8, - 0x3aad08, - 0x37bc0b, - 0x2a80c6, - 0x3a0bc4, - 0x297cc4, - 0x3d35ca, - 0x21afc7, - 0x267c05, - 0x210249, - 0x2dd305, - 0x3e8187, - 0x246444, - 0x2a2647, - 0x2f1fc8, - 0x3813c6, - 0x2da1c9, - 0x2d9d8a, - 0x21af46, - 0x2b0606, - 0x2c6f85, - 0x3a70c5, - 0x399347, - 0x255108, - 0x3b7588, - 0x317d46, - 0x3d6cc5, - 0x38bf0e, - 0x245f84, - 0x2b2785, - 0x28e7c9, - 0x2ed488, - 0x2a09c6, - 0x2b530c, - 0x2b61d0, - 0x2b8a8f, - 0x2ba108, - 0x359c47, - 0x3dc5c5, - 0x2a9785, - 0x2fe589, - 0x2a9789, - 0x28f506, - 0x2d0247, - 0x3a5285, - 0x24e689, - 0x3673c6, - 0x2ff94d, - 0x298689, - 0x23ee44, - 0x2d7bc8, - 0x240ac9, - 0x342cc6, - 0x2904c5, - 0x2e4346, - 0x2539c9, - 0x233b08, - 0x20f0c5, - 0x2a4c84, - 0x2b54cb, - 0x342b85, - 0x24bc46, - 0x299086, - 0x3ae7c6, - 0x24b60b, - 0x2a7f89, - 0x2281c5, - 0x338d87, - 0x248006, - 0x2718c6, - 0x2ee688, - 0x225b89, - 0x2e4b0c, - 0x314e48, - 0x323c06, - 0x33d7c3, - 0x23c1c6, - 0x309205, - 0x294988, - 0x3d66c6, - 0x2d0608, - 0x25d705, - 0x2715c5, - 0x3a0048, - 0x3aaac7, - 0x214987, - 0x381bc7, - 0x324a48, - 0x359d88, - 0x2d1506, - 0x2d23c7, - 0x3bb2c7, - 0x39ee4a, - 0x203cc3, - 0x3ebf86, - 0x267f05, - 0x284804, - 0x291789, - 0x39f044, - 0x235784, - 0x2b6a44, - 0x2b900b, - 0x33ac87, - 0x2fb245, - 0x2ad6c8, - 0x28ee46, - 0x28ee48, - 0x292b86, - 0x2a1445, - 0x2a20c5, - 0x2a5106, - 0x279208, - 0x2a60c8, - 0x291946, - 0x2ad50f, - 0x2b2150, - 0x209805, - 0x206b43, - 0x2856c5, - 0x326848, - 0x2a9689, - 0x355e08, - 0x21e448, - 0x26afc8, - 0x33ad47, - 0x28eb09, - 0x2d0808, - 0x2a56c4, - 0x2b68c8, - 0x21a689, - 0x2d2907, - 0x2d2d04, - 0x348e48, - 0x255a8a, - 0x3221c6, - 0x21e4c6, - 0x222849, - 0x2b6407, - 0x2ebc48, - 0x2464c8, - 0x3d0b88, - 0x279b85, - 0x3b7e85, - 0x255ec5, - 0x2ee8c5, - 0x3cf007, - 0x208c85, - 0x2de345, - 0x207906, - 0x355d47, - 0x3b69c7, - 0x255d86, - 0x2f1c85, - 0x24bc46, - 0x220805, - 0x2e4888, - 0x32c584, - 0x2e62c6, - 0x398c44, - 0x2d8f48, - 0x2e63ca, - 0x291f4c, - 0x2b7685, - 0x2aebc6, - 0x2e4cc6, - 0x3e9fc6, - 0x323c84, - 0x3c8045, - 0x292447, - 0x2b6489, - 0x2eb507, - 0x7bf004, - 0x7bf004, - 0x33ab05, - 0x315d84, - 0x2b4aca, - 0x28ecc6, - 0x39ffc4, - 0x3cb6c5, - 0x3c4605, - 0x2d1cc4, - 0x298cc7, - 0x3d4387, - 0x2ea9c8, - 0x3937c8, - 0x20f0c9, - 0x2d79c8, - 0x29d40b, - 0x20cf04, - 0x317f45, - 0x295e45, - 0x381b49, - 0x225b89, - 0x2feec8, - 0x23dd08, - 0x288b04, - 0x258ec5, - 0x203ec3, - 0x360b45, - 0x2b5186, - 0x2af8cc, - 0x21e246, - 0x2903c6, - 0x2a0c45, + 0x360e47, + 0x2ca244, + 0x2b6307, + 0x353e8d, + 0x22a605, + 0x2c684b, + 0x298186, + 0x25e008, + 0x2d2784, + 0x2319c6, + 0x28d486, + 0x3dcac7, + 0x2a6b8d, + 0x30d487, + 0x2cafc8, + 0x3adec5, + 0x302fc8, + 0x2e11c6, + 0x2a5508, + 0x230746, + 0x3dc007, + 0x3557c9, + 0x35e947, + 0x297148, + 0x2547c5, + 0x22bd48, + 0x22af85, + 0x35f585, + 0x373385, + 0x2136c3, + 0x21d584, + 0x2a1f85, + 0x24c849, + 0x37b006, + 0x31ae08, + 0x3d83c5, + 0x2cc607, + 0x371fca, + 0x2230c9, + 0x2f3e0a, + 0x2ec2c8, + 0x21fb4c, + 0x29214d, + 0x3e7703, + 0x3c37c8, + 0x212545, + 0x3c9686, + 0x210b86, + 0x360385, + 0x3bf209, + 0x2ffd45, + 0x289e08, + 0x266186, + 0x374506, + 0x2b23c9, + 0x268887, + 0x29f4c6, + 0x371f48, 0x2fb308, - 0x2e9786, - 0x26d206, - 0x21e4c6, - 0x22a3cc, - 0x286c44, - 0x378dca, - 0x2a0b88, - 0x2af707, - 0x250406, - 0x267d87, - 0x309f05, - 0x29ab46, - 0x368d86, - 0x381847, - 0x2357c4, - 0x220445, - 0x28e7c4, - 0x2c6607, - 0x28ea08, - 0x28fd4a, - 0x296087, - 0x2c2207, - 0x359bc7, - 0x2fcec9, - 0x2af8ca, - 0x234b43, - 0x2356c5, - 0x211783, - 0x2d3f09, - 0x362c88, - 0x375b07, - 0x355f09, - 0x21e2c6, - 0x227a08, - 0x35b685, - 0x20c2ca, - 0x3839c9, - 0x29c009, - 0x2e5a47, - 0x3e5189, - 0x211648, - 0x3d2c06, - 0x2aed88, - 0x204407, - 0x234c87, - 0x2ac6c7, - 0x3ce308, - 0x386186, - 0x255845, - 0x292447, - 0x2b0108, - 0x378c04, - 0x2ed884, - 0x2a6b47, - 0x2c7f87, - 0x29c24a, - 0x3d2b86, - 0x3c834a, - 0x2dd947, - 0x245d47, - 0x220504, - 0x2a2c84, - 0x2ee146, - 0x3e9a84, - 0x3e9a8c, - 0x318d05, - 0x217449, - 0x2af004, - 0x2d1d85, - 0x229688, - 0x20bb45, - 0x39dc06, - 0x237e44, - 0x2aa98a, - 0x2c6a06, - 0x2afdca, - 0x263b07, - 0x2a71c5, - 0x2353c5, - 0x24b00a, - 0x28d4c5, - 0x2b9606, - 0x24f184, - 0x2ce946, - 0x399405, - 0x3d6786, - 0x3e4e0c, - 0x3f278a, - 0x2abd04, - 0x234ec6, - 0x2b6407, - 0x2f0504, - 0x3576c8, - 0x2d6446, - 0x3a0b49, - 0x2f8649, - 0x2c4449, - 0x30fc46, - 0x204506, - 0x2aeec7, - 0x204048, - 0x204309, - 0x33ac87, - 0x2ad846, - 0x3d5d87, - 0x244545, - 0x245f84, - 0x2aea87, - 0x3bb485, - 0x29ccc5, - 0x394687, - 0x255648, - 0x3dedc6, - 0x2b0f8d, - 0x2b2a0f, - 0x2b7f4d, - 0x222744, - 0x242046, - 0x2f3508, - 0x3ea185, - 0x24b4c8, - 0x36790a, - 0x23ee44, - 0x2d2686, - 0x217e87, - 0x2198c7, - 0x36b989, - 0x2aed45, - 0x2d1cc4, - 0x2d374a, - 0x2d9849, - 0x3e5287, - 0x36be46, - 0x342cc6, - 0x258e06, - 0x270c06, - 0x32f48f, - 0x2f33c9, - 0x20bfc6, - 0x271506, - 0x23b6c9, - 0x2d24c7, + 0x2f66c7, + 0x2e650e, + 0x2e1405, + 0x25d005, + 0x3cbe88, + 0x36ad87, + 0x2084c2, + 0x2d75c4, + 0x27fc8a, + 0x353c08, + 0x373b86, + 0x2a9348, + 0x213a46, + 0x3da388, + 0x2c0f08, + 0x35f544, + 0x2cca05, + 0x7a24c4, + 0x7a24c4, + 0x7a24c4, + 0x2149c3, + 0x2030c6, + 0x28a2c6, + 0x2ad64c, + 0x2085c3, + 0x256486, + 0x213604, + 0x24bfc8, + 0x2b5cc5, + 0x27fd86, + 0x2b3bc8, + 0x2ed646, + 0x240e46, + 0x3d7f48, + 0x3cd647, + 0x227389, + 0x31024a, + 0x20c684, + 0x245685, + 0x311005, + 0x275ec6, + 0x233946, + 0x36a946, + 0x386dc6, + 0x2274c4, + 0x2274cb, + 0x245444, + 0x205645, + 0x2c0445, + 0x261846, + 0x20d408, + 0x292007, + 0x3d5f84, + 0x26c2c3, + 0x2b8945, + 0x32a807, + 0x291f0b, + 0x214a07, + 0x2b3ac8, + 0x2d1947, + 0x291086, + 0x269ac8, + 0x2d030b, + 0x3821c6, + 0x208c89, + 0x2d0485, + 0x32b3c3, + 0x223186, + 0x2a6648, + 0x205fc3, + 0x2ce043, + 0x290e06, + 0x213a46, + 0x37deca, + 0x28b6c5, + 0x28d2cb, + 0x2ae44b, + 0x285503, + 0x212303, + 0x2c84c4, + 0x371e07, + 0x2879c4, + 0x24bfc4, + 0x2ce244, + 0x2fc608, + 0x379248, + 0x39e5c9, + 0x2e3f08, + 0x3c5607, + 0x227806, + 0x31aa4f, + 0x2e1546, + 0x2ebc44, + 0x37908a, + 0x32a707, + 0x2ca346, + 0x29e749, + 0x39e545, + 0x275845, + 0x39e686, + 0x22be83, + 0x2b8e89, + 0x213506, + 0x241dc9, + 0x398346, + 0x279a45, + 0x3cf6c5, + 0x202b83, + 0x213948, + 0x337207, + 0x273144, + 0x24be48, + 0x23d244, + 0x316586, + 0x2d0606, + 0x242706, + 0x3cd309, + 0x238d45, + 0x2ab846, + 0x259709, + 0x2e0686, + 0x2fc686, + 0x3a99c6, + 0x223005, + 0x3a0f46, + 0x3dc004, + 0x3c9485, + 0x246744, + 0x2cb886, + 0x3ca004, + 0x205643, + 0x295105, + 0x236ec8, + 0x30f687, + 0x2b93c9, + 0x295388, + 0x2a8291, + 0x3d81ca, + 0x308d47, + 0x2a6886, + 0x213604, + 0x2d8288, + 0x365b08, + 0x2a844a, + 0x2d5bcd, + 0x213686, + 0x3d8046, + 0x360f06, + 0x31fa07, + 0x2cb085, + 0x301a07, + 0x24bf05, + 0x2bffc4, + 0x2ec0c6, + 0x23cf87, + 0x2b8b8d, + 0x2b1407, + 0x2f7a48, + 0x28a109, + 0x221d46, + 0x269045, + 0x238cc4, + 0x248886, + 0x2fd246, + 0x353d86, + 0x2a9bc8, + 0x2162c3, + 0x22b183, + 0x3329c5, + 0x290a46, + 0x2c0ec5, + 0x2b3408, + 0x2ace4a, + 0x34cf84, + 0x24bfc8, + 0x2a64c8, + 0x2bc587, + 0x22b0c9, + 0x2d2fc8, + 0x276147, + 0x2d6cc6, + 0x3cbf8a, + 0x248908, + 0x329d09, + 0x2aa008, + 0x2185c9, + 0x3857c7, + 0x3add45, + 0x2feb86, + 0x2bebc8, + 0x224488, + 0x2ac5c8, + 0x308f08, + 0x205645, + 0x229f04, + 0x234888, + 0x246d84, + 0x3ea4c4, + 0x279a45, + 0x2a0a87, + 0x36a2c9, + 0x3dc8c7, + 0x208545, + 0x2877c6, + 0x378b06, + 0x208804, + 0x2b2d46, + 0x28d704, + 0x28d006, + 0x36a086, + 0x20b046, + 0x3d7285, + 0x2b32c7, + 0x210cc3, + 0x32c109, + 0x314a88, + 0x24be44, + 0x275fcd, + 0x2a7608, + 0x2fa688, + 0x329c86, + 0x3558c9, + 0x2230c9, + 0x32bb85, + 0x2acf4a, + 0x2b07ca, + 0x37d1cc, + 0x37d346, + 0x288406, + 0x2e1b46, + 0x389a49, + 0x3c98c6, + 0x2b1b06, + 0x2ffe06, + 0x3539c8, + 0x24d6c6, + 0x2eb24b, + 0x2a0c05, + 0x28ac85, + 0x288f05, + 0x3bd9c6, + 0x21d7c3, + 0x242686, + 0x2b1387, + 0x2d8145, + 0x3b9805, + 0x356e85, + 0x2c6c06, + 0x2b6104, + 0x31de86, + 0x2a3a89, + 0x3bd84c, + 0x2bfd08, + 0x238344, + 0x39ebc6, + 0x298286, + 0x2a6648, + 0x3011c8, + 0x3bd749, + 0x2055c7, + 0x35f809, + 0x281a86, + 0x22d4c4, + 0x35d904, + 0x290744, + 0x290e08, + 0x36a10a, + 0x340d06, + 0x36f707, + 0x399e07, + 0x240305, + 0x2b6c44, + 0x29c3c6, + 0x2cb0c6, + 0x221483, + 0x3148c7, + 0x20e108, + 0x2b618a, + 0x301348, + 0x214888, + 0x3ca045, + 0x22d285, + 0x23a645, + 0x2406c6, + 0x245bc6, + 0x214c45, + 0x3d5e09, + 0x2b6a4c, + 0x360987, + 0x2a84c8, + 0x29fbc5, + 0x7a24c4, + 0x227d44, + 0x263444, + 0x20fb46, + 0x2af34e, + 0x2758c7, + 0x31fc05, + 0x3af5cc, + 0x2bc447, + 0x23cf07, + 0x23fc89, + 0x20ecc9, + 0x295485, + 0x314a88, + 0x27efc9, + 0x3345c5, + 0x2d8088, + 0x2c8f46, + 0x2ffc06, + 0x252d84, + 0x325308, + 0x24b983, + 0x202cc4, + 0x2b89c5, + 0x397747, + 0x22b5c5, + 0x2083c9, + 0x29c74d, + 0x2aa806, + 0x3f2e04, + 0x39b688, + 0x21ff0a, + 0x205887, + 0x257385, + 0x202d03, + 0x2ae60e, + 0x213a4c, + 0x318fc7, + 0x2af507, + 0x4f39db87, + 0x2a446, + 0x1ecc4, + 0x20b903, + 0x3c9905, + 0x263445, + 0x2a9708, + 0x2a6309, + 0x238246, + 0x2879c4, + 0x308c86, + 0x2445cb, + 0x36d18c, + 0x255a87, + 0x2eb6c5, + 0x3e0888, + 0x2f6485, + 0x379087, + 0x2e9907, + 0x24b985, + 0x21d7c3, + 0x32bc44, + 0x27d785, + 0x203185, + 0x203186, + 0x2a3348, + 0x23cf87, + 0x210e86, + 0x354146, + 0x3732c6, + 0x2c95c9, + 0x3d98c7, + 0x25cc06, + 0x36d306, + 0x3cc806, + 0x2bbac5, + 0x218146, + 0x3ae705, + 0x34f408, + 0x2a034b, + 0x29bf46, + 0x399e44, + 0x2fce09, + 0x2b3fc4, + 0x2c8ec8, + 0x24a2c7, + 0x292bc4, + 0x2d20c8, + 0x2d8f04, + 0x2bbb04, + 0x283685, + 0x39b586, + 0x2fc547, + 0x204803, + 0x2ab685, + 0x324c04, + 0x25d046, + 0x2b60c8, + 0x34d2c5, + 0x2a0009, + 0x355505, + 0x256488, + 0x235107, + 0x3b9b48, + 0x2d1347, + 0x399289, + 0x25b806, + 0x3ef5c6, + 0x29d984, + 0x312545, + 0x366d0c, + 0x288f07, + 0x289447, + 0x233588, + 0x2aa806, + 0x2b12c4, + 0x338704, + 0x24bb09, + 0x2e1c46, + 0x28f707, + 0x3beb84, + 0x2cd906, + 0x3d7a85, + 0x2e9787, + 0x2eb1c6, + 0x266809, + 0x2e8dc7, + 0x2a4a47, + 0x2b2246, + 0x2cd845, + 0x28eac8, + 0x213388, + 0x375c46, + 0x34d305, + 0x38c1c6, + 0x206003, + 0x2a9589, + 0x36a6ce, + 0x2d1008, + 0x23d348, + 0x375a4b, + 0x2a0246, + 0x399d04, + 0x240e44, + 0x36a7ca, + 0x215807, + 0x256845, + 0x208c89, + 0x2d6c05, + 0x3ea507, + 0x236544, + 0x29a507, + 0x2f6cc8, + 0x2c5846, + 0x2ce089, + 0x2d30ca, + 0x215786, + 0x2a7146, + 0x2c03c5, + 0x39ff05, + 0x3af087, + 0x24b008, + 0x3d79c8, + 0x35f546, + 0x3cf745, + 0x2336ce, + 0x2390c4, + 0x2a9685, + 0x287149, + 0x2e89c8, + 0x299d86, + 0x2aba4c, + 0x2aca50, + 0x2aef8f, + 0x2b1848, + 0x355507, + 0x3d7285, + 0x2a1f85, + 0x2fc3c9, + 0x2a1f89, + 0x287e86, + 0x213807, + 0x3a1045, + 0x241149, + 0x362706, + 0x3c970d, + 0x290609, + 0x24bfc4, + 0x2d0908, + 0x234949, + 0x340ec6, + 0x288a05, + 0x3ef5c6, + 0x269dc9, + 0x3bea08, + 0x2034c5, + 0x208604, + 0x2abc0b, + 0x340d85, + 0x245046, + 0x256786, + 0x3a6646, + 0x24094b, + 0x2a0109, + 0x221c85, + 0x39a747, + 0x3d8146, + 0x291846, + 0x2631c8, + 0x20cc09, + 0x2f780c, + 0x32a608, + 0x3239c6, + 0x339743, + 0x22f586, + 0x307b85, + 0x28de08, + 0x3cf146, + 0x2354c8, + 0x280f45, + 0x235805, + 0x315f48, + 0x3c2f47, + 0x210ac7, + 0x2d1807, + 0x324988, + 0x355648, + 0x2ca706, + 0x2cb6c7, + 0x3b5f87, + 0x39900a, + 0x245f03, + 0x3bd9c6, + 0x233645, + 0x257504, + 0x28a109, + 0x399204, + 0x2c5844, + 0x2ad2c4, + 0x2af50b, + 0x337147, + 0x233905, + 0x2a5188, + 0x2877c6, + 0x2877c8, + 0x28b606, + 0x29a905, + 0x29ae45, + 0x29d106, + 0x272ec8, + 0x29e688, + 0x28a2c6, + 0x2a4fcf, + 0x2a9050, + 0x20ab45, + 0x210cc3, + 0x2583c5, + 0x325088, + 0x2a1e89, + 0x334708, + 0x213608, + 0x25ee48, + 0x337207, + 0x287489, + 0x2356c8, + 0x29dd44, + 0x2ad148, + 0x3aac49, + 0x2cbc07, + 0x2d32c4, + 0x3dc988, + 0x2b308a, + 0x316d06, + 0x213686, + 0x21d809, + 0x2acc87, + 0x2e6b08, + 0x2365c8, + 0x294748, + 0x284585, + 0x3cbac5, + 0x28ac85, + 0x263405, + 0x3baa87, + 0x21d7c5, + 0x2d8145, + 0x22ed86, + 0x334647, + 0x370607, + 0x2b3386, + 0x2ec805, + 0x245046, + 0x2888c5, + 0x2f7588, + 0x383f84, + 0x2e0706, + 0x3925c4, + 0x3c27c8, + 0x21900a, + 0x28a8cc, + 0x2adc05, + 0x31fac6, + 0x2f79c6, + 0x3926c6, + 0x323a44, + 0x3eda05, + 0x28aec7, + 0x2acd09, + 0x2e63c7, + 0x7a24c4, + 0x7a24c4, + 0x336fc5, + 0x2ea844, + 0x2ab20a, + 0x287646, + 0x315ec4, + 0x3afbc5, + 0x39cc85, + 0x2cafc4, + 0x2920c7, + 0x3d8d87, + 0x2e5fc8, + 0x38c2c8, + 0x2034c9, + 0x316688, + 0x29728b, + 0x275ec4, + 0x35f745, + 0x28ecc5, + 0x2d1789, + 0x20cc09, + 0x2fcd08, + 0x245448, + 0x261844, + 0x2982c5, + 0x20ba83, + 0x275e85, + 0x2ab8c6, + 0x2a614c, + 0x213406, + 0x288906, + 0x29a005, + 0x2c6c88, + 0x2e6146, + 0x2a6a06, + 0x213686, + 0x222e4c, + 0x280044, + 0x37340a, + 0x299f48, + 0x2a5f87, + 0x324b06, + 0x238307, + 0x308885, + 0x37b106, + 0x363386, + 0x37aec7, + 0x2d2dc4, + 0x3f3445, + 0x287144, + 0x2c0047, + 0x287388, + 0x28828a, + 0x28fe87, + 0x2bb6c7, + 0x355487, + 0x2f65c9, + 0x2a614a, + 0x227483, + 0x30f645, + 0x20b083, + 0x2ce289, + 0x385908, + 0x36f847, + 0x334809, + 0x213486, + 0x2214c8, + 0x352545, + 0x24d9ca, + 0x2f7089, + 0x27ec09, + 0x2dec07, + 0x365c09, + 0x20af48, + 0x205dc6, + 0x31fc88, + 0x3d6107, + 0x2275c7, + 0x2b1607, + 0x2c8d48, + 0x39dec6, + 0x2b2e45, + 0x28aec7, + 0x2a6c48, + 0x373244, + 0x3e5784, + 0x29f3c7, + 0x2c1287, + 0x27ee4a, + 0x205d46, + 0x3edd0a, + 0x2d7507, + 0x238e87, + 0x3f3504, + 0x29b484, + 0x2e9686, + 0x3d9e44, + 0x3d9e4c, + 0x315e05, + 0x20ca49, + 0x256604, + 0x2cb085, + 0x21fe88, + 0x29e745, + 0x33ca86, + 0x2a20c4, + 0x2a414a, + 0x2de406, + 0x2bbb8a, + 0x20c647, + 0x29fa45, + 0x22be85, + 0x24034a, + 0x24ba45, + 0x2b0f86, + 0x246d84, + 0x2c8646, + 0x3af145, + 0x3cf206, + 0x302d4c, + 0x33e90a, + 0x2b08c4, + 0x227806, + 0x2acc87, + 0x2eb144, + 0x3539c8, + 0x2d9a46, + 0x399c89, + 0x37a689, + 0x2bdf89, + 0x3127c6, + 0x3d6206, + 0x31fdc7, + 0x3d5d48, + 0x3d6009, + 0x337147, + 0x2a5306, + 0x3ce807, + 0x360dc5, + 0x2390c4, + 0x31f987, + 0x3b6145, + 0x296445, + 0x38d187, + 0x24b848, + 0x3e0806, + 0x2a7acd, + 0x2a990f, + 0x2ae44d, + 0x208584, + 0x236fc6, + 0x2edf08, + 0x2ffdc5, + 0x240808, + 0x28bd8a, + 0x24bfc4, + 0x2cb986, + 0x2d4e47, + 0x211cc7, + 0x3cd709, + 0x31fc45, + 0x2cafc4, + 0x2cc94a, + 0x2d2b89, + 0x365d07, + 0x3645c6, + 0x340ec6, + 0x298206, + 0x267f86, + 0x3657cf, + 0x2eddc9, + 0x24d6c6, + 0x268c86, + 0x3db209, + 0x2cb7c7, 0x200e83, - 0x22a546, - 0x21c543, - 0x364448, - 0x285e47, - 0x2ba309, - 0x2b9b48, - 0x214ac8, - 0x318146, - 0x232c89, - 0x38f805, - 0x23c104, - 0x383887, - 0x3a1285, - 0x222744, - 0x38c208, - 0x21b284, - 0x2d2207, - 0x2e5106, - 0x27b105, - 0x2af248, - 0x342b8b, - 0x316ec7, - 0x24b286, - 0x2e7504, - 0x3a9606, - 0x27e985, - 0x3bb485, - 0x295489, - 0x2988c9, - 0x234cc4, - 0x234d05, - 0x214b85, - 0x20c146, - 0x316ac8, - 0x2dcc46, - 0x256e8b, - 0x2cb48a, - 0x2d8e85, - 0x2a2146, - 0x23a245, - 0x357e45, - 0x2b5e87, - 0x3ec208, - 0x279284, - 0x260c46, - 0x2a6146, - 0x211807, - 0x32cf84, - 0x294006, - 0x2ff245, - 0x2ff249, - 0x204704, - 0x3139c9, - 0x291946, - 0x2df708, - 0x214b85, - 0x3a0dc5, - 0x3d6786, - 0x2e4a09, - 0x21ba49, - 0x290446, - 0x2ed588, - 0x23ee48, - 0x23a204, - 0x2d3bc4, - 0x2d3bc8, - 0x20ba88, - 0x38f9c9, - 0x2b5106, - 0x21e4c6, - 0x34214d, - 0x3203c6, - 0x2df0c9, - 0x228285, - 0x21c586, - 0x233c88, - 0x33ed85, - 0x3bb304, - 0x27e985, - 0x2981c8, - 0x2b4889, - 0x28e884, - 0x2d4e86, - 0x2f098a, - 0x398548, - 0x29c3c9, - 0x290b0a, - 0x355e86, - 0x2b2bc8, - 0x37f905, - 0x2a0e08, - 0x309f85, - 0x21e189, - 0x344849, - 0x231e42, - 0x2d7745, - 0x295f06, - 0x291887, - 0x284805, - 0x328146, - 0x31f388, - 0x2b3046, + 0x222fc6, + 0x213b83, + 0x360248, + 0x27d507, + 0x2b1a49, + 0x2b3948, + 0x210c08, + 0x360ac6, + 0x229ec9, + 0x25e185, + 0x22f4c4, + 0x2f6f47, + 0x389ac5, + 0x208584, + 0x2339c8, + 0x215ac4, + 0x2cb507, + 0x2dd886, + 0x271105, + 0x2aa008, + 0x340d8b, + 0x314f87, + 0x2405c6, + 0x2e15c4, + 0x3d33c6, + 0x279a45, + 0x3b6145, + 0x28e849, + 0x291cc9, + 0x227604, + 0x227645, + 0x210cc5, + 0x24d846, + 0x314b88, + 0x2d6546, + 0x20df4b, + 0x2c494a, + 0x2d1445, + 0x29aec6, + 0x22f985, + 0x326885, + 0x2421c7, + 0x3bdc48, + 0x272f44, + 0x393d46, + 0x29e706, + 0x20b107, + 0x32b384, + 0x28d486, + 0x2fd085, + 0x2fd089, + 0x3d6404, + 0x311149, + 0x28a2c6, + 0x2d87c8, + 0x210cc5, + 0x399f05, + 0x3cf206, 0x2f7709, - 0x290f86, - 0x2ee508, - 0x2c3945, - 0x2533c6, - 0x20cf48, + 0x20ecc9, + 0x288986, + 0x2e8ac8, + 0x29c888, + 0x22f944, + 0x2cd104, + 0x2cd108, + 0x3c5488, + 0x35f909, + 0x2ab846, + 0x213686, + 0x34034d, + 0x30efc6, + 0x3711c9, + 0x2fd505, + 0x39e686, + 0x3dcc08, + 0x33c9c5, + 0x3b5fc4, + 0x279a45, + 0x2916c8, + 0x2aafc9, + 0x287204, + 0x2cdf06, + 0x2eb78a, + 0x318ec8, + 0x27efc9, + 0x28ab4a, + 0x334786, + 0x2a9ac8, + 0x378e45, + 0x29a1c8, + 0x308905, + 0x213349, + 0x3429c9, + 0x226942, + 0x2d0485, + 0x28ed86, + 0x28a207, + 0x257505, + 0x2f6bc6, + 0x3833c8, + 0x2aa806, + 0x370009, + 0x289546, + 0x263048, + 0x2bc805, + 0x255346, + 0x3dc108, + 0x290e08, + 0x3856c8, + 0x321948, + 0x218144, + 0x22bc83, + 0x370244, + 0x290086, + 0x360e04, + 0x23d287, + 0x2a6909, + 0x2e0ec5, + 0x2365c6, + 0x222fc6, + 0x2a318b, + 0x2ca286, + 0x294206, + 0x2e0808, + 0x245946, + 0x29f843, + 0x213183, + 0x2390c4, + 0x231105, + 0x2da807, + 0x287388, + 0x28738f, + 0x28adcb, + 0x314988, + 0x2cdf86, + 0x314c8e, + 0x2110c3, + 0x2da784, + 0x2ca205, + 0x2cae46, + 0x29c4cb, + 0x2a0b46, + 0x21aac9, + 0x271105, + 0x2612c8, + 0x3f3c08, + 0x20eb8c, + 0x2af546, + 0x275ec6, + 0x2cf105, 0x296f08, - 0x362a48, - 0x321f88, - 0x2185c4, - 0x232783, - 0x2f7944, - 0x296286, - 0x244584, - 0x3aac47, - 0x26d109, - 0x2e6645, - 0x2464c6, - 0x22a546, - 0x2a4b4b, - 0x2d1086, - 0x285906, - 0x2e9608, - 0x240646, - 0x2a6fc3, - 0x211483, - 0x245f84, - 0x23c405, - 0x328387, - 0x28ea08, - 0x28ea0f, - 0x29234b, - 0x3168c8, - 0x2d4f06, - 0x316bce, - 0x24b443, - 0x328304, - 0x2d1005, - 0x2d1b46, - 0x2a424b, - 0x2a89c6, - 0x21f509, - 0x27b105, - 0x38e748, - 0x209c08, - 0x21b90c, - 0x2b9046, - 0x360b86, - 0x3e4245, - 0x29d088, - 0x20cf45, - 0x2402c8, - 0x2b568a, - 0x2b8389, - 0x7bf004, + 0x28a8c5, + 0x2738c8, + 0x2abdca, + 0x2ae889, + 0x7a24c4, 0x2000c2, - 0x5420b642, + 0x55202202, 0x200382, - 0x25c204, + 0x2503c4, 0x200ec2, - 0x230944, - 0x201f42, + 0x228f84, + 0x2018c2, 0x2003c2, - 0x206382, - 0x1c3448, - 0x11d44, - 0x21a043, - 0x226783, - 0x20f583, - 0xb882, - 0x5cf02, - 0x214e43, - 0x214883, - 0x24acc3, - 0x2ccc2, - 0xba42, - 0x3342, - 0x20bec3, - 0x21a043, - 0x226783, - 0x20f583, - 0x25c204, - 0x214883, - 0x24acc3, - 0x24f6c3, - 0x265a04, - 0x21a043, - 0x243544, - 0x226783, - 0x2eef84, - 0x20f583, - 0x284ac7, - 0x214e43, - 0x208c43, - 0x2a1948, - 0x24acc3, - 0x2937cb, - 0x30ad83, - 0x219086, - 0x249902, - 0x30614b, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, - 0x24acc3, - 0x21bd03, - 0x203783, + 0x202ec2, + 0x1b9688, + 0x6204, + 0x206643, + 0x21f603, + 0x205503, + 0x5cc2, + 0x510c2, + 0x206543, + 0x2109c3, + 0x21f143, + 0x24b42, + 0x5fc2, + 0x2642, + 0x250b03, + 0x206643, + 0x21f603, + 0x205503, + 0x2503c4, + 0x2109c3, + 0x21f143, + 0x214f03, + 0x214f04, + 0x206643, + 0x2392c4, + 0x21f603, + 0x2e4084, + 0x205503, + 0x2577c7, + 0x206543, + 0x21d783, + 0x23d5c8, + 0x21f143, + 0x28cc4b, + 0x309b43, + 0x212fc6, + 0x23d942, + 0x30468b, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, + 0x21f143, + 0x20ef83, + 0x224cc3, 0x2000c2, - 0x1c3448, - 0x235d45, - 0x3bb508, - 0x2ef0c8, - 0x20b642, - 0x3b9485, - 0x3d5ec7, - 0x201b42, - 0x3c4e47, + 0x1b9688, + 0x22c445, + 0x3b61c8, + 0x2e41c8, + 0x202202, + 0x36b145, + 0x3ce947, + 0x201342, + 0x2d29c7, 0x200382, - 0x2696c7, - 0x246f89, - 0x27f1c8, - 0x3d0a09, - 0x213c02, - 0x20f2c7, - 0x393f04, - 0x3d5f87, - 0x2cb387, - 0x2dbe82, - 0x214e43, - 0x20d3c2, - 0x201f42, + 0x2594c7, + 0x23c3c9, + 0x27a288, + 0x2945c9, + 0x20d842, + 0x3af9c7, + 0x38ca04, + 0x3cea07, + 0x2c4847, + 0x2d5782, + 0x206543, + 0x203c42, + 0x2018c2, 0x2003c2, - 0x2035c2, + 0x2020c2, 0x200902, - 0x206382, - 0x283b85, - 0x214405, - 0xb642, - 0x26783, - 0x21a043, - 0x226783, - 0x207ec3, - 0x20f583, - 0x211983, - 0x214883, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, - 0x159186, - 0x56ea590b, - 0x214e43, - 0x214883, - 0x24acc3, - 0x1a3d05, - 0x11f03, + 0x202ec2, + 0x39ffc5, + 0x210545, + 0x2202, + 0x1f603, + 0x206643, + 0x21f603, + 0x22b483, + 0x205503, + 0x2036c3, + 0x2109c3, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, + 0x157f86, + 0x57e9df8b, + 0x206543, + 0x2109c3, + 0x21f143, + 0x157285, + 0xb4c3, 0x101, - 0x21a043, - 0x226783, - 0x20f583, - 0x25c204, - 0x20bc83, - 0x214883, - 0x24acc3, - 0x221c03, - 0x57889cc6, - 0x24dc3, - 0x1a85, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x20b642, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0xabc2, - 0x1c3448, - 0x3a103, - 0x550c4, - 0x148c0c4, - 0xfd185, - 0x1ad803, + 0x206643, + 0x21f603, + 0x205503, + 0x2503c4, + 0x211e43, + 0x2109c3, + 0x21f143, + 0x219dc3, + 0x58854986, + 0x1a6c3, + 0xfdd45, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x202202, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x5b82, + 0x1b9688, + 0x2f843, + 0x4afc4, + 0x1484ac4, + 0xf6885, + 0x1a5643, 0x2000c2, - 0x339144, - 0x21a043, - 0x226783, - 0x20f583, - 0x23b9c3, - 0x239805, - 0x20bc83, - 0x222043, - 0x214883, - 0x262243, - 0x24acc3, - 0x219303, - 0x212f03, + 0x39ab04, + 0x206643, + 0x21f603, + 0x205503, + 0x252b83, + 0x22f2c5, + 0x211e43, + 0x20f743, + 0x2109c3, + 0x22b643, + 0x21f143, + 0x213dc3, + 0x214f83, 0x200f83, - 0x15103, + 0xc7f03, 0x5c2, - 0x445c2, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, + 0x232c2, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, 0x2000c2, - 0x20bec3, - 0x20b642, - 0x101c2, - 0x226783, - 0x20f583, - 0x25c204, - 0x214883, - 0x24acc3, - 0x206382, - 0x1c3448, - 0x20f583, - 0x1c3448, - 0x2507c3, - 0x21a043, - 0x23e084, - 0x226783, - 0x20f583, - 0x206502, - 0x214e43, - 0x214883, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, - 0x206502, - 0x2384c3, - 0x214883, - 0x24acc3, - 0x305103, - 0x219303, + 0x250b03, + 0x202202, + 0x23c2, + 0x21f603, + 0x205503, + 0x2503c4, + 0x2109c3, + 0x21f143, + 0x202ec2, + 0x1b9688, + 0x205503, + 0x1b9688, + 0x276803, + 0x206643, + 0x232184, + 0x21f603, + 0x205503, + 0x203042, + 0x206543, + 0x2109c3, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, + 0x203042, + 0x23ddc3, + 0x2109c3, + 0x21f143, + 0x303643, + 0x213dc3, 0x2000c2, - 0x20b642, - 0x20f583, - 0x214883, - 0x24acc3, - 0x219085, - 0x16f9c6, - 0x78884, - 0xc47c4, - 0x265a04, - 0x249902, + 0x202202, + 0x205503, + 0x2109c3, + 0x21f143, + 0x212fc5, + 0x1f0786, + 0x72544, + 0xbdc04, + 0x214f04, + 0x23d942, 0x882, - 0x1c3448, - 0x101c2, - 0x5cf02, - 0x19c2, + 0x1b9688, + 0x23c2, + 0x510c2, + 0xc642, 0x2000c2, - 0x14f985, - 0x27348, - 0x104543, - 0x20b642, - 0x49344, - 0x5cd61806, - 0x2d784, - 0xbe6cb, - 0x47306, - 0x89207, - 0x629c9, - 0x226783, - 0x5b4c8, - 0x5b4cb, - 0x5b94b, - 0x5c6cb, - 0x5ca0b, - 0x5cccb, - 0x5d10b, - 0x128c6, - 0x20f583, - 0x100185, - 0x1c0044, - 0x220303, - 0x121dc7, - 0x12f3c6, - 0x13b0c5, - 0xca04, - 0xf9004, - 0x82384, - 0x214883, - 0x90546, - 0x149204, - 0x24acc3, - 0x30b844, - 0x13b587, - 0x16f5c9, - 0xbe488, - 0x1e3885, - 0xf644, - 0x1d60c4, - 0x467c3, - 0x1d4803, - 0x5f986, - 0x112c8, - 0x198d45, - 0x1bf7c9, - 0x15ac3, - 0x112cc6, - 0x14f985, - 0x20b642, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x208c43, - 0x24acc3, - 0x30ad83, - 0x249902, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x231a43, - 0x225a04, - 0x214883, - 0x24acc3, - 0x21a043, - 0x226783, - 0x2eef84, - 0x20f583, - 0x214883, - 0x24acc3, - 0x219086, - 0x226783, - 0x20f583, - 0x1fe83, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x14f985, - 0x89207, - 0x9043, - 0x15ac3, - 0xba02, - 0x1c3448, - 0x20f583, - 0x21a043, - 0x226783, - 0x20f583, - 0x3e03, - 0x1a2a48, - 0x214883, - 0x24acc3, - 0x6061a043, - 0x226783, - 0x214883, - 0x24acc3, - 0x1c3448, + 0x14cb05, + 0x20e08, + 0xb2c83, + 0x202202, + 0x3fbc4, + 0x5dd5d986, + 0x26084, + 0xba94b, + 0x3c746, + 0x82b87, + 0xa1309, + 0x21f603, + 0x4f688, + 0x4f68b, + 0x4fb0b, + 0x5088b, + 0x50bcb, + 0x50e8b, + 0x512cb, + 0x1c1b46, + 0x205503, + 0x1c9f45, + 0x1a3504, + 0x21bd03, + 0x121787, + 0x165706, + 0x137585, + 0x2044, + 0xf28c4, + 0x2109c3, + 0x88a86, + 0x11ff04, + 0x21f143, + 0x30a904, + 0x137a47, + 0x1f0389, + 0xba708, + 0x1e6785, + 0x23dc4, + 0x1ceb44, + 0x368c3, + 0x1dea03, + 0x54146, + 0x1d7808, + 0x1aea85, + 0x1a2c89, + 0x1e143, + 0x100a86, + 0x14cb05, + 0x202202, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x21d783, + 0x21f143, + 0x309b43, + 0x23d942, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x20fc83, + 0x294744, + 0x2109c3, + 0x21f143, + 0x206643, + 0x21f603, + 0x2e4084, + 0x205503, + 0x2109c3, + 0x21f143, + 0x212fc6, + 0x21f603, + 0x205503, + 0x18903, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x14cb05, + 0x82b87, + 0xc043, + 0x1e143, + 0x7442, + 0x1b9688, + 0x205503, + 0x206643, + 0x21f603, + 0x205503, + 0x6d7c3, + 0x176608, + 0x2109c3, + 0x21f143, + 0x61606643, + 0x21f603, + 0x2109c3, + 0x21f143, + 0x1b9688, 0x2000c2, - 0x20b642, - 0x21a043, - 0x20f583, - 0x214883, + 0x202202, + 0x206643, + 0x205503, + 0x2109c3, 0x2003c2, - 0x24acc3, - 0x344d87, - 0x23ac8b, - 0x217f43, - 0x28f1c8, - 0x203dc7, - 0x392fc6, - 0x228745, - 0x3b95c9, - 0x218e08, - 0x284ec9, - 0x284ed0, - 0x38a44b, - 0x3b1ec9, - 0x209043, - 0x207b09, - 0x23fd06, - 0x23fd0c, - 0x235e08, - 0x3f02c8, - 0x378149, - 0x2d884e, - 0x246d4b, - 0x2cae4c, - 0x205d83, - 0x2828cc, - 0x205d89, - 0x3f10c7, - 0x24100c, - 0x2ccaca, - 0x2346c4, - 0x2c5fcd, - 0x282788, - 0x3dcd4d, - 0x2874c6, - 0x265a0b, - 0x36f749, - 0x271787, - 0x20c506, - 0x326109, - 0x3a97ca, - 0x3bc848, - 0x30a984, - 0x2c8a07, - 0x252dc7, - 0x349b04, - 0x224c04, - 0x3ed149, - 0x324fc9, - 0x3d6448, - 0x33a645, - 0x213b45, - 0x20ef86, - 0x2c5e89, - 0x37ebcd, - 0x21c688, - 0x20ee87, - 0x2287c8, - 0x251c86, - 0x241804, - 0x3676c5, - 0x3e8046, - 0x3ef204, - 0x205c87, - 0x20864a, - 0x217384, - 0x21ae86, - 0x21ee89, - 0x21ee8f, - 0x21f84d, - 0x21fd86, - 0x226f50, - 0x227346, - 0x2289c7, - 0x229dc7, - 0x229dcf, - 0x22b509, - 0x22e9c6, - 0x22f607, - 0x22f608, - 0x22fe09, - 0x213f08, - 0x3133c7, - 0x2327c3, - 0x238a06, - 0x33a348, - 0x2d8b0a, - 0x2063c9, - 0x218f43, - 0x3b9386, - 0x260a8a, - 0x245207, - 0x3f0f0a, - 0x3ca8ce, - 0x22b646, - 0x34afc7, - 0x364ec6, - 0x205206, - 0x3b7c8b, - 0x2129ca, - 0x25404d, - 0x2045c7, - 0x3ea348, - 0x3ea349, - 0x3ea34f, - 0x31144c, - 0x387a89, - 0x2c16ce, - 0x284bca, - 0x380186, - 0x303dc6, - 0x32004c, - 0x3240cc, - 0x32d5c8, - 0x3635c7, - 0x20d6c5, - 0x3d6144, - 0x34a24e, - 0x224444, - 0x3eb647, - 0x3be48a, - 0x3ee394, - 0x23790f, - 0x229f88, - 0x2388c8, - 0x21c10d, - 0x21c10e, - 0x238d49, - 0x34be48, - 0x34be4f, - 0x240d0c, - 0x240d0f, - 0x241d87, - 0x24408a, - 0x2453cb, - 0x246088, - 0x247b07, - 0x38df4d, - 0x36eac6, - 0x2c6186, - 0x24a689, - 0x274708, - 0x252248, - 0x25224e, - 0x23ad87, - 0x30e505, - 0x254705, - 0x224a84, - 0x393286, - 0x3d6348, - 0x26b343, - 0x2cc04e, - 0x38e308, - 0x3a1fcb, - 0x3a9ec7, - 0x317b85, - 0x282a46, - 0x2c5387, - 0x36f048, - 0x371dc9, - 0x241645, - 0x29b648, - 0x362546, - 0x3bdbca, - 0x34a149, - 0x2410c9, - 0x2410cb, - 0x343608, - 0x3499c9, - 0x2cdc86, - 0x2801ca, - 0x28c9ca, - 0x24428c, - 0x371c47, - 0x27efca, - 0x20b30b, - 0x20b319, - 0x2dcdc8, - 0x219105, - 0x2e82c6, - 0x2e2f49, - 0x242586, - 0x311cca, - 0x219ec6, - 0x201d04, - 0x2e844d, - 0x201d07, - 0x333549, - 0x259f45, - 0x25aac8, - 0x25b289, - 0x25d444, - 0x25db47, - 0x25db48, - 0x25de87, - 0x27c888, - 0x267987, - 0x21d585, - 0x26f44c, - 0x26f849, - 0x34deca, - 0x270f89, - 0x207c09, - 0x2712cc, - 0x27330b, - 0x274108, - 0x274908, - 0x277cc4, - 0x299708, - 0x29adc9, - 0x2ccb87, - 0x21f0c6, - 0x2b6c07, - 0x2e0209, - 0x24fa8b, - 0x3991c7, - 0x2a8707, - 0x263c47, - 0x3dccc4, - 0x3dccc5, - 0x2f4f05, - 0x35ff0b, - 0x3e23c4, - 0x3db408, - 0x2bdd8a, - 0x362607, - 0x3efec7, - 0x2a3252, - 0x293a86, - 0x23c686, - 0x33610e, - 0x29f746, - 0x2a9408, - 0x2aa48f, - 0x3dd108, - 0x2584c8, - 0x31004a, - 0x310051, - 0x2bb38e, - 0x280cca, - 0x280ccc, - 0x2704c7, - 0x34c050, - 0x3da388, - 0x2bb585, - 0x2c67ca, - 0x3ef24c, - 0x2633cd, - 0x211986, - 0x211987, - 0x21198c, - 0x21348c, - 0x23760c, - 0x2c8d8b, - 0x3ac7c4, - 0x20b3c4, - 0x2ca709, - 0x327c07, - 0x239d89, - 0x28c809, - 0x2cc787, - 0x2cc946, - 0x2cc949, - 0x2ccd43, - 0x2b314a, - 0x33a207, - 0x3ec40b, - 0x253eca, - 0x269804, - 0x3f4106, - 0x296309, - 0x3cc144, - 0x2f0eca, - 0x309345, - 0x2db705, - 0x2db70d, - 0x2dba4e, - 0x368f45, - 0x343a46, - 0x218c87, - 0x2514ca, - 0x224746, - 0x282484, - 0x301007, - 0x2e5f8b, - 0x370c87, - 0x367e04, - 0x31a606, - 0x31a60d, - 0x2f64cc, - 0x214746, - 0x21c88a, - 0x226346, - 0x3d39c8, - 0x27b587, - 0x22be0a, - 0x363cc6, - 0x2044c3, - 0x300346, - 0x254948, - 0x37beca, - 0x2a37c7, - 0x2a37c8, - 0x2a6604, - 0x293c87, - 0x3a8548, - 0x2d0988, - 0x32f7c8, - 0x2d318a, - 0x2fc3c5, - 0x247c47, - 0x280b13, - 0x28b3c6, - 0x255308, - 0x22dac9, - 0x3c4d08, - 0x3181cb, - 0x2d4148, - 0x2e60c4, - 0x3a0146, - 0x32eb86, - 0x3b05c9, - 0x2e5e47, - 0x26f548, - 0x29ac46, - 0x394584, - 0x339b85, - 0x3dc748, - 0x259b0a, - 0x2e80c8, - 0x2ec306, - 0x2b2dca, - 0x2067c8, - 0x2e0508, - 0x2f1148, - 0x2f1946, - 0x2f3706, - 0x3b564c, - 0x2f3c10, - 0x2f4005, - 0x23bc88, - 0x23bc90, - 0x3dcf10, - 0x284d4e, - 0x3b52ce, - 0x3b52d4, - 0x3ba58f, - 0x3ba946, - 0x3f0991, - 0x349bd3, - 0x20c688, - 0x3ea6c5, - 0x28f708, - 0x3263c5, - 0x351c0c, - 0x218949, - 0x224289, - 0x231107, - 0x3bdfc9, - 0x3619c7, - 0x3bfb86, - 0x3674c7, - 0x202a85, - 0x211f43, - 0x21fe83, - 0x284704, - 0x21564d, - 0x39950f, - 0x3945c5, - 0x218846, - 0x236787, - 0x235b87, - 0x2e1686, - 0x2e168b, - 0x2bc245, - 0x215a46, - 0x3baec7, - 0x268649, - 0x22b386, - 0x22e385, - 0x3ecbcb, - 0x3f2686, - 0x21b645, - 0x243cc8, - 0x2a4948, - 0x2b38cc, - 0x2b38d0, - 0x2bc389, - 0x2c12c7, - 0x331a0b, - 0x2dbfc6, - 0x31328a, - 0x3b890b, - 0x35484a, - 0x329f06, - 0x304fc5, - 0x339f46, - 0x29bb08, - 0x2a5aca, - 0x21bd9c, - 0x3b8c0c, - 0x30ae48, - 0x219085, - 0x226987, - 0x2d8486, - 0x2dab05, - 0x223606, - 0x2e1848, - 0x2d9ac7, - 0x2d8748, - 0x28b48a, - 0x2fc9cc, - 0x2544c9, - 0x3c7e07, - 0x232004, - 0x297206, - 0x25804a, - 0x28c905, - 0x22488c, - 0x224f48, - 0x311fc8, - 0x333a8c, - 0x2385cc, - 0x239949, - 0x239b87, - 0x2509cc, - 0x365984, - 0x25e28a, - 0x21dd0c, - 0x288dcb, - 0x3acf0b, - 0x3ae506, - 0x26d587, - 0x26ffc7, - 0x34c28f, - 0x319791, - 0x2fa352, - 0x26ffcd, - 0x26ffce, - 0x27030e, - 0x3ba748, - 0x3ba752, - 0x365e48, - 0x25c007, - 0x265e4a, - 0x260048, - 0x29f705, - 0x3cee4a, - 0x227887, - 0x2dc104, - 0x220203, - 0x397405, - 0x3102c7, - 0x301d07, - 0x2635ce, - 0x3e3b8d, - 0x31a2c9, - 0x289f05, - 0x3291c3, - 0x346086, - 0x272405, - 0x3a2208, - 0x20d949, - 0x2e8305, - 0x38e14f, - 0x2be7c7, - 0x2285c5, - 0x3aa88a, - 0x209ac6, - 0x2ab4c9, - 0x35c24c, - 0x36ed09, - 0x20e786, - 0x2bdb8c, - 0x373686, - 0x3e2a48, - 0x210106, - 0x27fe06, - 0x2d1204, - 0x207e03, - 0x3b188a, - 0x2a3d11, - 0x263f4a, - 0x3a9c45, - 0x26f0c7, - 0x26c847, - 0x2d4b04, - 0x3a864b, - 0x3d0888, - 0x2d7cc6, - 0x38be45, - 0x279f04, - 0x26ec09, + 0x21f143, + 0x342f07, + 0x3be44b, + 0x22c383, + 0x287b48, + 0x3d5ac7, + 0x38bac6, + 0x20d1c5, + 0x36b289, + 0x212d48, + 0x257bc9, + 0x257bd0, + 0x383c0b, + 0x3a8989, + 0x20c043, + 0x223ac9, + 0x232f46, + 0x232f4c, + 0x22c508, + 0x3ef408, + 0x3de109, + 0x2d390e, + 0x23c18b, + 0x2c430c, + 0x2028c3, + 0x27cdcc, + 0x2028c9, + 0x315a07, + 0x235fcc, + 0x2c5d0a, + 0x204884, + 0x2bfa0d, + 0x27cc88, + 0x33244d, + 0x282386, + 0x25364b, + 0x3f0509, + 0x268f07, + 0x3c3a86, + 0x3d3bc9, + 0x358c8a, + 0x31ed88, + 0x309744, + 0x2c1d07, + 0x231ac7, + 0x335b04, + 0x21a504, + 0x206ac9, + 0x301889, + 0x3ceec8, + 0x2cbe45, + 0x20d785, + 0x208b46, + 0x2bf8c9, + 0x325b4d, + 0x39e788, + 0x208a47, + 0x20d248, + 0x237906, + 0x232b84, + 0x266485, + 0x3ea3c6, + 0x3ecf04, + 0x2027c7, + 0x204e4a, + 0x20eac4, + 0x2156c6, + 0x217509, + 0x21750f, + 0x2182cd, + 0x218806, + 0x220a10, + 0x220e06, + 0x2227c7, + 0x223407, + 0x22340f, + 0x223ec9, + 0x2270c6, + 0x227b47, + 0x227b48, + 0x227e89, + 0x3c1988, + 0x31c607, + 0x229a03, + 0x22e3c6, + 0x336ac8, + 0x2d3bca, + 0x202f09, + 0x212e83, + 0x36b046, + 0x393b8a, + 0x2345c7, + 0x31584a, + 0x373e4e, + 0x224006, + 0x321d07, + 0x25e586, + 0x202986, + 0x3cb8cb, + 0x3c1c4a, + 0x3f384d, + 0x3d62c7, + 0x2fff88, + 0x2fff89, + 0x2fff8f, + 0x2b954c, + 0x381149, + 0x2bb04e, + 0x2578ca, + 0x3796c6, + 0x2fbb86, + 0x323e8c, + 0x3f158c, + 0x32b988, + 0x35e847, + 0x21c285, + 0x3cebc4, + 0x20220e, + 0x21ca44, + 0x3d3907, + 0x3b3a8a, + 0x3ebfd4, + 0x22d6cf, + 0x2235c8, + 0x22e288, + 0x20f38d, + 0x20f38e, + 0x22e709, + 0x349208, + 0x34920f, + 0x235ccc, + 0x235ccf, + 0x236d07, + 0x23a08a, + 0x23afcb, + 0x23b988, + 0x23dc87, + 0x271d8d, + 0x3022c6, + 0x2bfbc6, + 0x242509, + 0x272348, + 0x248248, + 0x24824e, + 0x26d447, + 0x30d045, + 0x24a485, + 0x21a384, + 0x38bd86, + 0x3cedc8, + 0x25f1c3, + 0x2c544e, + 0x272148, + 0x21e20b, + 0x2769c7, + 0x35f385, + 0x27cf46, + 0x2be707, + 0x34e508, + 0x375209, + 0x2329c5, + 0x295148, + 0x30f386, + 0x3b31ca, + 0x202109, + 0x236089, + 0x23608b, + 0x347308, + 0x3359c9, + 0x2c8a46, + 0x27b28a, + 0x2853ca, + 0x23a28c, + 0x273407, + 0x27a08a, + 0x3c4d0b, + 0x3c4d19, + 0x2d66c8, + 0x213045, + 0x271f46, + 0x3798c9, + 0x35df86, + 0x2e488a, + 0x2064c6, + 0x2e2504, + 0x2e250d, + 0x33b487, + 0x35ee09, + 0x24ec45, + 0x24ef08, + 0x24f449, + 0x251604, + 0x251cc7, + 0x251cc8, + 0x252007, + 0x277dc8, + 0x25ca47, + 0x269285, + 0x265b8c, + 0x265f89, + 0x32920a, + 0x268709, + 0x223bc9, + 0x268a4c, + 0x26c18b, + 0x26d008, + 0x26d948, + 0x270d04, + 0x292648, + 0x293349, + 0x2c5dc7, + 0x217746, + 0x2ad487, + 0x370d89, + 0x245dcb, + 0x3aef07, + 0x2a0887, + 0x256687, + 0x3323c4, + 0x3323c5, + 0x3ab045, + 0x35be4b, + 0x3e4bc4, + 0x2dc688, + 0x2bd0ca, + 0x30f447, + 0x3ef007, + 0x29bad2, + 0x28cf06, + 0x231386, + 0x3da74e, + 0x298b06, + 0x2a1c08, + 0x2a2c8f, + 0x332808, + 0x296988, + 0x312bca, + 0x312bd1, + 0x2b360e, + 0x27b9ca, + 0x27b9cc, + 0x25d947, + 0x349410, + 0x3d3208, + 0x2b3805, + 0x2befca, + 0x3ecf4c, + 0x20bf0d, + 0x3cd906, + 0x3cd907, + 0x3cd90c, + 0x3f3dcc, + 0x211e4c, + 0x32cf0b, + 0x3a5bc4, + 0x21d984, + 0x2c3bc9, + 0x338787, + 0x22e049, + 0x285209, + 0x2c59c7, + 0x2c5b86, + 0x2c5b89, + 0x2c5f83, + 0x2aa90a, + 0x336987, + 0x3dd24b, + 0x3f36ca, + 0x259604, + 0x3ee686, + 0x290109, + 0x3bf3c4, + 0x2ebcca, + 0x307cc5, + 0x2d5005, + 0x2d500d, + 0x2d534e, + 0x363545, + 0x341bc6, + 0x212bc7, + 0x23884a, + 0x21cd46, + 0x2f46c4, + 0x2f8c47, + 0x3e114b, + 0x2fe247, + 0x28c284, + 0x318046, + 0x31804d, + 0x2f120c, + 0x210886, + 0x39e98a, + 0x21d406, + 0x222488, + 0x23a947, + 0x2665ca, + 0x351986, + 0x28d503, + 0x3ca106, + 0x24a6c8, + 0x375d0a, + 0x29a347, + 0x29a348, + 0x29c044, + 0x28d107, + 0x3870c8, + 0x235848, + 0x2cc748, + 0x2ccb4a, + 0x2dfa85, + 0x23ddc7, + 0x27b813, + 0x286446, + 0x235ac8, + 0x225449, + 0x2d2888, + 0x360b4b, + 0x2ce4c8, + 0x30ce84, + 0x316046, + 0x32c586, + 0x39b3c9, + 0x2dfe47, + 0x265c88, + 0x36aa46, + 0x38d084, + 0x336305, + 0x3d7408, + 0x20150a, + 0x2e2188, + 0x2e7786, + 0x2a9cca, + 0x203308, + 0x3a9dc8, + 0x2ebf48, + 0x2ec4c6, + 0x2ee106, + 0x3ac9cc, + 0x2ee6d0, + 0x2eeac5, + 0x320688, + 0x320690, + 0x332610, + 0x257a4e, + 0x3ac64e, + 0x3ac654, + 0x3b0b0f, + 0x3b0ec6, + 0x3efd91, + 0x3474d3, + 0x3c3c08, + 0x3c3205, + 0x289788, + 0x3eabc5, + 0x34f10c, + 0x212349, + 0x21c889, + 0x229747, + 0x3b35c9, + 0x35db47, + 0x3a3046, + 0x266287, + 0x28b345, + 0x20b503, + 0x218903, + 0x27fb84, + 0x3d228d, + 0x3f1dcf, + 0x38d0c5, + 0x212246, + 0x3b74c7, + 0x22c287, + 0x2d0c46, + 0x2d0c4b, + 0x2b4785, + 0x21e0c6, + 0x3b1d87, + 0x25dc49, + 0x369dc6, + 0x21e6c5, + 0x33bccb, + 0x3cd206, + 0x222b85, + 0x252c08, + 0x29d4c8, + 0x2b48cc, + 0x2b48d0, + 0x2b6f49, + 0x2c7747, + 0x2cc28b, + 0x2f6986, + 0x31c4ca, + 0x2b054b, + 0x34e74a, + 0x371946, + 0x303505, + 0x3366c6, + 0x293d08, + 0x29e14a, + 0x20f01c, + 0x309c0c, + 0x309f08, + 0x212fc5, + 0x21f807, + 0x2b2b46, + 0x2d3fc5, + 0x21b886, + 0x2d0e08, + 0x2d2e07, + 0x2d3808, + 0x28650a, + 0x2f60cc, + 0x25f449, + 0x21f247, + 0x2282c4, + 0x224606, + 0x29650a, + 0x285305, + 0x21a18c, + 0x21a848, + 0x22d0c8, + 0x22abcc, + 0x39598c, + 0x22dc09, + 0x22de47, + 0x24744c, + 0x233dc4, + 0x24b48a, + 0x217d0c, + 0x28274b, + 0x39450b, + 0x3a6386, + 0x25c1c7, + 0x25d447, + 0x34964f, + 0x317051, + 0x2f37d2, + 0x25d44d, + 0x25d44e, + 0x25d78e, + 0x3b0cc8, + 0x3b0cd2, + 0x241848, + 0x2501c7, + 0x256eca, + 0x24b2c8, + 0x298ac5, + 0x3ba8ca, + 0x221347, + 0x2e3184, + 0x24e583, + 0x38ff05, + 0x312e47, + 0x2f9947, + 0x20c10e, + 0x31618d, + 0x317d09, + 0x20e7c5, + 0x326403, + 0x344206, + 0x26a945, + 0x21e448, + 0x33c149, + 0x271f85, + 0x271f8f, + 0x2baa47, + 0x20d045, + 0x27738a, + 0x20ae06, + 0x2a8c49, + 0x35964c, + 0x37e909, + 0x2125c6, + 0x2bcecc, + 0x37f846, + 0x3e6888, + 0x315546, + 0x27aec6, + 0x2ca404, + 0x222383, + 0x2dfbca, + 0x29cad1, + 0x38130a, + 0x265745, + 0x268287, + 0x262a47, + 0x2d0044, + 0x3871cb, + 0x294448, + 0x2d0a06, + 0x233605, + 0x273d04, + 0x275389, 0x2008c4, - 0x3d2887, - 0x33c805, - 0x33c807, - 0x336345, - 0x25ff03, - 0x25bec8, - 0x26b54a, - 0x234643, - 0x235d8a, - 0x234646, - 0x38decf, - 0x2744c9, - 0x2cbfd0, - 0x229188, - 0x2ecc09, - 0x2b0dc7, - 0x31a58f, - 0x3562c4, - 0x2ef004, - 0x2271c6, - 0x358686, - 0x3ae00a, - 0x26aa06, - 0x2c9407, - 0x31d888, - 0x31da87, - 0x31f147, - 0x32134a, - 0x31fa4b, - 0x325785, - 0x2f9f88, - 0x229783, - 0x3d880c, - 0x20d44f, - 0x32dd8d, - 0x2b7187, - 0x237209, - 0x24e147, - 0x2d4448, - 0x3ee58c, - 0x308548, - 0x256bc8, - 0x33c44e, - 0x34e914, - 0x34ee24, - 0x36c50a, - 0x38aacb, - 0x361a84, - 0x361a89, - 0x2d2708, - 0x255545, - 0x203bca, - 0x29cb07, - 0x220c04, - 0x20bec3, - 0x21a043, - 0x243544, - 0x226783, - 0x20f583, - 0x25c204, - 0x20bc83, - 0x214e43, - 0x2f3c06, - 0x225a04, - 0x214883, - 0x24acc3, - 0x205443, + 0x3ed887, + 0x387e05, + 0x387e07, + 0x3da985, + 0x260ac3, + 0x250088, + 0x277a0a, + 0x204803, + 0x22c48a, + 0x204806, + 0x271d0f, + 0x26d3c9, + 0x2c53d0, + 0x3a7648, + 0x2e7c89, + 0x2a7907, + 0x317fcf, + 0x334bc4, + 0x2e4104, + 0x220c86, + 0x3b6d46, + 0x34fd4a, + 0x273706, + 0x2c28c7, + 0x31c948, + 0x31cb47, + 0x31dc47, + 0x320bca, + 0x31e64b, + 0x302045, + 0x2f3408, + 0x21ff83, + 0x3d118c, + 0x21c00f, + 0x23cc0d, + 0x29ab07, + 0x22ce09, + 0x284107, + 0x2d91c8, + 0x3ec1cc, + 0x30cd88, + 0x24d408, + 0x33820e, + 0x34ba94, + 0x34bfa4, + 0x3672ca, + 0x38420b, + 0x35dc04, + 0x35dc09, + 0x2cba08, + 0x24b745, + 0x3d58ca, + 0x296287, + 0x22ffc4, + 0x250b03, + 0x206643, + 0x2392c4, + 0x21f603, + 0x205503, + 0x2503c4, + 0x211e43, + 0x206543, + 0x2ee6c6, + 0x294744, + 0x2109c3, + 0x21f143, + 0x219683, 0x2000c2, - 0x20bec3, - 0x20b642, - 0x21a043, - 0x243544, - 0x226783, - 0x20f583, - 0x20bc83, - 0x2f3c06, - 0x214883, - 0x24acc3, - 0x1c3448, - 0x21a043, - 0x226783, - 0x204703, - 0x214883, - 0x24acc3, - 0x20bec3, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x225a04, - 0x214883, - 0x24acc3, + 0x250b03, + 0x202202, + 0x206643, + 0x2392c4, + 0x21f603, + 0x205503, + 0x211e43, + 0x2ee6c6, + 0x2109c3, + 0x21f143, + 0x1b9688, + 0x206643, + 0x21f603, + 0x3d6403, + 0x2109c3, + 0x21f143, + 0x250b03, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x294744, + 0x2109c3, + 0x21f143, 0x2000c2, - 0x2332c3, - 0x20b642, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x203d82, - 0x206282, - 0x20b642, - 0x21a043, - 0x20c942, + 0x38a7c3, + 0x202202, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x201782, + 0x202dc2, + 0x202202, + 0x206643, + 0x211ac2, 0x2005c2, - 0x25c204, - 0x230944, - 0x2225c2, - 0x225a04, + 0x2503c4, + 0x228f84, + 0x21e002, + 0x294744, 0x2003c2, - 0x24acc3, - 0x205443, - 0x3ae506, - 0x22ccc2, - 0x203342, - 0x22dec2, - 0x62e2acc3, - 0x632584c3, - 0x6d386, - 0x6d386, - 0x265a04, - 0x208c43, - 0x578d, - 0x1d61ca, - 0x1a5486, - 0x1d784c, - 0x63eae24d, - 0x9694c, - 0x64489b8f, - 0x1e8b4d, - 0x177e04, - 0x7e204, - 0xee044, - 0x14f985, - 0x9e849, - 0x6268c, - 0x133907, - 0x18b86, - 0x210c8, - 0x26647, - 0x2cb08, - 0x1c588a, - 0x11c647, - 0x628c9, - 0x64adb105, - 0xf9209, - 0x64c428cb, - 0x133248, - 0x154e0b, - 0x610b, - 0xa7788, - 0x44a0a, - 0x1830ce, - 0x650becca, - 0xe6dcd, - 0x38d4d, - 0x15c4b0b, - 0xf638a, - 0x2d784, - 0x91cc6, - 0x1a0e88, - 0xd5448, - 0x42b87, - 0x2f385, - 0x1e1307, - 0xa9cc9, - 0x1e9987, - 0xa3c8, - 0xef589, - 0x5fe44, - 0x66605, - 0x85a4e, - 0x147947, - 0x6562eac6, - 0xc398d, - 0x1e9808, - 0xf9b88, - 0x65a64f46, - 0x664a7448, - 0x18860a, - 0xb3708, - 0x144f90, - 0x6a30c, - 0x78f47, - 0x7a307, - 0x7ebc7, - 0x845c7, - 0xef42, - 0x12c307, - 0x12b8c, - 0x150105, - 0x19fb07, - 0xbe1c6, - 0xbf0c9, - 0xc1bc8, - 0x7142, + 0x21f143, + 0x219683, + 0x3a6386, + 0x224b42, + 0x202642, + 0x225842, + 0x63e03ec3, + 0x64255983, + 0x63586, + 0x63586, + 0x214f04, + 0x21d783, + 0x1dec0d, + 0x1cec4a, + 0x1a1246, + 0x1d01cc, + 0x64f1f14d, + 0x8f28c, + 0x6545484f, + 0x1d8f0d, + 0x79184, + 0x169044, + 0xcdc84, + 0x14cb05, + 0x95709, + 0xa0fcc, + 0x342c7, + 0x12ac6, + 0x19288, + 0x1f4c7, + 0x24988, + 0x1bb4ca, + 0x11b487, + 0xa1209, + 0x65ad45c5, + 0xf48c9, + 0x65c37e4b, + 0x1511cb, + 0x2c4b, + 0x172bc8, + 0x16128a, + 0x17c88e, + 0x660b74ca, + 0xe35cd, + 0x2e70d, + 0x14d268b, + 0xf10ca, + 0x26084, + 0x8a646, + 0x1896c8, + 0xc9a08, + 0x38107, + 0x26e45, + 0x1e3b07, + 0xa24c9, + 0x1d9d47, + 0x7908, + 0x10f849, + 0x60a04, + 0x685c5, + 0x15440e, + 0x1455c7, + 0x666271c6, + 0xbc84d, + 0x1d9bc8, + 0xf3008, + 0x66a80986, + 0x674b2788, + 0x182c0a, + 0x64348, + 0x143110, + 0x6048c, + 0x72c07, + 0x74107, + 0x79c87, + 0x7fa47, + 0x8b02, + 0x12a387, + 0x1c1e0c, + 0x14d05, + 0xcc107, + 0xb6e06, + 0xb78c9, + 0xbac08, + 0x15fc2, 0x5c2, - 0x119186, - 0x19b44b, - 0x9dc6, - 0x1786c4, - 0x1a4107, - 0x64d49, - 0x191549, - 0x1c4448, - 0x5cf02, - 0x138fc9, - 0x18108, - 0xf280a, - 0xd5dc8, - 0x66ae5b8b, - 0x1bbf09, - 0x5ff86, - 0xea449, - 0xf6307, - 0xf6bc9, - 0xf9508, - 0xfad47, - 0xfc349, - 0x1011c5, - 0x101590, - 0x10210c, - 0x1c88c6, - 0x1a4045, - 0x1d95c7, - 0x4880d, - 0x36a89, - 0x672cebc3, - 0x4f585, - 0x140806, - 0x106587, - 0x10b858, - 0x1e9d08, - 0x8b1ca, - 0x23f8e, - 0x3b02, - 0x6766020b, - 0x67aea54a, - 0x1accca, - 0x72c0d, + 0x116a86, + 0x194e0b, + 0x173cc6, + 0x1de684, + 0x1cf8c7, + 0x80789, + 0x1e0b49, + 0x1ba688, + 0x510c2, + 0x19a989, + 0x11508, + 0xf0b8a, + 0xceb48, + 0x67ae098b, + 0x1db9c9, + 0x4b206, + 0xe5a49, + 0xf1047, + 0xf1909, + 0xf2a48, + 0xf4087, + 0xf5a49, + 0xf8e05, + 0xf91d0, + 0xf9d4c, + 0x181b86, + 0x1cf805, + 0xd9807, + 0x4350d, + 0x1b77c9, + 0x682c88c3, + 0x47185, + 0x1cbd46, + 0x104ac7, + 0x10a918, + 0x1da0c8, + 0x8624a, + 0x1c58e, + 0x10002, + 0x6865228b, + 0x68ae5b4a, + 0x1942ca, + 0x6584d, 0x1042, - 0xe39c6, - 0x1b506, - 0xc32c8, - 0xc0e0a, - 0x5e0c8, - 0x1c3309, - 0x11e848, - 0x7ca4e, - 0x19d08, - 0x146087, - 0x67ea7384, - 0xd708d, - 0xd2a48, - 0x115785, - 0x14c8, - 0x42248, - 0x680268ca, - 0x686bad88, - 0x11b446, - 0xba42, - 0xd77c4, - 0x7ad46, - 0x68923d88, - 0x5f986, - 0x690c6b0b, - 0x79c2, - 0x64244e04, - 0x27e83, - 0x1b9789, - 0x1f88, - 0x14a587, - 0x359ca, - 0xc0b47, + 0xdd0c6, + 0x15d46, + 0xc20c8, + 0xba0ca, + 0x5a3c8, + 0x1b9549, + 0x11d908, + 0x74c8e, + 0x6308, + 0x144207, + 0x68eb26c4, + 0xcfc4d, + 0xcbd48, + 0x113845, + 0x146f48, + 0x69381f09, + 0x371c8, + 0x6941f74a, + 0x4042, + 0x69ab24c8, + 0x119e46, + 0x5fc2, + 0xd0504, + 0x74b46, + 0x69d23b48, + 0x54146, + 0x6a4de50b, + 0x3642, + 0x6523ab84, + 0x21943, + 0x16b449, + 0x1908, + 0x2547, + 0x2c0ca, + 0x71687, 0x401, 0x81, - 0x18f607, - 0x11a408, - 0xcd208, - 0xcd408, - 0xcd608, - 0x73d47, - 0xb98c3, - 0x65e44e04, - 0x662aba43, + 0x188647, + 0x117e48, + 0xc70c8, + 0xc72c8, + 0xc74c8, + 0x6cbc7, + 0xa8643, + 0x66e3ab84, + 0x672d1fc3, 0xc1, - 0xfeb46, + 0xfc986, 0xc1, 0x201, - 0xfeb46, - 0xb98c3, - 0x66e642c4, - 0x197b44, - 0x20f85, - 0x166d85, - 0x1a4244, - 0x1a184, - 0x5d344, - 0x1416c47, - 0x1464207, - 0x1cd6c8, - 0x161e4c, + 0xfc986, + 0xa8643, + 0x67e4ac44, + 0x190d04, + 0xe985, + 0x39f45, + 0x1cfa04, + 0x6784, + 0x51504, + 0x1410087, + 0x144ab87, + 0x1c7448, + 0x1c148c, 0xc01, - 0x12f03, - 0x2af84, - 0x30705, - 0x1cd6c8, - 0x68fcd6c8, - 0x71783, - 0x83343, - 0x18ec3, - 0x1d3b47, - 0x80c7, - 0x15e2945, - 0x64744, - 0x79087, - 0xb642, - 0x166d44, - 0xc2bca, - 0x2346c4, - 0x21a043, - 0x2607c4, - 0x25c204, - 0x214883, - 0x22d985, - 0x221c03, - 0x2423c3, - 0x33a505, + 0x14f83, + 0x1ecc4, + 0x1bd044, + 0x28d45, + 0x1c7448, + 0x6a3c7448, + 0x68f03, + 0x7e583, + 0x12e03, + 0x22607, + 0x4a07, + 0x15e5145, + 0x56344, + 0x72d47, + 0x2202, + 0x39f04, + 0x1e0f4a, + 0x204884, + 0x206643, + 0x2554c4, + 0x2503c4, + 0x2109c3, + 0x225305, + 0x219dc3, + 0x237343, + 0x33d845, 0x200f83, - 0x29f83, - 0x6a61a043, - 0x226783, - 0x607c4, - 0x7783, - 0x20f583, + 0x235c3, + 0x6ba06643, + 0x21f603, + 0x554c4, + 0x3b43, + 0x205503, 0x200181, - 0x22043, - 0x214e43, - 0x230944, - 0x225a04, - 0x214883, - 0x62243, - 0x24acc3, - 0x219303, - 0x1c3448, + 0xf743, + 0x206543, + 0x228f84, + 0x294744, + 0x2109c3, + 0x2b643, + 0x21f143, + 0x213dc3, + 0x1b9688, 0x2000c2, - 0x20bec3, - 0x20b642, - 0x21a043, - 0x226783, - 0x204703, + 0x250b03, + 0x202202, + 0x206643, + 0x21f603, + 0x3d6403, 0x2005c2, - 0x25c204, - 0x20bc83, - 0x214e43, - 0x214883, - 0x208c43, - 0x24acc3, + 0x2503c4, + 0x211e43, + 0x206543, + 0x2109c3, + 0x21d783, + 0x21f143, 0x200f83, - 0xd384, - 0x1c3448, - 0x110cc7, - 0xb642, - 0x139b05, - 0x6a44f, - 0xe6a46, - 0x10210c, - 0x1470708, - 0x11eb4e, - 0x6b602242, - 0x23b308, - 0x3d6906, - 0x2e20c6, - 0x3a4c07, - 0x6ba09582, - 0x6becbe48, - 0x232a8a, - 0x2789c8, + 0x1b9688, + 0x10ea47, + 0x2202, + 0x136285, + 0x605cf, + 0xe3246, + 0xf9d4c, + 0x147e248, + 0x6ca01bc2, + 0x3dae48, + 0x3cf386, + 0x2db106, + 0x39d947, + 0x6ce087c2, + 0x6d2c5248, + 0x229cca, + 0x272688, 0x200b02, - 0x33a049, - 0x3257c7, - 0x21f046, - 0x25bc09, - 0x247d84, - 0x392ec6, - 0x2e24c4, - 0x201904, - 0x26e989, - 0x31cb06, - 0x312885, - 0x27d445, - 0x239547, - 0x2cc4c7, - 0x381d44, - 0x364606, - 0x3cdf45, - 0x2201c5, - 0x23a185, - 0x251e47, - 0x3a9d05, - 0x25b709, - 0x348a05, - 0x36f184, - 0x224687, - 0x3d490e, - 0x3eb909, - 0x335fc9, - 0x3cbb86, - 0x24d7c8, - 0x37f6cb, - 0x3716cc, - 0x32e686, - 0x2cad07, - 0x2fdfc5, - 0x315a0a, - 0x3d6549, + 0x3367c9, + 0x302087, + 0x2176c6, + 0x24fdc9, + 0x23df04, + 0x38b9c6, + 0x2db504, + 0x220044, + 0x264b09, + 0x31b946, + 0x227d45, + 0x2783c5, + 0x22f007, + 0x334087, + 0x3edf44, + 0x360406, + 0x2c6485, + 0x3f31c5, + 0x22f8c5, + 0x237ac7, + 0x276805, + 0x24f8c9, + 0x3dc545, + 0x34e644, + 0x21cc87, + 0x33b00e, + 0x346ac9, + 0x3da609, + 0x3bde06, + 0x243f48, + 0x378c0b, + 0x2fec8c, + 0x32db46, + 0x2c41c7, + 0x2f8385, + 0x313aca, + 0x3cefc9, 0x200ac9, - 0x20b046, - 0x3bac85, - 0x255205, - 0x37afc9, - 0x23a30b, - 0x23ce46, - 0x35ba46, - 0x20cc44, - 0x25a746, - 0x30e588, - 0x3d7746, - 0x363b86, - 0x207408, - 0x20aa87, - 0x20ae09, - 0x20df45, - 0x1c3448, - 0x3e1284, - 0x31f6c4, - 0x2139c5, - 0x34d509, - 0x22d407, - 0x22d40b, - 0x22e5ca, - 0x231045, - 0x6c208982, - 0x220587, - 0x6c6327c8, - 0x3791c7, - 0x3b1405, - 0x2457ca, - 0xb642, - 0x29258b, - 0x29410a, - 0x27c446, - 0x211343, - 0x21784d, - 0x2090cc, - 0x21ce8d, - 0x246405, - 0x3ab085, - 0x26b387, - 0x22c209, - 0x232986, - 0x26a885, - 0x315448, - 0x25a643, - 0x2ef3c8, - 0x25a648, - 0x3cb287, - 0x3f39c8, - 0x362349, - 0x2e0d87, - 0x23a807, - 0x3e27c8, - 0x380384, - 0x380387, - 0x2873c8, - 0x36d0c6, - 0x3d144f, - 0x238107, - 0x364106, - 0x239cc5, - 0x22e043, - 0x257347, - 0x396b43, - 0x25e506, - 0x264646, - 0x266206, - 0x2a7c85, - 0x27c883, - 0x338c48, - 0x3ab5c9, - 0x26638b, - 0x266748, - 0x267645, - 0x269105, - 0x6ca698c2, - 0x367589, - 0x3d9307, - 0x215ac5, - 0x26e887, - 0x26fe86, - 0x270ac5, - 0x27224b, - 0x274104, - 0x278585, - 0x2786c7, - 0x28d046, - 0x28d405, - 0x299b47, - 0x29a787, - 0x383744, - 0x26248a, - 0x2beec8, - 0x37f989, - 0x349405, - 0x27c006, - 0x30e74a, - 0x27d346, - 0x320dc7, - 0x27f34d, - 0x2bbd89, - 0x38ae05, - 0x3d4e47, - 0x20c848, - 0x20cd08, - 0x3485c7, - 0x335c86, - 0x215f87, - 0x26e303, - 0x31ca84, - 0x38c645, - 0x3b9c87, - 0x3c4049, - 0x22c048, - 0x320cc5, - 0x240244, - 0x25a985, - 0x39080d, - 0x20ad02, - 0x2264c6, - 0x2cdb86, - 0x31050a, - 0x3a8b46, - 0x3b6905, - 0x3938c5, - 0x3938c7, - 0x3bda0c, - 0x2b358a, - 0x2a22c6, - 0x20d2c5, - 0x25a586, - 0x2a3087, - 0x2a57c6, - 0x2a7b8c, - 0x25bd49, - 0x6ce4dcc7, - 0x2aa845, - 0x2aa846, - 0x2aac08, - 0x25a205, - 0x2bc5c5, - 0x2bca88, - 0x2bcc8a, - 0x6d21dd82, - 0x6d610682, - 0x21e645, - 0x244583, - 0x33ef48, - 0x21ffc3, - 0x2bcf04, - 0x2ab60b, - 0x371ac8, - 0x39fcc8, - 0x6db5cb49, - 0x2c2fc9, - 0x2c3886, - 0x2c5008, - 0x2c5209, - 0x2c6dc6, - 0x2c6f45, - 0x259106, - 0x2c7409, - 0x2da7c7, - 0x253286, - 0x359787, - 0x3a9987, - 0x3a8104, - 0x6dfe2609, - 0x2dad48, - 0x2cbd48, - 0x3947c7, - 0x2e7d46, - 0x208ec9, - 0x2e2787, - 0x347c4a, - 0x3c8188, - 0x27c147, - 0x2efac6, - 0x2a174a, - 0x3db8c8, - 0x2ed305, - 0x2c11c5, - 0x30b487, - 0x38ed49, - 0x32258b, - 0x338108, - 0x348a89, - 0x266a47, - 0x2d5fcc, - 0x2d668c, - 0x2d698a, - 0x2d6c0c, - 0x2e2048, - 0x2e2248, - 0x2e2444, - 0x2e3189, - 0x2e33c9, - 0x2e360a, - 0x2e3889, - 0x2e3c07, - 0x34c88c, - 0x379586, - 0x27ed08, - 0x27d406, - 0x2f5fc6, - 0x38ad07, - 0x39d088, - 0x39348b, - 0x20b147, - 0x26f209, - 0x296bc9, - 0x24e507, - 0x2e2704, - 0x367787, - 0x2cf0c6, - 0x2194c6, - 0x21ca45, - 0x2c2dc8, - 0x3618c4, - 0x3618c6, - 0x2b344b, - 0x28dd09, - 0x251d46, - 0x22c4c9, - 0x213a86, - 0x39ac08, - 0x20a243, - 0x3bae05, - 0x222149, - 0x3cb985, - 0x302884, - 0x390f86, - 0x3bcbc5, - 0x26a686, - 0x323247, - 0x2fe346, - 0x3bb84b, - 0x2800c7, - 0x28d706, - 0x2921c6, - 0x239606, - 0x381d09, - 0x2d394a, - 0x2fac05, - 0x24bd4d, - 0x2bcd86, - 0x2d4b86, - 0x229086, - 0x3d3945, - 0x301887, - 0x268c87, - 0x31ce8e, - 0x214e43, - 0x2e7d09, - 0x3bf489, - 0x315e07, - 0x281887, - 0x3d3845, - 0x2d0b05, - 0x6e3ed28f, - 0x2ece47, - 0x2ed008, - 0x2edc44, - 0x2eddc6, - 0x6e654782, - 0x2f1bc6, - 0x2f3c06, - 0x10210c, - 0x20220e, - 0x2ef20a, - 0x232146, - 0x21978a, - 0x206b89, - 0x249205, - 0x32a108, - 0x3e3e46, - 0x2ca908, - 0x379b48, - 0x2911cb, - 0x3a4d05, - 0x3a9d88, - 0x20754c, - 0x3b12c7, - 0x265d86, - 0x3bca08, - 0x393148, - 0x6ea18882, - 0x392c8b, - 0x20e149, - 0x20a049, - 0x3b7f47, - 0x3666c8, - 0x6efeae08, - 0x25fbcb, - 0x257a09, - 0x26fb4d, - 0x32cd48, - 0x2d7dc8, - 0x6f201802, - 0x222ac4, - 0x6f6445c2, - 0x36d586, - 0x6fa03282, - 0x308fca, - 0x273186, - 0x22f0c8, - 0x25c4c8, - 0x26b9c6, - 0x2cb206, - 0x30f086, - 0x3a2185, - 0x2468c4, - 0x6ff8dd84, - 0x360946, - 0x269e87, - 0x70290607, - 0x39f3cb, - 0x3793c9, - 0x3ab0ca, - 0x393a04, - 0x2e2a48, - 0x25304d, - 0x3098c9, - 0x309b08, - 0x309d89, - 0x30b844, - 0x2bc884, - 0x295a45, - 0x253c8b, - 0x371a46, - 0x360785, - 0x248449, - 0x3646c8, - 0x270b04, - 0x315b89, - 0x3bb785, - 0x2cc508, - 0x23aec7, - 0x3363c8, - 0x296506, - 0x213dc7, - 0x2f8dc9, - 0x3ecd49, - 0x21b6c5, - 0x2462c5, - 0x70623cc2, - 0x36ef44, - 0x2fcc45, - 0x3a4b06, - 0x328085, - 0x2691c7, - 0x328645, - 0x28a984, - 0x3cbc46, - 0x26a907, - 0x2547c6, - 0x371f85, - 0x21dfc8, - 0x3d6b05, - 0x221fc7, - 0x22c6c9, - 0x28de4a, - 0x234787, - 0x23478c, - 0x312846, - 0x24ab49, - 0x252105, - 0x25a148, - 0x21b503, - 0x2cdc45, - 0x2fc705, - 0x243007, - 0x70a00b82, - 0x305cc7, - 0x2d7386, - 0x389c86, - 0x2e8f06, - 0x393086, - 0x256848, - 0x28f845, - 0x3641c7, - 0x3641cd, - 0x220203, - 0x379a45, - 0x3aa647, - 0x306008, - 0x3aa205, - 0x221708, - 0x230406, - 0x2aba87, - 0x2f5f05, - 0x3a4d86, - 0x3391c5, - 0x35388a, - 0x2fb186, - 0x2dda87, - 0x2350c5, - 0x2fdb87, - 0x300f84, - 0x302806, - 0x32a045, - 0x23628b, - 0x2cef49, - 0x36838a, - 0x21b748, - 0x30c4c8, - 0x30e14c, - 0x313c87, - 0x3166c8, - 0x35f308, - 0x36d6c5, - 0x322bca, - 0x3291c9, - 0x70e01b82, - 0x2a8506, - 0x22bbc4, - 0x22bbc9, - 0x2868c9, - 0x31b047, - 0x284407, - 0x28c689, - 0x2d3388, - 0x2d338f, - 0x216986, - 0x2f594b, - 0x272085, - 0x272087, - 0x33fc89, - 0x22ce06, - 0x315b07, - 0x2fa6c5, - 0x23e6c4, - 0x358386, - 0x21cdc4, - 0x2d2e87, - 0x33d8c8, - 0x713bab88, - 0x3c18c5, - 0x3ccb87, - 0x2dcf49, - 0x21c584, - 0x24f148, - 0x7170b2c8, - 0x2d4b04, - 0x312f48, - 0x20c5c4, - 0x21cc89, - 0x228fc5, - 0x71a49902, - 0x2169c5, - 0x2d6545, - 0x20cb48, - 0x241bc7, - 0x71e008c2, - 0x3b8405, - 0x2f0386, - 0x266086, - 0x36ef08, - 0x346a48, - 0x328046, - 0x32c486, - 0x310d89, - 0x389bc6, - 0x22cccb, - 0x351f85, - 0x3ae706, - 0x35a188, - 0x36ebc6, - 0x2a9b46, - 0x222dca, - 0x283c4a, - 0x390b05, - 0x27c587, - 0x257e46, - 0x72207882, - 0x3aa787, - 0x3e2105, - 0x30e6c4, - 0x30e6c5, - 0x2e2946, - 0x328bc7, - 0x2271c5, - 0x283dc4, - 0x3cdc48, - 0x2a9c05, - 0x2fbbc7, - 0x334e05, - 0x3537c5, - 0x231704, - 0x231709, - 0x3cdd88, - 0x201106, - 0x21a506, - 0x20dbc6, - 0x726c8fc8, - 0x30c347, - 0x34664d, - 0x3de28c, - 0x3e6d89, - 0x31b5c9, - 0x72b84342, - 0x3e60c3, - 0x24e603, - 0x2cf185, - 0x3b9d8a, - 0x346486, - 0x3afd85, - 0x323644, - 0x32364b, - 0x33d18c, - 0x33dacc, - 0x33ddd5, - 0x33eb0d, - 0x34098f, - 0x340d52, - 0x3411cf, - 0x341592, - 0x341a13, - 0x341ecd, - 0x34248d, - 0x34280e, - 0x34310e, - 0x34380c, - 0x343bcc, - 0x34400b, - 0x344a8e, - 0x345392, - 0x34624c, - 0x346c50, - 0x355292, - 0x35648c, - 0x356b4d, - 0x356e8c, - 0x35ad11, - 0x35bbcd, - 0x35db8d, - 0x35e18a, - 0x35e40c, - 0x35fccc, - 0x36048c, - 0x36100c, - 0x366ed3, - 0x368610, - 0x368a10, - 0x36908d, - 0x36968c, - 0x36c249, - 0x36fb4d, - 0x36fe93, - 0x3724d1, - 0x372cd3, - 0x37380f, - 0x373bcc, - 0x373ecf, - 0x37428d, - 0x37488f, - 0x374c50, - 0x3756ce, - 0x37b80e, - 0x37c150, - 0x37cd0d, - 0x37d68e, - 0x37da0c, - 0x37f153, - 0x38154e, - 0x381f50, - 0x382351, - 0x38278f, - 0x382b53, - 0x383ecd, - 0x38420f, - 0x3845ce, - 0x384b50, - 0x384f49, - 0x386310, - 0x38680f, - 0x386e8f, - 0x387252, - 0x387e8e, - 0x38984d, - 0x389e0d, - 0x38a14d, - 0x38af4d, - 0x38b28d, - 0x38b5d0, - 0x38b9cb, - 0x38c40c, - 0x38c78c, - 0x38cd8c, - 0x38d08e, - 0x39ae10, - 0x39c9d2, - 0x39ce4b, - 0x39d28e, - 0x39d60e, - 0x39de8e, - 0x39e40b, - 0x72f9e796, - 0x3a074d, - 0x3a1714, - 0x3a24cd, - 0x3a4355, - 0x3a644d, - 0x3a6dcf, - 0x3a770f, - 0x3ab80f, - 0x3abbce, - 0x3abf4d, - 0x3ad911, - 0x3b240c, - 0x3b270c, - 0x3b2a0b, - 0x3b2ccc, - 0x3b344f, - 0x3b3812, - 0x3b3e0d, - 0x3b504c, - 0x3b594c, - 0x3b5c4d, - 0x3b5f8f, - 0x3b634e, - 0x3b9a4c, - 0x3ba00d, - 0x3ba34b, - 0x3bc18c, - 0x3bd08d, - 0x3bd3ce, - 0x3bd749, - 0x3be713, - 0x3c014d, - 0x3c084d, - 0x3c0e4c, - 0x3c14ce, - 0x3c1a0f, - 0x3c1dcc, - 0x3c20cd, - 0x3c240f, - 0x3c27cc, - 0x3c2dcc, - 0x3c3b0c, - 0x3c3e0c, - 0x3c500d, - 0x3c5352, - 0x3c5dcc, - 0x3c60cc, - 0x3c63d1, - 0x3c680f, - 0x3c6bcf, - 0x3c6f93, - 0x3c8d8e, - 0x3c910f, - 0x3c94cc, - 0x733c9b8e, - 0x3c9f0f, - 0x3ca2d6, - 0x3cadd2, - 0x3ce68c, - 0x3cf1cf, - 0x3cf84d, - 0x3dd30f, - 0x3dd6cc, - 0x3dd9cd, - 0x3ddd0d, - 0x3df8ce, - 0x3e040c, - 0x3e2c4c, - 0x3e2f50, - 0x3e5451, - 0x3e588b, - 0x3e5ccc, - 0x3e5fce, - 0x3e72d1, - 0x3e770e, - 0x3e7a8d, - 0x3f074b, - 0x3f170f, - 0x3f20d4, - 0x216e82, - 0x216e82, - 0x206c43, - 0x216e82, - 0x206c43, - 0x216e82, - 0x214f82, - 0x259145, - 0x3e6fcc, - 0x216e82, - 0x216e82, - 0x214f82, - 0x216e82, - 0x2ac905, - 0x28de45, - 0x216e82, - 0x216e82, - 0x202642, - 0x2ac905, - 0x33f149, - 0x3721cc, - 0x216e82, - 0x216e82, - 0x216e82, - 0x216e82, - 0x259145, - 0x216e82, - 0x216e82, - 0x216e82, - 0x216e82, - 0x202642, - 0x33f149, - 0x216e82, - 0x216e82, - 0x216e82, - 0x28de45, - 0x216e82, - 0x28de45, - 0x3721cc, - 0x3e6fcc, - 0x20bec3, - 0x21a043, - 0x226783, - 0x20f583, - 0x25c204, - 0x214883, - 0x24acc3, - 0x5e8f, - 0x1dc8, - 0x7cb84, - 0xeaec8, - 0x2000c2, - 0x7420b642, - 0x24e8c3, - 0x23eb44, + 0x2fbfc6, + 0x3b1b45, + 0x24b105, + 0x375009, + 0x22fa4b, + 0x3cc986, + 0x357686, + 0x208a44, + 0x252946, + 0x30d0c8, + 0x3d00c6, + 0x27da46, + 0x204248, + 0x205a47, + 0x206889, + 0x207405, + 0x1b9688, + 0x3e3a84, + 0x31e2c4, + 0x20d605, + 0x34a809, + 0x20da07, + 0x20da0b, + 0x22620a, + 0x229685, + 0x6d605182, + 0x3f3587, + 0x6da29a08, + 0x3c5807, + 0x2df745, + 0x23b3ca, + 0x2202, + 0x28b00b, + 0x28d58a, + 0x2778c6, + 0x35f383, + 0x20374d, + 0x3d7ccc, + 0x20dc8d, + 0x236505, + 0x211185, + 0x25f207, + 0x218d49, + 0x229bc6, + 0x273585, + 0x32ac08, + 0x23a783, + 0x2e44c8, + 0x252848, + 0x3c4987, + 0x23a788, + 0x23e289, + 0x37d047, + 0x3bdfc7, + 0x3e4fc8, + 0x211884, + 0x211887, + 0x282288, + 0x367e86, + 0x3c5fcf, + 0x244bc7, + 0x35ff06, + 0x22df85, + 0x2259c3, + 0x24d0c7, + 0x38f643, + 0x252fc6, + 0x256246, + 0x259a46, + 0x29fe05, + 0x277dc3, + 0x39a608, + 0x3a3889, + 0x25a08b, + 0x25b588, + 0x25c705, + 0x25e805, + 0x6de596c2, + 0x266349, + 0x3d1c87, + 0x21e145, + 0x264a07, + 0x266e86, + 0x267e45, + 0x26a78b, + 0x26d004, + 0x271845, + 0x271987, + 0x285a46, + 0x286785, + 0x292a87, + 0x292fc7, + 0x2c6b84, + 0x2a0dca, + 0x2b76c8, + 0x378ec9, + 0x320105, + 0x275a06, + 0x30d28a, + 0x2782c6, + 0x3ec587, + 0x27a40d, + 0x2b42c9, + 0x384545, + 0x3c3f07, + 0x3db508, + 0x3dbec8, + 0x33abc7, + 0x3c2e06, + 0x216107, + 0x2556c3, + 0x31b8c4, + 0x385d45, + 0x3b0207, + 0x3ba289, + 0x225dc8, + 0x3ec485, + 0x273844, + 0x24f305, + 0x25ea4d, + 0x207002, + 0x2d6246, + 0x2c8946, + 0x30e2ca, + 0x3a1606, + 0x3adc85, + 0x38c3c5, + 0x38c3c7, + 0x3b300c, + 0x2641ca, + 0x29b046, + 0x2e0dc5, + 0x252786, + 0x29b907, + 0x29de46, + 0x29fd0c, + 0x24ff09, + 0x6e244447, + 0x2a3045, + 0x2a3046, + 0x2a3548, + 0x249685, + 0x2b4f85, + 0x2b5708, + 0x2b590a, + 0x6e60bd82, + 0x6ea09b02, + 0x2afc05, + 0x31c703, + 0x31df88, + 0x285e43, + 0x2b5b84, + 0x2a8d8b, + 0x2b90c8, + 0x333d88, + 0x6ef4da49, + 0x2bbe09, + 0x2bc746, + 0x2be388, + 0x2be589, + 0x2c0206, + 0x2c0385, + 0x24e186, + 0x2c0809, + 0x2d7ec7, + 0x255206, + 0x358587, + 0x358e47, + 0x3a0e04, + 0x6f3e4e09, + 0x2d4208, + 0x2c5148, + 0x38d2c7, + 0x2e1e06, + 0x3cc189, + 0x2db7c7, + 0x3af3ca, + 0x3edb48, + 0x2775c7, + 0x2e4d86, + 0x3e0d4a, + 0x347c08, + 0x2e8845, + 0x2ba485, + 0x30a547, + 0x318549, + 0x318a4b, + 0x32ee08, + 0x3dc5c9, + 0x25bc07, + 0x2ced4c, + 0x2cf24c, + 0x2cf54a, + 0x2cf7cc, + 0x2db088, + 0x2db288, + 0x2db484, + 0x2dc889, + 0x2dcac9, + 0x2dcd0a, + 0x2dcf89, + 0x2dd307, + 0x3c5bcc, + 0x3cab06, + 0x279dc8, + 0x278386, + 0x318406, + 0x384447, + 0x396bc8, + 0x38bf8b, + 0x2fc0c7, + 0x2647c9, + 0x2683c9, + 0x28f507, + 0x2db744, + 0x267307, + 0x2e9246, + 0x213f86, + 0x34ff05, + 0x230e48, + 0x35da44, + 0x35da46, + 0x26408b, + 0x2aac09, + 0x2379c6, + 0x226509, + 0x20d6c6, + 0x3878c8, 0x207783, - 0x20f584, - 0x23c686, - 0x213883, - 0x390e44, - 0x2b1b85, - 0x214e43, - 0x214883, - 0x24acc3, - 0x228d8a, - 0x3ae506, - 0x39d98c, - 0x1c3448, - 0x20b642, - 0x21a043, - 0x226783, - 0x20f583, - 0x2384c3, - 0x2f3c06, - 0x214883, - 0x24acc3, - 0x205443, - 0x15ac3, - 0xbe988, - 0x74d4c5c5, - 0x833c7, - 0x5bec5, - 0x1f2c7, - 0x14f985, - 0xaa204, - 0xaa20a, - 0x6249, - 0x2142, - 0x1d02ca, - 0x75b26305, - 0x14f985, - 0x133907, - 0x19c08, - 0x1048e, - 0x9dd52, - 0x13990b, - 0x11c746, - 0x75edb105, - 0x762db10c, - 0x1e2287, - 0xf5d87, - 0x1dafca, - 0x48cd0, - 0x153ac5, - 0xbe6cb, - 0xd5448, - 0x42b87, - 0x3e7cb, - 0xa9cc9, - 0x59307, - 0x1e9987, - 0x3d087, - 0x42ac6, - 0xa3c8, - 0x76838286, - 0x5e007, - 0x30546, - 0xc398d, - 0xe2bd0, - 0x76c0a842, - 0x1e9808, - 0x19a110, - 0x19a84c, - 0x773a1bcd, - 0x727c8, - 0x72f4b, - 0x809c7, - 0xd1709, - 0x6d446, - 0xaae08, - 0x1742, - 0x70d0a, - 0x38447, - 0x19fb07, - 0xbf0c9, - 0xc1bc8, - 0x100185, - 0xe9c7, - 0x119186, - 0x9dc6, - 0x10aa0e, - 0x4c48e, - 0x164d8f, - 0x64d49, - 0x191549, - 0xabe4b, - 0xded0f, - 0x183bcc, - 0xdd68b, - 0x14de08, - 0x19f2c7, - 0x1ad388, - 0xc880b, - 0xc91cc, - 0xc95cc, - 0xc99cc, - 0xc9ccd, - 0x1c4448, - 0x83382, - 0x138fc9, - 0xab348, - 0xe578b, - 0xe7f46, - 0xefc4b, - 0x144ecb, - 0xf9e0a, - 0xfaf05, - 0x101590, - 0x104606, - 0x1cbd86, - 0x1a4045, - 0x1d95c7, - 0xf1e48, - 0x106587, - 0x106847, - 0xa79c7, - 0x29a86, - 0x16d3ca, - 0xb3c0a, - 0x1b506, - 0x19f8cd, - 0x5e0c8, - 0x11e848, - 0xf12c9, - 0x8af89, - 0xd4905, - 0x16018c, - 0xc9ecb, - 0x1c7bc9, - 0x18ec84, - 0x11b209, - 0x11b446, - 0x11506, - 0x3342, - 0x5f986, - 0x8b10b, - 0x127647, - 0x127807, - 0x79c2, - 0xe9545, - 0x19d84, + 0x3b1cc5, + 0x2140c9, + 0x205805, + 0x2fa4c4, + 0x244946, + 0x27db85, + 0x260806, + 0x323007, + 0x3beec6, + 0x234bcb, + 0x27b187, + 0x289046, + 0x292e46, + 0x22f0c6, + 0x3edf09, + 0x2b3d4a, + 0x36d405, + 0x24514d, + 0x2b5a06, + 0x2d00c6, + 0x3a7546, + 0x222405, + 0x2f94c7, + 0x27c247, + 0x31bcce, + 0x206543, + 0x2e1dc9, + 0x3a2949, + 0x313ec7, + 0x27c707, + 0x2359c5, + 0x37b205, + 0x6f606c0f, + 0x2e7ec7, + 0x2e8088, + 0x2e84c4, + 0x2e8706, + 0x6fa4a502, + 0x2ec746, + 0x2ee6c6, + 0xf9d4c, + 0x201b8e, + 0x2e430a, + 0x203bc6, + 0x211b8a, + 0x3cb2c9, + 0x23b845, + 0x371b48, + 0x316446, + 0x2c3dc8, + 0x300308, + 0x294b8b, + 0x39da45, + 0x276888, + 0x20438c, + 0x2df607, + 0x256e06, + 0x2e4ac8, + 0x38bc48, + 0x6fe12282, + 0x3d4dcb, + 0x34f589, + 0x38b809, + 0x207607, + 0x3cbb88, + 0x7023eb48, + 0x332a8b, + 0x254389, + 0x266b4d, + 0x34d4c8, + 0x2d0708, + 0x70601582, + 0x21e7c4, + 0x70a232c2, + 0x36cf46, + 0x70e0b7c2, + 0x30794a, + 0x26c006, + 0x226b88, + 0x250688, + 0x261bc6, + 0x2c46c6, + 0x30db86, + 0x21e3c5, + 0x23bd04, + 0x71387844, + 0x35cbc6, + 0x259ec7, + 0x71688b47, + 0x3979cb, + 0x3c5a09, + 0x2111ca, + 0x38c504, + 0x2dba88, + 0x254fcd, + 0x308249, + 0x308488, + 0x308709, + 0x30a904, + 0x241744, + 0x283905, + 0x3b644b, + 0x2b9046, + 0x35ca05, + 0x390089, + 0x3604c8, + 0x267e84, + 0x313c49, + 0x234b05, + 0x3340c8, + 0x3daa07, + 0x320d88, + 0x290306, + 0x3c1847, + 0x2f2689, + 0x33be49, + 0x222c05, + 0x257445, + 0x71a1cd02, + 0x34e404, + 0x2f6345, + 0x39d846, + 0x383305, + 0x25e8c7, + 0x2daac5, + 0x283e04, + 0x3bdec6, + 0x273607, + 0x24a546, + 0x3b2185, + 0x20c888, + 0x3cf585, + 0x20f6c7, + 0x21ce89, + 0x2aad4a, + 0x226707, + 0x22670c, + 0x227d06, + 0x23f509, + 0x247cc5, + 0x2495c8, + 0x215d43, + 0x2c8a05, + 0x2f5e05, + 0x290b47, + 0x71e00b82, + 0x304207, + 0x2dd686, + 0x3e3406, + 0x2e8586, + 0x38bb86, + 0x24cbc8, + 0x2898c5, + 0x35ffc7, + 0x35ffcd, + 0x24e583, + 0x3cafc5, + 0x277147, + 0x304548, + 0x276d05, + 0x2198c8, + 0x228a46, + 0x316b87, + 0x2f44c5, + 0x39dac6, + 0x39ab85, + 0x3ccd4a, + 0x2f6ac6, + 0x2d7647, + 0x227a05, + 0x2f7f47, + 0x2f8bc4, + 0x2fa446, + 0x371a85, + 0x22c98b, + 0x2e90c9, + 0x38a8ca, + 0x222c88, + 0x30b588, + 0x310b8c, + 0x311407, + 0x314788, + 0x35c508, + 0x36d085, + 0x329a4a, + 0x326409, + 0x72201982, + 0x2a0686, + 0x230c84, + 0x230c89, + 0x2286c9, + 0x319a47, + 0x27f887, + 0x285089, + 0x2ccd48, + 0x2ccd4f, + 0x216b06, + 0x2f048b, + 0x25f9c5, + 0x25f9c7, + 0x354fc9, + 0x224c86, + 0x313bc7, + 0x2f3b45, + 0x2327c4, + 0x3b6a46, + 0x20dbc4, + 0x2cd507, + 0x339848, + 0x727b1a48, + 0x3c7005, + 0x3e5247, + 0x2d6849, + 0x20e204, + 0x246d48, + 0x72b0a388, + 0x2d0044, + 0x300d08, + 0x3c3b44, + 0x3b7149, + 0x3a7485, + 0x72e3d942, + 0x216b45, + 0x2ea785, + 0x33b788, + 0x236b47, + 0x732008c2, + 0x3cc545, + 0x2eafc6, + 0x267b06, + 0x34e3c8, + 0x350c88, + 0x3832c6, + 0x383e86, + 0x30eb09, + 0x3e3346, + 0x224b4b, + 0x2ff3c5, + 0x3a6586, + 0x2ac848, + 0x3023c6, + 0x2a2346, + 0x21b00a, + 0x3a008a, + 0x25ed45, + 0x29b747, + 0x283486, + 0x736046c2, + 0x277287, + 0x3e4905, + 0x30d204, + 0x30d205, + 0x2db986, + 0x388947, + 0x220c85, + 0x228784, + 0x2c6188, + 0x2a2405, + 0x2f5247, + 0x336d05, + 0x381785, + 0x212784, + 0x346609, + 0x2c62c8, + 0x249d86, + 0x3aaac6, + 0x33c3c6, + 0x73b2d148, + 0x30b407, + 0x3915cd, + 0x366a0c, + 0x3e0089, + 0x3e9109, + 0x73f7d942, + 0x3e8443, + 0x228183, + 0x2e9305, + 0x3b030a, + 0x344606, + 0x3ec8c5, + 0x323404, + 0x32340b, + 0x33910c, + 0x339a4c, + 0x339d55, + 0x33c74d, + 0x33eb8f, + 0x33ef52, + 0x33f3cf, + 0x33f792, + 0x33fc13, + 0x3400cd, + 0x34068d, + 0x340a0e, + 0x34130e, + 0x34198c, + 0x341d4c, + 0x34218b, + 0x342c0e, + 0x343512, + 0x3443cc, + 0x3448d0, + 0x351b12, + 0x35278c, + 0x352e4d, + 0x35318c, + 0x356491, + 0x35780d, + 0x359f8d, + 0x35a58a, + 0x35a80c, + 0x35bc0c, + 0x35c70c, + 0x35d18c, + 0x362213, + 0x362c10, + 0x363010, + 0x36368d, + 0x363c8c, + 0x367009, + 0x36914d, + 0x369493, + 0x36ba11, + 0x36c213, + 0x36d54f, + 0x36d90c, + 0x36dc0f, + 0x36dfcd, + 0x36e5cf, + 0x36e990, + 0x36f40e, + 0x37564e, + 0x375f90, + 0x376acd, + 0x37744e, + 0x3777cc, + 0x378693, + 0x37abce, + 0x37b710, + 0x37bb11, + 0x37bf4f, + 0x37c313, + 0x37d4cd, + 0x37d80f, + 0x37dbce, + 0x37e150, + 0x37e549, + 0x37f9d0, + 0x37fecf, + 0x38054f, + 0x380912, + 0x38248e, + 0x382f4d, + 0x3835cd, + 0x38390d, + 0x38468d, + 0x3849cd, + 0x384d10, + 0x38510b, + 0x385b0c, + 0x385e8c, + 0x38648c, + 0x38678e, + 0x3947d0, + 0x396512, + 0x39698b, + 0x396dce, + 0x39714e, + 0x39804e, + 0x3985cb, + 0x74398956, + 0x39988d, + 0x39a154, + 0x39ae4d, + 0x39d095, + 0x39f28d, + 0x39fc0f, + 0x3a040f, + 0x3a3acf, + 0x3a3e8e, + 0x3a420d, + 0x3a5751, + 0x3a8ecc, + 0x3a91cc, + 0x3a94cb, + 0x3a978c, + 0x3a9fcf, + 0x3aa392, + 0x3ab18d, + 0x3ac3cc, + 0x3acccc, + 0x3acfcd, + 0x3ad30f, + 0x3ad6ce, + 0x3affcc, + 0x3b058d, + 0x3b08cb, + 0x3b154c, + 0x3b268d, + 0x3b29ce, + 0x3b2d49, + 0x3b3d13, + 0x3b44cd, + 0x3b4bcd, + 0x3b51cc, + 0x3b588e, + 0x3b7c4f, + 0x3b800c, + 0x3b830d, + 0x3b864f, + 0x3b8a0c, + 0x3b900c, + 0x3b9d4c, + 0x3ba04c, + 0x3bac4d, + 0x3baf92, + 0x3bba0c, + 0x3bbd0c, + 0x3bc011, + 0x3bc44f, + 0x3bc80f, + 0x3bcbd3, + 0x3bf84e, + 0x3bfbcf, + 0x3bff8c, + 0x747c064e, + 0x3c09cf, + 0x3c0d96, + 0x3c44d2, + 0x3c7a8c, + 0x3c818f, + 0x3c880d, + 0x3df10f, + 0x3df4cc, + 0x3df7cd, + 0x3dfb0d, + 0x3e168e, + 0x3e2b8c, + 0x3e5b4c, + 0x3e5e50, + 0x3e77d1, + 0x3e7c0b, + 0x3e804c, + 0x3e834e, + 0x3e9651, + 0x3e9a8e, + 0x3e9e0d, + 0x3efb4b, + 0x3f0c4f, + 0x3f1894, + 0x2062c2, + 0x2062c2, + 0x204383, + 0x2062c2, + 0x204383, + 0x2062c2, + 0x203cc2, + 0x24e1c5, + 0x3e934c, + 0x2062c2, + 0x2062c2, + 0x203cc2, + 0x2062c2, + 0x2a43c5, + 0x2aad45, + 0x2062c2, + 0x2062c2, + 0x20b782, + 0x2a43c5, + 0x33cd09, + 0x36b70c, + 0x2062c2, + 0x2062c2, + 0x2062c2, + 0x2062c2, + 0x24e1c5, + 0x2062c2, + 0x2062c2, + 0x2062c2, + 0x2062c2, + 0x20b782, + 0x33cd09, + 0x2062c2, + 0x2062c2, + 0x2062c2, + 0x2aad45, + 0x2062c2, + 0x2aad45, + 0x36b70c, + 0x3e934c, + 0x250b03, + 0x206643, + 0x21f603, + 0x205503, + 0x2503c4, + 0x2109c3, + 0x21f143, + 0x29cf, + 0x13b548, + 0x74dc4, + 0xe7008, + 0x2000c2, + 0x75602202, + 0x2457c3, + 0x2f1684, + 0x203b43, + 0x205504, + 0x231386, + 0x244843, + 0x244804, + 0x29ebc5, + 0x206543, + 0x2109c3, + 0x21f143, + 0x3b6f0a, + 0x3a6386, + 0x3974cc, + 0x1b9688, + 0x202202, + 0x206643, + 0x21f603, + 0x205503, + 0x23ddc3, + 0x2ee6c6, + 0x2109c3, + 0x21f143, + 0x219683, + 0x1e143, + 0xb7188, + 0x761ed1c5, + 0x7e607, + 0x50085, + 0x17947, + 0x14cb05, + 0xa2a04, + 0xa2a0a, + 0x2d89, + 0x1ac2, + 0x1c928a, + 0x76fdd7c5, + 0x14cb05, + 0x342c7, + 0x6208, + 0x990e, + 0x97852, + 0x13608b, + 0x11b586, + 0x772d45c5, + 0x776d45cc, + 0x1e4a87, + 0xf08c7, + 0xdc24a, + 0x3f150, + 0x14dc45, + 0xba94b, + 0xc9a08, + 0x38107, + 0x12bccb, + 0xa24c9, + 0x4e387, + 0x1d9d47, + 0x1ccbc7, + 0x38046, + 0x7908, + 0x77c34106, + 0x5a307, + 0x28b86, + 0xbc84d, + 0xdbc10, + 0x78004c02, + 0x1d9bc8, + 0x193090, + 0x1937cc, + 0x787a4a0d, + 0x6b4c8, + 0x6bdcb, + 0x7b6c7, + 0x1030c9, + 0x63646, + 0xa3748, + 0x17382, + 0x6808a, + 0x3eec7, + 0xcc107, + 0xb78c9, + 0xbac08, + 0x1c9f45, + 0x6ba47, + 0x116a86, + 0x173cc6, + 0x1097ce, + 0x48bce, + 0x5e44f, + 0x80789, + 0x1e0b49, + 0xaf78b, + 0xde04f, + 0x19cd8c, + 0xd844b, + 0x129148, + 0x1978c7, + 0x1a51c8, + 0xc1b0b, + 0xc268c, + 0xc2a8c, + 0xc2e8c, + 0xc318d, + 0x1ba688, + 0x7e5c2, + 0x19a989, + 0xa8ac8, + 0xde94b, + 0xe2006, + 0xea8cb, + 0x14304b, + 0xf328a, + 0xf4245, + 0xf91d0, + 0x100986, + 0x1bf006, + 0x1cf805, + 0xd9807, + 0x101048, + 0x104ac7, + 0x104d87, + 0x172e07, + 0x20286, + 0x16cd8a, + 0xb4c0a, + 0x15d46, + 0xcbecd, + 0x5a3c8, + 0x11d908, + 0x126c9, + 0x86009, + 0xdd585, + 0x167fcc, + 0xc338b, + 0x1f009, + 0x118984, + 0x119c09, + 0x119e46, + 0x13206, + 0x2642, + 0x54146, + 0x8618b, + 0x1260c7, + 0x126287, + 0x3642, + 0xe3dc5, + 0x6384, 0x101, - 0x66fc3, - 0x76644746, - 0xaba43, + 0x5c183, + 0x77b60fc6, + 0xd1fc3, 0x382, 0xe44, 0xb02, - 0x65a04, + 0x14f04, 0x882, - 0xc502, - 0x2742, - 0x1da82, - 0x3d82, - 0x27e82, - 0x45c2, - 0x16e3c2, - 0x3cc82, + 0x8b82, + 0x8a42, + 0x69782, + 0x1782, + 0x21942, 0x3402, - 0x101c2, - 0x64842, - 0x26783, + 0x1547c2, + 0x31982, + 0x54302, + 0x23c2, + 0x56442, + 0x1f603, 0x942, - 0x1b42, - 0x1b5c2, - 0x5b02, + 0x1342, + 0xfd02, + 0x8102, 0x642, - 0x30fc2, - 0x7142, - 0x2502, - 0x13f82, + 0x29602, + 0x15fc2, + 0x1442, + 0x4142, 0x5c2, - 0xbc83, - 0x40c2, - 0x1ac2, - 0x5cf02, - 0xaf02, - 0x12a82, - 0xfe02, - 0x24902, - 0x5942, + 0x11e43, + 0x2b82, + 0x4b02, + 0x510c2, + 0x6982, + 0x6b42, + 0x9582, + 0x1a202, + 0x2042, 0xec2, - 0x19b302, - 0x82182, - 0x736c2, - 0x14883, + 0x194cc2, + 0x7d202, + 0x70c2, + 0x109c3, 0x602, - 0x18882, - 0x25c2, - 0x7982, - 0x1b645, - 0x8782, - 0x21e42, - 0x1d4883, + 0x12282, + 0x1f42, + 0x16282, + 0x22b85, + 0x4f82, + 0x1a002, + 0x1dea83, 0x682, - 0x3b02, + 0x10002, 0x1042, - 0x1a82, - 0x14942, + 0x1a42, + 0x10a82, 0x8c2, - 0xba42, - 0x3342, - 0x5985, - 0x77614f82, - 0x77b0ed43, - 0x4d03, - 0x77e14f82, - 0x4d03, - 0xe7807, - 0x205683, + 0x5fc2, + 0x2642, + 0x2c45, + 0x78a03cc2, + 0x78f09343, + 0x15c43, + 0x79203cc2, + 0x15c43, + 0xe18c7, + 0x20d5c3, 0x2000c2, - 0x21a043, - 0x226783, - 0x204703, + 0x206643, + 0x21f603, + 0x3d6403, 0x2005c3, - 0x2384c3, - 0x214883, - 0x208c43, - 0x24acc3, - 0x319283, - 0x1ad803, - 0x1ad804, - 0x180286, - 0xd4944, - 0x179d45, - 0x10e445, - 0x18b43, - 0x1c3448, - 0x21a043, - 0x226783, - 0x204703, - 0x214e43, - 0x214883, - 0x208c43, - 0x24acc3, - 0x21a043, - 0x226783, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, + 0x23ddc3, + 0x2109c3, + 0x21d783, + 0x21f143, + 0x2d2003, + 0x1a5643, + 0x1a5644, + 0x1797c6, + 0xdd5c4, + 0x100505, + 0x10cf85, + 0x1c36c3, + 0x1b9688, + 0x206643, + 0x21f603, + 0x3d6403, + 0x206543, + 0x2109c3, + 0x21d783, + 0x21f143, + 0x206643, + 0x21f603, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, 0x200181, - 0x214e43, - 0x214883, - 0x262243, - 0x24acc3, - 0x5b84, - 0x20bec3, - 0x21a043, - 0x226783, - 0x219ec3, - 0x204703, - 0x262283, - 0x245143, - 0x2bc303, - 0x220783, - 0x20f583, - 0x25c204, - 0x214883, - 0x24acc3, + 0x206543, + 0x2109c3, + 0x22b643, + 0x21f143, + 0x1df004, + 0x250b03, + 0x206643, + 0x21f603, + 0x2064c3, + 0x3d6403, + 0x290a43, + 0x234503, + 0x2b4843, + 0x24c8c3, + 0x205503, + 0x2503c4, + 0x2109c3, + 0x21f143, 0x200f83, - 0x3496c4, - 0x235843, - 0x5d83, - 0x2548c3, - 0x337908, - 0x2a1784, + 0x3c7f44, + 0x211103, + 0x28c3, + 0x24a643, + 0x333648, + 0x358c84, 0x20020a, - 0x26b146, - 0xdcd44, - 0x3beb87, - 0x22a0ca, - 0x216849, - 0x3d0147, - 0x3d5a0a, - 0x20bec3, - 0x21e6cb, - 0x37ff09, - 0x3a8445, - 0x3c30c7, - 0xb642, - 0x21a043, - 0x321187, - 0x351105, - 0x2e25c9, - 0x2370e, - 0x226783, - 0x246b86, - 0x322c83, - 0xcf003, - 0x122446, - 0x3946, - 0x13807, - 0x215186, - 0x21f445, - 0x20e007, - 0x31ef87, - 0x7aa0f583, - 0x3566c7, - 0x28af43, - 0xc1089, + 0x25efc6, + 0xd6644, + 0x3b4187, + 0x22370a, + 0x2169c9, + 0x3c9107, + 0x3ce48a, + 0x250b03, + 0x2afc8b, + 0x379449, + 0x386fc5, + 0x3b9307, + 0x2202, + 0x206643, + 0x26a5c7, + 0x30fec5, + 0x2db609, + 0x1b98e, + 0x21f603, + 0x23bfc6, + 0x2d96c3, + 0xdd703, + 0x122506, + 0x1dd686, + 0x1f4147, + 0x2142c6, + 0x21aa05, + 0x2074c7, + 0x2ef9c7, + 0x7be05503, + 0x3529c7, + 0x285fc3, + 0xba349, + 0x301f85, + 0x2503c4, + 0x2c7bc8, + 0x3e868c, + 0x2c6ec5, + 0x2b4446, + 0x30fd87, + 0x21f307, + 0x289187, + 0x289c08, + 0x32118f, + 0x3bec05, + 0x205247, + 0x2d4d07, + 0x3d848a, + 0x32aa49, + 0x322645, + 0x33390a, + 0x1270c6, + 0xcdd87, + 0x2d9745, + 0x3913c4, + 0x345786, + 0x1820c6, + 0x393a47, + 0x2dff87, + 0x33ad48, + 0x20f845, + 0x26a4c6, + 0x20508, + 0x27d9c5, + 0x26446, + 0x271585, + 0x243004, + 0x240fc7, + 0x24ca0a, + 0x2add88, + 0x205e46, + 0x3ddc3, + 0x2dfa85, + 0x2b0006, + 0x3c5e06, + 0x201e46, + 0x206543, + 0x3ab407, + 0xf9d4c, + 0x2d4c85, + 0x2109c3, + 0x2f354d, + 0x21d783, + 0x33ae48, + 0x27fc04, + 0x2b0305, + 0x2b5bc6, + 0x3d4b46, + 0x3a6487, + 0x254247, + 0x27e945, + 0x21f143, + 0x36ac87, + 0x3a2e09, + 0x323c89, + 0x38934a, + 0x207202, + 0x301f44, + 0x324444, + 0x303f07, + 0x3040c8, + 0x305b49, + 0x3cae89, + 0x306787, + 0x111609, + 0x20bc06, + 0x109546, + 0x30a904, + 0x22e98a, + 0x30cbc8, + 0x30da49, + 0x30de86, + 0x2cb145, + 0x2adc48, + 0x2e228a, + 0x27b403, + 0x335846, + 0x306887, + 0x35eb45, + 0x82b48, + 0x3bd345, + 0x2130c3, + 0x21bc04, + 0x4d509, + 0x2ba445, + 0x2930c7, + 0x2c6405, + 0x2f0a46, + 0x1062c5, + 0x203c83, + 0x203c89, + 0x2b00cc, + 0x2d720c, + 0x3142c8, + 0x2a3bc7, + 0x3156c8, + 0x115d07, + 0x31688a, + 0x316e8b, + 0x379588, + 0x3d4c48, + 0x238746, + 0x3e1985, + 0x34710a, + 0x2298c5, + 0x23d942, + 0x2e0f47, + 0x28e506, + 0x37f205, + 0x318d09, + 0x3be785, + 0x1d7b08, + 0x2bc385, + 0x301b49, + 0x32bac6, + 0x3d3a08, + 0x2b03c3, + 0x20b586, + 0x244886, 0x3256c5, - 0x25c204, - 0x2cde88, - 0x3e630c, - 0x2cd005, - 0x2bbf06, - 0x321047, - 0x3c7ec7, - 0x28fb87, - 0x297fc8, - 0x3217cf, - 0x349145, - 0x208a47, - 0x217d47, - 0x3a148a, - 0x315289, - 0x32bd05, - 0x32700a, - 0x10de86, - 0xd4d07, - 0x2e1485, - 0x398204, - 0x347b06, - 0x1974c6, - 0x260947, - 0x2e68c7, - 0x348748, - 0x213045, - 0x351006, - 0x2f908, - 0x363b05, - 0x2c406, - 0x2c0a45, - 0x243344, - 0x297e47, - 0x25668a, - 0x2b7808, - 0x3d2c86, - 0x384c3, - 0x2fc3c5, - 0x21ea46, - 0x34cac6, - 0x2024c6, - 0x214e43, - 0x3b4087, - 0x10210c, - 0x217cc5, - 0x214883, - 0x2fa0cd, - 0x208c43, - 0x348848, - 0x284784, - 0x21ed45, - 0x2bcf46, - 0x203286, - 0x3ae607, - 0x25fa87, - 0x283705, - 0x24acc3, - 0x3b8fc7, - 0x3bf949, - 0x323ec9, - 0x39054a, - 0x204d82, - 0x325684, - 0x337d84, - 0x3059c7, - 0x305b88, - 0x307609, - 0x379909, - 0x3082c7, - 0x113e89, - 0x2630c6, - 0x10a786, - 0x30b844, - 0x238fca, - 0x30db08, - 0x30ef49, - 0x30f386, - 0x2d1e45, - 0x2b76c8, - 0x2e81ca, - 0x236d03, - 0x349846, - 0x3083c7, - 0x237e45, - 0x891c8, - 0x3c7705, - 0x219183, - 0x223984, - 0x56cc9, - 0x2c1185, - 0x29a887, - 0x3cdec5, - 0x2ed1c6, - 0x107d85, - 0x232203, - 0x232209, - 0x21eb0c, - 0x2d954c, - 0x316208, - 0x2a8fc7, - 0x3f0d88, - 0x118c07, - 0x318f8a, - 0x3195cb, - 0x380048, - 0x203388, - 0x2681c6, - 0x2614c5, - 0x34340a, - 0x2184c5, - 0x249902, - 0x2e66c7, - 0x27b8c6, - 0x385b45, - 0x398389, - 0x233885, - 0x1b76c8, - 0x2b44c5, - 0x325289, - 0x32d706, - 0x3eb748, - 0x324583, - 0x211fc6, - 0x390ec6, - 0x326e05, - 0x326e09, - 0x28aa89, - 0x261247, - 0x12ba84, - 0x32ba87, - 0x379809, - 0x22a2c5, - 0x469c8, - 0x3d4705, - 0x205585, - 0x3706c9, - 0x2029c2, - 0x235644, - 0x203d42, - 0x2040c2, - 0x2edf05, - 0x37e948, - 0x2d4845, - 0x2e3dc3, - 0x2e3dc5, - 0x2f1dc3, - 0x211282, - 0x2342c4, - 0x206743, - 0x207002, - 0x2fd284, - 0x314903, - 0x211b42, - 0x289ec3, - 0x21b484, - 0x30f503, - 0x269644, - 0x202fc2, - 0x2213c3, - 0x219883, - 0x2075c2, - 0x2a7382, - 0x28a8c9, - 0x20dfc2, - 0x29f2c4, - 0x206782, - 0x288904, - 0x263084, - 0x30c944, - 0x203342, - 0x24a8c2, - 0x239b03, - 0x2ae143, - 0x29aa04, - 0x2ec444, - 0x329104, - 0x32bc04, - 0x326803, - 0x2f7cc3, - 0x30de04, - 0x32cf44, - 0x32d086, - 0x205402, - 0xb642, - 0x4f583, - 0x20b642, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x177c5, + 0x3256c9, + 0x283f09, + 0x2699c7, + 0x129804, + 0x329807, + 0x3cad89, + 0x223905, + 0x3be08, + 0x3c2b85, + 0x3d5685, + 0x3dbc09, + 0x206182, + 0x30f5c4, + 0x201602, + 0x202b82, + 0x2ecd85, + 0x3258c8, + 0x2cdb45, + 0x2dd4c3, + 0x2dd4c5, + 0x2ec943, + 0x20a702, + 0x22b384, + 0x203283, + 0x206702, + 0x3017c4, + 0x31dac3, + 0x20bc02, + 0x254b83, + 0x215cc4, + 0x30e003, + 0x259444, + 0x204842, + 0x219583, + 0x211c83, + 0x203c82, + 0x2b26c2, + 0x283d49, + 0x207482, + 0x298684, + 0x202002, + 0x261644, + 0x20bbc4, + 0x30ba04, + 0x202642, + 0x238382, + 0x22ddc3, + 0x31f043, + 0x2cd7c4, + 0x306a04, + 0x329984, + 0x333804, + 0x325043, + 0x3705c3, + 0x327044, + 0x32b344, + 0x32b486, + 0x3d5502, + 0x2202, + 0x47183, + 0x202202, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x36c5, 0x2000c2, - 0x20bec3, - 0x21a043, - 0x226783, - 0x201b43, - 0x20f583, - 0x25c204, - 0x28ab84, - 0x225a04, - 0x214883, - 0x24acc3, - 0x205443, - 0x30be44, - 0x3346c3, - 0x251943, - 0x389b04, - 0x3d4506, - 0x204243, - 0x14f985, - 0xf5d87, - 0x288583, - 0x7c62d088, - 0x265883, - 0x2cfcc3, - 0x21e803, - 0x2384c3, - 0x3b8305, - 0x1c3083, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x2113c3, - 0x206083, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x20bc83, - 0x214883, - 0x26c584, - 0x24acc3, - 0x2d8484, - 0x14f985, - 0x36dd05, - 0xf5d87, - 0x20b642, - 0x203142, + 0x250b03, + 0x206643, + 0x21f603, + 0x204d03, + 0x205503, + 0x2503c4, + 0x284004, + 0x294744, + 0x2109c3, + 0x21f143, + 0x219683, + 0x30af04, + 0x330b03, + 0x2375c3, + 0x383204, + 0x3c2986, + 0x207843, + 0x14cb05, + 0xf08c7, + 0x21dac3, + 0x7da24f08, + 0x2534c3, + 0x2c90c3, + 0x2721c3, + 0x23ddc3, + 0x3cc445, + 0x1b92c3, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x26a483, + 0x202bc3, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x211e43, + 0x2109c3, + 0x262784, + 0x21f143, + 0x2b2b44, + 0x14cb05, + 0x31af85, + 0xf08c7, + 0x202202, + 0x201482, 0x200382, - 0x201f42, + 0x2018c2, 0x2003c2, - 0x2d84, - 0x21a043, - 0x243544, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x225a04, - 0x214883, - 0x24acc3, - 0x219303, - 0x265a04, - 0x1c3448, - 0x21a043, - 0x208c43, - 0x18b43, - 0x12e504, - 0x2346c4, - 0x1c3448, - 0xb642, - 0x21a043, - 0x2607c4, - 0x25c204, - 0x208c43, - 0x201802, - 0x24acc3, - 0x2423c3, - 0x23984, - 0x33a505, - 0x249902, - 0x333483, - 0x1beec9, - 0xf67c6, - 0x8c108, + 0x1d4644, + 0x206643, + 0x2392c4, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x294744, + 0x2109c3, + 0x21f143, + 0x213dc3, + 0x214f04, + 0x1b9688, + 0x206643, + 0x21d783, + 0x1c36c3, + 0x12d9c4, + 0x204884, + 0x14cb05, + 0x1b9688, + 0x2202, + 0x206643, + 0x2554c4, + 0x2503c4, + 0x21d783, + 0x201582, + 0x21f143, + 0x237343, + 0x1bc04, + 0x33d845, + 0x23d942, + 0x3de983, + 0x1a2389, + 0xf1506, + 0x84b08, 0x2000c2, - 0x1c3448, - 0x7fafe207, - 0x20b642, - 0x226783, - 0x20f583, + 0x1b9688, + 0x80fbed87, + 0x202202, + 0x21f603, + 0x205503, 0x2005c2, - 0x24acc3, - 0x54c2, + 0x21f143, + 0x8f42, 0x82, - 0x23984, + 0x1bc04, 0xc2, - 0x1d5bc7, - 0x17149, - 0x5c83, - 0x1c3448, - 0x1da43, - 0x80330047, - 0x1a043, - 0xa8408, - 0x26783, - 0x85587, - 0xf583, - 0x1eeb86, - 0xbc83, - 0xb5fc8, - 0xdf908, - 0x1d8b03, - 0x8f606, - 0x8053b0c5, - 0x1b8b85, - 0x14e43, - 0xa2388, - 0xea7c8, - 0x69243, - 0x808fb886, - 0x102dc5, - 0x1bf644, - 0x412c7, - 0x14883, - 0x7803, - 0x4acc3, - 0x4d42, - 0x19720a, - 0x9c83, - 0x80edc7cc, - 0xedfc3, - 0x1b04, - 0x1215cb, - 0x121b88, - 0xa4fc2, - 0x123d83, - 0x1416c47, - 0x15d4b87, - 0x14e3e88, - 0x1523d83, - 0x1cd6c8, - 0x149a144, - 0x1eafcb, - 0x13c02, - 0x13b587, - 0x1547c4, + 0x1ce647, + 0x172c9, + 0x27c3, + 0x1b9688, + 0x69743, + 0x8172e887, + 0x6643, + 0xa0588, + 0x1f603, + 0x58287, + 0x5503, + 0x3fa46, + 0x11e43, + 0x42308, + 0xd89c8, + 0x1d1483, + 0x87f86, + 0x81937585, + 0x1db6c5, + 0x6543, + 0x9b108, + 0xe5dc8, + 0x5e943, + 0x81cf4f06, + 0xfa885, + 0x1a2b04, + 0x36287, + 0x109c3, + 0x4643, + 0x1f143, + 0x15c82, + 0x18fd0a, + 0x20e43, + 0x8220ff4c, + 0xcdc03, + 0x150c4, + 0x120f8b, + 0x121548, + 0x9cfc2, + 0x123b43, + 0x1410087, + 0x153b287, + 0x151a888, + 0x1523b43, + 0x1c7448, + 0x14e9e04, + 0xfd6cb, + 0xd842, + 0x137a47, + 0x14e6c4, + 0xf0c87, 0x2000c2, - 0x20b642, - 0x243544, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, - 0x2384c3, - 0x214883, - 0x24acc3, - 0x229a83, - 0x219303, - 0x15ac3, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x18b43, - 0x26783, - 0x8300f583, - 0x833c7, - 0x21a043, - 0x226783, - 0x20f583, - 0x25c204, - 0x2384c3, - 0x214883, - 0x24acc3, - 0x22ccc2, + 0x202202, + 0x2392c4, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, + 0x23ddc3, + 0x2109c3, + 0x21f143, + 0x220283, + 0x213dc3, + 0x1e143, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x1c36c3, + 0x1f603, + 0x84405503, + 0x7e607, + 0x206643, + 0x21f603, + 0x205503, + 0x2503c4, + 0x23ddc3, + 0x2109c3, + 0x21f143, + 0x224b42, 0x2000c1, 0x2000c2, 0x200201, - 0x340a82, - 0x1c3448, - 0x226f45, + 0x33ec82, + 0x1b9688, + 0x220a05, 0x200101, - 0x1a043, - 0x3e084, + 0x6643, + 0x32184, 0x200cc1, 0x200501, 0x200bc1, - 0x2590c2, - 0x396b44, - 0x2590c3, + 0x24e142, + 0x38f644, + 0x24e143, 0x200041, 0x200801, 0x200181, - 0x37d06, - 0x1e144c, + 0x2dac6, + 0x1e3c4c, 0x200701, - 0x324e47, - 0x306d0f, - 0x3ccd06, + 0x368ec7, + 0x30524f, + 0x3e53c6, 0x2004c1, - 0x32e546, + 0x32da06, 0x200ec1, - 0x10210c, + 0xf9d4c, 0x200581, - 0x3c2a4e, + 0x3b8c8e, 0x2003c1, - 0x24acc3, - 0x2015c1, - 0x83ed2ac4, - 0x23ba45, - 0x204d42, - 0x219085, + 0x21f143, + 0x201401, + 0x852cbdc4, + 0x241c05, + 0x215c82, + 0x212fc5, 0x200401, 0x200741, 0x2007c1, - 0x249902, + 0x23d942, 0x200081, 0x200f81, - 0x202d81, - 0x203481, - 0x2033c1, - 0x2802, - 0x67409, - 0x1c3448, - 0x21a043, - 0x226783, - 0x1008c8, - 0x20f583, - 0x214883, - 0x24acc3, - 0x221c03, - 0x1f3503, - 0x21a043, - 0x20f583, - 0xa4f08, - 0x214e43, - 0x214883, - 0x2a783, - 0x24acc3, - 0x84f34308, - 0x1f31c3, - 0x112c8, - 0x13c82, - 0x17c3, - 0xa842, - 0x3342, - 0x14f985, - 0x1c3448, - 0xa4806, - 0x1ec847, - 0x14f985, - 0xb284, - 0x19a3c8, - 0x550c4, - 0x12c887, - 0x6af04, - 0x5c28c, - 0x1e6304, - 0x2bd85, - 0x67409, - 0x1f0487, - 0xe1548, - 0x2aac6, - 0x12e0a, - 0x157714a, - 0x127984, - 0x15886c3, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x214883, - 0x24acc3, - 0x205d83, - 0x1c3448, - 0x21a043, - 0x226783, - 0x2eef84, - 0x24acc3, - 0x2cf905, - 0x26b544, - 0x21a043, - 0x226783, - 0x20f583, + 0x208f81, + 0x205381, + 0x201841, + 0x5682, + 0x5c4c9, + 0x1b9688, + 0x206643, + 0x21f603, + 0x58a88, + 0x205503, + 0x2109c3, + 0x21f143, + 0x219dc3, + 0x1f2c83, + 0x206643, + 0x205503, + 0x9cf08, + 0x206543, + 0x2109c3, + 0x3d43, + 0x21f143, + 0x863ddc88, + 0x1f2943, + 0x1d7808, + 0x886c2, + 0x29c3, + 0x4c02, + 0x2642, + 0x14cb05, + 0x1b9688, + 0x9da06, + 0x13b947, + 0x14cb05, + 0xfc204, + 0x1593348, + 0x4afc4, + 0x12ae87, + 0x614c4, + 0x5044c, + 0x1e8684, + 0x66545, + 0x5c4c9, + 0x1a7f47, + 0xd0b08, + 0x2b6c6, + 0x1c208a, + 0x15e71ca, + 0x130e44, + 0x1582cc3, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x2109c3, + 0x21f143, + 0x2028c3, + 0x1b9688, + 0x206643, + 0x21f603, + 0x2e4084, + 0x21f143, + 0x29f085, + 0x277a04, + 0x206643, + 0x21f603, + 0x205503, 0x200ec2, - 0x214883, - 0x24acc3, - 0x19303, - 0xf9b06, - 0xc8204, - 0x12fb86, - 0x20bec3, - 0x21a043, - 0x226783, - 0x20f583, + 0x2109c3, + 0x21f143, + 0x13dc3, + 0x1568c05, + 0xf2f86, + 0xc1504, + 0x12d506, + 0x250b03, + 0x206643, + 0x21f603, + 0x205503, 0x200ec2, - 0x214883, - 0x24acc3, - 0x219303, - 0x20b642, - 0x21a043, - 0x23e609, - 0x226783, - 0x2c22c9, - 0x214e43, - 0x214883, - 0x90544, - 0x24acc3, - 0x30b648, - 0x245ac7, - 0x33a505, - 0x62386, - 0xcc388, - 0x13a509, - 0x1e5ac8, - 0x1d5bc7, - 0x105e0a, - 0x1a9fcb, - 0x12e787, - 0x4d688, - 0x1e244a, - 0xcea48, - 0x17149, - 0x302c7, - 0x1bb647, - 0x1ec048, - 0xa8408, - 0x4ee4f, - 0xb79c5, - 0xa8707, - 0x1eeb86, - 0x1afc47, - 0x12be46, - 0xb5fc8, - 0xc28c6, - 0x1eb547, - 0x135dc9, - 0x36c87, - 0x1b3209, - 0xd5949, - 0xdcac6, - 0xdf908, - 0xcc645, - 0xf808a, - 0xea7c8, - 0x69243, - 0xf2648, - 0x412c7, - 0x171045, - 0xa1050, - 0x7803, - 0x1eb3c7, - 0x16085, - 0x106b48, - 0x1ea2c5, - 0xedfc3, - 0x1688, - 0x52c6, - 0x164b89, - 0xc5407, - 0x1bf18b, - 0x82404, - 0x11ae04, - 0x1215cb, - 0x121b88, - 0x122347, - 0x14f985, - 0x21a043, - 0x226783, - 0x204703, - 0x24acc3, - 0x24c843, - 0x20f583, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0xabf8b, + 0x2109c3, + 0x21f143, + 0x213dc3, + 0x202202, + 0x206643, + 0x232709, + 0x21f603, + 0x2bb789, + 0x206543, + 0x2109c3, + 0x88a84, + 0x21f143, + 0x30a708, + 0x238c07, + 0x33d845, + 0xa0cc6, + 0x133f48, + 0x13d849, + 0x1e7e48, + 0x1ce647, + 0x10434a, + 0x76acb, + 0x12dc47, + 0x43e08, + 0x1e4c4a, + 0xc8748, + 0x172c9, + 0x28907, + 0x1b6307, + 0x1bda88, + 0xa0588, + 0x46a4f, + 0xadf45, + 0xa0887, + 0x3fa46, + 0x1ec787, + 0x122786, + 0x42308, + 0xfb006, + 0x1d3807, + 0x1458c9, + 0x1b79c7, + 0x1c7849, + 0xce6c9, + 0xd63c6, + 0xd89c8, + 0x134205, + 0x7628a, + 0xe5dc8, + 0x5e943, + 0xecbc8, + 0x36287, + 0xfe605, + 0x162810, + 0x4643, + 0x1af247, + 0x16205, + 0x105088, + 0xfff05, + 0xcdc03, + 0xfd948, + 0x1d53c6, + 0x5e249, + 0xbe787, + 0x1a264b, + 0x118384, + 0x119804, + 0x120f8b, + 0x121548, + 0x122407, + 0x14cb05, + 0x206643, + 0x21f603, + 0x3d6403, + 0x21f143, + 0x243143, + 0x205503, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0xaf8cb, 0x2000c2, - 0x20b642, - 0x24acc3, - 0x45c2, + 0x202202, + 0x21f143, + 0x3402, 0xec2, 0xf82, - 0x1c3448, - 0x13bf09, - 0x1cd6c8, - 0xb642, + 0x1b9688, + 0x132d09, + 0x1c7448, + 0x2202, 0x2000c2, - 0x20b642, + 0x202202, 0x200382, 0x2005c2, - 0x2024c2, - 0x214883, - 0x18846, + 0x201e42, + 0x2109c3, + 0x12246, 0x2003c2, - 0x23984, + 0x1bc04, 0x2000c2, - 0x20bec3, - 0x20b642, - 0x21a043, - 0x226783, + 0x250b03, + 0x202202, + 0x206643, + 0x21f603, 0x200382, - 0x20f583, - 0x20bc83, - 0x214e43, - 0x225a04, - 0x214883, - 0x21c243, - 0x24acc3, - 0x201b04, + 0x205503, + 0x211e43, + 0x206543, + 0x294744, + 0x2109c3, + 0x20f4c3, + 0x21f143, + 0x2150c4, 0x200f83, - 0x20f583, - 0x20b642, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x208c43, - 0x24acc3, - 0x3ceb47, - 0x21a043, - 0x242ec7, - 0x32b106, - 0x212e83, - 0x226dc3, - 0x20f583, - 0x211983, - 0x25c204, - 0x2580c4, - 0x34ae46, - 0x23bc83, - 0x214883, - 0x13404b, - 0x24acc3, - 0x2cf905, - 0x336d44, - 0x3db4c3, - 0x2543c3, - 0x2e66c7, - 0x23ae45, - 0x4f43, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x1c77c4, - 0x24acc3, - 0xbb43, - 0x8c314a8c, - 0xe28c3, - 0x68ec7, - 0x8b246, - 0x1d95c7, - 0x1369c5, - 0x214202, - 0x25e203, - 0x21c683, - 0x20bec3, - 0x8ce1a043, - 0x20c942, - 0x226783, - 0x207783, - 0x20f583, - 0x25c204, - 0x20de83, - 0x349143, - 0x214e43, - 0x225a04, - 0x8d203642, - 0x214883, - 0x24acc3, - 0x211b43, - 0x219d83, - 0x214903, - 0x22ccc2, + 0x205503, + 0x202202, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21d783, + 0x21f143, + 0x206643, + 0x214183, + 0x20fd03, + 0x205503, + 0x2036c3, + 0x2503c4, + 0x296584, + 0x321b86, + 0x241f83, + 0x2109c3, + 0x1dd9cb, + 0x21f143, + 0x29f085, + 0x2e0f47, + 0x1d6c43, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x1bd404, + 0x21f143, + 0x19a43, + 0x8db1300c, + 0xdb903, + 0x71bc7, + 0x862c6, + 0x1db74c, + 0xd9807, + 0x1d3f85, + 0x210342, + 0x25a503, + 0x2d9c43, + 0x250b03, + 0x8ea06643, + 0x211ac2, + 0x21f603, + 0x203b43, + 0x205503, + 0x2503c4, + 0x33c683, + 0x3bec03, + 0x206543, + 0x294744, + 0x8ee024c2, + 0x2109c3, + 0x21f143, + 0x2330c3, + 0x206383, + 0x210a43, + 0x224b42, 0x200f83, - 0x1c3448, - 0x20f583, - 0x18b43, - 0x220c04, - 0x20bec3, - 0x20b642, - 0x21a043, - 0x243544, - 0x226783, - 0x20f583, - 0x25c204, - 0x20bc83, - 0x279504, - 0x230944, - 0x2f3c06, - 0x225a04, - 0x214883, - 0x24acc3, - 0x205443, - 0x27b8c6, - 0x474cb, - 0x38286, - 0x489ca, - 0x128d8a, - 0x1c3448, - 0x22f8c4, - 0x8e61a043, - 0x20be84, - 0x226783, - 0x2d1704, - 0x20f583, - 0x37ee83, - 0x214e43, - 0x214883, - 0x24acc3, - 0x23c83, - 0x35174b, - 0x3de04a, - 0x3f2ccc, - 0xfc148, + 0x1b9688, + 0x205503, + 0x1c36c3, + 0x22ffc4, + 0x250b03, + 0x202202, + 0x206643, + 0x2392c4, + 0x21f603, + 0x205503, + 0x2503c4, + 0x211e43, + 0x221e44, + 0x228f84, + 0x2ee6c6, + 0x294744, + 0x2109c3, + 0x21f143, + 0x219683, + 0x28e506, + 0x3c90b, + 0x34106, + 0x436ca, + 0x126b8a, + 0x1b9688, + 0x2204c4, + 0x90206643, + 0x34d284, + 0x21f603, + 0x212804, + 0x205503, + 0x325e03, + 0x206543, + 0x2109c3, + 0x21f143, + 0x1ccc3, + 0x34ec4b, + 0x3dfe4a, + 0x3f244c, + 0xf5848, 0x2000c2, - 0x20b642, + 0x202202, 0x200382, - 0x239805, - 0x25c204, + 0x22f2c5, + 0x2503c4, 0x200ec2, - 0x214e43, - 0x230944, - 0x201f42, + 0x206543, + 0x228f84, + 0x2018c2, 0x2003c2, - 0x206382, - 0x22ccc2, - 0xbec3, - 0x6282, - 0x2de849, - 0x27fc88, - 0x366989, - 0x3a7f49, - 0x23240a, - 0x31170a, - 0x202882, - 0x36e3c2, - 0xb642, - 0x21a043, - 0x203682, - 0x24ed46, - 0x3347c2, - 0x4a282, + 0x202ec2, + 0x224b42, + 0x50b03, + 0x2dc2, + 0x2da309, + 0x27ad48, + 0x239b49, + 0x3a0c49, + 0x203e8a, + 0x21898a, + 0x205202, + 0x3547c2, + 0x2202, + 0x206643, + 0x22dd42, + 0x246946, + 0x330c02, + 0x41402, 0x200d82, - 0x3aa34e, - 0x22140e, - 0x214807, - 0x218342, - 0x226783, - 0x20f583, - 0x2380c2, + 0x276e4e, + 0x2195ce, + 0x210947, + 0x211742, + 0x21f603, + 0x205503, + 0x20c7c2, 0x2005c2, - 0x31a43, - 0x24374f, - 0x24f082, - 0x3cdac7, - 0x2ccdc7, - 0x3382c7, - 0x2d12cc, - 0x2dc1cc, - 0x2208c4, - 0x29588a, - 0x221342, - 0x20af02, - 0x2d7504, + 0xfc83, + 0x2394cf, + 0x246c82, + 0x2c6007, + 0x2cac07, + 0x32efc7, + 0x2ca4cc, + 0x2e010c, + 0x22fc84, + 0x28374a, + 0x219502, + 0x206982, + 0x2d0244, 0x200702, - 0x251ec2, - 0x2dc404, - 0x21f082, - 0x212a82, - 0x22043, - 0x2c2947, - 0x320f45, - 0x224902, - 0x31f984, - 0x39b302, - 0x2fba08, - 0x214883, - 0x385ec8, - 0x207602, - 0x220a85, - 0x3a5a06, - 0x24acc3, - 0x208782, - 0x307847, - 0x4d42, - 0x256145, - 0x37b505, + 0x237b42, + 0x2e0344, + 0x217702, + 0x206b42, + 0xf743, + 0x2fb087, + 0x2e4c85, + 0x21a202, + 0x31e584, + 0x394cc2, + 0x2f5088, + 0x2109c3, + 0x37f588, + 0x201f82, + 0x22fe45, + 0x39e446, + 0x21f143, + 0x204f82, + 0x305d87, + 0x15c82, + 0x24c4c5, + 0x34d785, 0x2010c2, - 0x20b242, - 0x3d074a, - 0x28358a, - 0x2827c2, - 0x2b6ac4, - 0x201b02, - 0x325548, - 0x203b42, - 0x22a888, + 0x23f602, + 0x29430a, + 0x27e7ca, + 0x27ccc2, + 0x2ad344, + 0x202a42, + 0x301e08, + 0x218182, + 0x3d2048, 0x1101, - 0x31c507, - 0x31d209, - 0x2561c2, - 0x3231c5, - 0x381a85, - 0x21310b, - 0x34b3cc, - 0x236f48, - 0x33b3c8, - 0x205402, - 0x2a5982, + 0x31b347, + 0x31c049, + 0x24c542, + 0x322f85, + 0x275c45, + 0x20f90b, + 0x32210c, + 0x22d408, + 0x337888, + 0x3d5502, + 0x29e002, 0x2000c2, - 0x1c3448, - 0x20b642, - 0x21a043, + 0x1b9688, + 0x202202, + 0x206643, 0x200382, - 0x201f42, + 0x2018c2, 0x2003c2, - 0x24acc3, - 0x206382, + 0x21f143, + 0x202ec2, 0x2000c2, - 0x14f985, - 0x8fa0b642, - 0x114bc4, - 0x44d85, - 0x90a0f583, - 0xc3fc4, - 0x222043, + 0x14cb05, + 0x91602202, + 0x113144, + 0x3ab05, + 0x92605503, + 0xbd504, + 0x20f743, 0x200ec2, - 0x214883, - 0x3c8a03, - 0x90e4acc3, - 0x305103, - 0x2e7906, - 0x198285, - 0x1619303, - 0x1bf3c5, - 0x14f985, - 0x1519cb, - 0x1c3448, - 0x8fe0dcc8, - 0x5aec7, - 0x903c488a, - 0x10210c, - 0x1c3247, - 0x1a4045, - 0x907ecf49, - 0x2facd, - 0x8a3c2, - 0x122182, + 0x2109c3, + 0x381cc3, + 0x92a1f143, + 0x303643, + 0x2e19c6, + 0x191445, + 0x1613dc3, + 0x1a2885, + 0x14cb05, + 0x14eecb, + 0x1b9688, + 0x91b3c4c8, + 0x671c7, + 0x91ed240a, + 0xf9d4c, + 0x1b9487, + 0x1cf805, + 0x92391889, + 0x206cd, + 0x3f842, + 0x121b42, 0xc01, - 0x103e84, - 0xbf58a, - 0x833c7, - 0x16dc4, - 0x16e03, - 0x16e04, - 0x91604042, - 0x91a00b02, - 0x91e01d42, - 0x922016c2, - 0x9260f202, - 0x92a03d82, - 0xf5d87, - 0x92e0b642, - 0x93218402, - 0x9362b602, - 0x93a101c2, - 0x221403, - 0x36604, - 0x93f008c8, - 0x239cc3, - 0x94219482, - 0x727c8, - 0x94603f82, - 0x871c7, - 0x1c1087, - 0x94a00042, - 0x94e04142, - 0x95200182, - 0x95606502, - 0x95a13f82, - 0x95e005c2, - 0x1a8385, - 0x21e503, - 0x3cc144, - 0x96200702, - 0x9661c4c2, - 0x96a03e02, - 0x9bc0b, - 0x96e03f02, - 0x976593c2, - 0x97a00ec2, - 0x97e024c2, - 0xa2388, - 0x9822ab02, - 0x98601942, - 0x98a0d3c2, - 0x98e82182, - 0x99203642, - 0x99609082, - 0x99a01f42, - 0x99e12b42, - 0x9a209882, - 0x9a60b482, - 0x149204, - 0x23d1c3, - 0x9aa0b342, - 0x9ae1a182, - 0x9b206a42, - 0x9b6006c2, - 0x9ba003c2, - 0x9be07002, - 0x104c48, - 0xac107, - 0x9c205442, - 0x9c6026c2, - 0x9ca06382, - 0x9ce213c2, - 0x16018c, - 0x9d2021c2, - 0x9d62ebc2, - 0x9da07182, - 0x9de07882, - 0x9e20b382, - 0x9e609142, - 0x9ea0d442, - 0x9ee138c2, - 0x9f28c442, - 0x9f68cd82, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x24b03, - 0xcd883, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x9720de83, - 0x224b03, - 0x3b8384, - 0x366886, - 0x310783, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x378049, - 0x206282, - 0x370903, - 0x2d5c43, - 0x20cac5, - 0x207783, - 0x20de83, - 0x224b03, - 0x2f33c3, - 0x23fac3, - 0x227b89, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x20de83, - 0x224b03, - 0x206282, - 0x206282, - 0x20de83, - 0x224b03, - 0x9fe1a043, - 0x226783, - 0x3a8183, - 0x214e43, - 0x214883, - 0x24acc3, - 0x1c3448, - 0x20b642, - 0x21a043, - 0x214883, - 0x24acc3, - 0x14e5c2, - 0x21a043, - 0x226783, - 0x20f583, - 0xa0913002, - 0x214e43, - 0x214883, - 0x24acc3, + 0xfbc44, + 0xb7d8a, + 0x7e607, + 0x13550f, + 0x16f44, + 0x16f83, + 0x16f84, + 0x6a08b, + 0xa74d, + 0x9320bb02, + 0x93600b02, + 0x93a028c2, + 0x93e01942, + 0x94203602, + 0x94601782, + 0xf08c7, + 0x94a02202, + 0x94e11802, + 0x95223fc2, + 0x956023c2, + 0x2195c3, + 0x1b7344, + 0x95a58a88, + 0x22df83, + 0x95e13f42, + 0x6b4c8, + 0x96208782, + 0x55dc7, + 0x1b5407, + 0x96600042, + 0x96a03582, + 0x96e00182, + 0x97203042, + 0x97604142, + 0x97a005c2, + 0x186f05, + 0x2136c3, + 0x3bf3c4, + 0x97e00702, + 0x98239842, + 0x98604fc2, + 0x93e0b, + 0x98a05e42, + 0x9924e442, + 0x99600ec2, + 0x99a01e42, + 0x9b108, + 0x99e1cf02, + 0x9a201502, + 0x9a603c42, + 0x9aa7d202, + 0x9ae024c2, + 0x9b203702, + 0x9b6018c2, + 0x9ba1e342, + 0x9be0abc2, + 0x9c239e02, + 0x11ff04, + 0x3ccd03, + 0x9c636d82, + 0x9ca06782, + 0x9ce0aec2, + 0x9d2006c2, + 0x9d6003c2, + 0x9da06702, + 0x102ac8, + 0xafa47, + 0x9de02b02, + 0x9e202b42, + 0x9e602ec2, + 0x9ea06ec2, + 0x167fcc, + 0x9ee01b42, + 0x9f2272c2, + 0x9f616002, + 0x9fa046c2, + 0x9fe0c302, + 0xa0204002, + 0xa06059c2, + 0xa0a03dc2, + 0xa0e84e42, + 0xa1285782, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x1a403, + 0xd58c3, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x98f3c683, + 0x21a403, + 0x3cc4c4, + 0x239a46, + 0x30e543, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x3de009, + 0x202dc2, + 0x3dbe43, + 0x2ce9c3, + 0x33b705, + 0x203b43, + 0x33c683, + 0x21a403, + 0x2eddc3, + 0x240b83, + 0x221649, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x33c683, + 0x21a403, + 0x202dc2, + 0x202dc2, + 0x33c683, + 0x21a403, + 0xa1a06643, + 0x21f603, + 0x3a0e83, + 0x206543, + 0x2109c3, + 0x21f143, + 0x1b9688, + 0x202202, + 0x206643, + 0x2109c3, + 0x21f143, + 0x14b742, + 0x206643, + 0x21f603, + 0x205503, + 0xa2500dc2, + 0x206543, + 0x2109c3, + 0x21f143, 0xcc1, - 0x2346c4, - 0x262603, - 0x20b642, - 0x21a043, - 0x3bfcc3, - 0x226783, - 0x2607c4, - 0x204703, - 0x20f583, - 0x25c204, - 0x20bc83, - 0x214e43, - 0x214883, - 0x208c43, - 0x24acc3, - 0x240f03, - 0x2423c3, - 0x33a505, - 0x23fac3, + 0x204884, + 0x266483, + 0x202202, + 0x206643, + 0x3a3183, + 0x21f603, + 0x2554c4, + 0x3d6403, + 0x205503, + 0x2503c4, + 0x211e43, + 0x206543, + 0x2109c3, + 0x21d783, + 0x21f143, + 0x235ec3, + 0x237343, + 0x33d845, + 0x240b83, 0x200f83, 0x882, - 0x20b642, - 0x21a043, - 0x20de83, - 0x214883, - 0x24acc3, + 0x202202, + 0x206643, + 0x33c683, + 0x2109c3, + 0x21f143, 0x2000c2, - 0x20bec3, - 0x1c3448, - 0x21a043, - 0x226783, - 0x20f583, - 0x23c686, - 0x25c204, - 0x20bc83, - 0x225a04, - 0x214883, - 0x24acc3, - 0x205443, - 0x11d44, - 0x16e3c2, - 0x21a043, - 0x24dc3, - 0x226783, + 0x250b03, + 0x1b9688, + 0x206643, + 0x21f603, + 0x205503, + 0x231386, + 0x2503c4, + 0x211e43, + 0x294744, + 0x2109c3, + 0x21f143, + 0x219683, + 0x6204, + 0x1547c2, + 0x206643, + 0x1a6c3, + 0x21f603, 0xec2, - 0x214883, - 0x24acc3, - 0x791c4, - 0x78884, - 0x19c2, - 0x1568287, - 0x152347, - 0x21a043, - 0x38286, - 0x226783, - 0x20f583, - 0xfda46, - 0x214883, - 0x24acc3, - 0x337788, - 0x33b209, - 0x34a749, - 0x354348, - 0x3a7d88, - 0x3a7d89, - 0x33060a, - 0x369eca, - 0x3a280a, - 0x3a8f8a, - 0x3de04a, - 0x3ede8b, - 0x365a4d, - 0x24a2cf, - 0x24fe10, - 0x36e74d, - 0x38ca8c, - 0x3a8ccb, - 0x1a3447, - 0x13454e, - 0x138a0a, - 0x13af09, - 0x14a749, - 0x16c949, - 0x16cb8a, - 0x176f49, - 0x177889, - 0x17898b, - 0x19c08, - 0x112e48, - 0x59d09, - 0x149e747, - 0xe9545, - 0x21a043, - 0x226783, - 0x20f583, - 0x214e43, - 0x214883, - 0x24acc3, - 0x4acc3, + 0x2109c3, + 0x21f143, + 0x72e84, + 0x72544, + 0xc642, + 0x158a7c7, + 0x7247, + 0x206643, + 0x34106, + 0x21f603, + 0x205503, + 0xf7e06, + 0x2109c3, + 0x21f143, + 0x3334c8, + 0x3376c9, + 0x348109, + 0x350ac8, + 0x3a0a88, + 0x3a0a89, + 0x32e0ca, + 0x3649ca, + 0x39b18a, + 0x3a1a4a, + 0x3dfe4a, + 0x3ebacb, + 0x24144d, + 0x242a0f, + 0x246150, + 0x36894d, + 0x38618c, + 0x3a178b, + 0x1784c7, + 0x13098e, + 0x13530a, + 0x1373c9, + 0x148109, + 0x167709, + 0x16794a, + 0x171749, + 0x1724c9, + 0x172fcb, + 0x6208, + 0x100c08, + 0x1709, + 0x1495607, + 0xe3dc5, + 0x206643, + 0x21f603, + 0x205503, + 0x206543, + 0x2109c3, + 0x21f143, + 0x1f143, 0x2000c2, - 0x23ac85, - 0x222003, - 0xa4e0b642, - 0x226783, - 0x20f583, - 0x2c1a07, - 0x21e803, - 0x214e43, - 0x214883, - 0x262243, - 0x21c243, - 0x20f0c3, - 0x208c43, - 0x24acc3, - 0x3ae506, - 0x249902, + 0x3be445, + 0x206b03, + 0xa6a02202, + 0x21f603, + 0x205503, + 0x3907c7, + 0x2721c3, + 0x206543, + 0x2109c3, + 0x22b643, + 0x20f4c3, + 0x2034c3, + 0x21d783, + 0x21f143, + 0x3a6386, + 0x23d942, 0x200f83, - 0x1c3448, + 0x1b9688, 0x2000c2, - 0x20bec3, - 0x20b642, - 0x21a043, - 0x226783, - 0x20f583, - 0x25c204, - 0x214e43, - 0x214883, - 0x24acc3, - 0x219303, - 0x152347, - 0x13c02, - 0x148744, - 0x153a806, + 0x250b03, + 0x202202, + 0x206643, + 0x21f603, + 0x205503, + 0x2503c4, + 0x206543, + 0x2109c3, + 0x21f143, + 0x213dc3, + 0x7247, + 0xd842, + 0x13ad44, + 0x1544746, 0x2000c2, - 0x20b642, - 0x20f583, - 0x214e43, - 0x24acc3, + 0x202202, + 0x205503, + 0x206543, + 0x21f143, } // children is the list of nodes' children, the parent's wildcard bit and the @@ -9896,667 +9910,674 @@ var children = [...]uint32{ 0x40000000, 0x50000000, 0x60000000, - 0x17ac5e4, - 0x17b05eb, - 0x17b45ec, - 0x17d45ed, - 0x192c5f5, - 0x194064b, - 0x1954650, - 0x1968655, - 0x198465a, - 0x19a8661, - 0x19c066a, - 0x1a0c670, - 0x1a10683, - 0x1a38684, - 0x1a3c68e, - 0x1a5468f, - 0x1a58695, + 0x179c5e0, + 0x17a05e7, + 0x17a45e8, + 0x17c45e9, + 0x191c5f1, + 0x1930647, + 0x194464c, + 0x1958651, + 0x1974656, + 0x199865d, + 0x19b0666, + 0x1a0066c, + 0x1a04680, + 0x1a3c681, + 0x1a4068f, + 0x1a58690, 0x1a5c696, - 0x1aa0697, - 0x1aa46a8, + 0x1a60697, + 0x1aa4698, 0x1aa86a9, - 0x21aac6aa, - 0x61ab46ab, - 0x21abc6ad, - 0x1b046af, - 0x1b106c1, - 0x21b146c4, - 0x1b386c5, - 0x1b3c6ce, - 0x1b506cf, - 0x1b546d4, - 0x1b746d5, - 0x1ba46dd, - 0x1bc46e9, - 0x1bcc6f1, - 0x1bf46f3, - 0x1c106fd, - 0x21c14704, + 0x1aac6aa, + 0x21ab06ab, + 0x61ab86ac, + 0x21ac06ae, + 0x1b086b0, + 0x1b146c2, + 0x21b186c5, + 0x1b3c6c6, + 0x1b406cf, + 0x1b546d0, + 0x1b586d5, + 0x1b786d6, + 0x1ba86de, + 0x1bc86ea, + 0x1bd06f2, + 0x1bf86f4, + 0x1c146fe, 0x21c18705, - 0x1c1c706, - 0x1cb4707, - 0x1cc872d, - 0x1cdc732, - 0x1d14737, - 0x1d24745, - 0x1d38749, - 0x1d5074e, - 0x1df4754, - 0x202877d, - 0x203080a, - 0x2203480c, + 0x21c1c706, + 0x1c20707, + 0x1cb8708, + 0x1ccc72e, + 0x1ce0733, + 0x1d18738, + 0x1d28746, + 0x1d3c74a, + 0x1d5474f, + 0x1df8755, + 0x202c77e, + 0x203480b, 0x2203880d, - 0x20a480e, - 0x2110829, - 0x2128844, - 0x213c84a, - 0x214084f, + 0x2203c80e, + 0x20a880f, + 0x211482a, + 0x212c845, + 0x214084b, 0x2144850, - 0x214c851, - 0x2164853, - 0x2168859, - 0x218485a, - 0x21d8861, - 0x21dc876, - 0x221e0877, - 0x2200878, - 0x2204880, - 0x2208881, - 0x2238882, - 0x6223c88e, - 0x2224488f, - 0x22248891, - 0x228c892, - 0x622908a3, - 0x22a48a4, - 0x23048a9, - 0x223088c1, - 0x2230c8c2, - 0x223148c3, + 0x2148851, + 0x2150852, + 0x2168854, + 0x216c85a, + 0x218885b, + 0x21dc862, + 0x21e0877, + 0x221e4878, + 0x2208879, + 0x2220c882, + 0x2210883, + 0x2214884, + 0x2244885, + 0x62248891, + 0x22250892, + 0x22254894, + 0x2298895, + 0x6229c8a6, + 0x22b08a7, + 0x23108ac, + 0x223148c4, 0x223188c5, - 0x2231c8c6, - 0x23208c7, - 0x23288c8, + 0x223208c6, + 0x223248c8, + 0x223288c9, 0x232c8ca, - 0x223388cb, - 0x223408ce, - 0x23508d0, - 0x23608d4, - 0x24148d8, - 0x2418905, - 0x22428906, - 0x2242c90a, - 0x2243490b, - 0x249090d, - 0x2494924, - 0x2498925, - 0x249c926, - 0x2a90927, - 0x2a94aa4, - 0x22b3caa5, - 0x22b40acf, - 0x22b44ad0, - 0x22b50ad1, - 0x22b54ad4, - 0x22b60ad5, - 0x22b64ad8, - 0x22b68ad9, - 0x22b6cada, + 0x23348cb, + 0x23388cd, + 0x223448ce, + 0x2234c8d1, + 0x235c8d3, + 0x236c8d7, + 0x24208db, + 0x2424908, + 0x22434909, + 0x2243890d, + 0x2244090e, + 0x249c910, + 0x24a0927, + 0x24a4928, + 0x24a8929, + 0x2a9c92a, + 0x2aa0aa7, + 0x22b48aa8, + 0x22b4cad2, + 0x22b50ad3, + 0x22b5cad4, + 0x22b60ad7, + 0x22b6cad8, 0x22b70adb, 0x22b74adc, - 0x22b80add, - 0x22b84ae0, - 0x22b90ae1, - 0x22b94ae4, - 0x22b98ae5, - 0x22b9cae6, - 0x22ba8ae7, - 0x22bacaea, - 0x22bb8aeb, - 0x22bbcaee, - 0x22bc0aef, - 0x22bc4af0, - 0x2bc8af1, + 0x22b78add, + 0x22b7cade, + 0x22b80adf, + 0x22b8cae0, + 0x22b90ae3, + 0x22b9cae4, + 0x22ba0ae7, + 0x22ba4ae8, + 0x22ba8ae9, + 0x22bb4aea, + 0x22bb8aed, + 0x22bc4aee, + 0x22bc8af1, 0x22bccaf2, - 0x22bd8af3, - 0x22bdcaf6, - 0x2be0af7, - 0x2be8af8, - 0x62bf4afa, - 0x22bfcafd, - 0x2c40aff, - 0x22c60b10, - 0x22c64b18, - 0x22c68b19, - 0x22c70b1a, - 0x22c78b1c, - 0x22c7cb1e, - 0x22c80b1f, - 0x22c88b20, + 0x22bd0af3, + 0x2bd4af4, + 0x22bd8af5, + 0x22be4af6, + 0x22be8af9, + 0x2becafa, + 0x2bf4afb, + 0x62c00afd, + 0x22c08b00, + 0x2c4cb02, + 0x22c6cb13, + 0x22c70b1b, + 0x22c74b1c, + 0x22c7cb1d, + 0x22c84b1f, + 0x22c88b21, 0x22c8cb22, - 0x22c90b23, - 0x2c94b24, - 0x22cc0b25, - 0x22cc4b30, - 0x22cc8b31, - 0x2cccb32, - 0x22cd0b33, + 0x22c94b23, + 0x22c98b25, + 0x22c9cb26, + 0x22ca0b27, + 0x2ca4b28, + 0x22cd0b29, 0x22cd4b34, - 0x22ce0b35, + 0x22cd8b35, + 0x2cdcb36, + 0x22ce0b37, 0x22ce4b38, - 0x2ce8b39, - 0x2cf0b3a, - 0x2cfcb3c, - 0x2d04b3f, - 0x2d20b41, - 0x2d38b48, - 0x2d3cb4e, - 0x2d4cb4f, - 0x2d58b53, - 0x2d8cb56, - 0x2d94b63, - 0x22d98b65, - 0x2db0b66, - 0x22db8b6c, + 0x22cf0b39, + 0x22cf4b3c, + 0x2cf8b3d, + 0x2d00b3e, + 0x2d0cb40, + 0x2d14b43, + 0x2d30b45, + 0x2d48b4c, + 0x2d60b52, + 0x2d70b58, + 0x2d7cb5c, + 0x2db0b5f, + 0x2db8b6c, 0x22dbcb6e, - 0x22dc4b6f, - 0x2ed0b71, - 0x22ed4bb4, - 0x2edcbb5, - 0x2ee0bb7, - 0x22ee4bb8, - 0x2ee8bb9, - 0x2f34bba, - 0x2f38bcd, - 0x2f3cbce, - 0x2f58bcf, - 0x2f6cbd6, - 0x2f94bdb, - 0x2fbcbe5, - 0x2fc0bef, - 0x62fc4bf0, - 0x2ff4bf1, - 0x2ff8bfd, - 0x22ffcbfe, - 0x3000bff, - 0x3028c00, - 0x302cc0a, - 0x3050c0b, - 0x3054c14, - 0x306cc15, - 0x3070c1b, - 0x3074c1c, - 0x3094c1d, - 0x30b4c25, - 0x230b8c2d, - 0x30bcc2e, - 0x230c0c2f, - 0x30c4c30, - 0x30c8c31, - 0x30ccc32, - 0x30d0c33, - 0x30f0c34, - 0x230f4c3c, - 0x230fcc3d, + 0x2dd4b6f, + 0x22ddcb75, + 0x22de0b77, + 0x22de8b78, + 0x2ef8b7a, + 0x22efcbbe, + 0x2f04bbf, + 0x2f08bc1, + 0x22f0cbc2, + 0x22f10bc3, + 0x22f14bc4, + 0x2f18bc5, + 0x2f64bc6, + 0x2f68bd9, + 0x2f6cbda, + 0x2f88bdb, + 0x2f9cbe2, + 0x2fc4be7, + 0x2fecbf1, + 0x2ff0bfb, + 0x62ff4bfc, + 0x3024bfd, + 0x3028c09, + 0x2302cc0a, + 0x3030c0b, + 0x3058c0c, + 0x305cc16, + 0x3080c17, + 0x3084c20, + 0x309cc21, + 0x30a0c27, + 0x30a4c28, + 0x30c4c29, + 0x30e4c31, + 0x230e8c39, + 0x30ecc3a, + 0x230f0c3b, + 0x30f4c3c, + 0x30f8c3d, + 0x30fcc3e, 0x3100c3f, - 0x3128c40, - 0x313cc4a, - 0x31bcc4f, - 0x31c4c6f, - 0x31c8c71, - 0x31e4c72, - 0x31fcc79, - 0x3200c7f, - 0x3214c80, + 0x3120c40, + 0x23124c48, + 0x2312cc49, + 0x3130c4b, + 0x3158c4c, + 0x316cc56, + 0x31ecc5b, + 0x31f4c7b, + 0x31f8c7d, + 0x3214c7e, 0x322cc85, - 0x3248c8b, - 0x3260c92, - 0x3268c98, - 0x3284c9a, - 0x329cca1, - 0x32a0ca7, - 0x32c8ca8, - 0x32e8cb2, - 0x3304cba, - 0x3308cc1, - 0x336ccc2, - 0x3388cdb, - 0x33b0ce2, - 0x33b4cec, - 0x33ccced, - 0x3410cf3, - 0x3490d04, - 0x34d0d24, - 0x34d4d34, - 0x34e0d35, - 0x3500d38, - 0x3508d40, - 0x3528d42, - 0x3530d4a, - 0x3574d4c, - 0x35c8d5d, - 0x35ccd72, - 0x36dcd73, - 0x236e4db7, - 0x236e8db9, - 0x236ecdba, - 0x236f0dbb, - 0x236f4dbc, - 0x36f8dbd, - 0x236fcdbe, - 0x23700dbf, - 0x23704dc0, - 0x3708dc1, - 0x370cdc2, - 0x23710dc3, - 0x23720dc4, - 0x23728dc8, - 0x23730dca, + 0x3230c8b, + 0x3244c8c, + 0x325cc91, + 0x3278c97, + 0x3290c9e, + 0x329cca4, + 0x32b8ca7, + 0x32d0cae, + 0x32d4cb4, + 0x32fccb5, + 0x331ccbf, + 0x3338cc7, + 0x333ccce, + 0x33a0ccf, + 0x33bcce8, + 0x33e4cef, + 0x33e8cf9, + 0x3400cfa, + 0x3444d00, + 0x34c4d11, + 0x3504d31, + 0x3508d41, + 0x350cd42, + 0x3518d43, + 0x3538d46, + 0x3544d4e, + 0x3564d51, + 0x356cd59, + 0x35b0d5b, + 0x3604d6c, + 0x3608d81, + 0x371cd82, + 0x23724dc7, + 0x23728dc9, + 0x2372cdca, + 0x23730dcb, 0x23734dcc, - 0x2373cdcd, + 0x23738dcd, + 0x2373cdce, 0x23740dcf, - 0x23744dd0, - 0x375cdd1, - 0x3780dd7, - 0x37a0de0, - 0x3e18de8, - 0x23e1cf86, - 0x23e20f87, - 0x23e24f88, - 0x23e28f89, - 0x3e38f8a, - 0x3e58f8e, - 0x4018f96, - 0x40e9006, - 0x415903a, - 0x41b1056, - 0x429906c, - 0x42f10a6, - 0x432d0bc, - 0x44290cb, - 0x44f510a, - 0x458d13d, - 0x461d163, - 0x4681187, - 0x48b91a0, - 0x497122e, - 0x4a3d25c, - 0x4a8928f, - 0x4b112a2, - 0x4b4d2c4, - 0x4b9d2d3, - 0x4c152e7, - 0x64c19305, - 0x64c1d306, - 0x64c21307, - 0x4c9d308, - 0x4cf9327, - 0x4d7533e, - 0x4ded35d, - 0x4e6d37b, - 0x4ed939b, - 0x50053b6, - 0x505d401, - 0x65061417, - 0x50f9418, - 0x510143e, - 0x25105440, - 0x518d441, - 0x51d9463, - 0x5241476, - 0x52e9490, - 0x53b14ba, - 0x54194ec, - 0x552d506, - 0x6553154b, - 0x6553554c, - 0x559154d, - 0x55ed564, - 0x567d57b, - 0x56f959f, - 0x573d5be, - 0x58215cf, - 0x5855608, - 0x58b5615, - 0x592962d, - 0x59b164a, - 0x59f166c, - 0x5a6167c, - 0x65a65698, - 0x5a89699, - 0x5a8d6a2, - 0x5abd6a3, - 0x5ad96af, - 0x5b1d6b6, - 0x5b2d6c7, - 0x5b456cb, - 0x5bbd6d1, - 0x5bc56ef, - 0x5be16f1, - 0x5bf56f8, - 0x5c156fd, - 0x25c19705, - 0x5c41706, - 0x5c45710, - 0x5c4d711, - 0x5c61713, - 0x5c7d718, - 0x5c8571f, - 0x5c91721, - 0x5c95724, - 0x5cd1725, - 0x5cd5734, - 0x5cdd735, - 0x5cf1737, - 0x5d1973c, - 0x5d21746, - 0x5d25748, - 0x5d49749, - 0x5d6d752, - 0x5d8575b, - 0x5d89761, - 0x5d91762, - 0x5d99764, - 0x5dad766, - 0x5e6976b, - 0x5e6d79a, - 0x5e7579b, - 0x5e7979d, - 0x5e9d79e, - 0x5ebd7a7, - 0x5ed97af, - 0x5ee97b6, - 0x5efd7ba, - 0x5f057bf, - 0x5f0d7c1, - 0x5f117c3, - 0x5f197c4, - 0x5f357c6, - 0x5f457cd, + 0x3744dd0, + 0x3748dd1, + 0x2374cdd2, + 0x2375cdd3, + 0x23764dd7, + 0x2376cdd9, + 0x23770ddb, + 0x23778ddc, + 0x2377cdde, + 0x23780ddf, + 0x3798de0, + 0x37bcde6, + 0x37dcdef, + 0x3e54df7, + 0x23e58f95, + 0x23e5cf96, + 0x23e60f97, + 0x23e64f98, + 0x3e74f99, + 0x3e94f9d, + 0x4054fa5, + 0x4125015, + 0x4195049, + 0x41ed065, + 0x42d507b, + 0x432d0b5, + 0x43690cb, + 0x44650da, + 0x4531119, + 0x45c914c, + 0x4659172, + 0x46bd196, + 0x48f51af, + 0x49ad23d, + 0x4a7926b, + 0x4ac529e, + 0x4b4d2b1, + 0x4b892d3, + 0x4bd92e2, + 0x4c512f6, + 0x64c55314, + 0x64c59315, + 0x64c5d316, + 0x4cd9317, + 0x4d35336, + 0x4db134d, + 0x4e2936c, + 0x4ea938a, + 0x4f153aa, + 0x50413c5, + 0x5099410, + 0x6509d426, + 0x5135427, + 0x513d44d, + 0x2514144f, + 0x51c9450, + 0x5215472, + 0x527d485, + 0x532549f, + 0x53ed4c9, + 0x54554fb, + 0x5569515, + 0x6556d55a, + 0x6557155b, + 0x55cd55c, + 0x5629573, + 0x56b958a, + 0x57355ae, + 0x57795cd, + 0x585d5de, + 0x5891617, + 0x58f1624, + 0x596563c, + 0x59ed659, + 0x5a2d67b, + 0x5a9d68b, + 0x65aa16a7, + 0x5ac56a8, + 0x5ac96b1, + 0x5af96b2, + 0x5b156be, + 0x5b596c5, + 0x5b696d6, + 0x5b816da, + 0x5bf96e0, + 0x5c016fe, + 0x5c1d700, + 0x5c31707, + 0x5c5170c, + 0x25c55714, + 0x5c7d715, + 0x5c8171f, + 0x5c89720, + 0x5c9d722, + 0x5cb9727, + 0x5cc172e, + 0x5ccd730, + 0x5cd1733, + 0x5d0d734, + 0x5d11743, + 0x5d19744, + 0x5d2d746, + 0x5d5574b, + 0x5d5d755, + 0x5d61757, + 0x5d85758, + 0x5da9761, + 0x5dc176a, + 0x5dc5770, + 0x5dcd771, + 0x5dd5773, + 0x5de9775, + 0x5ea177a, + 0x5ea57a8, + 0x5ead7a9, + 0x5eb17ab, + 0x5ed57ac, + 0x5ef57b5, + 0x5f117bd, + 0x5f217c4, + 0x5f357c8, + 0x5f3d7cd, + 0x5f457cf, 0x5f497d1, - 0x5f657d2, - 0x67ed7d9, - 0x68259fb, - 0x6851a09, - 0x6869a14, - 0x688da1a, - 0x68ada23, - 0x68f1a2b, - 0x68f9a3c, - 0x268fda3e, - 0x26901a3f, - 0x6909a40, - 0x6b4da42, - 0x26b51ad3, - 0x26b55ad4, - 0x6b69ad5, - 0x26b6dada, - 0x6b71adb, - 0x6b79adc, - 0x26b85ade, - 0x26b95ae1, - 0x26b9dae5, - 0x26ba9ae7, + 0x5f517d2, + 0x5f6d7d4, + 0x5f7d7db, + 0x5f817df, + 0x5f9d7e0, + 0x68257e7, + 0x685da09, + 0x6889a17, + 0x68a1a22, + 0x68c5a28, + 0x68e5a31, + 0x6929a39, + 0x6931a4a, + 0x26935a4c, + 0x26939a4d, + 0x6941a4e, + 0x6b89a50, + 0x26b8dae2, + 0x26b91ae3, + 0x6ba5ae4, + 0x26ba9ae9, 0x6badaea, - 0x26bb1aeb, - 0x26bc9aec, - 0x26bd1af2, + 0x6bb5aeb, + 0x26bc1aed, + 0x26bd1af0, 0x26bd9af4, - 0x26bddaf6, - 0x26be5af7, + 0x26be5af6, 0x6be9af9, 0x26bedafa, - 0x6bf1afb, - 0x26bfdafc, - 0x6c05aff, - 0x6c19b01, - 0x6c1db06, - 0x6c45b07, - 0x6c81b11, - 0x6c85b20, - 0x6cbdb21, - 0x6ce5b2f, - 0x7841b39, - 0x7845e10, - 0x7849e11, - 0x2784de12, - 0x7851e13, - 0x27855e14, - 0x7859e15, - 0x27865e16, - 0x7869e19, - 0x786de1a, - 0x27871e1b, - 0x7875e1c, - 0x2787de1d, + 0x26c05afb, + 0x26c0db01, + 0x26c15b03, + 0x26c19b05, + 0x26c21b06, + 0x26c25b08, + 0x6c29b09, + 0x26c2db0a, + 0x6c31b0b, + 0x26c3db0c, + 0x6c45b0f, + 0x6c59b11, + 0x6c5db16, + 0x6c85b17, + 0x6cc1b21, + 0x6cc5b30, + 0x6cfdb31, + 0x6d1db3f, + 0x7879b47, + 0x787de1e, 0x7881e1f, - 0x7885e20, - 0x27895e21, - 0x7899e25, - 0x789de26, + 0x27885e20, + 0x7889e21, + 0x2788de22, + 0x7891e23, + 0x2789de24, 0x78a1e27, 0x78a5e28, 0x278a9e29, 0x78ade2a, - 0x78b1e2b, - 0x78b5e2c, + 0x278b5e2b, 0x78b9e2d, - 0x278c1e2e, - 0x78c5e30, - 0x78c9e31, - 0x78cde32, - 0x278d1e33, + 0x78bde2e, + 0x278cde2f, + 0x78d1e33, 0x78d5e34, - 0x278dde35, + 0x78d9e35, + 0x78dde36, 0x278e1e37, - 0x78fde38, - 0x790de3f, - 0x794de43, - 0x7951e53, - 0x7975e54, - 0x7989e5d, - 0x798de62, - 0x7999e63, - 0x7b61e66, - 0x27b65ed8, - 0x27b6ded9, - 0x27b71edb, - 0x27b75edc, - 0x7b7dedd, - 0x7c59edf, - 0x27c65f16, - 0x27c69f19, - 0x27c6df1a, - 0x27c71f1b, - 0x7c75f1c, - 0x7ca1f1d, - 0x7cb9f28, - 0x7cbdf2e, - 0x7cddf2f, - 0x7ce9f37, - 0x7d09f3a, - 0x7d0df42, - 0x7d45f43, - 0x800df51, - 0x80ca003, - 0x80ce032, - 0x80d2033, - 0x80e6034, - 0x80ea039, - 0x811e03a, - 0x8156047, - 0x2815a055, - 0x8176056, - 0x819a05d, - 0x819e066, - 0x81be067, - 0x81da06f, - 0x81fe076, - 0x820e07f, - 0x8212083, - 0x8216084, - 0x824e085, - 0x825a093, - 0x8282096, - 0x282860a0, - 0x83220a1, - 0x283260c8, - 0x832a0c9, - 0x833a0ca, - 0x2833e0ce, - 0x83520cf, - 0x836e0d4, - 0x838e0db, - 0x83920e3, - 0x83a60e4, - 0x83ba0e9, - 0x83be0ee, - 0x83c60ef, - 0x83ca0f1, - 0x83ea0f2, - 0x84a20fa, - 0x284a6128, - 0x84aa129, - 0x84ca12a, - 0x84f6132, - 0x2850613d, - 0x850a141, - 0x8516142, - 0x855a145, - 0x855e156, - 0x8572157, - 0x859215c, - 0x85ae164, - 0x85ba16b, - 0x85da16e, - 0x860a176, - 0x8616182, - 0x86e6185, - 0x86ea1b9, - 0x86fe1ba, - 0x87021bf, - 0x871a1c0, - 0x871e1c6, - 0x872a1c7, - 0x87361ca, - 0x873a1cd, - 0x87421ce, + 0x78e5e38, + 0x78e9e39, + 0x78ede3a, + 0x78f1e3b, + 0x278f9e3c, + 0x78fde3e, + 0x7901e3f, + 0x7905e40, + 0x27909e41, + 0x790de42, + 0x27915e43, + 0x27919e45, + 0x7935e46, + 0x7945e4d, + 0x7985e51, + 0x7989e61, + 0x79ade62, + 0x79c1e6b, + 0x79c5e70, + 0x79d1e71, + 0x7b99e74, + 0x27b9dee6, + 0x27ba5ee7, + 0x27ba9ee9, + 0x27badeea, + 0x7bb5eeb, + 0x7c91eed, + 0x27c9df24, + 0x27ca1f27, + 0x27ca5f28, + 0x27ca9f29, + 0x7cadf2a, + 0x7cd9f2b, + 0x7cf1f36, + 0x7cf5f3c, + 0x7d15f3d, + 0x7d21f45, + 0x7d41f48, + 0x7d45f50, + 0x7d7df51, + 0x8045f5f, + 0x8102011, + 0x8106040, + 0x810a041, + 0x811e042, + 0x8122047, + 0x8156048, + 0x818e055, + 0x28192063, + 0x81ae064, + 0x81d206b, + 0x81d6074, + 0x81f6075, + 0x821207d, + 0x8236084, + 0x824608d, + 0x824a091, + 0x824e092, + 0x828a093, + 0x82960a2, + 0x82be0a5, + 0x282c20af, + 0x835e0b0, + 0x283620d7, + 0x83660d8, + 0x83760d9, + 0x2837a0dd, + 0x83920de, + 0x83ae0e4, + 0x83ce0eb, + 0x83d20f3, + 0x83e60f4, + 0x83fa0f9, + 0x83fe0fe, + 0x84060ff, + 0x840a101, + 0x842a102, + 0x84e210a, + 0x284e6138, + 0x84ea139, + 0x850a13a, + 0x8536142, + 0x2854614d, + 0x854a151, + 0x8556152, + 0x859a155, + 0x859e166, + 0x85b2167, + 0x85d216c, + 0x85ee174, + 0x85f217b, + 0x85fe17c, + 0x861e17f, + 0x864e187, + 0x865a193, + 0x872a196, + 0x872e1ca, + 0x87421cb, 0x87461d0, - 0x876a1d1, - 0x87a61da, - 0x87aa1e9, - 0x87ca1ea, - 0x881e1f2, - 0x884e207, - 0x28852213, - 0x885a214, - 0x88b2216, - 0x88b622c, - 0x88ba22d, - 0x88be22e, - 0x890222f, - 0x8912240, - 0x894e244, - 0x8952253, - 0x8982254, - 0x8ace260, - 0x8af22b3, - 0x8b322bc, - 0x8b622cc, - 0x28b6a2d8, - 0x28b6e2da, - 0x28b722db, - 0x8b7a2dc, - 0x8b862de, - 0x8caa2e1, - 0x8cb632a, - 0x8cc232d, - 0x8cce330, - 0x8cda333, - 0x8ce6336, - 0x8cf2339, - 0x8cfe33c, - 0x8d0a33f, - 0x8d16342, - 0x8d22345, - 0x28d26348, - 0x8d32349, - 0x8d3e34c, - 0x8d4a34f, - 0x8d52352, - 0x8d5e354, + 0x875e1d1, + 0x87621d7, + 0x876e1d8, + 0x877a1db, + 0x877e1de, + 0x87861df, + 0x878a1e1, + 0x87ae1e2, + 0x87ea1eb, + 0x87ee1fa, + 0x880e1fb, + 0x8846203, + 0x8876211, + 0x2887a21d, + 0x887e21e, + 0x888621f, + 0x88de221, + 0x88e2237, + 0x88e6238, + 0x88ea239, + 0x892e23a, + 0x893e24b, + 0x897a24f, + 0x897e25e, + 0x89ae25f, + 0x8afa26b, + 0x8b1e2be, + 0x8b5e2c7, + 0x8b8e2d7, + 0x28b962e3, + 0x28b9a2e5, + 0x28b9e2e6, + 0x8ba62e7, + 0x8bbe2e9, + 0x8ce22ef, + 0x8cee338, + 0x8cfa33b, + 0x8d0633e, + 0x8d12341, + 0x8d1e344, + 0x8d2a347, + 0x8d3634a, + 0x8d4234d, + 0x8d4e350, + 0x8d5a353, + 0x28d5e356, 0x8d6a357, 0x8d7635a, 0x8d8235d, - 0x8d8e360, - 0x8d9a363, - 0x8da6366, - 0x8db2369, - 0x8dbe36c, - 0x8dca36f, - 0x8dd6372, - 0x8e02375, + 0x8d8a360, + 0x8d96362, + 0x8da2365, + 0x8dae368, + 0x8dba36b, + 0x8dc636e, + 0x8dd2371, + 0x8dde374, + 0x8dea377, + 0x8df637a, + 0x8e0237d, 0x8e0e380, - 0x8e1a383, - 0x8e26386, - 0x8e32389, - 0x8e3e38c, - 0x8e4638f, + 0x8e3a383, + 0x8e4638e, 0x8e52391, 0x8e5e394, 0x8e6a397, 0x8e7639a, - 0x8e8239d, - 0x8e8e3a0, - 0x8e9a3a3, - 0x8ea63a6, - 0x8eb23a9, - 0x8ebe3ac, - 0x8eca3af, - 0x8ed23b2, + 0x8e7e39d, + 0x8e8a39f, + 0x8e963a2, + 0x8ea23a5, + 0x8eae3a8, + 0x8eba3ab, + 0x8ec63ae, + 0x8ed23b1, 0x8ede3b4, - 0x8ee63b7, - 0x8ef23b9, - 0x8efe3bc, - 0x8f0a3bf, + 0x8eea3b7, + 0x8ef63ba, + 0x8f023bd, + 0x8f0a3c0, 0x8f163c2, - 0x8f223c5, - 0x8f2e3c8, - 0x8f3a3cb, - 0x8f463ce, - 0x8f4a3d1, - 0x8f563d2, - 0x8f6e3d5, - 0x8f723db, - 0x8f823dc, - 0x8fa23e0, - 0x8fa63e8, - 0x8ff63e9, - 0x8ffa3fd, - 0x900e3fe, - 0x9042403, - 0x9062410, - 0x9066418, - 0x906e419, - 0x909241b, - 0x90aa424, - 0x90c242a, - 0x90da430, - 0x9102436, - 0x9116440, - 0x912e445, - 0x913244b, - 0x2917a44c, - 0x917e45e, - 0x91aa45f, - 0x91ba46a, - 0x91ce46e, + 0x8f1e3c5, + 0x8f2a3c7, + 0x8f363ca, + 0x8f423cd, + 0x8f4e3d0, + 0x8f5a3d3, + 0x8f663d6, + 0x8f723d9, + 0x8f7e3dc, + 0x8f823df, + 0x8f8e3e0, + 0x8fa63e3, + 0x8faa3e9, + 0x8fba3ea, + 0x8fda3ee, + 0x8fde3f6, + 0x902e3f7, + 0x903240b, + 0x904640c, + 0x907a411, + 0x909a41e, + 0x909e426, + 0x90a6427, + 0x90ca429, + 0x90e2432, + 0x90fa438, + 0x911243e, + 0x913a444, + 0x914e44e, + 0x9166453, + 0x916a459, + 0x291b245a, + 0x91b646c, + 0x91e246d, + 0x91f2478, + 0x920647c, } -// max children 662 (capacity 1023) -// max text offset 32015 (capacity 32767) +// max children 669 (capacity 1023) +// max text offset 32017 (capacity 32767) // max text length 36 (capacity 63) -// max hi 9331 (capacity 16383) -// max lo 9326 (capacity 16383) +// max hi 9345 (capacity 16383) +// max lo 9340 (capacity 16383) diff --git a/vendor/golang.org/x/term/README.md b/vendor/golang.org/x/term/README.md index e0f390cb..d03d0aef 100644 --- a/vendor/golang.org/x/term/README.md +++ b/vendor/golang.org/x/term/README.md @@ -1,5 +1,7 @@ # Go terminal/console support +[![Go Reference](https://pkg.go.dev/badge/golang.org/x/term.svg)](https://pkg.go.dev/golang.org/x/term) + This repository provides Go terminal and console support packages. ## Download/Install diff --git a/vendor/golang.org/x/term/codereview.cfg b/vendor/golang.org/x/term/codereview.cfg new file mode 100644 index 00000000..3f8b14b6 --- /dev/null +++ b/vendor/golang.org/x/term/codereview.cfg @@ -0,0 +1 @@ +issuerepo: golang/go diff --git a/vendor/golang.org/x/term/term.go b/vendor/golang.org/x/term/term.go index 69931cc8..d5927088 100644 --- a/vendor/golang.org/x/term/term.go +++ b/vendor/golang.org/x/term/term.go @@ -7,11 +7,13 @@ // // Putting a terminal into raw mode is the most common requirement: // -// oldState, err := terminal.MakeRaw(0) +// oldState, err := term.MakeRaw(int(os.Stdin.Fd())) // if err != nil { // panic(err) // } -// defer terminal.Restore(0, oldState) +// defer term.Restore(int(os.Stdin.Fd()), oldState) +// +// Note that on non-Unix systems os.Stdin.Fd() may not be 0. package term // State contains the state of a terminal. diff --git a/vendor/golang.org/x/term/term_solaris.go b/vendor/golang.org/x/term/term_solaris.go deleted file mode 100644 index b9da2974..00000000 --- a/vendor/golang.org/x/term/term_solaris.go +++ /dev/null @@ -1,111 +0,0 @@ -// 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. - -package term - -import ( - "io" - "syscall" - - "golang.org/x/sys/unix" -) - -// State contains the state of a terminal. -type state struct { - termios unix.Termios -} - -func isTerminal(fd int) bool { - _, err := unix.IoctlGetTermio(fd, unix.TCGETA) - return err == nil -} - -func readPassword(fd int) ([]byte, error) { - // see also: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libast/common/uwin/getpass.c - val, err := unix.IoctlGetTermios(fd, unix.TCGETS) - if err != nil { - return nil, err - } - oldState := *val - - newState := oldState - newState.Lflag &^= syscall.ECHO - newState.Lflag |= syscall.ICANON | syscall.ISIG - newState.Iflag |= syscall.ICRNL - err = unix.IoctlSetTermios(fd, unix.TCSETS, &newState) - if err != nil { - return nil, err - } - - defer unix.IoctlSetTermios(fd, unix.TCSETS, &oldState) - - var buf [16]byte - var ret []byte - for { - n, err := syscall.Read(fd, buf[:]) - if err != nil { - return nil, err - } - if n == 0 { - if len(ret) == 0 { - return nil, io.EOF - } - break - } - if buf[n-1] == '\n' { - n-- - } - ret = append(ret, buf[:n]...) - if n < len(buf) { - break - } - } - - return ret, nil -} - -func makeRaw(fd int) (*State, error) { - // see http://cr.illumos.org/~webrev/andy_js/1060/ - termios, err := unix.IoctlGetTermios(fd, unix.TCGETS) - if err != nil { - return nil, err - } - - oldState := State{state{termios: *termios}} - - termios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON - termios.Oflag &^= unix.OPOST - termios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN - termios.Cflag &^= unix.CSIZE | unix.PARENB - termios.Cflag |= unix.CS8 - termios.Cc[unix.VMIN] = 1 - termios.Cc[unix.VTIME] = 0 - - if err := unix.IoctlSetTermios(fd, unix.TCSETS, termios); err != nil { - return nil, err - } - - return &oldState, nil -} - -func restore(fd int, oldState *State) error { - return unix.IoctlSetTermios(fd, unix.TCSETS, &oldState.termios) -} - -func getState(fd int) (*State, error) { - termios, err := unix.IoctlGetTermios(fd, unix.TCGETS) - if err != nil { - return nil, err - } - - return &State{state{termios: *termios}}, nil -} - -func getSize(fd int) (width, height int, err error) { - ws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ) - if err != nil { - return 0, 0, err - } - return int(ws.Col), int(ws.Row), nil -} diff --git a/vendor/golang.org/x/term/term_unix.go b/vendor/golang.org/x/term/term_unix.go index 4c60e457..a4e31ab1 100644 --- a/vendor/golang.org/x/term/term_unix.go +++ b/vendor/golang.org/x/term/term_unix.go @@ -2,7 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd zos +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos package term diff --git a/vendor/golang.org/x/term/term_unix_aix.go b/vendor/golang.org/x/term/term_unix_aix.go deleted file mode 100644 index 2d5efd26..00000000 --- a/vendor/golang.org/x/term/term_unix_aix.go +++ /dev/null @@ -1,10 +0,0 @@ -// 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. - -package term - -import "golang.org/x/sys/unix" - -const ioctlReadTermios = unix.TCGETS -const ioctlWriteTermios = unix.TCSETS diff --git a/vendor/golang.org/x/term/term_unix_bsd.go b/vendor/golang.org/x/term/term_unix_bsd.go index 3342be00..853b3d69 100644 --- a/vendor/golang.org/x/term/term_unix_bsd.go +++ b/vendor/golang.org/x/term/term_unix_bsd.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build darwin || dragonfly || freebsd || netbsd || openbsd // +build darwin dragonfly freebsd netbsd openbsd package term diff --git a/vendor/golang.org/x/term/term_unix_linux.go b/vendor/golang.org/x/term/term_unix_linux.go deleted file mode 100644 index 2d5efd26..00000000 --- a/vendor/golang.org/x/term/term_unix_linux.go +++ /dev/null @@ -1,10 +0,0 @@ -// 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. - -package term - -import "golang.org/x/sys/unix" - -const ioctlReadTermios = unix.TCGETS -const ioctlWriteTermios = unix.TCSETS diff --git a/vendor/golang.org/x/term/term_unix_zos.go b/vendor/golang.org/x/term/term_unix_other.go index b85ab899..1e8955c9 100644 --- a/vendor/golang.org/x/term/term_unix_zos.go +++ b/vendor/golang.org/x/term/term_unix_other.go @@ -1,7 +1,10 @@ -// Copyright 2020 The Go Authors. All rights reserved. +// Copyright 2021 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. +//go:build aix || linux || solaris || zos +// +build aix linux solaris zos + package term import "golang.org/x/sys/unix" diff --git a/vendor/golang.org/x/term/term_unsupported.go b/vendor/golang.org/x/term/term_unsupported.go index 8b5d1bad..f1df8506 100644 --- a/vendor/golang.org/x/term/term_unsupported.go +++ b/vendor/golang.org/x/term/term_unsupported.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !zos && !windows && !solaris && !plan9 // +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!zos,!windows,!solaris,!plan9 package term diff --git a/vendor/modules.txt b/vendor/modules.txt index 030df42b..dfc3a0b2 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -54,7 +54,7 @@ github.com/blang/semver # github.com/bwmarrin/discordgo v0.24.0 ## explicit; go 1.13 github.com/bwmarrin/discordgo -# github.com/d5/tengo/v2 v2.10.0 +# github.com/d5/tengo/v2 v2.10.1 ## explicit; go 1.13 github.com/d5/tengo/v2 github.com/d5/tengo/v2/parser @@ -89,7 +89,7 @@ github.com/golang-jwt/jwt ## explicit; go 1.9 github.com/golang/protobuf/proto github.com/golang/protobuf/protoc-gen-go/descriptor -# github.com/gomarkdown/markdown v0.0.0-20211207152620-5d6539fd8bfc +# github.com/gomarkdown/markdown v0.0.0-20220310201231-552c6011c0b8 ## explicit; go 1.12 github.com/gomarkdown/markdown github.com/gomarkdown/markdown/ast @@ -109,10 +109,10 @@ github.com/gopackage/ddp # github.com/gorilla/schema v1.2.0 ## explicit github.com/gorilla/schema -# github.com/gorilla/websocket v1.4.2 +# github.com/gorilla/websocket v1.5.0 ## explicit; go 1.12 github.com/gorilla/websocket -# github.com/harmony-development/shibshib v0.0.0-20211127182844-512296f7c548 +# github.com/harmony-development/shibshib v0.0.0-20220101224523-c98059d09cfa ## explicit; go 1.15 github.com/harmony-development/shibshib github.com/harmony-development/shibshib/gen/auth/v1 @@ -170,11 +170,11 @@ github.com/klauspost/compress/zstd/internal/xxhash # github.com/klauspost/cpuid/v2 v2.0.9 ## explicit; go 1.13 github.com/klauspost/cpuid/v2 -# github.com/kyokomi/emoji/v2 v2.2.8 +# github.com/kyokomi/emoji/v2 v2.2.9 ## explicit; go 1.14 github.com/kyokomi/emoji/v2 -# github.com/labstack/echo/v4 v4.6.3 -## explicit; go 1.15 +# github.com/labstack/echo/v4 v4.7.0 +## explicit; go 1.17 github.com/labstack/echo/v4 github.com/labstack/echo/v4/middleware # github.com/labstack/gommon v0.3.1 @@ -238,7 +238,7 @@ github.com/mattermost/mattermost-server/v5/shared/i18n github.com/mattermost/mattermost-server/v5/shared/markdown github.com/mattermost/mattermost-server/v5/shared/mlog github.com/mattermost/mattermost-server/v5/utils/jsonutils -# github.com/mattermost/mattermost-server/v6 v6.3.0 +# github.com/mattermost/mattermost-server/v6 v6.4.2 ## explicit; go 1.16 github.com/mattermost/mattermost-server/v6/model github.com/mattermost/mattermost-server/v6/services/timezones @@ -364,7 +364,7 @@ github.com/sizeofint/webpanimation github.com/skip2/go-qrcode github.com/skip2/go-qrcode/bitset github.com/skip2/go-qrcode/reedsolomon -# github.com/slack-go/slack v0.10.0 +# github.com/slack-go/slack v0.10.2 ## explicit; go 1.16 github.com/slack-go/slack github.com/slack-go/slack/internal/backoff @@ -481,13 +481,13 @@ golang.org/x/crypto/scrypt golang.org/x/crypto/ssh golang.org/x/crypto/ssh/internal/bcrypt_pbkdf golang.org/x/crypto/ssh/terminal -# golang.org/x/image v0.0.0-20211028202545-6944b10bf410 +# golang.org/x/image v0.0.0-20220302094943-723b81ca9867 ## explicit; go 1.12 golang.org/x/image/riff golang.org/x/image/vp8 golang.org/x/image/vp8l golang.org/x/image/webp -# golang.org/x/net v0.0.0-20211123203042-d83791d6bcd9 +# golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd ## explicit; go 1.17 golang.org/x/net/context golang.org/x/net/context/ctxhttp @@ -500,7 +500,7 @@ golang.org/x/net/http2/hpack golang.org/x/net/idna golang.org/x/net/publicsuffix golang.org/x/net/websocket -# golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 +# golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a ## explicit; go 1.11 golang.org/x/oauth2 golang.org/x/oauth2/clientcredentials @@ -513,8 +513,8 @@ golang.org/x/sys/internal/unsafeheader golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows -# golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 -## explicit; go 1.11 +# golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 +## explicit; go 1.17 golang.org/x/term # golang.org/x/text v0.3.7 ## explicit; go 1.17 |