From 834c095c2f344196fadfa07f204bfff6001e7f28 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Mon, 20 Apr 2020 20:16:44 -0500 Subject: [PATCH 01/37] adding direct version on the docker build --- .goreleaser.yml | 2 -- Dockerfile.build | 4 ++-- Dockerfile.slim.build | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 01a27ce3b..2bd591e4e 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -17,8 +17,6 @@ builds: goarm: - 6 - 7 - hooks: - post: tar -czvf dist/buffalo_Linux_x86_64.tar.gz dist/buffalo_linux_amd64 archives: - replacements: diff --git a/Dockerfile.build b/Dockerfile.build index ec533d610..d7d916078 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -33,8 +33,8 @@ RUN npm install -g --no-progress yarn \ RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/latest/download/buffalo_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_Linux_x86_64.tar.gz \ +RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.5/buffalo_0.16.6_Linux_x86_64.tar.gz \ + && tar -xzf buffalo_0.16.6_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo RUN buffalo plugins install github.com/gobuffalo/buffalo-pop/v2 diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index 3d3f3d98c..8799d710c 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -19,8 +19,8 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/latest/download/buffalo_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_Linux_x86_64.tar.gz \ +RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.5/buffalo_0.16.6_Linux_x86_64.tar.gz \ + && tar -xzf buffalo_0.16.6_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo RUN buffalo plugins install github.com/gobuffalo/buffalo-pop/v2 From ef66b753c06174ac7633529fc19ad58db3199e8a Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Mon, 20 Apr 2020 22:07:03 -0500 Subject: [PATCH 02/37] fixing plugin installation --- Dockerfile.build | 2 +- Dockerfile.slim.build | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 276603747..ad570dd7e 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -37,7 +37,7 @@ RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.8/buffalo_ && tar -xzf buffalo_0.16.8_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo -RUN buffalo plugins install github.com/gobuffalo/buffalo-pop/v2 +RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version RUN mkdir /src diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index 5556c27d4..fe61b9bce 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -23,7 +23,7 @@ RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.8/buffalo_ && tar -xzf buffalo_0.16.8_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo -RUN buffalo plugins install github.com/gobuffalo/buffalo-pop/v2 +RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version RUN mkdir /src From 7827df3e72925e452e3da62e38be6666bd8d782c Mon Sep 17 00:00:00 2001 From: Disconnect3d Date: Tue, 9 Jun 2020 18:03:49 +0200 Subject: [PATCH 03/37] Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) --- buffalo/cmd/fix/npm.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buffalo/cmd/fix/npm.go b/buffalo/cmd/fix/npm.go index 67427ab4e..9d1aab499 100644 --- a/buffalo/cmd/fix/npm.go +++ b/buffalo/cmd/fix/npm.go @@ -62,7 +62,7 @@ func AddPackageJSONScripts(r *Runner) error { return fmt.Errorf("could not rewrite package.json: %s", err.Error()) } - ioutil.WriteFile("package.json", b, 644) + ioutil.WriteFile("package.json", b, 0644) } else { fmt.Println("~~~ package.json doesn't need to be patched, skipping. ~~~") } From 9da374054a28f300da1667617698fbac08a78174 Mon Sep 17 00:00:00 2001 From: hackerman <3372410+aeneasr@users.noreply.github.com> Date: Tue, 9 Jun 2020 18:05:04 +0200 Subject: [PATCH 04/37] Bump spf13/viper to v1.7.0 (#1999) --- go.mod | 2 +- go.sum | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index c0a933c60..879985ae4 100644 --- a/go.mod +++ b/go.mod @@ -38,7 +38,7 @@ require ( github.com/sirupsen/logrus v1.5.0 github.com/spf13/cobra v0.0.6 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.6.2 + github.com/spf13/viper v1.7.0 github.com/stretchr/testify v1.5.1 golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a golang.org/x/tools v0.0.0-20200323192200-8849913b6971 diff --git a/go.sum b/go.sum index 3facfde08..adf9f4da1 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,26 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.36.0/go.mod h1:RUoy9p/M4ge0HzT8L+SDZ8jg+Q6fth0CiBuhFJpSV40= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= @@ -19,9 +32,14 @@ github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= @@ -36,8 +54,10 @@ github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051/go.mod h1 github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= @@ -64,6 +84,7 @@ github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -589,14 +610,17 @@ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4er github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -604,8 +628,12 @@ github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+u github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -627,13 +655,33 @@ github.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ= github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= @@ -688,6 +736,8 @@ github.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqx github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= @@ -778,6 +828,7 @@ github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcncea github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= @@ -797,12 +848,20 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5 github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/microcosm-cc/bluemonday v1.0.2 h1:5lPfLTTAvAbtS0VqT+94yOtFnGfUWYyx0+iToC3Os3s= github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q= github.com/monoculum/formam v0.0.0-20190307031628-bc555adff0cd/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/monoculum/formam v0.0.0-20190730134247-0612307a4099/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= @@ -833,6 +892,7 @@ github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -842,6 +902,7 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= @@ -869,7 +930,9 @@ github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OK github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516 h1:ofR1ZdrNSkiWcMsRrubK9tb2/SlZVWttAfqUjJi6QYc= github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= @@ -949,6 +1012,8 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.6.2 h1:7aKfF+e8/k68gda3LOjo5RxiUqddoFxVq4BKBPrxk5E= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= +github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM= +github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -975,6 +1040,8 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= @@ -990,6 +1057,7 @@ golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20181024171144-74cb1d3d52f4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181025113841-85e1b3f9139a/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1006,6 +1074,7 @@ golang.org/x/crypto v0.0.0-20190403202508-8e1b8d32e692/go.mod h1:WFFai1msRO1wXaE golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -1016,9 +1085,24 @@ golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200206161412-a0c6ece9d31a h1:aczoJ0HPNE92XKa7DrIzkNN6esOKO2TBwiiYoKcINhA= golang.org/x/crypto v0.0.0-20200206161412-a0c6ece9d31a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-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-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= @@ -1042,10 +1126,13 @@ golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181213202711-891ebc4b82d6/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190119204137-ed066c81e75e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190514140710-3ec191127204/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= @@ -1061,6 +1148,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL 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= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/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= @@ -1073,6 +1162,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a h1:WXEvlFVvvGxCJLG6REjsT03iWnKLEWinaScsxF2Vm2o= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180906133057-8cf3aee42992/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1105,12 +1195,16 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190220154126-629670e5acc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= @@ -1170,7 +1264,10 @@ golang.org/x/tools v0.0.0-20190214204934-8dcb7bc8c7fe/go.mod h1:E6PF97AdD6v0s+fP golang.org/x/tools v0.0.0-20190219135230-f000d56b39dc/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44= golang.org/x/tools v0.0.0-20190219185102-9394956cfdc5/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44= golang.org/x/tools v0.0.0-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190315044204-8b67d361bba2/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190318200714-bb1270c20edf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1179,7 +1276,9 @@ golang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190407030857-0fdf0c73855b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190603152906-08e0b306e832/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190603231351-8aaa1484dc10/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -1188,13 +1287,17 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190809145639-6d4652c779c4/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190825031127-d72b05d2b1b6/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190905035308-adb45749da8e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190906203814-12febf440ab1/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191004055002-72853e10c5a3/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191015150414-f936694f27bf/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191224055732-dd894d0a8a40/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1212,10 +1315,16 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= @@ -1224,11 +1333,21 @@ google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= google.golang.org/genproto v0.0.0-20190201180003-4b09977fb922/go.mod h1:L3J43x8/uS+qIUoksaLKe6OS3nUKxOKuIFz1sl2/jx4= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= @@ -1263,5 +1382,8 @@ grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJd honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= From 4aa9475d0f199d3d3a2e2ebfd15e22b07cd309ab Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Tue, 9 Jun 2020 11:11:43 -0500 Subject: [PATCH 05/37] bunping version --- runtime/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/version.go b/runtime/version.go index c7fbe95c8..0ac2b003d 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.9" +var Version = "v0.16.10" From 9e9d5bfd97f2d41382e1570571e8d45bf7724f2b Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Tue, 9 Jun 2020 11:50:58 -0500 Subject: [PATCH 06/37] changing version on dockerfile --- Dockerfile.build | 4 ++-- Dockerfile.slim.build | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 851756a33..13e828eb8 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -33,8 +33,8 @@ RUN npm install -g --no-progress yarn \ RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.9/buffalo_0.16.9_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_0.16.9_Linux_x86_64.tar.gz \ +RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.10/buffalo_0.16.10_Linux_x86_64.tar.gz \ + && tar -xzf buffalo_0.16.10_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo RUN go get github.com/gobuffalo/buffalo-pop/v2 diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index eeaee839f..d801bd687 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -19,8 +19,8 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/download/vv0.16.9/buffalo_v0.16.9_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_v0.16.9_Linux_x86_64.tar.gz \ +RUN wget https://github.com/gobuffalo/buffalo/releases/download/vv0.16.10/buffalo_v0.16.10_Linux_x86_64.tar.gz \ + && tar -xzf buffalo_v0.16.10_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo RUN go get github.com/gobuffalo/buffalo-pop/v2 From e9d8c0a46732511eaeaa7060c5866c193e980d00 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Wed, 15 Jul 2020 15:50:58 -0500 Subject: [PATCH 07/37] patch to fix the keywords check on new app --- Dockerfile.build | 4 ++-- Dockerfile.slim.build | 4 ++-- genny/newapp/core/options.go | 12 +++++++++++- runtime/version.go | 2 +- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 13e828eb8..b74bea99d 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -33,8 +33,8 @@ RUN npm install -g --no-progress yarn \ RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.10/buffalo_0.16.10_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_0.16.10_Linux_x86_64.tar.gz \ +RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.11/buffalo_0.16.11_Linux_x86_64.tar.gz \ + && tar -xzf buffalo_0.16.11_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo RUN go get github.com/gobuffalo/buffalo-pop/v2 diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index d801bd687..8d9e323b0 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -19,8 +19,8 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/download/vv0.16.10/buffalo_v0.16.10_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_v0.16.10_Linux_x86_64.tar.gz \ +RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.11/buffalo_v0.16.11_Linux_x86_64.tar.gz \ + && tar -xzf buffalo_v0.16.11_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo RUN go get github.com/gobuffalo/buffalo-pop/v2 diff --git a/genny/newapp/core/options.go b/genny/newapp/core/options.go index 3aba66ef6..d14a437b2 100644 --- a/genny/newapp/core/options.go +++ b/genny/newapp/core/options.go @@ -71,7 +71,7 @@ func (opts *Options) Validate() error { } name := strings.ToLower(opts.App.Name.String()) - fb := append(opts.ForbiddenNames, "buffalo", "test", "dev") + fb := append(opts.ForbiddenNames) for _, n := range fb { rx, err := regexp.Compile(n) if err != nil { @@ -82,9 +82,19 @@ func (opts *Options) Validate() error { } } + keywords := []string{"buffalo", "test", "dev"} + for _, kw := range keywords { + if name != kw { + continue + } + + return fmt.Errorf("name %s is not allowed, try a different application name", opts.App.Name) + } + if !nameRX.MatchString(name) { return fmt.Errorf("name %s is not allowed, application name can only contain [a-Z0-9-_]", opts.App.Name) } + return nil } diff --git a/runtime/version.go b/runtime/version.go index 0ac2b003d..d9f4664d6 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.10" +var Version = "v0.16.11" From 7fc13fb34cb4b1eed2259fd022b37129f8e131f7 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Wed, 15 Jul 2020 15:54:32 -0500 Subject: [PATCH 08/37] removing unneeded append --- genny/newapp/core/options.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/genny/newapp/core/options.go b/genny/newapp/core/options.go index d14a437b2..9ed4c344b 100644 --- a/genny/newapp/core/options.go +++ b/genny/newapp/core/options.go @@ -71,8 +71,7 @@ func (opts *Options) Validate() error { } name := strings.ToLower(opts.App.Name.String()) - fb := append(opts.ForbiddenNames) - for _, n := range fb { + for _, n := range opts.ForbiddenNames { rx, err := regexp.Compile(n) if err != nil { return err From d86adbc5a69af47d983c39f4d2cefff3a7cff168 Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Thu, 16 Jul 2020 17:20:57 -0500 Subject: [PATCH 09/37] Task fixing html binder (#2016) * binder was not wired * packing --- binding/binding.go | 6 ++---- binding/html_content_type_binder.go | 13 +++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/binding/binding.go b/binding/binding.go index 88e0c9999..e77eb6974 100644 --- a/binding/binding.go +++ b/binding/binding.go @@ -19,13 +19,11 @@ var ( IgnoreUnknownKeys: true, }) - // BaseRequestBinder is an instance of the requeBinder, it comes with preconfigured + // BaseRequestBinder is an instance of the requestBinder, it comes with preconfigured // content type binders for HTML, JSON, XML and Files, as well as custom types decoders // for time.Time and nulls.Time BaseRequestBinder = NewRequestBinder( - HTMLContentTypeBinder{ - decoder: formDecoder, - }, + NewHTMLContentTypeBinder(formDecoder), JSONContentTypeBinder{}, XMLRequestTypeBinder{}, FileRequestTypeBinder{ diff --git a/binding/html_content_type_binder.go b/binding/html_content_type_binder.go index 06b5ec97c..0450bc48d 100644 --- a/binding/html_content_type_binder.go +++ b/binding/html_content_type_binder.go @@ -2,8 +2,10 @@ package binding import ( "net/http" + "time" "github.com/gobuffalo/buffalo/binding/decoders" + "github.com/gobuffalo/nulls" "github.com/monoculum/formam" ) @@ -15,14 +17,12 @@ type HTMLContentTypeBinder struct { // NewHTMLContentTypeBinder returns an instance of HTMLContentTypeBinder with // custom type decoders registered for Time and nulls.Time func NewHTMLContentTypeBinder(decoder *formam.Decoder) HTMLContentTypeBinder { - htmlBinder := HTMLContentTypeBinder{ + decoder.RegisterCustomType(decoders.TimeDecoderFn(), []interface{}{time.Time{}}, nil) + decoder.RegisterCustomType(decoders.NullTimeDecoderFn(), []interface{}{nulls.Time{}}, nil) + + return HTMLContentTypeBinder{ decoder: decoder, } - - decoder.RegisterCustomType(decoders.TimeDecoderFn(), []interface{}{}, []interface{}{}) - decoder.RegisterCustomType(decoders.NullTimeDecoderFn(), []interface{}{}, []interface{}{}) - - return htmlBinder } // ContentTypes that will be used to identify HTML requests @@ -46,6 +46,7 @@ func (ht HTMLContentTypeBinder) BinderFunc() Binder { if err := ht.decoder.Decode(req.Form, i); err != nil { return err } + return nil } } From e5ff685254149cc35a3df84b60d943225f8eb1c9 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Thu, 16 Jul 2020 17:21:57 -0500 Subject: [PATCH 10/37] adding new version number --- Dockerfile.build | 4 ++-- Dockerfile.slim.build | 4 ++-- runtime/version.go | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index b74bea99d..12a48cd28 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -33,8 +33,8 @@ RUN npm install -g --no-progress yarn \ RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.11/buffalo_0.16.11_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_0.16.11_Linux_x86_64.tar.gz \ +RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.12/buffalo_0.16.12_Linux_x86_64.tar.gz \ + && tar -xzf buffalo_0.16.12_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo RUN go get github.com/gobuffalo/buffalo-pop/v2 diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index 8d9e323b0..6f14ba0ea 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -19,8 +19,8 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.11/buffalo_v0.16.11_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_v0.16.11_Linux_x86_64.tar.gz \ +RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.12/buffalo_v0.16.12_Linux_x86_64.tar.gz \ + && tar -xzf buffalo_v0.16.12_Linux_x86_64.tar.gz \ && mv buffalo $(go env GOPATH)/bin/buffalo RUN go get github.com/gobuffalo/buffalo-pop/v2 diff --git a/runtime/version.go b/runtime/version.go index d9f4664d6..05362ddad 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.11" +var Version = "v0.16.12" From 4362a835f73922d762c5a2ebca4bd5ec46344565 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Sat, 18 Jul 2020 10:24:06 -0500 Subject: [PATCH 11/37] pulling the buffalo binary from gobinaries.com --- Dockerfile.build | 8 ++------ Dockerfile.slim.build | 9 ++------- runtime/version.go | 2 +- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 12a48cd28..791114292 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -31,12 +31,8 @@ RUN npm install -g --no-progress yarn \ # Install golangci RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 - -# Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.12/buffalo_0.16.12_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_0.16.12_Linux_x86_64.tar.gz \ - && mv buffalo $(go env GOPATH)/bin/buffalo - +# Installing buffalo binary +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.13 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index 6f14ba0ea..1e9398933 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -1,13 +1,11 @@ FROM golang:alpine EXPOSE 3000 -ENV GOPROXY=https://proxy.golang.org ENV GO111MODULE=on - ENV GOPROXY=https://proxy.golang.org RUN apk add --no-cache --upgrade apk-tools \ - && apk add --no-cache bash curl openssl git build-base nodejs npm sqlite sqlite-dev mysql-client vim postgresql libpq postgresql-contrib + && apk add --no-cache bash curl openssl git build-base nodejs npm sqlite sqlite-dev mysql-client vim postgresql libpq postgresql-contrib libc6-compat # Installing linter RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh \ @@ -19,10 +17,7 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN wget https://github.com/gobuffalo/buffalo/releases/download/v0.16.12/buffalo_v0.16.12_Linux_x86_64.tar.gz \ - && tar -xzf buffalo_v0.16.12_Linux_x86_64.tar.gz \ - && mv buffalo $(go env GOPATH)/bin/buffalo - +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.13 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/runtime/version.go b/runtime/version.go index 05362ddad..f5ca6e681 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.12" +var Version = "v0.16.13" From b0f043ab966c2b9def2459902bd37512c7e69b99 Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Wed, 29 Jul 2020 12:11:47 -0500 Subject: [PATCH 12/37] Task updating formam (#2025) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating formam Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 879985ae4..8f76c8b87 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/markbates/refresh v1.11.1 github.com/markbates/safe v1.0.1 github.com/markbates/sigtx v1.0.0 - github.com/monoculum/formam v0.0.0-20200316225015-49f0baed3a1b + github.com/monoculum/formam v0.0.0-20200527175922-6f3cce7a46cf github.com/sirupsen/logrus v1.5.0 github.com/spf13/cobra v0.0.6 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index adf9f4da1..b77c0aa8e 100644 --- a/go.sum +++ b/go.sum @@ -870,6 +870,8 @@ github.com/monoculum/formam v0.0.0-20191229172733-952f0766a724 h1:qlTmDrFZLQIGXn github.com/monoculum/formam v0.0.0-20191229172733-952f0766a724/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/monoculum/formam v0.0.0-20200316225015-49f0baed3a1b h1:BvSZE/bUSz180cQzAEDVOh7seh57UNBlcGAte0CQ8l4= github.com/monoculum/formam v0.0.0-20200316225015-49f0baed3a1b/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= +github.com/monoculum/formam v0.0.0-20200527175922-6f3cce7a46cf h1:DJ+VDi88ZNh+C3HkJlNtfWIeOdLPxFjbtwGbWa/D3sY= +github.com/monoculum/formam v0.0.0-20200527175922-6f3cce7a46cf/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= From 2a6f20b5d26ad6ddbcdd51e5be382d4910788719 Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Sun, 2 Aug 2020 10:06:14 -0500 Subject: [PATCH 13/37] Fixes #1987 and #2023 (#2026) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * fixing #1987 and #2023 * adding missing converstion * removing commented code Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> --- genny/newapp/api/api_test.go | 10 ++++++ .../newapp/api/templates/actions/app.go.tmpl | 14 ++++++++ .../api/templates/locales/all.en-us.yaml.tmpl | 3 ++ genny/resource/resource_test.go | 34 +++++++++++++++++++ .../standard/actions/resource-name.go.tmpl | 6 ++-- packrd/packed-packr.go | 6 ++-- 6 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 genny/newapp/api/templates/locales/all.en-us.yaml.tmpl diff --git a/genny/newapp/api/api_test.go b/genny/newapp/api/api_test.go index 74e3b7387..4b9f26347 100644 --- a/genny/newapp/api/api_test.go +++ b/genny/newapp/api/api_test.go @@ -62,6 +62,16 @@ func Test_New(t *testing.T) { r.NoError(err) r.Contains(f.String(), `return c.Render(http.StatusOK, r.JSON(map[string]string{"message": "Welcome to Buffalo!"}))`) + f, err = res.Find("actions/app.go") + r.NoError(err) + r.Contains(f.String(), `i18n "github.com/gobuffalo/mw-i18n"`) + r.Contains(f.String(), `var T *i18n.Translator`) + r.Contains(f.String(), `func translations() buffalo.MiddlewareFunc {`) + + f, err = res.Find("locales/all.en-us.yaml") + r.NoError(err) + r.Contains(f.String(), `translation: "Welcome to Buffalo (EN)"`) + unexpected := []string{ "Dockerfile", "database.yml", diff --git a/genny/newapp/api/templates/actions/app.go.tmpl b/genny/newapp/api/templates/actions/app.go.tmpl index 78e68155a..c5bbe8f0c 100644 --- a/genny/newapp/api/templates/actions/app.go.tmpl +++ b/genny/newapp/api/templates/actions/app.go.tmpl @@ -6,6 +6,7 @@ import ( forcessl "github.com/gobuffalo/mw-forcessl" paramlogger "github.com/gobuffalo/mw-paramlogger" "github.com/unrolled/secure" + i18n "github.com/gobuffalo/mw-i18n" {{ if .opts.App.WithPop }} "{{.opts.App.ModelsPkg}}" @@ -21,6 +22,7 @@ import ( // application is being run. Default is "development". var ENV = envy.Get("GO_ENV", "development") var app *buffalo.App +var T *i18n.Translator // App is where all routes and middleware for buffalo // should be defined. This is the nerve center of your @@ -68,6 +70,18 @@ func App() *buffalo.App { return app } +// translations will load locale files, set up the translator `actions.T`, +// and will return a middleware to use to load the correct locale for each +// request. +// for more information: https://gobuffalo.io/en/docs/localization +func translations() buffalo.MiddlewareFunc { + var err error + if T, err = i18n.New(packr.New("app:locales", "../locales"), "en-US"); err != nil { + app.Stop(err) + } + return T.Middleware() +} + // forceSSL will return a middleware that will redirect an incoming request // if it is not HTTPS. "http://example.com" => "https://example.com". // This middleware does **not** enable SSL. for your application. To do that diff --git a/genny/newapp/api/templates/locales/all.en-us.yaml.tmpl b/genny/newapp/api/templates/locales/all.en-us.yaml.tmpl new file mode 100644 index 000000000..6514e2100 --- /dev/null +++ b/genny/newapp/api/templates/locales/all.en-us.yaml.tmpl @@ -0,0 +1,3 @@ +# For more information on using i18n see: https://github.com/nicksnyder/go-i18n +- id: welcome_greeting + translation: "Welcome to Buffalo (EN)" diff --git a/genny/resource/resource_test.go b/genny/resource/resource_test.go index e4e730624..a208e3dc5 100644 --- a/genny/resource/resource_test.go +++ b/genny/resource/resource_test.go @@ -1,6 +1,7 @@ package resource import ( + "fmt" "path" "path/filepath" "strings" @@ -220,3 +221,36 @@ func Test_New_UseModel(t *testing.T) { r.Contains(f.String(), "users := &models.Users{}") } + +func Test_New_SkipModel(t *testing.T) { + r := require.New(t) + + app := meta.New(".") + app.PackageRoot("github.com/markbates/coke") + + opts := &Options{ + App: app, + Name: "Widget", + SkipModel: true, + } + + g, err := New(opts) + r.NoError(err) + + run := runner() + run.With(g) + r.NoError(run.Run()) + + res := run.Results() + + r.Len(res.Commands, 0) + r.Len(res.Files, 9) + + f, err := res.Find("actions/widgets.go") + r.NoError(err) + actions := []string{"List", "Show", "Create", "Update", "Destroy", "New", "Edit"} + for _, action := range actions { + r.Contains(f.String(), fmt.Sprintf("func (v WidgetsResource) %v(c buffalo.Context) error {", action)) + } + +} diff --git a/genny/resource/templates/standard/actions/resource-name.go.tmpl b/genny/resource/templates/standard/actions/resource-name.go.tmpl index aa53e3db7..35c6d5f03 100644 --- a/genny/resource/templates/standard/actions/resource-name.go.tmpl +++ b/genny/resource/templates/standard/actions/resource-name.go.tmpl @@ -11,9 +11,9 @@ type {{.opts.Name.Resource}}Resource struct{ } {{ range $a := .actions }} -// {{$a.String}} default implementation. -func (v {{$.opts.Name.Resource}}Resource) {{$a.String}}(c buffalo.Context) error { - return c.Render(http.StatusOK, r.String("{{$.opts.Model.Proper}}#{{$a.String}}")) +// {{$a.Pascalize}} default implementation. +func (v {{$.opts.Name.Resource}}Resource) {{$a.Pascalize}}(c buffalo.Context) error { + return c.Render(http.StatusOK, r.String("{{$.opts.Model.Proper}}#{{$a.Pascalize}}")) } {{end}} diff --git a/packrd/packed-packr.go b/packrd/packed-packr.go index e1388b57c..8212f3594 100644 --- a/packrd/packed-packr.go +++ b/packrd/packed-packr.go @@ -33,7 +33,7 @@ var _ = func() error { "37c2dc1a1f60c5e3d5255a61cf48ad1a": "1f8b08000000000000ff2ccdb10dc3201046e13a37c52f2a68f00caed266058c023939e690392ac4ee511257affaf46a887bc84fe4939336223eaa9c0a4b80c9acafbef928c79265eb2985b72c570dddcc18f052b5f9b556bf466529edb167cc69c811a55e22b8b05a8741c025fdfdb7b2e10fbed83a47933e010000fffff34f28648b000000", "3baa9872a06bb993286ec8aa69b4f41f": "1f8b08000000000000ff5490cf4ec3300c87ef3cc54f968640a2aae04ad20b4fe22d5e172d69a6381b428877476bba35bbe49f3ffbb3639cbf601758d5524edf343c01eddb2e852ebaeefd638e006663b14f192fc7374451e551f4157ec23eb01ef08b4de51a32ea381337bc851e651c2417cc6b774d3f623310720ab2c468cdab82a8635b0c30db73296942f93989a57aa1fb3021a9101c17ee9cd7e8ef520267cf5de0ad044b5f33d796058c9e78aad4c13b2793a592cf42c373f151f4d3f457e0a195beea9b597be72febffe0efd6fb7a5e9065fb0f0000ffff829b6c549e010000", "42ef67a69104cc24dbb29e2ddffdf564": "1f8b08000000000000ffbc544f6b1b3f10bde7530c22fee14064c32f3db9eb2d213625d006d386dcb5d6d82ba295965939ae2bf4dd8bf68fbd9bbabeb5975d09cd8cde7b9a3789546fb0d6a2aae6ac3cf00f5064fc7f965e0124f95d7720b9325a19e499b6eb57967a3fb1a5ab265fad443df94c765786904cf3bb3aaf5771a3ad709cd43677754d80643407adccebb31d1bdc77859e4481936f58d91dad31849570f9f8e6167c5d66062c730632677849aa107460e1063c8c9a8a000f84c2213ce11e86c856644ba410da9b213439c954aab7f4aafd5d254e641a3bc8cda6fef2dcbe21b5ebcc924442d968e37214f29812375cf7587a0f24cc16e1ba84d91c1a4cf7ce5105bc85138338a80d98183579b04561cdf3a144600e7f38d60b4c5c9e7a1fa36a9d56a25a0bad7e2244d15d9ef6eaa191c7c46edff17779fa9fc9aaf2639714ff28644328b3f2707aa28d25180fc57c11f4202afcaecc56630837a00c9c8d58e91d091d42ff891247ddb2af4e71419e77121597358a571c1f4468b535bc50526a6469e4e3fdf5052e13ef63fda1ba21764b3275327d07a8aff1199d5b2cfdaccb9638469dac31f0c53bb0b5393c0c42568244f1b8086176fe498e441f1710ce194b998d65b7109b6006ec45e13e7a6cf4478028951b2268adf657d0ed051965b627804ba9dc6580ff5c41193b9ad82d30299ce005badc4a3603b6587e593e2f8f076b6b368a8a78724f0807bb836a47f8e9446e8195237bf88d5f3baf4edb539325d3ce5ffd29d77a3a99d6132c4eba5e1f4603f1351a87d48cb4d11c4ab15546384be376a5aca941b457ff0a0000ffffc89382642d060000", - "4334b0f46d779c32dd8a3ee235a4b42e": "1f8b08000000000000ff84565f6fdb38127fd7a718e8c9361c0ab8470329906bd3e60eae6354bee680a26818716c714b71b82465c730f4dd174349891d20bb4f92c8dffc9ff98d9cac7ecb1d82aca2261bb24c378e7c84490690ef74acdb27515153ece8a9dd6ea5a102edfe98bf7b3b3c19b0255f6108e61d6473b81a118c76d2cbc6d06e87fe7d8133d05b175aebc9185445c0aaf5986719c0e9047a0b825c0ce2c639f1a063bd26075dc7c2a7d3ebcd575268c2faf7aeebfe31b62b47aed8ffabe08723d71cf2de145a05575d97bd91f7a1a8c887f7d53e170143e0ec33a6221bd1c67874f87e1ece407936cdb2a280dbd577d001da800a22418dc64138e858d51030466d77019e24df9285438d1e21d6c892d239a32bc9f5670d4fa8ed0e7c6b057cc2ad6c4de4d35ce11e0db9066dcc45b6973e59bc066e07f105e324ff72ffeb76f53d9f5f62a7092b9d83d91000273cb97ce31cabee9d91c680a73662006915345a298307e991fb080651960a35b546c11382c2adb6a8046c6a1d5853ac112cfa3d428536a207dac2915aff264a9115051f7da396f3323f3336879da7d6853960ac8410c00e28ac8cf4a86073bf86ab0ff0e9fe61c53a7abb0d4a1bb8cf8ed482540ae4b9f391e0513af70833b98de86783324eb16415c9dc1c622d63ff0e076d0cacee3750cb3df617160f673a395e84209b543d0edbb7c8a17a0cd4fa6a7438c51a400638a03163d0ff89204da0c1eda47e4cbb47a86aac7ea3026d5332c92bf4fc76bc48440afeb1e44c7fd606c3237b21e1e3cde6e3ddd5cd72d96b9c4320d0712c98340779e4f662616764850a8c0c71b495642e5c9fb3ef3af619711ef768476759c74b5952661918092ceed173735492d94064dbd656dc6993e94503c229032e1a37e6f535586dd209f40763bf89151e26e3fbbd4b5ef530805bbb5ff00ccc87efb21fe23292c7058c232d56ad31a76e04ad3d3e488f61013f7e8e7a87b3512f53800f6298bdc954dc49ab0cfa5145f7c6e04a36b880fcd7399df199e0d274ddafc193bc17eba6597af2f8b5911a193567ea081e95f658a52496e572cc85f85fc049e2e9b25c4ea6afd24bda81c73f5b0cb1e76e8ce8034cb6daa4179eb7e3545ce839a36fb11e6596e9fb557189b1ef8741f9c07590183112fcb7bc5f5d683d23435132119d8d7af147209b8f6effed3e48c61fbc74015056f58b7d6d4142f4d2867e478a110b95f82e4d8b933c3ee75331993972e223598b09371d71dfb0a17d725de9209f0c0fb50e6f32c37b446c5ead4c9ab491c4a77f4fa7a3efbc60fafdd20b7eb9dd4cf2229fc31d353874098313c4636cbd655cd625b61d8bd88fd3787dc1554c06c3edd00cd282b615356925f40949a4b3e571d3012c45b8db6cd6a580bc8ed12d8a029f65e30cf2d2cae1fa437f1ede5c9cd1e7ab7d45186036b3146733409b5255964b913600f3f80589c3864051729a951db8632a6a1ace521b12c182f3f47c5cc0e8c1cb0e159aff630a4555281266481034e411b4dd926f929533d9777f358a9e635e87e4853dbebec4f69911a7d7b28c7f3e679049afed9266ca72f96da8c5a2671d5ebad7903b4faa4d9d320c76592ed71cc91d4a853e2ca091ee4788bc697ef68f53feffabcfe40fd22b54576b4f91f2c5509e3cb14a37cdbaecaf000000ffff4ca8780e120a0000", + "4334b0f46d779c32dd8a3ee235a4b42e": "1f8b08000000000000ff8c565f6fdb36107ff7a7b8e9c9326c0adbd3e02105b2366d36b88e51b9cd80a26818f16c73a5781c49d9f1027ff7e12829b10da4dd83219a3cfeeeffefe864f54dae11641535d93018e8da918f301c00646b1d37cdbda8a82ed674dfac56d2508176bbcf5e3cedbe2cb0225f6108e605c97a37e92558da492f6b43eb35fa972f1c099d9bd0584fc6a02a02568d473ed63fff6a5fc6e2d36c3000787c04bd02412e0671e99cb8d571b320078703ab787c7c3e794f0a4d587c5b1f0e3f8cc0c4912bb6bf14fc71e4ea5dd6aa42ab6072380cceeefb5054e4c3cbb00f45c01038472c53918d6863dc3b7cd9c323a16c900f06450157f34fa00334011544820d1a0761a763b58180316abb0e702ff9942cec36e811e206f9a674cee84a729530c23d6abb06df58016f70251b13793753b84543ae461b3331d84a9f345e00178d78877198bdbbf97a35ff948d4f65f3242b9d8351e700073c6d2e61c4a9124b2f6d3032924f9e5c3ac71a5b1ba531e0a98918405a05b556cae04e7ae422840e916f850d3546c13d82c295b6a8042c373a3052dc2058f45b840a6d440fb4823d35fecc7931280adefa400d876b7ca46c0c6b4f8d0b63c0580921800d505819e951c1f266019357f0e6e676ce18adde1aa50d5c7e7b6a402a05f2d8f84870279dbb83915c45f4a30e8c232f1922a91b43dcc8d8ae61a78d81f9cd1236728bed81c5dd1126fb8b10649d92ca6efb06d9558f811a5ff506275f03c8003b34a677fa8f08d204eacc4ef07dd83d42b5c1ea1b2ad0360593bc42cfabfd492092f3772547faad3618eed80a09af2f97afaf2797b3598b388640a0639f30697672cf55c7979d91152a3032c45e57ba7362fa986dd7b18d88f3b845db1bcb184f69499165c14860718b9e8ba3924c2562b06a6cc59536cc4fea121e995d56a95e2f2ec06a9376a0dde8eb4dcc7137ecd7372e59d58a015cd9ed945b63dcfd2fdbde2e23799c42dfe962de18f378e885161e6fa5c73085cf5f7adc6eafc76566f041742d39ccc5b5b4caa0ef210e670ae7b2c629645f8f598ef704a7e670f8da5992b5d70ef9207db9fd9a48b58c9a23b5078f4a7bac5210cb72d6c7427c0c384c245f96b361fe7c7b466bf0f84f8321b6c48f117d80e14a9bb4e07edbe7e204e788fbc5a2bf334bff9f814b8c6d3d74e01d054222ca48f06779333f413de24851323f1db57af177209bf5667f774c24e5b75eba0028abcd937e6d414264e66a07ace865a1129fa4697098c5872c17c39123275e93b598e4f25eee03d6b44da62b1de4bde1a6d6e12c323c5e5a7e6cb50ceb34a8c49bdff3bcb79de74e3b76da8befae96c3acc8c6704d357655c2c249c4636cbc65b9c121b16decc83791426a29435281a14a1a8415f7f1982708342ec53f3e9135dc754f0bb1bc1b272eb5aa45e8959c315e13d227e13354453e9556af8b7c0a314375514e8cc2fb3579046d57e4eb64ea143631ba302d9ee7a2d0fc82291455a14888fadf24dab6fab19bc3fca991df3f19f896a5b8d97832a14f3ff22d1b2cc769e722bd3b52f3f3e3caa71597d5b4f520f0ec13a2e8ffe563c8d04e3e9659fe5b02f8e98c514419c90dd177e979cacef2c8ae61de25aaefb6ef849859bb3bedba565ad0b6a23a8df436a6693aac981775004b11ae97cb452920e3884e8b021f64ed0cf2a323838b57ed7e383b389a73cffa156180d1c8521c8d006daae9b29c8994411eb827d31696048a92d10cb6e3d6aea8aeb99c9b902621384f0ffb1fe43ac9fc8f3a79f14159b415f2cc66dfab8e2eeefdfbf638512ddae93c28cbd9872e17d3763cf0a3e90232e74935a97d3a062ecbd9823db946a9d08729d4d27d0e919f045fdacf63f6d7e42df99df40ad564e1295236edd29325fa3f70adfc170000ffff9db270a2f80b0000", "47cdc99cfd7800b23c57b35568e02598": "1f8b08000000000000ff8453d16e2b35107df7578c6e1e7861775321845454a4d2842b046da240dbdb27e4d893dd21de19637be98da2fc3bb2779b80a04279f0c66766ceccf19919fcda51048aa0a11f5ca22a26dd222cc4ec31ecc82168b610f08f810246f8ee6682e0ea9b7afeb59a4197928fd74d63c5c4da16ac36d237c82d313643c4d00e64315f54d4eb169b425478aaed40ce36ea87cdea1e5ad90ebb9d76d24ce7f5f1588b4fb17ec21049f874021da1a460506af9f0041f57575757f7abc5e3cf4b109eaed69bd5a797d2d875d3f8209f0f752b4e735b4b6895da3c3e40bfb714a0f2d0c4609a379e5befebb5367bdde27adf9e4eea79b5f969f1e3e67fa2d4f1483bb880cf94ba67dc7a6df6509d4e6a06298bfc4ace81d1a643481d02fb1e8863d2ce414ce8bf84811dc6087eac5dff1e85c1749a5b8cea76b1f82750ff17eb8b0e5c2873f84107ae9d983dd465e6fcffcc58552c950fd2068c511d8fe82296cc1cf9f7d6fe15c8b6c45dbed40ceec41fca501f05eec50e0e23f49a6987314575b75abf402b752f763ace5771e8a743cd266d2cfa085bdc49c0f1ad89db624223fe90bfa30cc1204481d4e904af0856f88b048c68210904acacbcb2136db35ffac1746a562abca54c15266da774e23fb523ab13820c01de4aa005a70f188a30ad401ee20d5345e77ad27772edd8345479931219a8049a2d71a3bd57a3d1b5f3c45872b4df83b67654799c7fab63f71e6674653024da91d109a3ba183433a851d6aada05e96fa63d3993439d5fea918df43d722a4a0d5c5e6d4bacc30188e1830f62079348f8431e15afd50cc6adfa6df9f074738173b1ef896d2990cb2781795d7e59674a6034c316212232e48e408614c98eee37c2491363283b7bbb586c6ea66ca5969fd6ab5f96f0d57c3e7fb7e59edaa0731f67af848139dbe33250eefdee7e7151604cc26f2f0f9261fc8ce672f357000000ffffc5fa989b12050000", "4e577aceb26efd4aa3e9ef3ab5ae5884": "1f8b08000000000000ff9c55df8be336107ef75f311504649a53ee36f4a1ee65e176cb9642f70877d7f6611b0ec5961d114b32929c0b2cf9dfcb48b2e3dcfe80f625966646df37f34933e978b9e78d00c5a5ce32a93a633dd00c80d4ca13fcb6a6095fe3d267218ea20c6b2f952019ae1ae977fd9695462d14b7fb2df7c22d1a2b6b1f7fc977418dd9f675cd5bb318beb6d7110ee02b90f7b31598ce3bb68ef9adf70dccae17fc7bf787d24ba35d74a3133db2061abc7f4bbf5b9b2e8747985dbf98014a601787ab9773ec4cb738fc14fc23f3bda9447b410ca7c8f22485df5001376631cd3fba9ea2e45956f7ba04a9a5a7393c667e0ec25a2856802ab135b74ed0b0fc7477bb5c2e7f9e47d46d2fdbea8b540201f30c30133cf8c30ab46ce1310300a895676b2bb56f3515d662d829034857c03e0b7f8330743084ddefba3678fc2f619d34ba98f0251352ce0301265080c7cd29cf4ea9187c63a118006e1b87c518c73ed8c66500076ec158d948cd5b34c1c3c6792b759301d4c6829ce3213c63b96e444488e5c83ab8562b206fde9064844bb415f0ae13baa203ec23023cbcdd9c02ae7b903fbe2b368cb13c9de6e914fa0ab949d6ad157c1fd6a7249aaca1159a625c8e29bc3b2785f6691239dec2db737eb176585d643a829f0bb80fba059315beb73a5197a84648f01de6e7be495feea00c04aff641c99d00a26463b917a408c8691778ce6f39461ee2fda6c80e5f4ebaf2101e833c777b3207e2c30f777b97e22f147a0fcb5180d634ec8e7bde52a28d07a14ddfecb0a05e09ed1d74dc3951813710b0f38934a1f43059d847f1edd6682f8e3e503c5c6df2a7b4d77035d29683ec217c596c26b8a9c722f2a75e0f90732847d427ed34ad24b553c4ab44cdfbd68f327c1d9b184728fbc398fd9afb1d2569d090fc97e7d09fe77c9675a823a9a4aa91ecd628c57575e64aef7efaea4b55b1cfbe921a426786e5d4617a3f7a4cefa72e4c7070096ba76262044af93f043c8db3e3f2d18573e314abe979a07ee44ab02fd2b782e630bb86c3309adc3f9acce162a2d13ccca6575a258eada13302ebd61cc75bec4c87cfef3e0448a36fcc91867f13b452c2bbae5083cf615bb0c5649fcf41853f11f6ebcd4b937ad4a5a6e48ecb36b643af9105ce5805cc107f32cbe37d6ccd91fdd9d1ff866e7bfd0af4291ba6c3bf010000ffff364833083b080000", "50d3e266d6148ce655a2a7ff90ce1dd7": "1f8b08000000000000ffbc92414b03311085effb2b1e2b85f552a878743d78d793b7b2946967acc126914cc2e2bf9760060b2a56058f99f95ee6bd4cd66bdd49a0e4e2347581bc60447f8859111f303bde4bd6beeb80777099697b9069ea00c024c7e8477899e2dc0480e32ab85a8c28c5f11d79e1a1e9fb732caefbc6d9d5f78f4ee1b4b9c1d9ca806de4970a68f462dd5ab3fe2e0965e10d651b18e23c1c8f28cffc25f1d320c329de2ffecdfb37fb2a2ae917dbfa34e42da527dc5016b50eb1770123722a62a57d652f57edf8167973ea5ff8e373bc060000fffff48dcecee6020000", @@ -43,7 +43,7 @@ var _ = func() error { "5d6f2ea1184b1653049f127764858779": "1f8b08000000000000ff84524d6bdc3010bdeb573c9425b40559ec2d98f4104ad99e9a3d945e832ccfca62b51e23c9db429aff5e243b69c852727ae67dcc789eddd181233d241bfd945b012884112a4177b30f7d8276ac53b47af381ecc0908f8f0d4f393577d3d4ec8d3d1a47fba37b7a92f8033b67a81e524ba8c3f6639d66fb9711ff8b56dfe9d8fb0835619abbe0ad3629514e55720c47196a86f37998bbc6f2493beee6c3c104d66ff03972e21e3dff1a039bbe72f47be298b1bffbf1edb3dc146837bbfb82baf3a3142265e3282d25644a5988a6803a9b985a5cbf3c0be06ca2375d58dcc0eefee1ebf79f2d64f14821aeb0e360468733c5e479841dd85bc24061a2289a399172d5a1fcc9386a71fd8a0aa66e07566da1db957e2fbd553717d16d7323444997d7bdc297c18c8e9019f2f6b6c5a78bddb2687322e481b050d8f1f33502781b5b9656f6754db5d116eb39ff7eb2d2f0fab916f16f000000ffffcf5a70eb87020000", "5eb380c2ae8ca6e10dffc3b60fd4c68c": "1f8b08000000000000ff74903d6b342114856befafb8afc58b2e83032917b6d866cb14c942cae08ace4a6655f49a0fc2fcf7e038c51248a93ecf390793366f7ab2a80df9180a80bfa5980905304eb6900f1307607cf274ad1765e26d9ce2a53aa7e73836398fef0ffc2fa0544f968304a0af64f1b8963cb74b2c94ab21fc06b65b29d51f61017035183cdb42af778220dc6d83d45936af4f1ed0e68cfb03f69447fbd1a5174fd793ffa49a6d11c794841c70dddb10c17fc7f301b952a3db0c2e2530efd6ec7f070c7e6e8d8cd449939e85cd59025b00982eadfbff5d52e3fa71bffdead050d6f73dd52068405d242cf0130000ffff7b2fce9c7d010000", "60b5ddeee92d1c5cda67c7a329b10b52": "1f8b08000000000000ff348d310ec2301004ebec2b4ea9628ae40594b4f006c7d8e604b9b30e1b8a287f478250ed6a34d2141fee3e47f2a1b2ca13e0a5a8551ad0f599ebadcd63d065ca3ab794fc43a7ff5a946bb41e0e787923a3c38f8c27c92c11484d02b1701d1cade88c8eb41be7f81ef67b29dfecba396cf8040000ffff2bd288128c000000", - "6573548b2fc0f0f412c4d11f61313305": "1f8b08000000000000ff7c904d6ac4300c85f73a854867914071f685aeba2cfd61e6041e47c984269651e4d26274f7629a0ecca62b49f0f4de27251f3efc44e883ce1c3780794d2c8a2d203691b4bfa8a606ea34cd7ac9671778ed273ee771f40bf77b6da003d0ef44588ae3a49b7bf52bb9236d9c2590d95f879b4a0e5a00715fbd8ac0004a41f171223c787c7844b763a119f43d9672f0eea432c7c90c071a7d5e14e7352db452545fb50ec61c03b69f55fd2f4a77ebd7862bd11347a52fed904458b0c20a699688c11d290e246d7d8b3ba9d7bcbd3ddfa3ec366d734d7de18116f72e9c48ccee6eb29aaefbbd96e260063f010000ffffc834eef185010000", + "6573548b2fc0f0f412c4d11f61313305": "1f8b08000000000000ff7c90c14ac4400c86ef798a50f7d0824cef82278fa22ebb4f909da6ddc17666c864441de6dda5587b50f09404fe3fff9744b2af34319255177c02704b0ca2d80262e359fbab6a6c609d26a7d77c31362cfd142e791c690efd561be800f42332966242d4649e696173e214b258aef5a7c3a492ad1640dcacbb082a402928e427c603e1dd3d9a0d0b6b85bec7520e648e942ccdee936bc58147cab3a25be2cc0b7ba5556e60ccde62fbb61afea5e9feac6cedcef510bcf2bb76c82241704516d62c1ead39b11f58daf539e6aca439bd3cdea298b38af353dbecc14f61e0d91c2544965a6f7ec7355df77d36fba156f80a0000ffff7c5baa9c8e010000", "6791bbd7d67bf8d4c3e88687fb9eac28": "1f8b08000000000000ffb2c930b4abaed6cb4bcc4dd50b482c4e4eccc9ac4aadad55aeaed64b4c2ec9cccf4316b5d1cf30b4e302040000ffff9ca0bf3a33000000", "699a49e7ff71b8f8ca660965ef51458f": "1f8b08000000000000ffec5a5f73dbb8117fd7a7d8e34c3b644785d29be94b3a79b063fbceade3786c25d7b70e4c2e25d420c000a02d57c3efde5900d4bf9328275192bb8b9f64098bfd87c56f7f4bbae6f91d9f20f0dc09adec6020aa5a1b07e960009094954be853a11b4d9dabfd978970d3e696e5ba1a4df46d53965cea51fcdc2d50eb7a74fff7ddebb391415b6b55a0f142f339d3b5b3eca8aed91b5da0b4577793b64d06d960301ac1782a2c944222080b135468b8c3026e1fe138286470ee4097251a0b1c6eb9153958679adc3506a1d486b4f0a2106a32042c84136a025c1550a0c4f0056a3e4106e7253ceac640455e90b94a1ba4ddb9ae6a8933d086044021167e0ddc942b70538c66058955a81ca71c2f659d262d641b5c170ef3d19d6929f50339a178451f524f48915deac20284ea827d499b7c965ec28d5093467203699742bfc0ae8caed1b46d46b227c730e6b7125fc2956c0c979bc27e51fc0fa3f8355add987c8bf825af9075cb51fa8abbe95272b426faeefa224abd17f80063ac6ac91d52c4059a955d2eaed8f5fd6794a320e4dd1b8572d8e14ef717658ecec374df4b6dfc0fdb53148e7ae01e6bdcab39d4d47c00102b79213468bd6b17c23a98a0b3c0a5dc30f893d14dddb62c9673a3fc2df435c6ebda978877b3e66e4aba7e3a1dc3967c0e6827a4f7fb9ccdbc3369be70f5b5560e672e0334461ba028c80a3a6ff5e41872ad1406a74aa32bff731e360d00dc6c08fa0e5ebe829cbde7b2c13471b32463e95f6a5d93f2b8371b0088127ed077de048041d7180565e5d829592ed3446970862bcba335dda822a18d2d21d17adade73f39a5b0c65d0b6e4c09ffd9159b635bf73afc357e644282a3783b691ce32b8e286571612baea89bfff498de63fe12b456ab4241ca06d422b16f49c60c91be9e09e82b6c00d060daffeb6a1e3d58f2f12daf3817c7433d639706674154ca7398b7f6459f4f21a9d11788fbb0b66791827c721b7680c99f8c08ea44c7bb395fdc30bfff00a9490ebe781c674098fbf2c3099fdc295b3693275954c86100aaeb7907c284745110bd8c74db74eaf1611580dc241ce15dc223436a01a0974f79f795539bb419726cb834886f0a1cba6363e730ba9def093617f3165ab09c9d93552f429353f76e3b86becdb7f0dc1b09fc76f2ed2640f360955e08cd5b2b153e61397f982ceba64fed7fa409e94cc4d8f7e7cf182fcf8e7cddbcb3de7bd6e73f6f4f3db61f2df6f2e9e66f13a144f9a67110a6fa6fa2140219d70c11df740acd52e20ee034652d861e32e601ccde7c93c69dbb5157fddce4fda8fc14df2fcf7889b7405a5d439611e578055ed1e77e47a17ca129f90d887b29d8605cc8e359442157d1d369c9ce1153a34b0fd7ce8b80912d81ac4b9193b13aad85e829db34388b0ba448375dd49d6838379c8eeeaadbfd4ee8c523ba44dd92151b20fb4ba70768156b71ef1ef30a865a7fae15b81d622a0af065a9b16d7416b3ea7ca5b4e2247f617bc85bfb62da1cf253e80f15602a095da541ed072833c8e100a1f7661db728ce9e57d3bb14de1c3d301ec12f7e0d713cb701f02642bd7e233eb50e16619b6741ea80a7f0094bed79468a4318e86bc5d50a3232aefa3d9a4d167fceaedcd67f2ece0d8de8ef10db0f99880b95f594c18653dd4348691d3aee170ce8ef7c2f0d3b8e66fb675bee75214743c4bbad279b448ce00e01e8db1c395fed4ed3b52452c843de8bdc8eb9e4c893218633f737ba41ed36c5df2b3fa908ff80dbf0bd1fa150bfc9e0bc96f2582505614b88cbde3e7716f848fb02d190637635b8a430d39067cc223c1a7ebbda609dc94872a682c1a9a0996bb736d0ce66155a8ba716cddee21ba672f6ebd53b5d1395a4bc938554eb8c7cf003232f6691df5539cf4ed361cc8a6e98f68ac9f6299baee86e195fe7ad851f3bca4ea30e8a771a5bb0ab6e880836d72f20e2a72718291789d496ea769c68e8a224da2483284311b132c488fe043e82f2ee69b3d16acdb9fc5721a8dfca300838508a51b5095d8957fb0b8c95682d86a526f10df52484348b6f5ff3fddef2b6c767e7238eeb6e25800b5e26b53b9ed1e7c0966775a08b7a0763c3ca25db0bb5d44e3d7f482547d04a1eb1f5647e4c5d3190885f03cb13e8915fd3667cbc374b64391712abe7d6cfc5dedc9523ee56a823d843c12807e42bef678e7eadd977dbc133c7fbe2ebfe3ebb27db4d91c02bfda4cd33713c46a7b9e097e35137894f93e86822d80fa3c15fc71a682c6dff1ef6a2a086ce21b0d04c1f827ce02fe8dae75463f86fffee8232f2b6f5e77d217cf5d5608ffc9e9c5e9f8f48b3298e8ff3385797e47b5418cd6bceacae4000ce76b00744950fc25e0b90879d80ed0d71be0ec5fe31f049d9367e05d05deff070000ffffe23875a37d280000", "6d370f84065919e03dd2bd3d253bad56": "1f8b08000000000000ff2cc74d0a84300c06d0f5e41421ab7163cf9496fea16d827ebdbf20ae1ecf351d5a336b42b77913f5e17681ffc4cc2c332334c0e52dfda476b415f76423548bab143d2d7c0a6df4040000ffff73c1922350000000", @@ -51,6 +51,7 @@ var _ = func() error { "7246b36750fc4704d53f0fe7dc0f9a92": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608bb8a0e2610b1e65c8ced66036b366260711dfbd74af3f1fff4ae99b2e8c942c4b5580bcacd20c5d653b7c99ad0e60ee35a127c5bbc74d8d3d1b073cb3dae7200b0f54a7c2cd07fc835d63c5fb07248dc3f9edd5bb830bf199cd07801d697cfae954fc6d1c4723ebfafeb2c7c61a4f3271d8c849aa51aeea6ff928d36f1cade57af1618fee834b9285d1048f7d9ea9880bf00fd7000000ffffecd480c3c7000000", "72d19d26d8f2fe5da0c98e7273b5c28a": "1f8b08000000000000ffb491c16ae3301086ef7e8a61c0e080edc0664fc6f1b224bb90438ba169ef634b8945248d91959420f4eec581b6a487de7a9ac37cccfc1f7f2dd4057a4dd3b4c6f15afc06d315bfb04900ea61f5be1085b25a5959749afb1336ff84f21042c9a39fca07165297ade351ba18ebe5b06a927a29d4a549923a5dc3819df9cf2ebbe75fc86d68924fca1eb58c318740bd576cab8fbb8f64e457ac253f64e11e69c991d96d63ace0db17e56e0b719183917e605101b6cf7b8c0b0890de74d3358ce4bc229d6108e581b598859673fe72f046e3e293d4ca9ef69cfd74d6702ba002ecbc85cedbe2959c55f68839a0204f45cff6a09cc10af0af9370e5334c6727ff600e1d8b6b05b821db4b3d8ba64d52a710e7f9160000ffff43242cc0f6010000", "765269a6919d64f4181ba2d9c7592a90": "1f8b08000000000000ff348eb1aac2401045fbfd8afb428ae415fb010f5e6123d80451fb306cc6b098ec86cca671987f978876977b8a73160a0f1a19144acc499c53c54a6964d484bf7ff80f8099bb6f29a021c1efe17d5eb758b8c58da5f4aab5cf4b11dfd1ccfec292b735b0d977f5aaa8c99f49024df1c9306b5aa80348fc91e2d4545d2e38cdcbc433a7c2c34fd53adb73380dbbfd150000ffff01382a01aa000000", + "7fcc70e2c7483a7326a24bd1cdc4af08": "1f8b08000000000000ff24ccb1aec2300c05d0bd5f71d5b73c8612b1a18c4830b232a2d2baa9456223c711e2ef11b01f9d3f9cd450d4082c8b5a199d55a08256591278b71754a288d5fd516308897d6db7eda425084ff72aaf992c241d3eb41bc073c493f2a485aec9889c257580db28357ff788fef20370c5a12dcb9815ffc7f3a6efde010000fffff7ca089490000000", "813f5480d7e19daf02c182e36fa8863c": "1f8b08000000000000ff5492416be3301085effa156fdbc326c5c8f72e3da4878585a52ce450f6e6893cb645648d90e4a6a1e4bf2f92b3b4b9198fdeccbcf95e2073a4913193f54ad93948ccd828e0cec978a7cac7c707b4849cf42e04bd33d98a4f7f8e232e973bb555aa6dab1836214f8c942966eb4704b13e639088b32c11cfcb3090135008ce1a2a5d74d1fe9505863c0666872132837c0fea7b64419e6c4257da7798394fd2373013f9918bf4345186cde8855303ce46ebda72e71c4e0c4ac77529ca0d2823c9cceb564d5909331d1969898c2c4566c839741482de737ce3cdb66bb078c729d5e7bdf8ef1927f2b96c566d566745fac5549d079b341eb76a58bca9d7d96cf1a150dee1f109b41eb11c74b355801dc031d6cae7f41ff5dfb72778ebaa187032ea9f94c96d38c622bca88b52ed83bac78b644ea0832c793d981ea553eafe1efbfd6fec9750c02af5ca886c649ed9f7088e4c2155f97cb570e0c916080851decf0dd262265052bb40666248c4cb68fd7b25e53857dc79e219bdd40c949113d3db19ce0ea5aaae31d098720ee9b16d4739ac81d0565af66d2f26b5755c5dfa7f5a9e17eb7aa55e27f6e8ae0a1ccacfaeb08d8b2f308cccc13a5e8d1caca7786ebe66a772a8ce4ed6391cb8c4a12c3a71a128c30a6d556afc2afcc0ef814de65ed55a6d7d4de26db7cf24dcdc7049c577197213a96b8cb5520fadfa170000ffff71ae9b187d030000", "81cb1587fe133299c9c3ce339d832518": "1f8b08000000000000ff4c8e414ac5401044d7f6298aac1290c91d74f3c185e03f41ff4927199c991e3a3d228877974016ae8a2a8ac76b1c3f791370f4a4f5204aa5a9394602862a3eefee6da0b36dc9f7fe0851cbbce9a3af2b679daf1c68229a67dcb4c88deb92c5900e301659b967c77e8dae38c4be04bd9d7fc6ae45d07893406baff13f618cb8f0e155abcbb74f103335fcd0938977ab88e143ea22369e9ee1eeecfd787f7b8685bb5baadb38dc2467c56a5af072c94e13fdd25f000000ffff16411447fa000000", "856a80f6bafc680de7d735663c530c12": "1f8b08000000000000ff4ccbb10ac2400c80e1d97b8a583af41cee01040717c14504dd255ca31cdca562d2c5907717ede2f6f3c16f062fe407418f59cbc4b0dd415a52dcc37de60c030a6cf63fbbcc4529c295446f667d626c94ce28196b7993fb1797fb5f8708165628e980a50edd695238b667a546ac34aebb183c98118feee1130000ffff2bf5ff9191000000", @@ -115,6 +116,7 @@ var _ = func() error { b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d77707b5575db5b50791e6c1a131ac93"}) b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3453f7ce3ce1e9c9d586ba9aa79a8794"}) b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "eccd20a3ab2a512709dccf2fb8df4bac"}) + b.SetResolver("locales/all.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "7fcc70e2c7483a7326a24bd1cdc4af08"}) }() From 4643bad7fb583514fffc183d4899a15cfcbb3015 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Sun, 2 Aug 2020 10:06:44 -0500 Subject: [PATCH 14/37] changing version number --- Dockerfile.build | 2 +- Dockerfile.slim.build | 2 +- runtime/version.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 791114292..a2e3ecbf1 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -32,7 +32,7 @@ RUN npm install -g --no-progress yarn \ # Install golangci RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Installing buffalo binary -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.13 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.14 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index 1e9398933..57320e9b3 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -17,7 +17,7 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.13 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.14 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/runtime/version.go b/runtime/version.go index f5ca6e681..8c7cbecf6 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.13" +var Version = "v0.16.14" From 39711ae472dfcfb5297f6cc361b989deed2500f3 Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Fri, 4 Sep 2020 12:27:16 -0500 Subject: [PATCH 15/37] moving to latest 2 go versions (#2038) --- .github/workflows/tests.yml | 2 +- render/js_test.go | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d0f3036d1..457405146 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.13.x, 1.14.x] + go-version: [1.14.x, 1.15.x] os: [macos-latest, windows-latest, ubuntu-latest] env: GO111MODULE: on diff --git a/render/js_test.go b/render/js_test.go index 7536857f3..335e0d84b 100644 --- a/render/js_test.go +++ b/render/js_test.go @@ -124,6 +124,9 @@ func Test_JavaScript_HTML_Partial(t *testing.T) { bb := &bytes.Buffer{} r.NoError(h.Render(bb, Data{})) - pre := `let a = "\x3Cdiv` - r.True(strings.HasPrefix(bb.String(), pre)) + r.Contains(bb.String(), `id`) + r.Contains(bb.String(), `foo`) + + // To check it has escaped the partial + r.NotContains(bb.String(), `
`) } From e44a95da6b44c4360dcf8a6a05b0eb9005d209d1 Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Fri, 4 Sep 2020 15:11:43 -0500 Subject: [PATCH 16/37] Task binding cleanup (#2039) * moving to latest 2 go versions * cleaning up the decoder on the binding package --- binding/binding.go | 25 ++++++++++++++++++++----- binding/html_content_type_binder.go | 14 -------------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/binding/binding.go b/binding/binding.go index e77eb6974..e78de96be 100644 --- a/binding/binding.go +++ b/binding/binding.go @@ -2,8 +2,10 @@ package binding import ( "net/http" + "time" "github.com/gobuffalo/buffalo/binding/decoders" + "github.com/gobuffalo/nulls" "github.com/monoculum/formam" ) @@ -14,16 +16,16 @@ var ( // information on how this impacts file uploads. MaxFileMemory int64 = 5 * 1024 * 1024 - formDecoder = formam.NewDecoder(&formam.DecoderOptions{ - TagName: "form", - IgnoreUnknownKeys: true, - }) + // formDecoder (formam) that will be used across ContentTypeBinders + formDecoder = buildFormDecoder() // BaseRequestBinder is an instance of the requestBinder, it comes with preconfigured // content type binders for HTML, JSON, XML and Files, as well as custom types decoders // for time.Time and nulls.Time BaseRequestBinder = NewRequestBinder( - NewHTMLContentTypeBinder(formDecoder), + HTMLContentTypeBinder{ + decoder: formDecoder, + }, JSONContentTypeBinder{}, XMLRequestTypeBinder{}, FileRequestTypeBinder{ @@ -32,6 +34,19 @@ var ( ) ) +// buildFormDecoder that will be used in the package. This method adds some custom decoders for time.Time and nulls.Time. +func buildFormDecoder() *formam.Decoder { + decoder := formam.NewDecoder(&formam.DecoderOptions{ + TagName: "form", + IgnoreUnknownKeys: true, + }) + + decoder.RegisterCustomType(decoders.TimeDecoderFn(), []interface{}{time.Time{}}, nil) + decoder.RegisterCustomType(decoders.NullTimeDecoderFn(), []interface{}{nulls.Time{}}, nil) + + return decoder +} + // RegisterTimeFormats allows to add custom time layouts that // the binder will be able to use for decoding. func RegisterTimeFormats(layouts ...string) { diff --git a/binding/html_content_type_binder.go b/binding/html_content_type_binder.go index 0450bc48d..dd69eb56d 100644 --- a/binding/html_content_type_binder.go +++ b/binding/html_content_type_binder.go @@ -2,10 +2,7 @@ package binding import ( "net/http" - "time" - "github.com/gobuffalo/buffalo/binding/decoders" - "github.com/gobuffalo/nulls" "github.com/monoculum/formam" ) @@ -14,17 +11,6 @@ type HTMLContentTypeBinder struct { decoder *formam.Decoder } -// NewHTMLContentTypeBinder returns an instance of HTMLContentTypeBinder with -// custom type decoders registered for Time and nulls.Time -func NewHTMLContentTypeBinder(decoder *formam.Decoder) HTMLContentTypeBinder { - decoder.RegisterCustomType(decoders.TimeDecoderFn(), []interface{}{time.Time{}}, nil) - decoder.RegisterCustomType(decoders.NullTimeDecoderFn(), []interface{}{nulls.Time{}}, nil) - - return HTMLContentTypeBinder{ - decoder: decoder, - } -} - // ContentTypes that will be used to identify HTML requests func (ht HTMLContentTypeBinder) ContentTypes() []string { return []string{ From 859e8284ec9d26786bfe6c32332a1d5bd9dc748f Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Sat, 5 Sep 2020 12:04:45 -0500 Subject: [PATCH 17/37] Task update formam (#2041) * v0.16.14 (#2030) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com * Task updating formam (#2025) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating formam Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * Fixes #1987 and #2023 (#2026) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * fixing #1987 and #2023 * adding missing converstion * removing commented code Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * changing version number Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updates formam version #2040 Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 8f76c8b87..c0cb83925 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/markbates/refresh v1.11.1 github.com/markbates/safe v1.0.1 github.com/markbates/sigtx v1.0.0 - github.com/monoculum/formam v0.0.0-20200527175922-6f3cce7a46cf + github.com/monoculum/formam v0.0.0-20200905010316-d7a8fbd33677 github.com/sirupsen/logrus v1.5.0 github.com/spf13/cobra v0.0.6 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index b77c0aa8e..7446cd944 100644 --- a/go.sum +++ b/go.sum @@ -868,10 +868,8 @@ github.com/monoculum/formam v0.0.0-20190730134247-0612307a4099/go.mod h1:JKa2av1 github.com/monoculum/formam v0.0.0-20190830100315-7ff9597b1407/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/monoculum/formam v0.0.0-20191229172733-952f0766a724 h1:qlTmDrFZLQIGXnd1JE58dqyLnKyIJjR9WBeDQcT3O8w= github.com/monoculum/formam v0.0.0-20191229172733-952f0766a724/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= -github.com/monoculum/formam v0.0.0-20200316225015-49f0baed3a1b h1:BvSZE/bUSz180cQzAEDVOh7seh57UNBlcGAte0CQ8l4= -github.com/monoculum/formam v0.0.0-20200316225015-49f0baed3a1b/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= -github.com/monoculum/formam v0.0.0-20200527175922-6f3cce7a46cf h1:DJ+VDi88ZNh+C3HkJlNtfWIeOdLPxFjbtwGbWa/D3sY= -github.com/monoculum/formam v0.0.0-20200527175922-6f3cce7a46cf/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= +github.com/monoculum/formam v0.0.0-20200905010316-d7a8fbd33677 h1:N11HMdhT5DtkXsQQo3xPFipjvG7QwzKa9MBupRQqXaU= +github.com/monoculum/formam v0.0.0-20200905010316-d7a8fbd33677/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= From ec9ca999615980f463448bc97a2be36623b0745f Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Sat, 5 Sep 2020 12:12:29 -0500 Subject: [PATCH 18/37] updating flect versionm (#2042) --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index c0cb83925..be9ef8141 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/gobuffalo/clara/v2 v2.0.2 github.com/gobuffalo/envy v1.9.0 github.com/gobuffalo/events v1.4.1 - github.com/gobuffalo/flect v0.2.1 + github.com/gobuffalo/flect v0.2.2 github.com/gobuffalo/genny/v2 v2.0.6 github.com/gobuffalo/github_flavored_markdown v1.1.0 github.com/gobuffalo/helpers v0.6.1 diff --git a/go.sum b/go.sum index 7446cd944..83f7c8e6d 100644 --- a/go.sum +++ b/go.sum @@ -258,6 +258,8 @@ github.com/gobuffalo/flect v0.2.0 h1:EWCvMGGxOjsgwlWaP+f4+Hh6yrrte7JeFL2S6b+0hdM github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/gobuffalo/flect v0.2.1 h1:GPoRjEN0QObosV4XwuoWvSd5uSiL0N3e91/xqyY4crQ= github.com/gobuffalo/flect v0.2.1/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= +github.com/gobuffalo/flect v0.2.2 h1:PAVD7sp0KOdfswjAw9BpLCU9hXo7wFSzgpQ+zNeks/A= +github.com/gobuffalo/flect v0.2.2/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= github.com/gobuffalo/genny v0.0.0-20180924032338-7af3a40f2252/go.mod h1:tUTQOogrr7tAQnhajMSH6rv1BVev34H2sa1xNHMy94g= github.com/gobuffalo/genny v0.0.0-20181003150629-3786a0744c5d/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM= github.com/gobuffalo/genny v0.0.0-20181005145118-318a41a134cc/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM= From 0c5aed0f28d0b4dd51d05aa9ca12c0d841d1d1cf Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Sat, 5 Sep 2020 13:06:49 -0500 Subject: [PATCH 19/37] updating version --- Dockerfile.build | 2 +- Dockerfile.slim.build | 2 +- runtime/version.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index a2e3ecbf1..16af7cd1a 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -32,7 +32,7 @@ RUN npm install -g --no-progress yarn \ # Install golangci RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Installing buffalo binary -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.14 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.15 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index 57320e9b3..788b59d1a 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -17,7 +17,7 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.14 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.15 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/runtime/version.go b/runtime/version.go index 8c7cbecf6..52302ec37 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.14" +var Version = "v0.16.15" From 9b38d89b2b96d7fe5cf01b386a0fb6a5e8b953e0 Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Sun, 6 Sep 2020 19:02:05 -0500 Subject: [PATCH 20/37] updating some libraries to pass the github security warnings (#2044) --- genny/build/_fixtures/coke/package.json | 21 +- genny/build/_fixtures/coke/yarn.lock | 514 +++++++++++++++--------- 2 files changed, 343 insertions(+), 192 deletions(-) diff --git a/genny/build/_fixtures/coke/package.json b/genny/build/_fixtures/coke/package.json index 46e4a4ba6..c1ca5e7e0 100644 --- a/genny/build/_fixtures/coke/package.json +++ b/genny/build/_fixtures/coke/package.json @@ -9,33 +9,30 @@ }, "repository": "github.com/gobuffalo/buffalo", "dependencies": { - "bootstrap": "4.5.0", - "popper.js": "^1.16.1", "@fortawesome/fontawesome-free": "^5.12.0", + "bootstrap": "4.5.2", "jquery": "3.5.1", - "jquery-ujs": "~1.2.2" + "jquery-ujs": "~1.2.2", + "popper.js": "^1.16.1" }, "devDependencies": { "@babel/core": "^7.9.0", "@babel/preset-env": "^7.9.5", - "babel-loader": "^8.1.0", + "copy-webpack-plugin": "~6.1.0", "css-loader": "~3.5.1", "expose-loader": "~0.7.5", "file-loader": "~6.0.0", "gopherjs-loader": "^0.0.1", + "mini-css-extract-plugin": "^0.11.0", + "node-sass": "~4.14.1", + "npm-install-webpack-plugin": "4.0.5", "sass-loader": "~8.0.2", "style-loader": "~1.1.3", + "terser-webpack-plugin": "~4.1.0", "url-loader": "~4.1.0", - "node-sass": "~4.13.1", - - "npm-install-webpack-plugin": "4.0.5", - "terser-webpack-plugin": "~2.3.1", - "mini-css-extract-plugin": "^0.9.0", - "webpack-clean-obsolete-chunks": "^0.4.0", - "copy-webpack-plugin": "~5.1.1", - "webpack": "~4.42.1", + "webpack-clean-obsolete-chunks": "^0.4.0", "webpack-cli": "^4.0.0-beta.8", "webpack-livereload-plugin": "~2.3.0", "webpack-manifest-plugin": "~2.2.0" diff --git a/genny/build/_fixtures/coke/yarn.lock b/genny/build/_fixtures/coke/yarn.lock index d62a48247..3b372abfc 100644 --- a/genny/build/_fixtures/coke/yarn.lock +++ b/genny/build/_fixtures/coke/yarn.lock @@ -748,11 +748,49 @@ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.0.tgz#fcb113d1aca4b471b709e8c9c168674fbd6e06d9" integrity sha512-xKOeQEl5O47GPZYIMToj6uuA2syyFlq9EMSl2ui0uytjY9xbe8XS0pexNWmxrdcCyNGyDmLyYw5FtKsalBUeOg== +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@npmcli/move-file@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + dependencies: + mkdirp "^1.0.4" + "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +"@types/json-schema@^7.0.5": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + +"@types/node@*": + version "14.6.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a" + integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ== + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -946,12 +984,22 @@ ajv-errors@^1.0.0: resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4: + version "6.12.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5: +ajv@^6.12.0, ajv@^6.5.5: version "6.12.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== @@ -966,7 +1014,7 @@ amdefine@>=0.0.4: resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= -ansi-colors@^3.0.0, ansi-colors@^3.2.1: +ansi-colors@^3.2.1: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== @@ -1074,6 +1122,11 @@ array-union@^1.0.1: dependencies: array-uniq "^1.0.1" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -1084,14 +1137,15 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" asn1@~0.2.3: version "0.2.4" @@ -1214,9 +1268,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== bindings@^1.5.0: version "1.5.0" @@ -1243,9 +1297,9 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== body@^5.1.0: version "5.1.0" @@ -1286,7 +1340,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -1338,15 +1392,15 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: bn.js "^5.1.1" browserify-rsa "^4.0.1" create-hash "^1.2.0" create-hmac "^1.1.7" - elliptic "^6.5.2" + elliptic "^6.5.3" inherits "^2.0.4" parse-asn1 "^5.1.5" readable-stream "^3.6.0" @@ -1398,7 +1452,7 @@ bytes@1: resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= -cacache@^12.0.2, cacache@^12.0.3: +cacache@^12.0.2: version "12.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== @@ -1419,28 +1473,27 @@ cacache@^12.0.2, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== +cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" fs-minipass "^2.0.0" glob "^7.1.4" - graceful-fs "^4.2.2" infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" + lru-cache "^6.0.0" + minipass "^3.1.1" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" + mkdirp "^1.0.3" + p-map "^4.0.0" promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" unique-filename "^1.1.1" cache-base@^1.0.1: @@ -1538,10 +1591,10 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" - integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== +chokidar@^3.4.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" + integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -1553,11 +1606,16 @@ chokidar@^3.4.0: optionalDependencies: fsevents "~2.1.2" -chownr@^1.1.1, chownr@^1.1.2: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -1759,23 +1817,22 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-webpack-plugin@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88" - integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg== +copy-webpack-plugin@~6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.1.0.tgz#5bde7f826d87e716d8d5e761ddd34bb675448458" + integrity sha512-aWjIuLt1OVQxaDVffnt3bnGmLA8zGgAJaFwPA+a+QYVPh1vhIKjVfh3SbOFLV0kRPvGBITbw17n5CsmiBS4LQQ== dependencies: - cacache "^12.0.3" - find-cache-dir "^2.1.0" - glob-parent "^3.1.0" - globby "^7.1.1" - is-glob "^4.0.1" - loader-utils "^1.2.3" - minimatch "^3.0.4" + cacache "^15.0.5" + fast-glob "^3.2.4" + find-cache-dir "^3.3.1" + glob-parent "^5.1.1" + globby "^11.0.1" + loader-utils "^2.0.0" normalize-path "^3.0.0" - p-limit "^2.2.1" - schema-utils "^1.0.0" - serialize-javascript "^2.1.2" - webpack-log "^2.0.0" + p-limit "^3.0.2" + schema-utils "^2.7.1" + serialize-javascript "^4.0.0" + webpack-sources "^1.4.3" core-js-compat@^3.6.2: version "3.6.5" @@ -1791,12 +1848,12 @@ core-util-is@1.0.2, core-util-is@~1.0.0: integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" - elliptic "^6.0.0" + elliptic "^6.5.3" create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" @@ -2011,12 +2068,12 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-glob@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: - path-type "^3.0.0" + path-type "^4.0.0" domain-browser@^1.1.1: version "1.2.0" @@ -2046,10 +2103,10 @@ electron-to-chromium@^1.3.413: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.451.tgz#0c075af3e2f06d706670bde0279432802ca8c83f" integrity sha512-2fvco0F2bBIgqzO8GRP0Jt/91pdrf9KfZ5FsmkYkjERmIJG585cFeFZV4+CO6oTmU3HmCTgfcZuEa7kW8VUh3A== -elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== +elliptic@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -2072,9 +2129,9 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: once "^1.4.0" enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" @@ -2148,26 +2205,31 @@ eslint-scope@^4.0.3: estraverse "^4.1.1" esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "^4.1.0" + estraverse "^5.2.0" -estraverse@^4.1.0, estraverse@^4.1.1: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -2271,15 +2333,34 @@ extsprintf@^1.2.0: integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1, fast-glob@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fastq@^1.6.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" + integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + dependencies: + reusify "^1.0.4" + faye-websocket@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" @@ -2541,7 +2622,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@~5.1.0: +glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -2565,6 +2646,18 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -2576,18 +2669,6 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - globule@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.1.tgz#90a25338f22b7fbeb527cee63c629aea754d33b9" @@ -2602,7 +2683,7 @@ gopherjs-loader@^0.0.1: resolved "https://registry.yarnpkg.com/gopherjs-loader/-/gopherjs-loader-0.0.1.tgz#c9e25aa7693731de5daa0ea829a96b47f7e92668" integrity sha1-yeJap2k3Md5dqg6oKalrR/fpJmg= -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -2757,10 +2838,10 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== import-local@^3.0.2: version "3.0.2" @@ -3079,11 +3160,12 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jest-worker@^25.4.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" - integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== +jest-worker@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f" + integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw== dependencies: + "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" @@ -3330,6 +3412,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -3408,6 +3497,11 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -3427,6 +3521,14 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -3512,6 +3614,14 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -3543,6 +3653,11 @@ mixin-deep@^1.2.0: dependencies: minimist "^1.2.5" +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -3593,9 +3708,9 @@ nanomatch@^1.2.9: to-regex "^3.0.1" neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== node-gyp@^3.8.0: version "3.8.0" @@ -3861,13 +3976,20 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.3.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" +p-limit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" + integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -3894,10 +4016,10 @@ p-map@^1.1.1: resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" @@ -3926,13 +4048,12 @@ parallel-transform@^1.1.0: readable-stream "^2.1.5" parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: - asn1.js "^4.0.0" + asn1.js "^5.2.0" browserify-aes "^1.0.0" - create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" safe-buffer "^5.1.1" @@ -4005,17 +4126,15 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -4028,7 +4147,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.2.1: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -4276,7 +4395,7 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -4518,13 +4637,25 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -4533,6 +4664,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -4605,6 +4741,15 @@ schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6: ajv "^6.12.0" ajv-keywords "^3.4.1" +schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + scss-tokenizer@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" @@ -4633,15 +4778,12 @@ semver@~5.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== - -serialize-javascript@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.0.0.tgz#492e489a2d77b7b804ad391a5f5d97870952548e" - integrity sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw== +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -4707,10 +4849,10 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== snapdragon-node@^2.0.1: version "2.1.1" @@ -4850,12 +4992,11 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== +ssri@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" + integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== dependencies: - figgy-pudding "^3.5.1" minipass "^3.1.1" static-extend@^0.1.1: @@ -5076,40 +5217,61 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" +tar@^6.0.2: + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^2.1.2" + serialize-javascript "^4.0.0" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@~2.3.1: - version "2.3.6" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.6.tgz#a4014b311a61f87c6a1b217ef4f5a75bd0665a69" - integrity sha512-I8IDsQwZrqjdmOicNeE8L/MhwatAap3mUrtcAKJuilsemUNcX+Hier/eAzwStVqhlCxq0aG3ni9bK/0BESXkTg== +terser-webpack-plugin@~4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz#6e9d6ae4e1a900d88ddce8da6a47507ea61f44bc" + integrity sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA== dependencies: - cacache "^13.0.1" + cacache "^15.0.5" find-cache-dir "^3.3.1" - jest-worker "^25.4.0" - p-limit "^2.3.0" + jest-worker "^26.3.0" + p-limit "^3.0.2" schema-utils "^2.6.6" - serialize-javascript "^3.0.0" + serialize-javascript "^4.0.0" source-map "^0.6.1" - terser "^4.6.12" + terser "^5.0.0" webpack-sources "^1.4.3" -terser@^4.1.2, terser@^4.6.12: - version "4.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.7.0.tgz#15852cf1a08e3256a80428e865a2fa893ffba006" - integrity sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw== +terser@^4.1.2: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.0.tgz#c481f4afecdcc182d5e2bdd2ff2dc61555161e81" + integrity sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -5317,9 +5479,9 @@ upath@^1.1.1: integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== dependencies: punycode "^2.1.0" @@ -5409,14 +5571,14 @@ watchpack-chokidar2@^2.0.0: chokidar "^2.1.8" watchpack@^1.6.0: - version "1.7.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" - integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: - chokidar "^3.4.0" + chokidar "^3.4.1" watchpack-chokidar2 "^2.0.0" webpack-clean-obsolete-chunks@^0.4.0: @@ -5456,14 +5618,6 @@ webpack-livereload-plugin@~2.3.0: portfinder "^1.0.17" tiny-lr "^1.1.1" -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - webpack-log@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-3.0.1.tgz#647c42231b6f74d7cc3c3a66510370e635d066ea" From 5476b1d473a0c6bbbce3c915935c8326c1b1c993 Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Fri, 18 Sep 2020 12:17:36 -0500 Subject: [PATCH 21/37] Removing Grifts folder (#2050) * removing the grifts folder * removing grifts folder from codeclimate exceptions --- .codeclimate.yml | 1 - grifts/tools.go | 37 ------------------------------------- 2 files changed, 38 deletions(-) delete mode 100644 grifts/tools.go diff --git a/.codeclimate.yml b/.codeclimate.yml index a6456d0ee..f39e7cad7 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -18,7 +18,6 @@ exclude_paths: - "generators/*/templates/**/*" - "buffalo/cmd/filetests/*" - "examples/**/*" - - "grifts/**/*" - "vendor/**/*" - "**/*_test.go" - "*_test.go" diff --git a/grifts/tools.go b/grifts/tools.go deleted file mode 100644 index e8d989bdc..000000000 --- a/grifts/tools.go +++ /dev/null @@ -1,37 +0,0 @@ -package grifts - -import ( - "os" - "os/exec" - - "github.com/markbates/grift/grift" -) - -var _ = grift.Namespace("tools", func() { - - var run = func(args ...string) error { - cmd := exec.Command(args[0], args[1:]...) - cmd.Stdin = os.Stdin - cmd.Stderr = os.Stderr - cmd.Stdout = os.Stdout - return cmd.Run() - } - - var _ = grift.Add("install", func(c *grift.Context) error { - if _, err := exec.LookPath("golangci-lint"); err != nil { - if err := run("go", "get", "-v", "github.com/golangci/golangci-lint/cmd/golangci-lint"); err != nil { - return err - } - } - return nil - }) - - var _ = grift.Add("lint", func(c *grift.Context) error { - if err := grift.Run("tools:install", c); err != nil { - return err - } - - return run("golangci-lint", "run", "--fast", "--deadline=3m") - }) - -}) From 70f4aafe400ff0a094fc3f314cf25972d149d480 Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Wed, 7 Oct 2020 13:49:45 -0500 Subject: [PATCH 22/37] fixes the non-existing .git folder case (#2053) --- buffalo/cmd/build.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/buffalo/cmd/build.go b/buffalo/cmd/build.go index 1c663668e..9f75d89f7 100644 --- a/buffalo/cmd/build.go +++ b/buffalo/cmd/build.go @@ -130,9 +130,16 @@ func buildVersion(version string) string { run.Logger.Warnf("could not find %s; defaulting to version %s", vcs, version) return vcs } + var cmd *exec.Cmd switch vcs { case "git": + // If .git folder does not exist return default version + if stat, err := os.Stat(".git"); err != nil || !stat.IsDir() { + run.Logger.Warnf("could not find .git folder; defaulting to version %s", version) + return version + } + cmd = exec.Command("git", "rev-parse", "--short", "HEAD") case "bzr": cmd = exec.Command("bzr", "revno") From 1a802535dcd262c116cb251ae414786c7f7e013c Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Fri, 16 Oct 2020 12:27:21 -0500 Subject: [PATCH 23/37] calling persist explicitly (#2054) --- route_info.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/route_info.go b/route_info.go index b0d7f8fec..3309abbed 100644 --- a/route_info.go +++ b/route_info.go @@ -94,8 +94,6 @@ func (ri RouteInfo) ServeHTTP(res http.ResponseWriter, req *http.Request) { a := ri.App c := a.newContext(ri, res, req) - defer c.Flash().persist(c.Session()) - payload := events.Payload{ "route": ri, "app": a, @@ -103,8 +101,8 @@ func (ri RouteInfo) ServeHTTP(res http.ResponseWriter, req *http.Request) { } events.EmitPayload(EvtRouteStarted, payload) - err := a.Middleware.handler(ri)(c) + c.Flash().persist(c.Session()) if err != nil { status := http.StatusInternalServerError @@ -117,5 +115,6 @@ func (ri RouteInfo) ServeHTTP(res http.ResponseWriter, req *http.Request) { c.Response().WriteHeader(status) c.Response().Write([]byte(err.Error())) } + events.EmitPayload(EvtRouteFinished, payload) } From c55480191b0880148c820d6a0bdbda63459e7ea7 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Wed, 21 Oct 2020 19:55:48 -0500 Subject: [PATCH 24/37] adding version number --- Dockerfile.build | 2 +- Dockerfile.slim.build | 2 +- runtime/version.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 16af7cd1a..0f83c15d6 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -32,7 +32,7 @@ RUN npm install -g --no-progress yarn \ # Install golangci RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Installing buffalo binary -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.15 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.16 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index 788b59d1a..4badb0dfe 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -17,7 +17,7 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.15 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.16 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/runtime/version.go b/runtime/version.go index 52302ec37..9ec0a5fa2 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.15" +var Version = "v0.16.16" From f88da17c2ad833689b138671f70cced2d594decd Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Wed, 11 Nov 2020 08:30:37 -0500 Subject: [PATCH 25/37] Pointing README to new go docs link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 37ce67a9b..69798591d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

-GoDoc +PkgGoDev Tests Status Go Report Card Open Source Helpers From 45acf7a9d995b6ff483c5e30e4af633f5ccb95a5 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Wed, 11 Nov 2020 08:59:32 -0500 Subject: [PATCH 26/37] running packr2 --- README.md | 2 +- packrd/packed-packr.go | 282 ++++++++++++++++++++--------------------- 2 files changed, 142 insertions(+), 142 deletions(-) diff --git a/README.md b/README.md index 69798591d..e4d2d12ea 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

+

PkgGoDev diff --git a/packrd/packed-packr.go b/packrd/packed-packr.go index 8212f3594..3cb3ea982 100644 --- a/packrd/packed-packr.go +++ b/packrd/packed-packr.go @@ -11,79 +11,79 @@ import ( ) var _ = func() error { - const gk = "4dcbdf8144bda526614a21c6047cc42a" + const gk = "c0c964921797caa6d52bcd12ef38ede5" g := packr.New(gk, "") hgr, err := resolver.NewHexGzip(map[string]string{ - "02e9568ee200d1f95e13ba2235a3085a": "1f8b08000000000000ff9454c16edb3814bceb2b064c60ec2e4009392c1008e9c1a95df790c6aea5b4e849a0a46799082d2a24e53670f5ef8524cb8993a6494f4f18be9911f9864c69a50d253633b272a1b7db71c815e80ebeae9cf52797f17d456095b6ae3064199ac6033844e578410e75950b47188d0e882cad134a81df6360dd299e2949a5ebf44959faadc9e6dedea9bf73e82847e2653e08a812dc22486ba9728ba0d081355970fa0f656b0db6dbf5e6e3aaf21722bb15052d6e8ba661f889ac76e03958c0c05767ff766a597e907889daf56d6e7369c02b5475aa6416086bc9d96ea9d0687f9fd728a45bd7a99fe94d50e8b45ead84d2c1933a50363a47aebf974a8bbcc3e847a58dc3621c7f7cc74edb129ecee66d0d525932cfb34e1464c3aed991759ee7b7856f85b12146876f0fd80a2345aafa6e60364fa6d75f42b0b687bd350dc0621ec5b3e5344a2697e1f1d15e8b0df91fa4a2a6491e44df1401e0d3b7e8f3553219c7e3cb71347d55f981b29ccfe364318ea2aff3e52404335a0fce433e80781ac507f1e46679d51bb45a93f4c6a8a6619e77829956a22cb02563a52e91adb5cc086b521519cfaf2df1a2ebe072230a0a317a0429d19d3fb05febe1700fbfc63ee3e7cfa867feb9e7b5ec76602778bf166541701aece222c47fcfbc59bb565b825b137a08333decc6039ed27ad30e7d1c942e5321f6dbb164b6326b53f352448e07c9fb8b1afeffe7e93fcb153f3c21c3991dcd7078b5fad6fdbde9fff157000000ffff99f35612d8040000", - "04485932d90f92b1f6d01ac655f3b3d2": "1f8b08000000000000ffa4935b4cd3671887ff26de6d59d8922d9b2eb33aa6558aadd406e3d45a40c64108300373ba1a8452a0500e838156401ca70844c7383928c7164a2dd0ca414e15778893a51048c620dbc230195bb22cc8b8a63c0b2064f77b9237bf2f5fbee77baf7e82b04bd82578786ca44848dc2d086f0882201604c143100491b075bfc96e4178eda5add98617acadb937f3f9f3659a4d7da87515f845e57136328f8bdadb7cf9958da53ffedc79bbbebebeade2766f9dedfde3f886e4f2e6891cde3e654074c680e8d475f61ccfe6755926126526f75a1cb0beb6e96fccb65b5963c1439c88e7f9124ec616732cbe0ec9d53abce38d48a38bf009c9c033a89457c449a4196a5ffcb1b5bfbbcfc9ab122d074f5fc753994de0d57c62efd850dfed475d35486c652767626f7128bc0cb1d2c0cbe238caab4c9beef2df7fa1d21bf1d2b4228b337230b21275452fe9ed8f894a2f223aa7820cf3d7846519d92bcfe4685809b24bb5482e55323bf70b2d3d4ec4da0e14993dc8756df8e5b4139e5e8ad7c9300e78fb73c05b85541941f8a795f86aeea248ef24a0681c454e3f85f71cc4df6cc24b67c3476f45a16be1d4875af61c3cc33b9200ce4705e11f1acc5b87fcd92f0d40f5710e87833fc7d3ff069ee70af8405d4a68463d47d3ecc8d36c48350dec93a808bb10c4a0ed0263c3597cebd4d1d61081af4ac561df18fc937bf152d72055d713a83111906e449a6a439e66c53bae91d331494c4d14b3f49b93d68e62ec0faa595eeaa3c79ec989c81b84660fe095d080546f2144dfcdfb294dc852adc8f55d48932d4414753038d2c4946b9edfe7ef303f6361c6354daba39ae8422731d726507e3688a2e009970d03f8c455732cb50b9f940e8e6adbf0cbed22bfc5ccf0680521091a92f232187df405ba9a2e0c75e32494b8f8e4d614970b2729ab1b22bfda8a58d3caf1e4667c7466e4574a286fba4f424115fb4e46f3eed98b14d69ac82a6f446d3061ec71d1f77896fc2a3b13ae196e37f6225237234bb17248634671a58ce8f85444de4a8e28cef19e4cc511df603e4acce2669505ebc8240ee7534cf7fb8175565756d116d713985c4a446e2389e5163a1f0c11a54e65efe1b3ec97faa1bf5648f7c8180ee7389d030fa96e32b3b2f2cf4e7fa6e77e64e1d90293ae27d807da714d7fc7af8b0b34771ae91f3633fbf337fc30fd90c1d12e0686fa585d5dddf4fedba1ed362e3e5be4d1b883a1e1562626cc3cfddec4d8580b63ce1ee6e67ec2ed76efb81b08ff937f030000ffff6ddbe2317e040000", - "06a6a4ca9e718a10ee1efef1c2e49b52": "1f8b08000000000000ffa4574f6fe3b613bdfb53cc4f0860293f59027ad4c2dd431a2c0aec26db76db3dd846424b239bb64c6a399412afedef5e50a464f94fba059a836593f31e8733a33793540ad2f015e7254bd7300685df2aaed0f75eec9217bc1b589b0f859cf70d16859c1f77ef64b9752c9f8b6ac145df3495e576e4084765b37d447ee282df11ddbf6ac5527d09de70c14729d108adc52501133c47ba026d8fdc388b0be85d814c3cce4916a8f16e5989355dc3a7c66c249ddd286d0c8f2c5f5011aacbe375b3fee6c53ff21a7fc742b2ec6dcf0b5ea36a6c7a70874fa5c8f9a2524c4b0563d80d005068c59112c82b916a2e851f9865809aa976d3999a3f5696054f99314c60e2160186512c64864f1b99550552bcfa56a1da8eaa15c5a4d258315e50b4a261d8473022d414a744718f36a2948e8633fbe530681ea6a022da8ad4f73af86d7c1bdd7a41944b75cfd2a5ef1ba7b7018c7fee9ce639d855188fc73f3a39e860000a75a584fbe97c002850c31ab7306ee2b38d1496054bd18ffd693475dcd3d82795ee57b44f89f60b194ce3603f8d7c4d668d262c9dd9f57811c27018749efa6bdc46a499d2f495eba5ef3d7901ecf7e0c797d89b98079146d2dd9dc790b382f0c777e0b9df6677b2c6edcc404555147de4e93e4c9a43663f20ee83a2b2a2a5f3cda6d13e2cb2351d001c4203b7e54a7eeb83a940b7668e7707087c69c527faac64cd33b42f83bfbb49c0b395e785abdfccf3b87008c21ec13505f177392f50b00d26e04dcc73164d5229340abd64b49c4529d119cf8586f9935daee42681ae40bd50cb043cef300b616764ed4fb19119cf396609685561c817422a4c60e29982bcbdf542f056ed17f3fadcde7a33383db88dc047c932548fa5a95f6aef61f46fc3bfa3e3cf705e2d125b19676138d1411b80071b805600a31549717eeb4b0df46d6667ef06fd0cbbec7519b6f2e0bced4b8ecbb883b525a88c96f465e6589b00a6ee1388a7917b216ee2b0b75b11f681e6ef5acea3a2895f7862b803bb9a8049c8c8fef04290addf3b92954af1132b6d840f8737094a49fa3f9310fb970c3d82e37bdae3dd1da3a6e9f5fd4d1cda4079bac78faf69516598c0a9a45fa759599aced5399b63d171bd41f5864bfe8bccf3bdf9f869af75bea77a11f8d3f7f5789afd7f1ab51f8139cf7a5da9eea8eb8c28f53f12987a6f19ae39e59a6ba4906451a3df8a49e0f0f85a4a6a19de5bc9f9dfe9e2cd1bae2de431fa0b592e51adba1cb4799cb9ded7be3ef38a17d95dd3c32ffb751cc3c3e397fb047ecd612b2b600a61c96a2e16c0892a2478e17a097ac90984d43047b345a8c12b952c51155b2f840d5b634b47954243a5e0c3e3d3fdc35fc0a9b16fcd81113ccfab3c6785b4be3d83ac51299e21c1c3e32ff706d5b235a7bf2c99c61acf19b504a9c0cbb0c642961b14da8b1a9c1d5b50d43036c7a64814a1a8a396dc74c61398d31fd33aecb0d39b5d36d294228a3aecf5aa6d72321545ae29f99de0c94a97954ee05a77b06d61455e0825d3cb049e6f764f4f195766ff1097d5bce0a9eb03cf5d1d38553c3bb8eb7ee1d1ddaac033ab13053ddaba024dfaddfb55a320ab149361a46918c2b099c19a8714c359d7bbe1d8c1ed60503793d249642168b9ad43adc3b6c99bb6703e9dfa3b569628b23f52c54bfd852d9c4c0541e77523f796afef844dbb1d8661dcf49cfec4ecb79e588bae9f1c2f9fca4da990cc5aeff5db30b1284e8204b0462c9f72932fb2ee5dd3cdae067ac0546e4c5cc835d6f012d77d71ff86dc5d431c82eeca26a846dc37fc7b338ff64bd7757495c0c45e7ad68fd779200f83c360604b253272a4b499a04e0aa9a7257e30f83b0000fffff3292c28d40d0000", - "09debad446adbbaa70992811a3b479d2": "1f8b08000000000000ff72c8cc2dc82f2a5150aa4bcacf2f292e294a2cd02f4e2e2ed68773f5405c256b2e844a87b4fca292c4f2d4e2fcdc54fdb4fc3c185b37ad2835551fa4393127472f37334f0fa213a135a9342d2d31275fc99a0b100000ffff04baf43578000000", - "0ac9c97b14565a81e81adc4ef482ff28": "1f8b08000000000000ff7c94c1ab1b3710c6cfd55f31cf2ea4599c7d4e7b28bc4b49531a7269030998107a186bc796b0ac11d2c8db25e47f2fa3f53a79f491e38ad137bfef9bd1ae6147c1f29940187eaf870306be33e683c37882892b1c388375ccc5c7e352d00e27ae1946dac340170a9cce140522d1507a633e7f067f809e9394fe554afdce8b7bc7095e7cf962d66bf80305f75808de93d464cc5b81c07c2a10fc895a5bebb834a6420235cddd30a5e02d8ae708b501210c57a93bf813a360116f1b3fc1c1e722204eeb5452d9547160f005385154617104ab45a49fce6105071f08300e408317f0a297aad23802cb399315fdce11cf543690b09491f35036e0b848d90089edfb1ec4a1006652eecc297b14fa1a1dc58bcf1c35b6de988f5c61f4210086c237d4339e084acd346b75ddc4b5eba00866b9f7b10886d0b01603c08759dd3af696fadbc4ba6ee4f84cba0e966b6ab009a9c32b556fcc7abd86d79914f5a30a2da32ac6fc7dda4061ad7b76a1168e527e27bf264fc34cb4d46c20f278e3b218c1ceedbef551c0c7d97313bbe23d18f3c38fb0bf5e4d9c96ab2f50578ee2d0164c37ecbdb6d6c9abeaabaf7b63ccd2b9389f0a8c5e1c20583e9f95b8b56c731851acfbffda691156e1338ab718c20499f6d5873988370c7b1f314f735d9c004b2129b77ce143dbbfd626d738a7b7181ae8b25a481e5b1de862ccdb365a48eca3cc60fbcc63a1ac9bf2c989a487fbfb973fffda6ffb6dfff2e197ed76fbcf4f4f1e3f6f42c5710d03142240583df11b5841c223f5c674dd6b8ec78c52434ba1dc759d6e479ba4c30bcd384bb28f9e696a51e41aa38fc7b65fb053f77fd1bff29b313b824cea5987a7548e70d0b9f1e5b1b1235fc3e83ddf6c7d7bf87c6e44174f63fb3584a0af41133eea96c0c0b6ea6b9bc1c451566f6f980708d59eee8cf9f48e47ca34c07e5acc3cddcafc170000ffff90de672137050000", - "1766fb2f5a37b14997d2efd7a94119b8": "1f8b08000000000000ff7c52cd8a1b3d10bcfb29fa1318fc416686dc72900cf9bb267b302c3985b6a667d56b8d24a4f62c8ef1bb87b16cafc3929c24d155d5adaad6ff7df9fe79f3e3e12b3819fd7aa1eb01a01d613f5f00f44882107024a326a69714b328b031080531ea857b71a6a7892d35e7c73be0c0c2e89b62d19379afee85acc35c488cdacbd07cb89684c5d3fad37e18d04768e07884362629edc794da6f3852bb9911fc8be074d25d852f008ec706788010e50effc8e21e699bd0eee074aa0d96068a1c3c1547241b7c5aa96d6dd6da52d4ffb0bcaa51e8ff41c2943c5b148ee19ef8a74bb6e4a1499871bcf309f7e228085b96c34f893b0a0ababf702fe51b771ee42d1f96eb5709cf610799bc516c6350e0320d176229240f286ea578c4272add80d30c6ad9c6f307ce21e8ee1ab9dec6feb05e54dd9e27b01e4b316a1e073950be84560d4a98e7ac576af0585c3b2fd0ab2b157260f2fdcda8aee7e9aabe34f08c13169b39bd35f8f9e6afeeea4cbaab0bfa3b0000ffff85cad3beb8020000", - "1a498e3f79e792cf588697578944bc27": "1f8b08000000000000ff8453c16e133110bdfb2b46cd810bbb49c5ada887d00d158274a3a036ed0979edc9ae8977c6b2bdb451947f47de6c12a02094831dbf9937ef3d7b3f2ecb39d45c75ebb5b43c1ed6abdd2e671743fe803e18a6fd5e88d9dd03dc96979797f3b2b8ff3203a6e168b12c1f9fa089d15d8dc7cef3cb36afd94aaa73f6b510cbfb3b6837da78c81c8c8357e323f9d4b97c21d546d6b8d8d4fbbd5895cbcfc5a7e57faac46e67d67006a761851564fbfd9fc0cac4668595936ad3c323888d09f06cac05255583101b04722d180a515a0b21a27b0b1d590c01dc6168fe3d30816a24d518c4b4287e07f2bf4d7d929efa91a97c2b3de596d506f23e8cf4ff3431cb8833e7b9f61882d8edd006ec3b53e5afd25e15921e3cbfde8911dcb0dbf6f66e19e6ac3b8b015a49668d210671532e9ea0e6bc653d2ca7a3d0b5c32246434a1a5d800ad7ec11aace586da806491a14bb6dda07eebc42080cb191119e1134d39b0884a8213278cc343f9365a94106683bd58851cf706c191886948776433fa4355a4604ee3c1c295083955bf47d4435433271c4449f783e243dbce68368c8b21065340a32867165682c9d4b51dd93e2b6458abdd48efad82a43d26fc1105c38cfba53d1305da4597825467078f9df66770fd76738917d30a47b02e95ce29be4fd2f1935119424a8100222c1da730bdcc560f4e1212aa6280da1efbfab69512caf876e21668f8bf2eb0cde4d26937f4a6e4ded65d271ba2cdf11a5fb391b4ada6fe6c5c9ffd084efcf8924185f509d4f7e060000ffff7cd3d84624040000", - "1ad33d32c175564c3b3ccb60ccc718c9": "1f8b08000000000000ff9456dd6ee3bc11bdf7534c75651b36857e57858b2c90cd269b02de2488bcbb058a2261a4914d84e2b02465c50dfceec590926307c86ebf8bc00a393c73e687676865f92cd708b20c8a8c1f8d5463c905188f00b2b50a9bf64994d4e46b7a6aeb5a6acad16c77d987bbfd2f1bd4e44af45e7f60d974f3c182adad74b2d1b45ea3fbf8c091d17b0aad71a43556b9c7b275988d4600afafa06a10648317e7d68a9f2a6ceec8c27ecf875f5fdf76be5185dadf3daff7fbdfc636b764f3ed1f39ff58b24d972557682a98eff7ecb8f4aefe380adee533eaaf7f331f5bf1eec75cb86e2edffe918d26a3519ec3e5cd0f501e5a8f1504820d6a0bbe53a1dc80c71094597b7892bc4b06ba0d3a84b0413e29add5aa945c7e46784265d6e05a23e00bd6b2d58157b30ab7a8c936684226465be9a2c733e06e105f318cb3afb70f97373fb2d9a9ed24da4a6b61da53e77cc7c5154c3946b172d2782d03b918c9b9b5ec3171945a83a336a007692a68545569eca443ee2ee811f994df50ab2b7842a8b056062b01ab8df28c14360806dd16a14413d001d5b0a3d6bd0b5e8cf29c97eea9e574cd8e9ccd60eda8b57e06184a210430810a4b2d1d56b0babd83f927f872fbf3863192df06a5f1dc7d3b6a415615c863f281e0515afb0853590774d31e8c332f1922ba9b41d8c890bea1535ac3cded0a36728b69c3607784c9f12278d9c4a272d8ae450ed5a1a7d69503e118ab07e9a143ad87a0ff11406a4f3ded083fa4dd21941b2c9fb102656232c955e8f86b77928818fc63c199be521afd23b3907071bebab89e9f2f970971069e4085a160527772c75dc787ad962556a0a50f83af78e684fa8cb9ab9032621d6ed10c6419e350969859360c0406b7e8b8394ac91a2146756b4aeeb4f1e4a42fe195af651dfbf5ec0c8cd27105d2c2d06fe206bbf1f07d6b23ab64067069b60bbe1ab3feff02bd57646e64830bc81e8e3587d704676abf7ff0c92c4bc7f69351fce5dbd0066a64504c7c070e2be5b08c3115c572a026be7b1c47312d8ae578f2767a496b70f89f167d48028b019d8771ad74fce0f6df4dc409ce91c68abbe1cc32feff067ce728300fb996caf80017c5fd15c81064f9ec056c42b07e91e75dd709eaa4b782dc3a57a6c217613736bf70e4fdbc50011fee13bb872b726b74bb8731234d0637f7d8d0365e974a79f9a4b9f3953fe5cb6aca15e9c9fd52f323e84f27ad0794e5e6901b654042601d4a73500cb6508a1f52b738cec24b3611e3a9252b2ec8188c767f8a689c1549ed92977113a78ef8f2793219b8f310493324e216185a1ba5aff59818ea740d1627d8c73b8706e0cdaf97ab71966733b8a606afa5a9f4a18cbcfd765b9395f41e83ff4c2f13f6eea36ad6bc0db5a326de48db3e6955426a4472bb1140e4eb30b4ce30ea681f85fc9853baad9a64059a4aa97bd4190f27686d040e8739008ffd7344ac1e6751a64d95100627efc4342687123e4395e4e235197c918bf566a8bee451ac78bd2187a04c4dae89541787ee3d0c5ba1f8d5935754fa3c22aaff46d3a422a7a93f68c4b703c12bb6627de0a1872efe914b42b39ac595b3f81688ba12077bfccaa4b58b1481e7b12a443efc3799418666febdc8267f8f007f792756a20864c7e8dc2496e7509dd511aff1a42fd4a01cbf48310f847eb75720694099929af85a48398d83a766c9551e0c05b85eadee0a0119677491e7f8221bab915f32199c7d4aebfeddc6d1087df35f117a984e0d85e914d0c40b56144b112bc8b3fc6490c38aa0a2489ac13a048725350dc66b14872c58472fbbdfd43adafc1f7df2e123344f1df2a6ccbfea8e3eefc39bf8b85009ed74d414c5f2beafc5224d1e7e8f9d41661d556dbc3efd34298ae51d47728db242e717d048fb2f1ff8b5f1eff4f39afd737e45ae93aec26aceda4ed9a22f4fb667943df7caff020000ffffcc4ac5ca2c0c0000", - "242b39ad54264b3a991f6244cef7c7fe": "1f8b08000000000000ff2c8d4b6a03310c86f73a8536597a085d9ab647e8054a311a5be31864c9f8119adb974cbaf9d0e3e7fba9b5d0cda6c70d4a56eb9cc26192b80f0f0eefacc93a3814cb2f0e704863f07c0e6ded522238ccbd1ce765d6060ef7a2e0502d71a89696f0f3b50d1ac3458a3786a25156e214f877b28e627ad66dd99e64bdc3be8aa4d068defc297ded89851e1edfae571db017a5fe084a953dbe5f3e905adbbea8325e3edd998768b592a67008e5e1f1fb075869170ed1c4faf038fb6210cbff967d1d0789c15f000000ffff20a0099817010000", - "24acb3645d0c223724ce264b932033fd": "1f8b08000000000000ffb2c930b42b49cd2dc8492c492dd6cf4dcccc492d2ad6cf49accc2f2dd12bc8292dced0cb28c9cdb1d1cf30b4e3e2b251b555a8cc4ccd495150b5e302040000ffff448386763b000000", - "2613a5ab39a3b9986bb019331d8546e9": "1f8b08000000000000ff94544d8fa3300c3dc3afb0345a69f740c54799a9d2cbfe95405288066294ba2ab3abf9efab244009add4ae7273ece717bf17ef6ad4c4959606fec651af747255825a06459e0ee331fe8ee35672e1af2b5e7f36062f5a2435766818bcbde7bc94f21847031742e98641960e23f8e2a8c23139ab3f2e5ea111d224157ad45d870d82ea1b0b3cf53ccc2d77a4a8936768337b7b424d164632283cae8b5ca56a5ab2b1f4184713a16babc8d2e9b969944e2a24c29e4156b8ba294a383028b7bdf2a55788bc6a9f1d1c8c50e7a1e35f0c94ee949649d561fdb9c0334803606e7137f4488e940859a3e1a45033b868218d050b4a9513c593369e93a37d5faf7153ba13585f7aa9c925ac703a792206f9617efef952b992072c57ef59e95b0ca38b3c7043ce8b725fdc8f7ff1d2ad5b5b6ca4cdf37b69f74e8070acc42b4f76adcb7ec277973b9f42158a2f2003249c79bdff9cf6e9d6b09edc09916caa9b2eef54a319b8b1dffcf55697f63cf4e002b156fced50d9f382e6b5d4248d145b063eee727ef752280ebceb806b013f7b3ecefff5e3231dc65fb636fc3cc188bd79968166a59512ca49d0ef272ddef72fb4289eb488c2ff16a8e8e9ad72ee4d1cbad84bf7947859bc403c0d89af19bb5565f317cfa4ab8b6987cd4b2c4bd31ffff588a0f16a3745b73d332f18fbd07f010000ffffa680b9a8b2050000", - "2b2a30dbb8a10e299ad753680511cf4a": "1f8b08000000000000ff24ccb1aec2300c05d0bd5f71d5b73c8612b1a18c4830b232a2d2baa9456223c711e2ef11b01f9d3f9cd450d4082c8b5a199d55a08256591278b71754a288d5fd516308897d6db7eda425084ff72aaf992c241d3eb41bc073c493f2a485aec9889c257580db28357ff788fef20370c5a12dcb9815ffc7f3a6efde010000fffff7ca089490000000", - "2c6bd972240bcd80d2ed0682ad950326": "1f8b08000000000000ffcacb4f498dcfcd4f29cd492dd6e7d2d2cbc94fe74acaccd3e702040000ffffe55507d519000000", - "3453f7ce3ce1e9c9d586ba9aa79a8794": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608b5814ec21824719b2b33598cdac99c941c4772fedf5e7e35f297fd39991b215690a509655baa16b6cbb2fb3d501cca365f4a478f778536914e380efacf67994858fd4a6cadd07fc834d67c5fb07248d2fe9f4e6ddce85f8cce603c086343efd0caafe3a8ec9c8869e5eb7d859e341260e37729066549afa6bdecbf41b93f5d2ce3e6cd17d70cdb2309ae07ecc33557101fee1120000ffff2fa22d1ac7000000", - "35b86742dab99741a63518db24bb76a5": "1f8b08000000000000ffecbd6d8f1cc7912efa79f82beace7e590399c98cc8c837c3f48145c9f6023cf72cb05e5ddc4f06b74489bcdb228921454bfaf517f14454750f3994a8e1c86c9f630356176bbaba3223232322e3e589dffd8fefbf3d2c6f9e5cbd7af6e2f9834b4af97279f27c7df1d5b3e7df3cb8fceef5d7715cfe8fdfdffbddff15e3f2a727cf9f5c3d7efde2eab7cb1fbe7af15f4f967f3b1cbe7bf51ab716a694530ecb7f7cf9a7e58bef5fbeb87abdfcfbe1bb6fe2bf3d5f126e7e69eff8edd252cecb67df3d3b7cb5e4df2c4b8cfaf39fffaf877ff97ffffd8be5d59b6f967fffcfcf1efddbc3e532debfffff9487f7ef7ffe97cff10b94e8fefd2ffeefcbe5f2e9ebd72f7f7bfffedffef6b7f4b7925e5c7d73ff4f578f5f3e7db6bebaff1f5ffee9be7ef1f3bf7c7effd59b6f88d257afbfbafcfdbddfe92f9fcc932e97675f3db8fcecbbafbf7e7c78f1d7efeb1ffffaa7172f9f3eb9ba5cbefff6f0fcd5831b5ec23967fd51ffca6fbf3f3c7bfedf377d91e69cf7f1d7cbe5fb0797f9e5f797f72e961fec6a79f3ecc9df3e7ba1f797bccc8cff2bd51fffd7e149fcafc7eb7f7f73f5e2bbe75f3db87cfee46fcbb5ef7cffede1b7af5e3e5e9f3cb87c79f5e4d593ab374f746adffcfedec5ef5e3e7efd74f9fad9e1f0e0f2f98be74f2e9757afaf5efcf7930797ffc24493ea7623feedd957af9f3eb8a4b6df393c7bfe647dfcf2c125de7bedf6fff7e2d9f3b7ef7ffbecf593abc3b36f9fbd7e7049f972f9eac1e5bd8b8bff496d240934c6da66ec1ca8d53423514f25702fa9d8f5c3562971e839f53098024b4e822b9199c643bd6a75a612ec8b836710217c7bdebbb878c88553c1edc6a9e2bb6c97f88143cc89435e634e142951d04fd65bb1245e23a51eb9a7164b92586be25813c5c169e8233d12a516f5ff5cf020c522a9dfbbb8d03f732ca9c59c5aec8963d639e5d4d7ac132da904e23422e9a4f4e525d535871c721c3d75ff7895f52b55bfc291ea23e2ae447b3a93e8d06be49c585fa7cfd95b7aec69c6a62f0a19ffae4ae9d4624b823770121db37e869a26ee29f138b550f4bf071d3b4dffba4d44ffdcf5d3df1674c2ba2c2591fec9be1ab827b18fb6e2517c4fdfa66bcaab5243a92c51dfae33c0bcf19d8155183eda9186be8a31291dacbe4a473182a4b1e654424915eb37a20e9d729a4a76fb59c12b9b7ff2460c257adf2f9ee654fe0c56fcf1f2beee0be5e2c7577fba7afcd5b327cf5f63d3ffc7977ffab7cfff4a7fbd5cbef1dbfff9fcd9eb570f2ebf7bf5e4ea3f747ffdafe7fff9eac9e5f23d3db89429a9895c2e3fd083cb2a39b5dacae5f23d9ffe891f5cf69c6aa172f9fb7b1717bf7bf5fac5cb6579f1f5d7af9ebc7e709975ebfc7078f2e052efc7f5c5e1c5d56fffe573ea0f6bc320df7920491ef3e6a7f2c8f5b31b9fa21b1ff88cbf685ffcc16871ff3a31de121bdf5d1dfef55f36dafc06fb1a9bba041a1d9b9ad208d45a246a49b0a9c5ae8f9bbaee9bba1c37f59a95dd4bd48d2b2391f272e804ce3b44aa9466e8caff4df98138954734f426979cf8d13e085fd2972f0e3f7cf3e2b90ffb5ffef0c74ea55c2e2f5f3c7baeabd89ba8f490b934a92a1b724fb2d4ae7c53674fbcd43e12872a6369ac5ba99691ead2cad8af479e7e3db66ba154977b171723d7d443ad2df5a5cf9128d43ef57a8cd0724bbc74fd77689c535d7ae734432b92da72f141c36fa0928c5416154fa1144e75a9a2bb8570b7250a85ca5287ee84ac2f6fa2f7b24eaeebf04aae49963e702969e8c0bb4e8f5b4bb4d825eb4cbb8a4fa6aa93d63dc779a4b90c7d92b3a4b2cc1138531a0b652c49563a509e69069a4a5993607db125a3d1535d3863fff696445fcdd49575babe8565e8d77a496de1aa0ba1d7b4701bf8ced0eb5ef15365e101969839c9c243e9c1194f4e888bacb4e1a1220a9cb6f0245dac4636679e3d51682a6c17ee84eba9636e59af2be6c2e012a5e6a22a8a4313251265d1a5c3b313927576ac689aa1d6ae64645dfd5297a6e4aa042eaaa9059923b1bebf15d54bbd276535957375a6fa1e46e89f95cf59aef3f1084df0ab52f43aeb00949347a853c7c853c06a92faf5794063b6417abfe277664fdb1a756e200ef754436f9cfac24d257a1f25d5a55053119cf58152671a61704eb494a1ea58794254d486c13dcd45ca4ca4fa78912a50e57391a15c3fb8a5b12859200b74e349d1fb5413e900aa3263185997bc4edd897d369d2d29b9fbc0cc791b9872b9da05bd299bb7a65baf5749b4b4a933ec8595fd5507874e75e945d43e98398da5575299a02cb653ff28f9f63da8224fb7ce0cad97340fb1aa2ea4340e9cf186540fac6bdd0ea21f94cad3515239508dc574684b3dce5443e976a11a8f420e8d5458ea1cf7ab436f6a38ccc46f22cd43644923724be51065268e2dcd4727a3f9f1dd717ff6707ed11edab86b515ee342fa3ca9de95549e4612fd37d7d4637baab64c3bc4a202ad3d8d95f45f0c8191caaaef1e816a1a5174ab488b552da75e4c7147ddb80c5b43d7416a64e5a636cdae2a814ce3b34afb1194054a4f7c502b2a70a203bea41357f9cf9cc6a1c008a8a91d5ab7ab7aa8d574793d88287d929a7d072e6a9c49ea87d6d47ca1540f45ad0e4c905a2a5138f53791f8906145c83ad56aa846893860a2084cbca1d69e32995a7945a7d1a2c0b6503ad59ee6bbb46e7ff8bc7f518dd63c27e803aad14c2336d588983fc94c2d0c5d40bd948374d842f254482d3cb595cada7b12908af20ca3e0fb41bfaf8ba7dc3f92403b327e78ea42917d3fc953651f02c3347d693f28152434dc1cca067aafe8dcb2b2310fd8a5a93d526dc24166769e509bf0d1c9746e60b23fb6cff90f6c1317557041ca487d153556cd4a93585355ce51d394d68a498afe45774fd3bfa89d27abf285ee24e51ffd2495079c9ab21726a37f0b2a774999465f53549eeaafdb5c2516650f49758d2a9a945b6960044de75974282bb6206c509512532d793d87502a7a8428b34316ebe82567e85b7dddc9ec6ea203fee7741013ec92ca2a30be39546cd9118a32ad1e0b708ca87124561358cf033acab92a3b068e2aa71acce68989e9c8a4e43483f4aae3534b04d72d9cbcefe74646b01f549cafaa03d4245312e650c10d6dc5512cb1ae41d4f7e0c453d25c752f32560c6b596d852af6dfaae7a58089e8c6f6e38eb27fb53d8a93911e27aa4e7eac19363e36a8b1bc9ebc6ce84f0e87672f5f3d595e5f3d7efeeaeb1757df3eb8fcf6f1ebab67dfff6b4ec463519e9d3496fd436f4a4d35cb5846a9494aa1df5cbe3dfbf57b35c97b1a97cbfac383cb32492faf70f772b9fa019f3a00359d6f3586d839e5cc63e95992cc516e1e446992da368892f86e07d1d31cc5ecd95e3bbf6708256f74603ddbda105477db2070f50e1f756eb38e4dc489eed9ae7c14ab2d9f8a90ae4bdf54deb06e2e3000c5b9f1f84c12672c387f632bda2e54e1deedefd088d891ca416ab7eaaf06ce2627c63aa1246660bdad3bbf98ecb093abddcafb9951796be23e43a628b7d36aa2555f82932743ca90f3b1deebd10e93aad22ab481ee423bbceae932aac4aafa3b105838ef12045ec16070e0c4b91ffb60469c63ed67e034504182c3ea0ccdd527e11cdca31d73f5a45ed748f6749250ec341eaa523c43e2956813ab7a96d6a71ef26c81bb8a2c9e1557339c2cd5cfd8085c7194a1b1aa71112452379f05e368a7477c8874d61556f2135c225827b50fd49e523b081aa60635d887096fc29fa632432052598367d7ea16012437848b1a48b20e9fac1e9294bd42818722bbab420eee6c394415e9c36d9aa29c34d4a0e82a3eff8cf9fc7879efe2e2ed697f900f4ceed805564829d39aa89057abb729e734651de535d8905cb0a1365b6906eea60729f0486d9d60385ddad8942caad628a7baaa0a87e280882d38039aeebbc158b9b6e86aa106ae53175d42562d39c388259b229dbe27d80cb70e3d1e8a1de0121f8619a9f5d1fe433f7e900483cc8a26b4b6ffda3d1d38892c3da74679de2cc260cf7e9408738b9839d10adb0976287c62902aba99d706cf12991684b5c0f068a950e81015caef4aa8000b621abf43bb11dc52fa408f33a8d0834501c3bf2bf128520d3460a0817b0b2e093f0f438f60aa1fa03d39f5472763feb9556da14ad3d5c38c942174797bb65d4581724eb482f758d7146ec91a601f16350470b2527e13d8fdca753d1b29860b6963453267224cd4a47bb7d89e6e7086ce6096649295cdb690a087d6088710a920192b8c9f66f4afba8b0503512634f9a1d28fa71d305a6c50084a1c50c74e280433174ec30328cc6adbc23eee4a5736ff044ce50981aa4f408ce93d1c76533db841d60f3066ccce7e245542cb662aeb146c7554d1c841d9a2c6a9bf36201cf56755b4f32196a1a3c4407403412f1e224c42d8e513ebaa7bc797eb67247483d30167e615225a79ce5c9b6113d2b2ba8c0e9b8cd645d6adccab8be868225aa289e8eafa07323a988c8ebb8c8e2ea4e326a4a30969d5a32ea7e326a7e3514ec35bdd533b0c18bea4a7bad8931c7485479a8792f425ca4a8f4ea6f5cefc3f89a8aee07913d52ea9c32ea9c351529ba00e9ba08e47411d5d524793d4f128a9a38beab88beaf881a2ba9a376e4c089f8915c3efaaf15dd8fc066d85675db5ad0711b08b225570bb4ee1d1c90fddc070324be3133b4f25800a499ba19a20f8193d43c1972a7c88ddce34b0fb5453d83952cd311c17da8a63605122aa39d6cca0ab387041fae26cc415b6d108a586ac473bd58419fc22cadf7a402a6a01821795e445c9c6784b24ddc5c6b370fa9b2c87042f70f9c2098017ea8e257821f4740e55574aace27c1bca5a084195aa3fa007b081788aca41e5e982bd6fa456918425ac01dbbd92f977e4a09235bb5da9328ab15daa0a4018434a41610bc860157b80bc28aa52d6683e80a20489b6793ca0644e146c3d4214041ef34d2ee377328e5c6ab38a79323c5682af91ee4b446eb0954311634bc6299986bb9ab0626a466f3195d861663668a67d66165d9a6e89a9ecf4331e8c6509d95c007d972766a1739c300895732265b89758d92bd666ee88199b0a7bc92038c7fd8530f4a34c7d56854e85656e14af38c4ea8aeb54a3e4487a8a8820acaeddaa36baeaae6a4a78eaa8d46e81187cc8bde3c00f653470b88673fd6423dcb065da1795b62d23f05af1187031cde81ab75b540bcebf5457e85378323a2219b0f27425e000d063b7ae8d4af7083f2c4d0f33aa98d0430ee68fc3471de6a90169a7528e7028283950d1159c0fc56e22d028d8173a3e0a2763bdd1e95c3fab9fd53f1e9dce0ca7692d736151215095ce0b4b4d23d49a93de1f887e0cbb6a053efd0eaf7bd7ef16c1f5d0ef16d6e770ffdec505179563b50e7d047ed45a259585558e855a8b3ec22db9aa7c8f9ffced213786cb5ff4698fe7484e7d69b0736bd181347bb3706a4b1335722ac205ad4c7d5b2da92c4d256da8d59dd34d8fd01ee7d16bc65c6569100436277d5d0bb5cdc44bc34ef3fba4df10b8b22b8205157fd7c9e7f74c6bd303dbb44a472862e8fb4b535e6eb32e4594bbbbf9e6b9208e56970269d94957a540d57635e2179e3abd4e88afcc167aaebe1216379833c9c2b3223ea05f41b464e89a94dc4243c0a650c3a9a6a6b614d0baf5acf74bc635be236d8f3758c8a08d9aca4dbef66bfaeed7d3c2eeb07eaf223ea876a5035c877aced4c36f6c7a41309be8d1c9e06e0e3cbecd8816ced015e345d75c0982d0a3e84e6c5389560b488c604cc5d1afe796ca52595747f9484f00baaa8c27e1385139817889f266e8d497da085715f1c0866b4a6d5156ec58665c8786409432a54542e803f7d4754e5065a253290b2290a14d4eb49462315f7d6f4110482750970297b532ddbcc698f72e2edecf9b826113227bba55dbd4a9f16cd803a7619b9f09feb2ee8fd6556a2965058c5b1765c7e3753686d74d3f95d394f93f2c28d77044ac3c122dadb16a7a8f0a9e5c5b3c728e6580512b22c10381297db25c0b2f7770815e37133be47f7a5fc0f88f7ffcbcfde1445034c1ea668b556378ca70cbc826701021ab704411ddb8277fda02ff7883fb7f76e4e7d43adfc476cc6e611c1f29321c60e4091df0347a3e096d4e3fd86cf085f91d813080f3ef90f73c98cddd4cf815f23c180fb4d8335bb24b868980ffc23a235868fe9a68593d96e2939116334256dbc5fcda3eece1c39cab3dc3e631779f24d9c9d662201ccca46b9e6103171fc14a820711ffcd9eba93032c3cfdef2758ab8ab029b77faed5d9af55eb0db6889cae5580211d1807355f1578ef33bca6dbdacd6861d219b6542a318736d609546b27f96204cab66da994cad1a83e7e72a9a279b16bb4b5b5b38daf55f15f29c7d502ab0dbc89fd40e30f4cf8f3695baa785cab6abe10a48f350f09280f29cf114ea367b05475ea61a9cefccfa5fa5597cafd457cd7d9ad057ec6d1cded4596d596f73c50cbd02c27199ac53334cb498666fd800ccd7d793c42522c59d333347799f493199a6c39ac01a19d3d43933d4393dfcad064cfd0947733349b6768f60fccd0849b169fbca7ab22c23cf78b1bb26f1e7efe793e5a0abb9de08a475c82b7931dc1ae78ea89e219ae11c6cd8ac736c991ba6cdae744f7b0eb1e3e61c37715cfb4d8dca9da09bbda014ddf553c3a4cdb77bbee99a7ba67533c2e0dccabfe96e269c1b26e6fd8227fee8d6ff0595ca36b955da7ff93ae1f4cd72a3f43d7d6dbae7f7da36f6f3b358ac8a5fa29ad874bf5f193527d27ac8bf5b98b75b2f57a3f51fd89ea9fd7e439ed5ae15d79be53f51d91be9135be6528057a4b9e77c8f37e23515bbf294c7d4ad43acbae29ff49d40f226a9d3725069d12f557d760f72e2ede2e33f85535981bec3729b15f5783ddbbb878b453f3180bbf7afcd5b3c7871b2a0df8af16d1eea5a7d6a758505b724b34695c2e570f2ea5a632271f2b12fe725340bdf445974a262ffb076e4e4a75f4b2f0e0346b97dffc5c69c30757293c943ef83d550a37d71bd45a48de53d630f2e49b5f33c71f8b47bcef5f27e4fbab1478ab52e8390761c42b113cc602b23bfcf4c09a13af14b95a244704b97489a394242bd74001f71849802509feba6dd640cdc2b908c155fd99325379b4bff56732f27aae81e1f7cfa608c16d26baea6a5a49903da89f5d15db2a76c60d081d58fa0c83812d5083642a4826fd3f79811276644f25224d8103c9da548906825354efc01189b7b225a758ee21458498914b808371b4644cb6b8931296d8cf012c183147c4cdb2056cece4c0b10acc8a16518590b7dfd3f5a878ba2153802c6b4c3795253a53ec88a2af6c31654b8fd1c32d59bd485df5cbd411958c24dbe7bd8b8b877a0a9e817922fdc1897dbc7ab45ffdcc429561abdd53f5fc2e4b6043224ebec52c3d2e7827135d955f91f05b908d37b7cf37f926be3233fe4e58eb26beea1ec6d5a9985c6c10f4f2d314ae73aa002e9ccaca16e42d816a4431093e9eda6caca0ccbd344ad295dc2434361497e2165dc6c1912ccd35759daf92014c8e502d84fa083ac1cda2e86a35789450b78365a935b304c2c08b78c541d5680865d17c4d2de550229b8e0b08865ab2a34eca2c0e2c6a923536a8164b7554d3d57209df3dd85e23556b3a74290539855e7ba84b6b99ce88816e37a6b9d24ce0916527ca6e0e6d264bd9861ecdf556118b55535a4cc1daa4dd46c6817ff5c37db0f424da3e57b2fc1095254e187c1e72c8fb31c053ddb7a82e0e1196ace9fe3dd5ebdd6d1b4bdd44828bdf85dc31ab0703eb6f5982f3661a9ee636d48c7c9d5a61901c39c84e3492d808857c66ec938e9d3c525d2baca116105a27d702b09a8ae7aac769bb17c95c2e45b99941382dbadd635191b1a50f9415894158ad1ec93734ebf3d59faa6aee288b23a5aa0c4bcd2c5e37e0312d952f88de531ca9458461f2ba25ed547d0c59a47ad19046bb5ab688e5204e0804b68cfd15a5046aa5423fe8d8a0058ba5caaf88ed8f005eee961b4601d314cbcff7f423361980307641da2c923455b82131dfd20656378e0526a8399b24f1216fb906c5f4924a12fbcd692f1e2b922af41f1c3ce36b062be3d0c9588e020cf8026121a17b165c433225e40caa35500a4c4865a8f8249f2a92232d7f05f5299e7bc16b337bd3f2dd2c97a058e29eca126327b20c57af8229ab551b50e06a89139ecae2f93096ee5b603f4306e6807163f96deaa2bc8269aa41fbb0669450a01252af4b60140a9eb0f887c5c7c60835e76b512abfea057791758638591f308550b2b65dd3f11a8592fa7dbdf6e248ff27b37fad0751822e7d203c465612296f5f733d86d04a3e5ed7a6d7a8ad915a126dd782fb153c2162f17aff67c64fa1e44d32a3f40b994a39275eba28d79789b85ba9ca68134335ebceaeb3d2b50cd4ec75e4110e14a5f576bc6ed063282dbb7771d15ac5e3082e361b0642fe56cba92cb3a83cd7998ee3f53b81c39be37d22c2c2c72594822c71e24590f55949872d1637a49a44af916bc7b83b425519b08825632018a94fcefd3bf04ceb46d1c96cff2ca9ec5fe30f1e9a9a34faacfeecc0754de43582953a0687b40ccea9e19a4265c6f79be5a6a3a6b0fbf77d48482fa1869fd2ad55493e30922d48c7aa9cf1828a97e9af28252aa832432d4613bd325a5a2570c1df319422692c621922c533449c3a459cb81d8f545cb3fe14ae74ae0df3c6b7d9be514181899f2c3b352a663df17bdb0215fcca4625bc1606890ae145d802c9a47362e4b2948291aa98d291caf6b8ce7efbd9d2f09d8661dab5cdb86121505785598a64a403a18a57ffd16d5e765b5f88af0b8829f8c98919946bebf9a14b555046cba08b71a15c634f2928e2a689253c5dd89b38e7946d9c8bd899f33dc17e4f1e3fe51d5b1cc1ab09cb872179201f5765db514692be0d93e7c6313c4063702eea8f311c23797686a3fd27b187b81e69a816c136e4f5d9d57a78f2f60644ed9312c47c0bb530dc0a25b13d75f5647dbde03b7cb9e00bedf238eb4ebd5d2e1e391997cbd327cfbe798af8c70df6fcf64acb84aba10a3ff5e2d7edbca4f64cdefdb1279fabf9596036ab6de8ee2e31e310f6623ff96c7eaaddad4471df103db437abe9e163d83e7f7c7bc2dd26ac437e6b063ee1729cb0bce7e19a6ff3b0935ada473c5ce563863d3ee2e1f631c36eb7a2b63fdc6f456d1f76ff18828d8f1af6ada8ed0f8f5b51db873d3f8660f363863d6f456d7bb8e58fd8922d7f04c11a7dccb0e9238441a38fd8928d3f8660e56386cd1f210c5af905d47e27ce8f737c538b84695865a79518593400de8158de5b5682c8c7d4c362af3880c259e4304e285b573df5530f0fb8155b5e2dbec3eed380c3e2ad675fbc7cbc3e7bfdc3834bbd6d5e9c593c1d71ac5b6c125568a1a04ed5ab483d9062c1154e03e594e6abb0ac72c111dfa6dddcf9a1bf30f509af0998f876572bc4ca3767e856c180a7a29533557c130e2bc645858f9791ae8f842a87ce7202b3875bca0a002df8e39a8786dc19623f5ef012d40f468be09a726f1eb34185b847769ba172052073ad79cba10768842060531eb6a9c441aa31723567681d6eeb2349dff5e77e506e48b9ebdc1064ccb1f09b2a16fa42a15fb47a3f54c779a4adc46265129ce84ba16325b8bef1934ce17b7a70d947aa866f258d0cdaca6fb11a11f53c464983b76116553b3acced1e230bf63c32855a1d762e49f52745c39691e1314fb8513dc3329c246478c4b76ff782d56452dc9231aa0790e1b83d642b03ddd2362da4bce5436c09195b4019b167b7dc11e68e0873fb53e22e59099e92114cea59e6a45bef1e9e6e70cd8e4d3a995430d39f3ccb1359161eb0453c225a8cb7444fc8409a88951fe2bfc7b19987b25e2b89bd41d676f8451a006f548076a72b3cf851875bf79c00cf5b85973f6f7e69681389b4c5a5375c398bf6185819aa14b628790b0e74b2ff8afdaa67b180d8f0df013963eea4adbe2015de6e0ec763914532688f3e1e535dd98f466535f28be3030c1fb3de2feeeaa7688a6300d7c333139cb696db83300106886a2dfcf727a95b274a6026997bb782e308e118b270cceadab1c68d04804cd86641ae3465539e2733ac4eb96adc6d3439090121e0b87a30c1ffbde50c1182fa793f3a921f344b38fef6ceb247c6a42d07c3a321b491c9c2255bd064bac6c271d455a967403bf52d7b64383a84f87df1dc941a8f01b9874a43e48002896ebbb6ff3a6d7ffc6999d1e0caa933f1c143167cc2e4cd55fa3861737656e9276cde9c65aea76c1b3b1567731477faefd49db1f73d79fc3790968cd53d9089cf768dd9c7c6f46fc991beb1fd293318bb070bf3bccdeed5b7e3588f49a99bbc18b1bccdec5ecfec392c668594edf38810794d61a8b619e2baa6b2abc4a1e77868447e8f1c2abb99eb59137bcc53f581ac967e860043377c13440d2682052d8d5003a11c5680b2b55afe0c0255d103b3b1986c773016f2a273849450728f0014024878580d322b156e660a1603392d0815954812694b3cead898e201b67a2d96fbb3b3449d5a6035d4578b095bccb4a2e095535bb71f1e006a21035269ab6ffb025955ac8ed2726cd6e28ce7a62de23e865304e9a34304338fe031cf6196af8130b0c5e5d82c5d64434741d8ba02a7a8acbb755b215e4bd4a1752f79c53e89cdb813da915644042165d9c36908ceab3488823fe09c62c5ad5d976035394c41409369203886f5d40632badb447555d12701de7042caf748839b97a00bea9d2bc25cc5923b62b71097efb415822a14577628904d7db5f02b329e8201bb2add0cba4ed7ca8f25c52cf3dd1810a46c6fd85c92eabac5cf05a803d3b49ca34491e1c61a400e2020c009168084f02a961e263558a89a8ae7a317147ba30018cfad11201091bba52e4412032bb18497b6010b89e14d30b8863675c226b43a629c5be091c4bd910c6d1dc480ff44f726f605c996ff0641bf5657cb645f2cc04a81295310bb230b2b237fcd227f641b93900562c1dbb187e5c54bc1c5f58fe530d1c35eb13056ee270824d61e4e96fa97b1086a57591af497a7f1fada12407595c563d73dd800eb34232298dd76d1f032766c2b2be8b7d147ab399f911dd4c450a32c47171926c5405518675272e8b18a743dc490c11a6db5a0710f16096d61c62d59062ad2d45ce847cad9e112722b9871d6a001d9f54875f56d8fd4552c75c3e04e106b4501602a0f3b23942abaf77b81252ba267ff23d17e11b19be5c4b08b0120b08d606926dd4fff96f260d9082530a0a8c8ad6ed9c4a8a53a98e93282e1534f24c014307931680f334caaa76fc14c729f03721e0305377775f9105d66a4792a19a609b011871f0c802c52b6640731c9ad6b13c84a400c2c5a0f1b961e0be1ee542760e018d529d2bae5ec54186a0dcab979ce890954cbe6a951764b004695b29319b130ca2defc67d0d03b3cfe6d311cfb0edf8ae0abf6a9901c80e30540b53786be4702c5cb38236da2aef8d73233240516a2fa64e2d47d8b2e8807112b29925ae3625f8c47f097f948ab27fdd142e6500e3a2ec482a3ecb8ae81372216670109fba56cf10a66630dd8190a3412e465aa8b6e5b09f238aced5d23bcd6cedd8d11ca6eed16699bd6c0e18834082355fede069ba2c3b6acf495a9b95fe109945d16c15574ffba890600c241aa59c1ca96bfc69291b3a77c79768c09a01e761b31bba844a158c07c972dda5256f1920dc2c838242a98e610588126c2b1ed841c584790654a31f7d375f1cf084f09768893102a9667076d34090a6ed11867466202de9e4d6b6953aa4061044b687b77c2d8928a28a767631a445f0a831638bae11d873562be0408094d2772bc4322da160b7446dd722782147cb4dd13366736c7b689f0adc0d03026a2b2ae3abe14f217f2bb29da1c666736fc7cfed735cc754fb7959570780273cff49e2564ee6ca4005d31ac9b724769c4145c2be9f5e19e65526e6ec3079c72eef0cb30f7688e7f58923520a3c232e01d90d1f896650f21a69ab1e81cc401dca06eb2791bcb8c49c2f1b4cd2d8ab5eec3ef291762ba9b8be81de59f5a02a38ab00ed723d06299ba31512f491493a1841f8bb183a260cc1860c15604cb4069b8a517e7f24ea2d3d9d77eddbe2897492464853252f06da2ca07a5b70a7bb1fa65ad3b50386c5cf999674b969c3726b9fe69d8d554f993c879f325bb353a6dd618b829e05316bb735379f876915007fb86135cf8598a0218859a711d3eeb0c5a3cf83980d293e9d37d16bc52b65af8b399b3d54e187685312add610449019ce663bab603b13877b25835439f135d613f712fe7f262385cba74d2bbf6dee5fb781f2f90cb354023e4a36a768738886091f49b1a8e4b98cb463a4303c77605f83888c94771efde4b2a94836d9d4a60bfa22ec81abd9ce0312b16471dc1e2b8850731b18cf4089ed916fa990ee1cba11f85236ceed3c86d306a1b4a62363fe3cf853c6087554c39fb5e24ea0c2b2b97f917bde572a8e8a4f1dec6b4eab787bb0cc3bdf6632520db51ba6bc01881a9a2a908b01ab7a1e23ad79a2594c5b6345798c75e43297f730a4ef6ad8e3704bc13d4ee6e53d1313a1d4e253c0f8dddb85536e77cf4bb7a2019a96e731d05de97ca4b2107cc203b1392f2bea51cd07547bb8b3c3dc606225b87005ae7db3d33b8ed42db0956e9dc9cac8a87009b6b5794f39da40eeb173adc078c3592927500ad5a0a4c384eb03809400d11de731b182b208a6e926fe0080e606c5d7ad1d0bced806421aa695fca0a0d4dabe9cc7442413da5a11f06103e5c0c38a5e457054e1550ca574070297c06878733e9ba704d601aed5db0d585719ec28fd3893610e00abf66a81816e38b6c1ea027b7097b449d8e6413684a3cf64f802dd55ab753ce8ee3eaea1e0bf67c30d65e4405d5071392ccce4d9141641ad5ee68a6a0f2febc5bfce63f86a3208a257b26e5c6c6e750ee6a0bca5ed7bf703059e7cb54a634378630418f87c4443ed56512830c3c8e30edd50c2e1473e13e150e17037416ce7dcadc4b78433b2b4ea003d293b35eb09e6dff889b4e0bff3301925995ccd9b8976598816aad5dac399685e1e680ea707058f2c0f3bee2095e75c283911f5accd738ab6e4cae2b18733d93e6ced39ad97c006c8615d72d97bf09cc9488ba573f03c71b41707fa3b12f4d37b5f98cdfbc23cdcfbc2deb657ef9cc718c9bdd75cbcbd70a1ee632c3f55dd50ad599c4cef368dd424f893cfc5086833719026c9fb699982453282f7b53a132ba0a1fbabd49e8a9db2c7067f01ac002be53c17b5a0eb2e0186ec6a9156a40a20b14310517e176af113a959b1324d649a0dc311410b040beb9f892cab1dbd13304c4b891deef81e1e7b3e177aa297010b599e2f1c0b563f546e8444f94483b4766266026ea905b215f69ecf49b01658fed2d056c9b29aab53b3eb71e53c8659d81a78795fd1ee0950d54edcba93ce659cc69c96e56760421b969fc4b361cf82c41fb5a98be7916fdd1c2d13fa6cd853182825c2a9ae561f52bd118632e799a408189441114ad3f35cd8f25c8261c5b5f330b1ac20556dade24138299e20a077ce8294dc9be70201a1d98a42d146a8c0f03f139b8e07524fc5f2388b953219b696f5fd3e1779c403febc821295bd90a4fad9f44ca2c3dc37dbbf796123f7cdf66f7226631cf9ed310e3ab731f6b18d716e63ccdb18cfc57a33a7531335dbadc66903b43b1f4959fb7442f6eca954fb627b5edaa71fe3d8177b6c639cdb629f8957ac6571c8a9b26e5949e4e988c0873b97610e87706a3ecc7a8aa21ece269f42e969c05da79041732b0f3c9f14aa86b499daac4ef1b8f0c5eb20cfc431d6b86cf9a76c7ba8713db394c956ac5d5f8571c97bab77b811c2993026a3ab327a0a9e380fac6d7c897c1eabcd65cf36aeae1e256fab7d2ef69a20c1a85507677564f6b2378738939dc365beb57358e8cc764e6146cf3b83199fc1fadc3a887da019e84c768f77926c76e8a9ae20556272a0f358efb2ed9db6ed9db2ad773b97bd23841e8743c93880a0c0e4f03b3cc299d81a95045d430b6a3107d61a30c7bade259e89bb0dc899d62e72dd6036d80120249ec9fe06ae282a860c34deaa3336bcf2e3c6b90619f9ab363afb3918cabf67c3b51d1ff4d86dad58b9b8d552d20d60f59f6050d10635a30fea97ca923b19145a2ed3d87aaaf0eeaa27ef91c8b06b643f15b06774006cdbbd3e8c8c0442f700de30628095e2adcc67f01613860bef85acb1591dde49dd6f75e81aab09ae0efd72f47a5b9f976a45ecd1c7147d4c8655660d7a82a769a254fa972abb3ba1ac4335ef50a6a8cc169423ce4fd186504abf369e20c1fb127caaf138c2f4de973092437e58eaf32759b57e6d44c147144f47f48b2c923b715e5372f7753dbaaf737297472bf336a6f19d0c6c1e075653df863693bc3db44fae31a54f43ad460ebad9c23d0db472e0a9e735ebfa015c9d1e0093c364187e825afa950db8c3212bc0a7c31056cec498e60ecca05150a26e260b0d203d601e2d967558ae801570c0c35303104ac49070806a12d10f4225bba5af8b7d59bc7adece102648a878d57311c77204d636b573f1c7f0a870c4e91c7b6a685c81d311da5e9466384c30a7546d6d39fa8131db33890d9509379d65faa462c84ad626a37afb8dd5baf264acef006044303c847a3e7b1098e682be3bd635039c350dad021050a897aa08794d6bbd32ad668a93ac15e042649e496b948b6d7c26f363a9413a5b7f1e548758b5116afc0d95aa58ce79031a1059b4b4443a9f446361ef2a50572207712b193d5328941cf996c7b4bb465eb56dcdb9be01c448368812ee91d190c83e0fb122869ee810d9a17fca9f89fb2132e4b7a08601686368c883cd72bc7a95038a1decc320222cd659f52933621956d48664198afb7c3d1b1f254e06f763fe74b1f632f0610af2a23aba1f422ad78af4780a83cd2c3ea2788a7749aeb7757cdef90a14ccaacb9b421b90a9b5130a15a07b86f903542dfbf8b2ccdba75cfe5a88b234fa3b88b2a59c0997df01bef0cb17871f3e19adb7761af72e2e2823a121d3e257bd2d13a86683d35c28034f043d312ece8349fe41c091e139b061663f1d6cf7d41ae7db6374dce938598d170fdbd21e8498fb9693db874afecf049b268bdc8e4407116b06d7dec4d1121f8a1a466fe254e910bb956e4e0376dbaf0e6c8d3ee50020c7a72ca91c28a3472819ae2e7963c4fde24d19c0a73a10f059dfb4d40faab8ca9bc8edc0b17e29949ff6240742ca523f14b54fdfcc432ca1bf613a48e86f0aebdb91d498d3fc73ab1f27acee8cb027c2aa3564d6e79e68697d0621ef0916a4eefd783e3907209fa48c96da215b3dbe41fd4eaf139c9645864e75584fc322d48f37b7f219fc1ae1954eb4ed360fa7d91d955df54cf65ae71284da1b16afb468def00f107b1bc470f14e9a05487ce54b9972768cdda58532c7a29fd6baaf0b8aa48be0baebb55aa1274af86cc6de5109555b92a5f71ea4b17d8ef21126c3dd32f3064425c3b3a7fa064475ca0d9f768cb5fb18ab971bd99db31aa3f04647cff0ea1b688ecc33c9946b3d6fd6a19f20ecce598d71ba7015d9b27c269dd918770520a3bcad00ce658cad79b6944c5febdecb36c63351520d27ed5a86376f46adcdb0061dfe797687c25a4b12a05dcad2d07db535514b8b3b7aff64bfea797ea442fa3546cf1dd8fc32132d5c9167d36baa4bc93d35243adcda56bc73674db5d6493555745acea102551ba8c1db95da3772883c1162fd38e3e5d7a077c925f4aa868a08fa3ce3ba010bfe3c39a4cc9a4ae8d4535f8a489aa17349732979831aa7331c75958291ce3416c1a1a197bc94397527524b63399dd799786b303c13d218a3a76acd9c5c99f473f1d880a43ed2e266a2de9377c7791b8eb833d0bd53d35ba572683274bf09a51e5a563ea81d59d9b35de3e34f366203d6edc90d8ac692dcec21ae69435dace3b661bdbb96ca3d238851c41b44b177e411ef745357832591501df4a5eb09dec1cc9bf592d960d0258d55104740bf189cfe11e2f07654dd609aa67e5faceb3d9c027543d91ec0f4afabe5f3a089087e3902046c1e0129cc71c480db44fb243298ff12591cb71cdda0f30a40460332b756022d7680cb3bc8395afd00b45c9f6e28bf24c3e923f45e61c03b02cccf7a41a866a5bddfd00020bbe5c05147d03a926c9f40d8ee1d803468e57824f7e9f5a393eb33e92bd83a107e3aa5be16efd281eefcb6d8e8eab01aa27e31c453fcb1a3210d79d3062b7a23e0ee187e4c067b34f00c72022cc8e4ada32c892b4c5be5553656dc1a7390752699ab35a19c480b10f4f969684755d1838b3278879056707b64a2bb266919c86a6bddb028fadeb21adbe0fd9cfa8bd9d428facb3875ed16486ca1603bceedf34dfe2582c15a767cac6c583b7a250dec7aab67403b935f9c35f96bad240acda9e67fa8cde13843c83ff12c1a245b9ec7e1b1cea9c42a9ccaea08a925508d53478a8fa7d9dbba1d7bf301bfdc6bfd4bd85abd58f266719a12686af8e6bc35b3f1cccc60189f0350a0cd1b29f6d4228341aba3117bf00132050143246a9550f65663fa34798f9824d1760b3ac578c3926aa89c962d4ad6aa4ed6d8ac4991a741aa0868d74a837fe9aa502ad2da5deb828cc98a35f16a601e03bc6e4e53f2c223eb8d4181adc1dfde2b51f6f67f74eccd6929b5d646c65b57146fe4c9d6bac256ca9a3756f76d23e5c6bfde1d776458b7ad95bdb79f60cd66b014b44f90598abcf820c57b89595e1a3081adf1337c23eb7e635a267144e69bf79313743f1c7b53c86cbd2fb79691d5da9978d7c7e648b786796179f8e3d81e7906efbdb27dae8695096bcbb9179f871cb2372b645fbae26d2eebb684de9595d7ad83a2153f5a3729ef9cd23d811b80165e9cdf1d216a2f39be3d604c4e77b95a607151a5243cf62aa0d32a54ef6be9ad3e9b3711457f9fbd5da8352429616f0abaf5a6f5566779af6f3d5663b6635bd0719d36f1f875714d61ddd268df41c506e66dba3f4191436faa516a9d6f623b9614985960bdad8ead84b70c7ad9eeed9d3fb18bfd8e37850b68261c9bf7f6dcf2ec0d1069eb232c9bb8d93a78e2ab16790cd3be76d2c1d6fbe93a4672f14e9d0329df0cbdb20d7bf830e72ed31c376c2b493e6645f1d66dc7811bdbd60382b11f0dca736f5b0a6583ffde5abce7d42bddf919b04e6fec3a5677d67a462ded22bb6e26cb890928de29feedbe425bd7540a5b6110a2be9f804191bbd4b8fd9341ffc11914ad4bb8fdefc6a0adab21589b9c32e88ec9c14756f446cefd846167dcdaaff3de7119b6259813ac72e44f7613a26dfce9a6c58617ff7efef4b6bdd5fb1cf6ad597a89c716c8e5c8a2d85f636b078d63eed6ebdaa01737fe8c4706b54e679eb7e03ddd6d69c917f8ccf9b3751cb100abe24470068d1b83fa6291534ce2c6a1de3b8ebca1e406595eb63671e4d623baaa7f0a1eadb35897f07ff2e83f328fd659bdf1fbdf8747b7d8c1372f9e7ff2ac9d6ca5ca7569a3ee57f0a84c5ada440fde99d35c3ac393d34b9233cc3e6ac3e6d196366768232f9d2642be92c6b9e41fb5e9d8146dcb3f6a1e0ed1cb31d299e4dfb74c69475590b437edcb5b9a6de77a2e9d45a820cb6ff48349b969e0ab5b535674b96d9602086156ed70b9ddb31ebbde71babaa0226f138a46f887ec8dfc77118b9a6986efb2b85bac1cadc8fd349f03a32131ea471c107643dc44f771f34d58958a8b1b6b4047915cba0fb7d7c6e6ed64c827eb90c230cdc44fdfc55b715b7b6eca26bd2558f7e6638f611f9e798e697321d306a2fbe47078f6f2d593e5f5d5e3e7afbe7e71f5ed83cb6f1fbfbe7af6fdbfe6443c16d50493c6b27fe066974475d6a5674a3c6bfd8d410e9446a91be44099ac3c75f5fd834b92542e97ab1ffceaf6af959a2a2fa3d424329abf5366d717d93be9a7de09d6b5ba62eb4443d60f1840b891d8030a540d0e7bf526c94004888c8ef0de58b9c15f54a2d729c69e642dae359b1f80a6a10fd9329a73a87ae35a6baf34d0329ddc274bde4ca0a4f950d0e6cbc03c45e092950ce8e67ddc3fee92e3d694cc328c96a5d06f2e6fded319ff7b47f8a4c6e56eb12a6e5c4499b684323f6eb6b173ca99c7d2b32499a37ceae99626a96dd32d896f9ceeff495bf3a7dfd9e74d2fd5bb35e5c1bcc05f33fbd8e64a757b2f8f7daed0bcfada9ee8e3f8a9a7398a20dda2d7ceefe3a65f39bd02332df98699f24e6196139484f7abeebf07dfef9dc1ac4b425e058e1b2fe06f56eb59d340dc1a870d3b5520720d1dee3045354c6f6143a8c244477d159fe86e6051c01a869dcf2c9e652075441657153d154d38fa4b446b018423071427e99f6af036fbfaa33322a58d537b58e60852f5f7246788e61ef609fd7866842e8805551c71a057a2d16ea8c5038468af8df012758bb80a7aeaa16f480466664455e37e0eb2941294539fd97c49d5a934b68c826dc6c571ba39f49f9f7247f8b8e013483b30d7aada06e69ca473db4dffbb58329fbc992d370a629d7e8ac18e08e804c01156d275a40db4881e9f48c69066ed63676c331554e8abac18865252079a94c45e6e7b76baf3c6c205ee27e6d5c00e58c76b678b1a0b4e256b6c26062321ae0a680b30151a0c024c240dab6214e59640d39b683b52c40cac278c198a87ac951b7a18697a1b4bf17695e741131e2d545d48ec86500a02c1123a08647a28275a5ba0623804141865e0c3b018dacaa67c4690b6617ef46cfa66acd3fba0b3f7069916073993c9d7a9c7605d0d5df8a9fb16f950debd19701e629461eb71db213523418ff2ea6db006ba20a814180005a9ab959cce882c34601000234459a27a16092047a0989b45e0d7e1476d36b8b1a2f4457fd673e9cc4d288468a2ec3290e884aec5608e16c1f88cc852b56433ec37efce4cca326d9d6ec43070473cb3cc90224784a9a2bb11df2f40ae1db7ed7773f75b053de7eb5ca12eb29a4c338c58b275269fdefadd1acee83dd54885ad77ed2db11aef1e274300a932d240ca2d6f96e6b0a143b4b7d540627a30c4100b26b67399c3696d51f449c46d12f13889e8b388368b787d163f75f4c16127fa296bffb0bb85529b8d97ce89a5743f73a90cad1f7fe63abe783b6c9dbc7690c8d2736a94e7273c74d5526e98ea0d87ae4fbe63a543c490dab2bd6f51f83cc32861587ae93c97b1963130d6023bc3071b6db0f1dc062b452d611e23c93a1d698d2d760600bb6a59afd9daecaaf89b2ad7550f009a6d35a82d32a02dea11757534d1546a4011d728d38136abea45fd23027162901100138825072a517ff2a1d8cd81ee6930eb747c144ec67a1ec4f39664aadb570377c271a1a075910e5e4f6c75acc088f28e466a910163c7e836cec5a4862c5093daa0d260536f1dcd6b804d5d5637a9813905933a1c4d6ab7a8ed242501a041d37253cca48e629cb519d4d12dea0840b6ae921f09edb74c1fbc738274ddc666516f0675dc0cea78625047b3a8e36e51c7a3451d37933aee26753c9ad4d16d6a808ca1f4852bcea172efe296059e774d85960568aa03ab0fbb3ab85d1d8e76b59bd56137abc36656bb551dddaa8e9b551dddac0e6656c753b33aba5d1d37bb3aee767574c33a6e86753c33c3ba629dcdb076bb3aec767538dad5665687cdac8e47b33aba5d1dcdae8e47bb3aba611d77c33a9e99615d07a9599d18c09740679bc110fe0009ba6e6675c4c993e0bf81cba5de7601efda11c51315164de5a0ad0cf09675f8aa0d1b7ca67c885dd7a4af641d943994cdd01634036b2a4445edd5e635202a2981604706510de78a15c4946a59f17af4aa2624ac5f33d2cacb3aad72429455e0e865bc25523b44ecb7beda4117720a421a65d9ca2bc22b0dab461886488b534e29b14a6a883d07642b17b87ff45fd6d56120d6ac32aba77630f8c1b6a279a92a0965bdaa4a8d62c5554f7230ec42320f1e63afa2a52ccecf4a3e396220a7160bdc29a467f0ae0683d94a4569826aa86e30b896fae390df38e44cab11840c2dde68d1009ec51c5e9e5884d0b6d51aea0a7483dcedaa86b19d1859fb34941d07a01cd502196bb4a2268edd9a096f7e5352a525488c19c0aee408da6e1521c0c935842b31d83c8c5e2c433c4eb811947322e5357283579363c5e91bf487233383e0c8c65a235be05e6d28207d82dcd1c95d55bb9a3185f6c2142547c2be026175ed504061852fdd0c38e070714df521771da54883f4a9aa902b62edc75df021d180f7644ca431a8dff1fea4a66295465fdb8c1d1aa8b548d4b03d8aae8e5e3f6c9550be9f6a186c7d4e0bae44661a0ff5aaa9a40af6c5c1135edcae57f72e2e1e72613c300312e2fdbb68fda73f701ec2aae6a17c5d01551a8e1553239ac16e1d6f507a404813e99055aa802b36510bd82e64358c96865256490d6125ec1caa5bbd2e37d7cfd90cf719bb4a811237795094d5bdf0a5ab5103390fcba8fa53aada99f5191d4c419f0e4ae56089bef045a9d4817d1587c1cfb1d7f5ba1550f53146e950c1f449f79801fac275a546054ca9aa2ac7ecb21c81cb4c3a3666734995359b5304855bddac320adb340575619b3dc38e871c40a1680df43bf25d2a720e210a2c49d18b29a3e52f4ae203321aa1fd1a248ad80f4e7bf13067a2a0b08fd8e0bf3a5427421e1cd9e48e037516544a75f7ea36f8e05057a72303bd903c09d1e44577ae90a18d5402b24b52b68a6db6cebfcd4c0db8eecc110390b711dd64357432fc5eb776732a46200c5d375514fa4928f8b3174eead1ce4a62b0fc367beb2baed354bbe661cde8918cddadd72570635cef2cfe1182280f99777d726e40d7550e6bae82dc7d0c4f166dddbdcf66c065aa08d301fb787777f7b5f17e7a23b20346bdf7adb80c7e02353b86d51e9fc730b9d13fc2302bcabf7b56a31c6609b0f619e272335755229e891ba214b5546cb8711f6fdcc71baf8df777f7bff9fdbd7308602349a10669c3dcc3e7312680a14a173b5bfdeefeab37dffcfedeff1f0000ffff5fe69651a1010100", - "3643cac7aad7e449dde7f023f89ff862": "1f8b08000000000000ff648ec14ec2401086ef7d8a3ff4a209e9039870a8b2310605d2ad282732b453d8b8ec34bbdb62dfde948428718ef3ff33df97a23c9a808c5d8fc658c699020eecd853e41afb01fbae69c8ca1454d738b267c42363ecf7e40ded2d070cd2c131d748d26b1f5160856a1817e572a2961b8803b5ad351545230e21928f5d8b20e30b7f939dc57f0554e23d57d10e5992a2948bc42fb70b8c85dace36f9ebbb4223fe44717ab1a9c8c152640fcfd11bee476d1360dc3fd2e83ca00bc61d20217be6c8aebf9b2cd476729f256992427dd3a9b5fc90a498e765fe986bb55be75a7fac8af9ecf33a490aadb47e592d775a3d15aabc8ddecaf54eab62a38a3ffb9f000000ffffb53849697f010000", - "37c2dc1a1f60c5e3d5255a61cf48ad1a": "1f8b08000000000000ff2ccdb10dc3201046e13a37c52f2a68f00caed266058c023939e690392ac4ee511257affaf46a887bc84fe4939336223eaa9c0a4b80c9acafbef928c79265eb2985b72c570dddcc18f052b5f9b556bf466529edb167cc69c811a55e22b8b05a8741c025fdfdb7b2e10fbed83a47933e010000fffff34f28648b000000", - "3baa9872a06bb993286ec8aa69b4f41f": "1f8b08000000000000ff5490cf4ec3300c87ef3cc54f968640a2aae04ad20b4fe22d5e172d69a6381b428877476bba35bbe49f3ffbb3639cbf601758d5524edf343c01eddb2e852ebaeefd638e006663b14f192fc7374451e551f4157ec23eb01ef08b4de51a32ea381337bc851e651c2417cc6b774d3f623310720ab2c468cdab82a8635b0c30db73296942f93989a57aa1fb3021a9101c17ee9cd7e8ef520267cf5de0ad044b5f33d796058c9e78aad4c13b2793a592cf42c373f151f4d3f457e0a195beea9b597be72febffe0efd6fb7a5e9065fb0f0000ffff829b6c549e010000", - "42ef67a69104cc24dbb29e2ddffdf564": "1f8b08000000000000ffbc544f6b1b3f10bde7530c22fee14064c32f3db9eb2d213625d006d386dcb5d6d82ba295965939ae2bf4dd8bf68fbd9bbabeb5975d09cd8cde7b9a3789546fb0d6a2aae6ac3cf00f5064fc7f965e0124f95d7720b9325a19e499b6eb57967a3fb1a5ab265fad443df94c765786904cf3bb3aaf5771a3ad709cd43677754d80643407adccebb31d1bdc77859e4481936f58d91dad31849570f9f8e6167c5d66062c730632677849aa107460e1063c8c9a8a000f84c2213ce11e86c856644ba410da9b213439c954aab7f4aafd5d254e641a3bc8cda6fef2dcbe21b5ebcc924442d968e37214f29812375cf7587a0f24cc16e1ba84d91c1a4cf7ce5105bc85138338a80d98183579b04561cdf3a144600e7f38d60b4c5c9e7a1fa36a9d56a25a0bad7e2244d15d9ef6eaa191c7c46edff17779fa9fc9aaf2639714ff28644328b3f2707aa28d25180fc57c11f4202afcaecc56630837a00c9c8d58e91d091d42ff891247ddb2af4e71419e77121597358a571c1f4468b535bc50526a6469e4e3fdf5052e13ef63fda1ba21764b3275327d07a8aff1199d5b2cfdaccb9638469dac31f0c53bb0b5393c0c42568244f1b8086176fe498e441f1710ce194b998d65b7109b6006ec45e13e7a6cf4478028951b2268adf657d0ed051965b627804ba9dc6580ff5c41193b9ad82d30299ce005badc4a3603b6587e593e2f8f076b6b368a8a78724f0807bb836a47f8e9446e8195237bf88d5f3baf4edb539325d3ce5ffd29d77a3a99d6132c4eba5e1f4603f1351a87d48cb4d11c4ab15546384be376a5aca941b457ff0a0000ffffc89382642d060000", - "4334b0f46d779c32dd8a3ee235a4b42e": "1f8b08000000000000ff8c565f6fdb36107ff7a7b8e9c9326c0adbd3e02105b2366d36b88e51b9cd80a26818f16c73a5781c49d9f1027ff7e12829b10da4dd83219a3cfeeeffefe864f54dae11641535d93018e8da918f301c00646b1d37cdbda8a82ed674dfac56d2508176bbcf5e3cedbe2cb0225f6108e605c97a37e92558da492f6b43eb35fa972f1c099d9bd0584fc6a02a02568d473ed63fff6a5fc6e2d36c3000787c04bd02412e0671e99cb8d571b320078703ab787c7c3e794f0a4d587c5b1f0e3f8cc0c4912bb6bf14fc71e4ea5dd6aa42ab6072380cceeefb5054e4c3cbb00f45c01038472c53918d6863dc3b7cd9c323a16c900f06450157f34fa00334011544820d1a0761a763b58180316abb0e702ff9942cec36e811e206f9a674cee84a729530c23d6abb06df58016f70251b13793753b84543ae461b3331d84a9f345e00178d78877198bdbbf97a35ff948d4f65f3242b9d8351e700073c6d2e61c4a9124b2f6d3032924f9e5c3ac71a5b1ba531e0a98918405a05b556cae04e7ae422840e916f850d3546c13d82c295b6a8042c373a3052dc2058f45b840a6d440fb4823d35fecc7931280adefa400d876b7ca46c0c6b4f8d0b63c0580921800d505819e951c1f266019357f0e6e676ce18adde1aa50d5c7e7b6a402a05f2d8f84870279dbb83915c45f4a30e8c232f1922a91b43dcc8d8ae61a78d81f9cd1236728bed81c5dd1126fb8b10649d92ca6efb06d9558f811a5ff506275f03c8003b34a677fa8f08d204eacc4ef07dd83d42b5c1ea1b2ad0360593bc42cfabfd492092f3772547faad3618eed80a09af2f97afaf2797b3598b388640a0639f30697672cf55c7979d91152a3032c45e57ba7362fa986dd7b18d88f3b845db1bcb184f69499165c14860718b9e8ba3924c2562b06a6cc59536cc4fea121e995d56a95e2f2ec06a9376a0dde8eb4dcc7137ecd7372e59d58a015cd9ed945b63dcfd2fdbde2e23799c42dfe962de18f378e885161e6fa5c73085cf5f7adc6eafc76566f041742d39ccc5b5b4caa0ef210e670ae7b2c629645f8f598ef704a7e670f8da5992b5d70ef9207db9fd9a48b58c9a23b5078f4a7bac5210cb72d6c7427c0c384c245f96b361fe7c7b466bf0f84f8321b6c48f117d80e14a9bb4e07edbe7e204e788fbc5a2bf334bff9f814b8c6d3d74e01d054222ca48f06779333f413de24851323f1db57af177209bf5667f774c24e5b75eba0028abcd937e6d414264e66a07ace865a1129fa4697098c5872c17c39123275e93b598e4f25eee03d6b44da62b1de4bde1a6d6e12c323c5e5a7e6cb50ceb34a8c49bdff3bcb79de74e3b76da8befae96c3acc8c6704d357655c2c249c4636cbc65b9c121b16decc83791426a29435281a14a1a8415f7f1982708342ec53f3e9135dc754f0bb1bc1b272eb5aa45e8959c315e13d227e13354453e9556af8b7c0a314375514e8cc2fb3579046d57e4eb64ea143631ba302d9ee7a2d0fc82291455a14888fadf24dab6fab19bc3fca991df3f19f896a5b8d97832a14f3ff22d1b2cc769e722bd3b52f3f3e3caa71597d5b4f520f0ec13a2e8ffe563c8d04e3e9659fe5b02f8e98c514419c90dd177e979cacef2c8ae61de25aaefb6ef849859bb3bedba565ad0b6a23a8df436a6693aac981775004b11ae97cb452920e3884e8b021f64ed0cf2a323838b57ed7e383b389a73cffa156180d1c8521c8d006daae9b29c8994411eb827d31696048a92d10cb6e3d6aea8aeb99c9b902621384f0ffb1fe43ac9fc8f3a79f14159b415f2cc66dfab8e2eeefdfbf638512ddae93c28cbd9872e17d3763cf0a3e90232e74935a97d3a062ecbd9823db946a9d08729d4d27d0e919f045fdacf63f6d7e42df99df40ad564e1295236edd29325fa3f70adfc170000ffff9db270a2f80b0000", - "47cdc99cfd7800b23c57b35568e02598": "1f8b08000000000000ff8453d16e2b35107df7578c6e1e7861775321845454a4d2842b046da240dbdb27e4d893dd21de19637be98da2fc3bb2779b80a04279f0c66766ceccf19919fcda51048aa0a11f5ca22a26dd222cc4ec31ecc82168b610f08f810246f8ee6682e0ea9b7afeb59a4197928fd74d63c5c4da16ac36d237c82d313643c4d00e64315f54d4eb169b425478aaed40ce36ea87cdea1e5ad90ebb9d76d24ce7f5f1588b4fb17ec21049f874021da1a460506af9f0041f57575757f7abc5e3cf4b109eaed69bd5a797d2d875d3f8209f0f752b4e735b4b6895da3c3e40bfb714a0f2d0c4609a379e5befebb5367bdde27adf9e4eea79b5f969f1e3e67fa2d4f1483bb880cf94ba67dc7a6df6509d4e6a06298bfc4ace81d1a643481d02fb1e8863d2ce414ce8bf84811dc6087eac5dff1e85c1749a5b8cea76b1f82750ff17eb8b0e5c2873f84107ae9d983dd465e6fcffcc58552c950fd2068c511d8fe82296cc1cf9f7d6fe15c8b6c45dbed40ceec41fca501f05eec50e0e23f49a6987314575b75abf402b752f763ace5771e8a743cd266d2cfa085bdc49c0f1ad89db624223fe90bfa30cc1204481d4e904af0856f88b048c68210904acacbcb2136db35ffac1746a562abca54c15266da774e23fb523ab13820c01de4aa005a70f188a30ad401ee20d5345e77ad27772edd8345479931219a8049a2d71a3bd57a3d1b5f3c45872b4df83b67654799c7fab63f71e6674653024da91d109a3ba183433a851d6aada05e96fa63d3993439d5fea918df43d722a4a0d5c5e6d4bacc30188e1830f62079348f8431e15afd50cc6adfa6df9f074738173b1ef896d2990cb2781795d7e59674a6034c316212232e48e408614c98eee37c2491363283b7bbb586c6ea66ca5969fd6ab5f96f0d57c3e7fb7e59edaa0731f67af848139dbe33250eefdee7e7151604cc26f2f0f9261fc8ce672f357000000ffffc5fa989b12050000", - "4e577aceb26efd4aa3e9ef3ab5ae5884": "1f8b08000000000000ff9c55df8be336107ef75f311504649a53ee36f4a1ee65e176cb9642f70877d7f6611b0ec5961d114b32929c0b2cf9dfcb48b2e3dcfe80f625966646df37f34933e978b9e78d00c5a5ce32a93a633dd00c80d4ca13fcb6a6095fe3d267218ea20c6b2f952019ae1ae977fd9695462d14b7fb2df7c22d1a2b6b1f7fc977418dd9f675cd5bb318beb6d7110ee02b90f7b31598ce3bb68ef9adf70dccae17fc7bf787d24ba35d74a3133db2061abc7f4bbf5b9b2e8747985dbf98014a601787ab9773ec4cb738fc14fc23f3bda9447b410ca7c8f22485df5001376631cd3fba9ea2e45956f7ba04a9a5a7393c667e0ec25a2856802ab135b74ed0b0fc7477bb5c2e7f9e47d46d2fdbea8b540201f30c30133cf8c30ab46ce1310300a895676b2bb56f3515d662d829034857c03e0b7f8330743084ddefba3678fc2f619d34ba98f0251352ce0301265080c7cd29cf4ea9187c63a118006e1b87c518c73ed8c66500076ec158d948cd5b34c1c3c6792b759301d4c6829ce3213c63b96e444488e5c83ab8562b206fde9064844bb415f0ae13baa203ec23023cbcdd9c02ae7b903fbe2b368cb13c9de6e914fa0ab949d6ad157c1fd6a7249aaca1159a625c8e29bc3b2785f6691239dec2db737eb176585d643a829f0bb80fba059315beb73a5197a84648f01de6e7be495feea00c04aff641c99d00a26463b917a408c8691778ce6f39461ee2fda6c80e5f4ebaf2101e833c777b3207e2c30f777b97e22f147a0fcb5180d634ec8e7bde52a28d07a14ddfecb0a05e09ed1d74dc3951813710b0f38934a1f43059d847f1edd6682f8e3e503c5c6df2a7b4d77035d29683ec217c596c26b8a9c722f2a75e0f90732847d427ed34ad24b553c4ab44cdfbd68f327c1d9b184728fbc398fd9afb1d2569d090fc97e7d09fe77c9675a823a9a4aa91ecd628c57575e64aef7efaea4b55b1cfbe921a426786e5d4617a3f7a4cefa72e4c7070096ba76262044af93f043c8db3e3f2d18573e314abe979a07ee44ab02fd2b782e630bb86c3309adc3f9acce162a2d13ccca6575a258eada13302ebd61cc75bec4c87cfef3e0448a36fcc91867f13b452c2bbae5083cf615bb0c5649fcf41853f11f6ebcd4b937ad4a5a6e48ecb36b643af9105ce5805cc107f32cbe37d6ccd91fdd9d1ff866e7bfd0af4291ba6c3bf010000ffff364833083b080000", - "50d3e266d6148ce655a2a7ff90ce1dd7": "1f8b08000000000000ffbc92414b03311085effb2b1e2b85f552a878743d78d793b7b2946967acc126914cc2e2bf9760060b2a56058f99f95ee6bd4cd66bdd49a0e4e2347581bc60447f8859111f303bde4bd6beeb80777099697b9069ea00c024c7e8477899e2dc0480e32ab85a8c28c5f11d79e1a1e9fb732caefbc6d9d5f78f4ee1b4b9c1d9ca806de4970a68f462dd5ab3fe2e0965e10d651b18e23c1c8f28cffc25f1d320c329de2ffecdfb37fb2a2ae917dbfa34e42da527dc5016b50eb1770123722a62a57d652f57edf8167973ea5ff8e373bc060000fffff48dcecee6020000", - "52cdf751a4adab526c64b817f123a6bf": "1f8b08000000000000ff748dc16ec3201044ef7cc58aa3a5d4698ffe19cb8131465d58044b94cfaf6afb5045f56ddebc817da2b6287922fb658ddbe0bedb64881274137fe398b1339193bcc6706422dd2ada26ec27fabcdf4de11e62de976b7c251c33e4e5c1f01369ed304441d6a4578a63be744ffcabf072dc3de6b2a8a21ee76f146a5cb58dc3300e3bdbdf342b9a7e04b167f5ce6f054b68e7f3d21f1cdd098a547851b43f7f67f19893f8ce68a3353f010000ffff524107ee51010000", - "543c89ec0b890fad904db35b155d0b21": "1f8b08000000000000ff8c535f6bdb30107ff7a7384c5f6dd33e0c26c660a5d9188c6dc42eec2d28f245516de934e99caea4feeec3499ad86dc2f6645bf7bbdf9f3b7983211a72026e92075a460109c0b2336d2d1200809a548361ff0e9081b152a30065826a519942532b9d16d7f9f5cd01b3dd825901fe869c3cc7fceeb67af208a9a7c83a604c21ebfb8b742f28f13e7f97c9d61b87072c00ba8d09e42c3a16c743809f3fcaeacb7c562eeecbd95cc00bc339c4ddad80ed76efeb93f7f9776931ff6c5aecfb0563e463820cd0d5d0f7497241b89a95d5623e2befbf55a58082ad2f06822c60ec5a8efbbec8e8e369746a8daaa18e8f07a173026c539b009987ab3167720261640ab85052ad719cbbc1a738fe1ec09bebcc373adb6193a98e26d0c8a00dafbb65aec8160f91d15a0c85a6eca1736670ef29f03f1b352dbbd54ab654bc7abe69b454434d8fae25594f6947c69db42860de39184cc030c7f1f614592b5d2de079129683f490beb20e1faeb6e331f643b68130a78ee1235ca81ebaf33fb64d61f6eb6b35513a84db19836760c44b3c83ca2966949bf36b13d33d9d6a5ef2facd4ed34253e11b9d8e9877374206362ba978d231509cbb9027448d918d93bcfbe9837cdc4f803af613f33b89a1b43850fc8fcadf000000ffff09da42524d040000", - "567e2638f2c5d15d059defb14e4e463a": "1f8b08000000000000ff7c8ec14ac4301086ef7d8a217441c18d7a2d6d61d9931711ec0b24d9e95a4c9398996835e4dd655d1441e96d0efff77d933344e58e087580a603e90393dc3147826d2955ce308d802f5007b9f7f3ecddf01e1004e3c2e26bd16e3a18e5800bef22aa411d2f44ce7590f76a46f9a0c8283b7d6029e20a72f46fd4c0ed4db9844d7f72a3255ced68efedefcefe09cdb3f6cb7a273973dae1a1815159c2bfbdb3edce85c42baa1fcc1dbebffce7ac5a9d98bd0363155127343bd0ecb6948c412201d15bec04253d4f2cfa47f58aedf519e9abcf000000ffffdcd8bf6980010000", - "5d6f2ea1184b1653049f127764858779": "1f8b08000000000000ff84524d6bdc3010bdeb573c9425b40559ec2d98f4104ad99e9a3d945e832ccfca62b51e23c9db429aff5e243b69c852727ae67dcc789eddd181233d241bfd945b012884112a4177b30f7d8276ac53b47af381ecc0908f8f0d4f393577d3d4ec8d3d1a47fba37b7a92f8033b67a81e524ba8c3f6639d66fb9711ff8b56dfe9d8fb0835619abbe0ad3629514e55720c47196a86f37998bbc6f2493beee6c3c104d66ff03972e21e3dff1a039bbe72f47be298b1bffbf1edb3dc146837bbfb82baf3a3142265e3282d25644a5988a6803a9b985a5cbf3c0be06ca2375d58dcc0eefee1ebf79f2d64f14821aeb0e360468733c5e479841dd85bc24061a2289a399172d5a1fcc9386a71fd8a0aa66e07566da1db957e2fbd553717d16d7323444997d7bdc297c18c8e9019f2f6b6c5a78bddb2687322e481b050d8f1f33502781b5b9656f6754db5d116eb39ff7eb2d2f0fab916f16f000000ffffcf5a70eb87020000", - "5eb380c2ae8ca6e10dffc3b60fd4c68c": "1f8b08000000000000ff74903d6b342114856befafb8afc58b2e83032917b6d866cb14c942cae08ace4a6655f49a0fc2fcf7e038c51248a93ecf390793366f7ab2a80df9180a80bfa5980905304eb6900f1307607cf274ad1765e26d9ce2a53aa7e73836398fef0ffc2fa0544f968304a0af64f1b8963cb74b2c94ab21fc06b65b29d51f61017035183cdb42af778220dc6d83d45936af4f1ed0e68cfb03f69447fbd1a5174fd793ffa49a6d11c794841c70dddb10c17fc7f301b952a3db0c2e2530efd6ec7f070c7e6e8d8cd449939e85cd59025b00982eadfbff5d52e3fa71bffdead050d6f73dd52068405d242cf0130000ffff7b2fce9c7d010000", - "60b5ddeee92d1c5cda67c7a329b10b52": "1f8b08000000000000ff348d310ec2301004ebec2b4ea9628ae40594b4f006c7d8e604b9b30e1b8a287f478250ed6a34d2141fee3e47f2a1b2ca13e0a5a8551ad0f599ebadcd63d065ca3ab794fc43a7ff5a946bb41e0e787923a3c38f8c27c92c11484d02b1701d1cade88c8eb41be7f81ef67b29dfecba396cf8040000ffff2bd288128c000000", - "6573548b2fc0f0f412c4d11f61313305": "1f8b08000000000000ff7c90c14ac4400c86ef798a50f7d0824cef82278fa22ebb4f909da6ddc17666c864441de6dda5587b50f09404fe3fff9744b2af34319255177c02704b0ca2d80262e359fbab6a6c609d26a7d77c31362cfd142e791c690efd561be800f42332966242d4649e696173e214b258aef5a7c3a492ad1640dcacbb082a402928e427c603e1dd3d9a0d0b6b85bec7520e648e942ccdee936bc58147cab3a25be2cc0b7ba5556e60ccde62fbb61afea5e9feac6cedcef510bcf2bb76c82241704516d62c1ead39b11f58daf539e6aca439bd3cdea298b38af353dbecc14f61e0d91c2544965a6f7ec7355df77d36fba156f80a0000ffff7c5baa9c8e010000", - "6791bbd7d67bf8d4c3e88687fb9eac28": "1f8b08000000000000ffb2c930b4abaed6cb4bcc4dd50b482c4e4eccc9ac4aadad55aeaed64b4c2ec9cccf4316b5d1cf30b4e302040000ffff9ca0bf3a33000000", - "699a49e7ff71b8f8ca660965ef51458f": "1f8b08000000000000ffec5a5f73dbb8117fd7a7d8e34c3b644785d29be94b3a79b063fbceade3786c25d7b70e4c2e25d420c000a02d57c3efde5900d4bf9328275192bb8b9f64098bfd87c56f7f4bbae6f91d9f20f0dc09adec6020aa5a1b07e960009094954be853a11b4d9dabfd978970d3e696e5ba1a4df46d53965cea51fcdc2d50eb7a74fff7ddebb391415b6b55a0f142f339d3b5b3eca8aed91b5da0b4577793b64d06d960301ac1782a2c944222080b135468b8c3026e1fe138286470ee4097251a0b1c6eb9153958679adc3506a1d486b4f0a2106a32042c84136a025c1550a0c4f0056a3e4106e7253ceac640455e90b94a1ba4ddb9ae6a8933d086044021167e0ddc942b70538c66058955a81ca71c2f659d262d641b5c170ef3d19d6929f50339a178451f524f48915deac20284ea827d499b7c965ec28d5093467203699742bfc0ae8caed1b46d46b227c730e6b7125fc2956c0c979bc27e51fc0fa3f8355add987c8bf825af9075cb51fa8abbe95272b426faeefa224abd17f80063ac6ac91d52c4059a955d2eaed8f5fd6794a320e4dd1b8572d8e14ef717658ecec374df4b6dfc0fdb53148e7ae01e6bdcab39d4d47c00102b79213468bd6b17c23a98a0b3c0a5dc30f893d14dddb62c9673a3fc2df435c6ebda978877b3e66e4aba7e3a1dc3967c0e6827a4f7fb9ccdbc3369be70f5b5560e672e0334461ba028c80a3a6ff5e41872ad1406a74aa32bff731e360d00dc6c08fa0e5ebe829cbde7b2c13471b32463e95f6a5d93f2b8371b0088127ed077de048041d7180565e5d829592ed3446970862bcba335dda822a18d2d21d17adade73f39a5b0c65d0b6e4c09ffd9159b635bf73afc357e644282a3783b691ce32b8e286571612baea89bfff498de63fe12b456ab4241ca06d422b16f49c60c91be9e09e82b6c00d060daffeb6a1e3d58f2f12daf3817c7433d639706674154ca7398b7f6459f4f21a9d11788fbb0b66791827c721b7680c99f8c08ea44c7bb395fdc30bfff00a9490ebe781c674098fbf2c3099fdc295b3693275954c86100aaeb7907c284745110bd8c74db74eaf1611580dc241ce15dc223436a01a0974f79f795539bb419726cb834886f0a1cba6363e730ba9def093617f3165ab09c9d93552f429353f76e3b86becdb7f0dc1b09fc76f2ed2640f360955e08cd5b2b153e61397f982ceba64fed7fa409e94cc4d8f7e7cf182fcf8e7cddbcb3de7bd6e73f6f4f3db61f2df6f2e9e66f13a144f9a67110a6fa6fa2140219d70c11df740acd52e20ee034652d861e32e601ccde7c93c69dbb5157fddce4fda8fc14df2fcf7889b7405a5d439611e578055ed1e77e47a17ca129f90d887b29d8605cc8e359442157d1d369c9ce1153a34b0fd7ce8b80912d81ac4b9193b13aad85e829db34388b0ba448375dd49d6838379c8eeeaadbfd4ee8c523ba44dd92151b20fb4ba70768156b71ef1ef30a865a7fae15b81d622a0af065a9b16d7416b3ea7ca5b4e2247f617bc85bfb62da1cf253e80f15602a095da541ed072833c8e100a1f7661db728ce9e57d3bb14de1c3d301ec12f7e0d713cb701f02642bd7e233eb50e16619b6741ea80a7f0094bed79468a4318e86bc5d50a3232aefa3d9a4d167fceaedcd67f2ece0d8de8ef10db0f99880b95f594c18653dd4348691d3aee170ce8ef7c2f0d3b8e66fb675bee75214743c4bbad279b448ce00e01e8db1c395fed4ed3b52452c843de8bdc8eb9e4c893218633f737ba41ed36c5df2b3fa908ff80dbf0bd1fa150bfc9e0bc96f2582505614b88cbde3e7716f848fb02d190637635b8a430d39067cc223c1a7ebbda609dc94872a682c1a9a0996bb736d0ce66155a8ba716cddee21ba672f6ebd53b5d1395a4bc938554eb8c7cf003232f6691df5539cf4ed361cc8a6e98f68ac9f6299baee86e195fe7ad851f3bca4ea30e8a771a5bb0ab6e880836d72f20e2a72718291789d496ea769c68e8a224da2483284311b132c488fe043e82f2ee69b3d16acdb9fc5721a8dfca300838508a51b5095d8957fb0b8c95682d86a526f10df52484348b6f5ff3fddef2b6c767e7238eeb6e25800b5e26b53b9ed1e7c0966775a08b7a0763c3ca25db0bb5d44e3d7f482547d04a1eb1f5647e4c5d3190885f03cb13e8915fd3667cbc374b64391712abe7d6cfc5dedc9523ee56a823d843c12807e42bef678e7eadd977dbc133c7fbe2ebfe3ebb27db4d91c02bfda4cd33713c46a7b9e097e35137894f93e86822d80fa3c15fc71a682c6dff1ef6a2a086ce21b0d04c1f827ce02fe8dae75463f86fffee8232f2b6f5e77d217cf5d5608ffc9e9c5e9f8f48b3298e8ff3385797e47b5418cd6bceacae4000ce76b00744950fc25e0b90879d80ed0d71be0ec5fe31f049d9367e05d05deff070000ffffe23875a37d280000", - "6d370f84065919e03dd2bd3d253bad56": "1f8b08000000000000ff2cc74d0a84300c06d0f5e41421ab7163cf9496fea16d827ebdbf20ae1ecf351d5a336b42b77913f5e17681ffc4cc2c332334c0e52dfda476b415f76423548bab143d2d7c0a6df4040000ffff73c1922350000000", - "709335c479cc2996cc506ec82da2424b": "1f8b08000000000000ff010000ffff0000000000000000", - "7246b36750fc4704d53f0fe7dc0f9a92": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608bb8a0e2610b1e65c8ced66036b366260711dfbd74af3f1fff4ae99b2e8c942c4b5580bcacd20c5d653b7c99ad0e60ee35a127c5bbc74d8d3d1b073cb3dae7200b0f54a7c2cd07fc835d63c5fb07248dc3f9edd5bb830bf199cd07801d697cfae954fc6d1c4723ebfafeb2c7c61a4f3271d8c849aa51aeea6ff928d36f1cade57af1618fee834b9285d1048f7d9ea9880bf00fd7000000ffffecd480c3c7000000", - "72d19d26d8f2fe5da0c98e7273b5c28a": "1f8b08000000000000ffb491c16ae3301086ef7e8a61c0e080edc0664fc6f1b224bb90438ba169ef634b8945248d91959420f4eec581b6a487de7a9ac37cccfc1f7f2dd4057a4dd3b4c6f15afc06d315bfb04900ea61f5be1085b25a5959749afb1336ff84f21042c9a39fca07165297ade351ba18ebe5b06a927a29d4a549923a5dc3819df9cf2ebbe75fc86d68924fca1eb58c318740bd576cab8fbb8f64e457ac253f64e11e69c991d96d63ace0db17e56e0b719183917e605101b6cf7b8c0b0890de74d3358ce4bc229d6108e581b598859673fe72f046e3e293d4ca9ef69cfd74d6702ba002ecbc85cedbe2959c55f68839a0204f45cff6a09cc10af0af9370e5334c6727ff600e1d8b6b05b821db4b3d8ba64d52a710e7f9160000ffff43242cc0f6010000", - "765269a6919d64f4181ba2d9c7592a90": "1f8b08000000000000ff348eb1aac2401045fbfd8afb428ae415fb010f5e6123d80451fb306cc6b098ec86cca671987f978876977b8a73160a0f1a19144acc499c53c54a6964d484bf7ff80f8099bb6f29a021c1efe17d5eb758b8c58da5f4aab5cf4b11dfd1ccfec292b735b0d977f5aaa8c99f49024df1c9306b5aa80348fc91e2d4545d2e38cdcbc433a7c2c34fd53adb73380dbbfd150000ffff01382a01aa000000", - "7fcc70e2c7483a7326a24bd1cdc4af08": "1f8b08000000000000ff24ccb1aec2300c05d0bd5f71d5b73c8612b1a18c4830b232a2d2baa9456223c711e2ef11b01f9d3f9cd450d4082c8b5a199d55a08256591278b71754a288d5fd516308897d6db7eda425084ff72aaf992c241d3eb41bc073c493f2a485aec9889c257580db28357ff788fef20370c5a12dcb9815ffc7f3a6efde010000fffff7ca089490000000", - "813f5480d7e19daf02c182e36fa8863c": "1f8b08000000000000ff5492416be3301085effa156fdbc326c5c8f72e3da4878585a52ce450f6e6893cb645648d90e4a6a1e4bf2f92b3b4b9198fdeccbcf95e2073a4913193f54ad93948ccd828e0cec978a7cac7c707b4849cf42e04bd33d98a4f7f8e232e973bb555aa6dab1836214f8c942966eb4704b13e639088b32c11cfcb3090135008ce1a2a5d74d1fe9505863c0666872132837c0fea7b64419e6c4257da7798394fd2373013f9918bf4345186cde8855303ce46ebda72e71c4e0c4ac77529ca0d2823c9cceb564d5909331d1969898c2c4566c839741482de737ce3cdb66bb078c729d5e7bdf8ef1927f2b96c566d566745fac5549d079b341eb76a58bca9d7d96cf1a150dee1f109b41eb11c74b355801dc031d6cae7f41ff5dfb72778ebaa187032ea9f94c96d38c622bca88b52ed83bac78b644ea0832c793d981ea553eafe1efbfd6fec9750c02af5ca886c649ed9f7088e4c2155f97cb570e0c916080851decf0dd262265052bb40666248c4cb68fd7b25e53857dc79e219bdd40c949113d3db19ce0ea5aaae31d098720ee9b16d4739ac81d0565af66d2f26b5755c5dfa7f5a9e17eb7aa55e27f6e8ae0a1ccacfaeb08d8b2f308cccc13a5e8d1caca7786ebe66a772a8ce4ed6391cb8c4a12c3a71a128c30a6d556afc2afcc0ef814de65ed55a6d7d4de26db7cf24dcdc7049c577197213a96b8cb5520fadfa170000ffff71ae9b187d030000", - "81cb1587fe133299c9c3ce339d832518": "1f8b08000000000000ff4c8e414ac5401044d7f6298aac1290c91d74f3c185e03f41ff4927199c991e3a3d228877974016ae8a2a8ac76b1c3f791370f4a4f5204aa5a9394602862a3eefee6da0b36dc9f7fe0851cbbce9a3af2b679daf1c68229a67dcb4c88deb92c5900e301659b967c77e8dae38c4be04bd9d7fc6ae45d07893406baff13f618cb8f0e155abcbb74f103335fcd0938977ab88e143ea22369e9ee1eeecfd787f7b8685bb5baadb38dc2467c56a5af072c94e13fdd25f000000ffff16411447fa000000", - "856a80f6bafc680de7d735663c530c12": "1f8b08000000000000ff4ccbb10ac2400c80e1d97b8a583af41cee01040717c14504dd255ca31cdca562d2c5907717ede2f6f3c16f062fe407418f59cbc4b0dd415a52dcc37de60c030a6cf63fbbcc4529c295446f667d626c94ce28196b7993fb1797fb5f8708165628e980a50edd695238b667a546ac34aebb183c98118feee1130000ffff2bf5ff9191000000", - "8904c5384fa8668d6a79e32e48c53111": "1f8b08000000000000ffecbd6d8f1cc7912efa79f82beace7e590399c98cc8c837c3f48145c9f6023cf72cb05e5ddc4f06b74489bcdb228921454bfaf517f14454750f3994a8e1c86c9f630356176bbaba3223232322e3e589dffd8fefbf3d2c6f9e5cbd7af6e2f9834b4af97279f27c7df1d5b3e7df3cb8fceef5d7715cfe8fdfdffbddff15e3f2a727cf9f5c3d7efde2eab7cb1fbe7af15f4f967f3b1cbe7bf51ab716a694530ecb7f7cf9a7e58bef5fbeb87abdfcfbe1bb6fe2bf3d5f126e7e69eff8edd252cecb67df3d3b7cb5e4df2c4b8cfaf39fffaf877ff97ffffd8be5d59b6f967fffcfcf1efddbc3e532debfffff9487f7ef7ffe97cff10b94e8fefd2ffeefcbe5f2e9ebd72f7f7bfffedffef6b7f4b7925e5c7d73ff4f578f5f3e7db6bebaff1f5ffee9be7ef1f3bf7c7effd59b6f88d257afbfbafcfdbddfe92f9fcc932e97675f3db8fcecbbafbf7e7c78f1d7efeb1ffffaa7172f9f3eb9ba5cbefff6f0fcd5831b5ec23967fd51ffca6fbf3f3c7bfedf377d91e69cf7f1d7cbe5fb0797f9e5f797f72e961fec6a79f3ecc9df3e7ba1f797bccc8cff2bd51fffd7e149fcafc7eb7f7f73f5e2bbe75f3db87cfee46fcbb5ef7cffede1b7af5e3e5e9f3cb87c79f5e4d593ab374f746adffcfedec5ef5e3e7efd74f9fad9e1f0e0f2f98be74f2e9757afaf5efcf7930797ffc24493ea7623feedd957af9f3eb8a4b6df393c7bfe647dfcf2c125de7bedf6fff7e2d9f3b7ef7ffbecf593abc3b36f9fbd7e7049f972f9eac1e5bd8b8bff496d240934c6da66ec1ca8d53423514f25702fa9d8f5c3562971e839f53098024b4e822b9199c643bd6a75a612ec8b836710217c7bdebbb878c88553c1edc6a9e2bb6c97f88143cc89435e634e142951d04fd65bb1245e23a51eb9a7164b92586be25813c5c169e8233d12a516f5ff5cf020c522a9dfbbb8d03f732ca9c59c5aec8963d639e5d4d7ac132da904e23422e9a4f4e525d535871c721c3d75ff7895f52b55bfc291ea23e2ae447b3a93e8d06be49c585fa7cfd95b7aec69c6a62f0a19ffae4ae9d4624b823770121db37e869a26ee29f138b550f4bf071d3b4dffba4d44ffdcf5d3df1674c2ba2c2591fec9be1ab827b18fb6e2517c4fdfa66bcaab5243a92c51dfae33c0bcf19d8155183eda9186be8a31291dacbe4a473182a4b1e654424915eb37a20e9d729a4a76fb59c12b9b7ff2460c257adf2f9ee654fe0c56fcf1f2beee0be5e2c7577fba7afcd5b327cf5f63d3ffc7977ffab7cfff4a7fbd5cbef1dbfff9fcd9eb570f2ebf7bf5e4ea3f747ffdafe7fff9eac9e5f23d3db89429a9895c2e3fd083cb2a39b5dacae5f23d9ffe891f5cf69c6aa172f9fb7b1717bf7bf5fac5cb6579f1f5d7af9ebc7e709975ebfc7078f2e052efc7f5c5e1c5d56fffe573ea0f6bc320df7920491ef3e6a7f2c8f5b31b9fa21b1ff88cbf685ffcc16871ff3a31de121bdf5d1dfef55f36dafc06fb1a9bba041a1d9b9ad208d45a246a49b0a9c5ae8f9bbaee9bba1c37f59a95dd4bd48d2b2391f272e804ce3b44aa9466e8caff4df98138954734f426979cf8d13e085fd2972f0e3f7cf3e2b90ffb5ffef0c74ea55c2e2f5f3c7baeabd89ba8f490b934a92a1b724fb2d4ae7c53674fbcd43e12872a6369ac5ba99691ead2cad8af479e7e3db66ba154977b171723d7d443ad2df5a5cf9128d43ef57a8cd0724bbc74fd77689c535d7ae734432b92da72f141c36fa0928c5416154fa1144e75a9a2bb8570b7250a85ca5287ee84ac2f6fa2f7b24eaeebf04aae49963e702969e8c0bb4e8f5b4bb4d825eb4cbb8a4fa6aa93d63dc779a4b90c7d92b3a4b2cc1138531a0b652c49563a509e69069a4a5993607db125a3d1535d3863fff696445fcdd49575babe8565e8d77a496de1aa0ba1d7b4701bf8ced0eb5ef15365e101969839c9c243e9c1194f4e888bacb4e1a1220a9cb6f0245dac4636679e3d51682a6c17ee84eba9636e59af2be6c2e012a5e6a22a8a4313251265d1a5c3b313927576ac689aa1d6ae64645dfd5297a6e4aa042eaaa9059923b1bebf15d54bbd276535957375a6fa1e46e89f95cf59aef3f1084df0ab52f43aeb00949347a853c7c853c06a92faf5794063b6417abfe277664fdb1a756e200ef754436f9cfac24d257a1f25d5a55053119cf58152671a61704eb494a1ea58794254d486c13dcd45ca4ca4fa78912a50e57391a15c3fb8a5b12859200b74e349d1fb5413e900aa3263185997bc4edd897d369d2d29b9fbc0cc791b9872b9da05bd299bb7a65baf5749b4b4a933ec8595fd5507874e75e945d43e98398da5575299a02cb653ff28f9f63da8224fb7ce0cad97340fb1aa2ea4340e9cf186540fac6bdd0ea21f94cad3515239508dc574684b3dce5443e976a11a8f420e8d5458ea1cf7ab436f6a38ccc46f22cd43644923724be51065268e2dcd4727a3f9f1dd717ff6707ed11edab86b515ee342fa3ca9de95549e4612fd37d7d4637baab64c3bc4a202ad3d8d95f45f0c8191caaaef1e816a1a5174ab488b552da75e4c7147ddb80c5b43d7416a64e5a636cdae2a814ce3b34afb1194054a4f7c502b2a70a203bea41357f9cf9cc6a1c008a8a91d5ab7ab7aa8d574793d88287d929a7d072e6a9c49ea87d6d47ca1540f45ad0e4c905a2a5138f53791f8906145c83ad56aa846893860a2084cbca1d69e32995a7945a7d1a2c0b6503ad59ee6bbb46e7ff8bc7f518dd63c27e803aad14c2336d588983fc94c2d0c5d40bd948374d842f254482d3cb595cada7b12908af20ca3e0fb41bfaf8ba7dc3f92403b327e78ea42917d3fc953651f02c3347d693f28152434dc1cca067aafe8dcb2b2310fd8a5a93d526dc24166769e509bf0d1c9746e60b23fb6cff90f6c1317557041ca487d153556cd4a93585355ce51d394d68a498afe45774fd3bfa89d27abf285ee24e51ffd2495079c9ab21726a37f0b2a774999465f53549eeaafdb5c2516650f49758d2a9a945b6960044de75974282bb6206c509512532d793d87502a7a8428b34316ebe82567e85b7dddc9ec6ea203fee7741013ec92ca2a30be39546cd9118a32ad1e0b708ca87124561358cf033acab92a3b068e2aa71acce68989e9c8a4e43483f4aae3534b04d72d9cbcefe74646b01f549cafaa03d4245312e650c10d6dc5512cb1ae41d4f7e0c453d25c752f32560c6b596d852af6dfaae7a58089e8c6f6e38eb27fb53d8a93911e27aa4e7eac19363e36a8b1bc9ebc6ce84f0e87672f5f3d595e5f3d7efeeaeb1757df3eb8fcf6f1ebab67dfff6b4ec463519e9d3496fd436f4a4d35cb5846a9494aa1df5cbe3dfbf57b35c97b1a97cbfac383cb32492faf70f772b9fa019f3a00359d6f3586d839e5cc63e95992cc516e1e446992da368892f86e07d1d31cc5ecd95e3bbf6708256f74603ddbda105477db2070f50e1f756eb38e4dc489eed9ae7c14ab2d9f8a90ae4bdf54deb06e2e3000c5b9f1f84c12672c387f632bda2e54e1deedefd088d891ca416ab7eaaf06ce2627c63aa1246660bdad3bbf98ecb093abddcafb9951796be23e43a628b7d36aa2555f82932743ca90f3b1deebd10e93aad22ab481ee423bbceae932aac4aafa3b105838ef12045ec16070e0c4b91ffb60469c63ed67e034504182c3ea0ccdd527e11cdca31d73f5a45ed748f6749250ec341eaa523c43e2956813ab7a96d6a71ef26c81bb8a2c9e1557339c2cd5cfd8085c7194a1b1aa71112452379f05e368a7477c8874d61556f2135c225827b50fd49e523b081aa60635d887096fc29fa632432052598367d7ea16012437848b1a48b20e9fac1e9294bd42818722bbab420eee6c394415e9c36d9aa29c34d4a0e82a3eff8cf9fc7879efe2e2ed697f900f4ceed805564829d39aa89057abb729e734651de535d8905cb0a1365b6906eea60729f0486d9d60385ddad8942caad628a7baaa0a87e280882d38039aeebbc158b9b6e86aa106ae53175d42562d39c388259b229dbe27d80cb70e3d1e8a1de0121f8619a9f5d1fe433f7e900483cc8a26b4b6ffda3d1d38892c3da74679de2cc260cf7e9408738b9839d10adb0976287c62902aba99d706cf12991684b5c0f068a950e81015caef4aa8000b621abf43bb11dc52fa408f33a8d0834501c3bf2bf128520d3460a0817b0b2e093f0f438f60aa1fa03d39f5472763feb9556da14ad3d5c38c942174797bb65d4581724eb482f758d7146ec91a601f16350470b2527e13d8fdca753d1b29860b6963453267224cd4a47bb7d89e6e7086ce6096649295cdb690a087d6088710a920192b8c9f66f4afba8b0503512634f9a1d28fa71d305a6c50084a1c50c74e280433174ec30328cc6adbc23eee4a5736ff044ce50981aa4f408ce93d1c76533db841d60f3066ccce7e245542cb662aeb146c7554d1c841d9a2c6a9bf36201cf56755b4f32196a1a3c4407403412f1e224c42d8e513ebaa7bc797eb67247483d30167e615225a79ce5c9b6113d2b2ba8c0e9b8cd645d6adccab8be868225aa289e8eafa07323a988c8ebb8c8e2ea4e326a4a30969d5a32ea7e326a7e3514ec35bdd533b0c18bea4a7bad8931c7485479a8792f425ca4a8f4ea6f5cefc3f89a8aee07913d52ea9c32ea9c351529ba00e9ba08e47411d5d524793d4f128a9a38beab88beaf881a2ba9a376e4c089f8915c3efaaf15dd8fc066d85675db5ad0711b08b225570bb4ee1d1c90fddc070324be3133b4f25800a499ba19a20f8193d43c1972a7c88ddce34b0fb5453d83952cd311c17da8a63605122aa39d6cca0ab387041fae26cc415b6d108a586ac473bd58419fc22cadf7a402a6a01821795e445c9c6784b24ddc5c6b370fa9b2c87042f70f9c2098017ea8e257821f4740e55574aace27c1bca5a084195aa3fa007b081788aca41e5e982bd6fa456918425ac01dbbd92f977e4a09235bb5da9328ab15daa0a4018434a41610bc860157b80bc28aa52d6683e80a20489b6793ca0644e146c3d4214041ef34d2ee377328e5c6ab38a79323c5682af91ee4b446eb0954311634bc6299986bb9ab0626a466f3195d861663668a67d66165d9a6e89a9ecf4331e8c6509d95c007d972766a1739c300895732265b89758d92bd666ee88199b0a7bc92038c7fd8530f4a34c7d56854e85656e14af38c4ea8aeb54a3e4487a8a8820acaeddaa36baeaae6a4a78eaa8d46e81187cc8bde3c00f653470b88673fd6423dcb065da1795b62d23f05af1187031cde81ab75b540bcebf5457e85378323a2219b0f27425e000d063b7ae8d4af7083f2c4d0f33aa98d0430ee68fc3471de6a90169a7528e7028283950d1159c0fc56e22d028d8173a3e0a2763bdd1e95c3fab9fd53f1e9dce0ca7692d736151215095ce0b4b4d23d49a93de1f887e0cbb6a053efd0eaf7bd7ef16c1f5d0ef16d6e770ffdec505179563b50e7d047ed45a259585558e855a8b3ec22db9aa7c8f9ffced213786cb5ff4698fe7484e7d69b0736bd181347bb3706a4b1335722ac205ad4c7d5b2da92c4d256da8d59dd34d8fd01ee7d16bc65c6569100436277d5d0bb5cdc44bc34ef3fba4df10b8b22b8205157fd7c9e7f74c6bd303dbb44a472862e8fb4b535e6eb32e4594bbbbf9e6b9208e56970269d94957a540d57635e2179e3abd4e88afcc167aaebe1216379833c9c2b3223ea05f41b464e89a94dc4243c0a650c3a9a6a6b614d0baf5acf74bc635be236d8f3758c8a08d9aca4dbef66bfaeed7d3c2eeb07eaf223ea876a5035c877aced4c36f6c7a41309be8d1c9e06e0e3cbecd8816ced015e345d75c0982d0a3e84e6c5389560b488c604cc5d1afe796ca52595747f9484f00baaa8c27e1385139817889f266e8d497da085715f1c0866b4a6d5156ec58665c8786409432a54542e803f7d4754e5065a253290b2290a14d4eb49462315f7d6f4110482750970297b532ddbcc698f72e2edecf9b826113227bba55dbd4a9f16cd803a7619b9f09feb2ee8fd6556a2965058c5b1765c7e3753686d74d3f95d394f93f2c28d77044ac3c122dadb16a7a8f0a9e5c5b3c728e6580512b22c10381297db25c0b2f7770815e37133be47f7a5fc0f88f7ffcbcfde1445034c1ea668b556378ca70cbc826701021ab704411ddb8277fda02ff7883fb7f76e4e7d43adfc476cc6e611c1f29321c60e4091df0347a3e096d4e3fd86cf085f91d813080f3ef90f73c98cddd4cf815f23c180fb4d8335bb24b868980ffc23a235868fe9a68593d96e2939116334256dbc5fcda3eece1c39cab3dc3e631779f24d9c9d662201ccca46b9e6103171fc14a820711ffcd9eba93032c3cfdef2758ab8ab029b77faed5d9af55eb0db6889cae5580211d1807355f1578ef33bca6dbdacd6861d219b6542a318736d609546b27f96204cab66da994cad1a83e7e72a9a279b16bb4b5b5b38daf55f15f29c7d502ab0dbc89fd40e30f4cf8f3695baa785cab6abe10a48f350f09280f29cf114ea367b05475ea61a9cefccfa5fa5597cafd457cd7d9ad057ec6d1cded4596d596f73c50cbd02c27199ac53334cb498666fd800ccd7d793c42522c59d333347799f493199a6c39ac01a19d3d43933d4393dfcad064cfd0947733349b6768f60fccd0849b169fbca7ab22c23cf78b1bb26f1e7efe793e5a0abb9de08a475c82b7931dc1ae78ea89e219ae11c6cd8ac736c991ba6cdae744f7b0eb1e3e61c37715cfb4d8dca9da09bbda014ddf553c3a4cdb77bbee99a7ba67533c2e0dccabfe96e269c1b26e6fd8227fee8d6ff0595ca36b955da7ff93ae1f4cd72a3f43d7d6dbae7f7da36f6f3b358ac8a5fa29ad874bf5f193527d27ac8bf5b98b75b2f57a3f51fd89ea9fd7e439ed5ae15d79be53f51d91be9135be6528057a4b9e77c8f37e23515bbf294c7d4ad43acbae29ff49d40f226a9d3725069d12f557d760f72e2ede2e33f85535981bec3729b15f5783ddbbb878b453f3180bbf7afcd5b3c7871b2a0df8af16d1eea5a7d6a758505b724b34695c2e570f2ea5a632271f2b12fe725340bdf445974a262ffb076e4e4a75f4b2f0e0346b97dffc5c69c30757293c943ef83d550a37d71bd45a48de53d630f2e49b5f33c71f8b47bcef5f27e4fbab1478ab52e8390761c42b113cc602b23bfcf4c09a13af14b95a244704b97489a394242bd74001f71849802509feba6dd640cdc2b908c155fd99325379b4bff56732f27aae81e1f7cfa608c16d26baea6a5a49903da89f5d15db2a76c60d081d58fa0c83812d5083642a4826fd3f79811276644f25224d8103c9da548906825354efc01189b7b225a758ee21458498914b808371b4644cb6b8931296d8cf012c183147c4cdb2056cece4c0b10acc8a16518590b7dfd3f5a878ba2153802c6b4c3795253a53ec88a2af6c31654b8fd1c32d59bd485df5cbd411958c24dbe7bd8b8b877a0a9e817922fdc1897dbc7ab45ffdcc429561abdd53f5fc2e4b6043224ebec52c3d2e7827135d955f91f05b908d37b7cf37f926be3233fe4e58eb26beea1ec6d5a9985c6c10f4f2d314ae73aa002e9ccaca16e42d816a4431093e9eda6caca0ccbd344ad295dc2434361497e2165dc6c1912ccd35759daf92014c8e502d84fa083ac1cda2e86a35789450b78365a935b304c2c08b78c541d5680865d17c4d2de550229b8e0b08865ab2a34eca2c0e2c6a923536a8164b7554d3d57209df3dd85e23556b3a74290539855e7ba84b6b99ce88816e37a6b9d24ce0916527ca6e0e6d264bd9861ecdf556118b55535a4cc1daa4dd46c6817ff5c37db0f424da3e57b2fc1095254e187c1e72c8fb31c053ddb7a82e0e1196ace9fe3dd5ebdd6d1b4bdd44828bdf85dc31ab0703eb6f5982f3661a9ee636d48c7c9d5a61901c39c84e3492d808857c66ec938e9d3c525d2baca116105a27d702b09a8ae7aac769bb17c95c2e45b99941382dbadd635191b1a50f9415894158ad1ec93734ebf3d59faa6aee288b23a5aa0c4bcd2c5e37e0312d952f88de531ca9458461f2ba25ed547d0c59a47ad19046bb5ab688e5204e0804b68cfd15a5046aa5423fe8d8a0058ba5caaf88ed8f005eee961b4601d314cbcff7f423361980307641da2c923455b82131dfd20656378e0526a8399b24f1216fb906c5f4924a12fbcd692f1e2b922af41f1c3ce36b062be3d0c9588e020cf8026121a17b165c433225e40caa35500a4c4865a8f8249f2a92232d7f05f5299e7bc16b337bd3f2dd2c97a058e29eca126327b20c57af8229ab551b50e06a89139ecae2f93096ee5b603f4306e6807163f96deaa2bc8269aa41fbb0669450a01252af4b60140a9eb0f887c5c7c60835e76b512abfea057791758638591f308550b2b65dd3f11a8592fa7dbdf6e248ff27b37fad0751822e7d203c465612296f5f733d86d04a3e5ed7a6d7a8ad915a126dd782fb153c2162f17aff67c64fa1e44d32a3f40b994a39275eba28d79789b85ba9ca68134335ebceaeb3d2b50cd4ec75e4110e14a5f576bc6ed063282dbb7771d15ac5e3082e361b0642fe56cba92cb3a83cd7998ee3f53b81c39be37d22c2c2c72594822c71e24590f55949872d1637a49a44af916bc7b83b425519b08825632018a94fcefd3bf04ceb46d1c96cff2ca9ec5fe30f1e9a9a34faacfeecc0754de43582953a0687b40ccea9e19a4265c6f79be5a6a3a6b0fbf77d48482fa1869fd2ad55493e30922d48c7aa9cf1828a97e9af28252aa832432d4613bd325a5a2570c1df319422692c621922c533449c3a459cb81d8f545cb3fe14ae74ae0df3c6b7d9be514181899f2c3b352a663df17bdb0215fcca4625bc1606890ae145d802c9a47362e4b2948291aa98d291caf6b8ce7efbd9d2f09d8661dab5cdb86121505785598a64a403a18a57ffd16d5e765b5f88af0b8829f8c98919946bebf9a14b555046cba08b71a15c634f2928e2a689253c5dd89b38e7946d9c8bd899f33dc17e4f1e3fe51d5b1cc1ab09cb872179201f5765db514692be0d93e7c6313c4063702eea8f311c23797686a3fd27b187b81e69a816c136e4f5d9d57a78f2f60644ed9312c47c0bb530dc0a25b13d75f5647dbde03b7cb9e00bedf238eb4ebd5d2e1e391997cbd327cfbe798af8c70df6fcf64acb84aba10a3ff5e2d7edbca4f64cdefdb1279fabf9596036ab6de8ee2e31e310f6623ff96c7eaaddad4471df103db437abe9e163d83e7f7c7bc2dd26ac437e6b063ee1729cb0bce7e19a6ff3b0935ada473c5ce563863d3ee2e1f631c36eb7a2b63fdc6f456d1f76ff18828d8f1af6ada8ed0f8f5b51db873d3f8660f363863d6f456d7bb8e58fd8922d7f04c11a7dccb0e9238441a38fd8928d3f8660e56386cd1f210c5af905d47e27ce8f737c538b84695865a79518593400de8158de5b5682c8c7d4c362af3880c259e4304e285b573df5530f0fb8155b5e2dbec3eed380c3e2ad675fbc7cbc3e7bfdc3834bbd6d5e9c593c1d71ac5b6c125568a1a04ed5ab483d9062c1154e03e594e6abb0ac72c111dfa6dddcf9a1bf30f509af0998f876572bc4ca3767e856c180a7a29533557c130e2bc645858f9791ae8f842a87ce7202b3875bca0a002df8e39a8786dc19623f5ef012d40f468be09a726f1eb34185b847769ba172052073ad79cba10768842060531eb6a9c441aa31723567681d6eeb2349dff5e77e506e48b9ebdc1064ccb1f09b2a16fa42a15fb47a3f54c779a4adc46265129ce84ba16325b8bef1934ce17b7a70d947aa866f258d0cdaca6fb11a11f53c464983b76116553b3acced1e230bf63c32855a1d762e49f52745c39691e1314fb8513dc3329c246478c4b76ff782d56452dc9231aa0790e1b83d642b03ddd2362da4bce5436c09195b4019b167b7dc11e68e0873fb53e22e59099e92114cea59e6a45bef1e9e6e70cd8e4d3a995430d39f3ccb1359161eb0453c225a8cb7444fc8409a88951fe2bfc7b19987b25e2b89bd41d676f8451a006f548076a72b3cf851875bf79c00cf5b85973f6f7e69681389b4c5a5375c398bf6185819aa14b628790b0e74b2ff8afdaa67b180d8f0df013963eea4adbe2015de6e0ec763914532688f3e1e535dd98f466535f28be3030c1fb3de2feeeaa7688a6300d7c333139cb696db83300106886a2dfcf727a95b274a6026997bb782e308e118b270cceadab1c68d04804cd86641ae3465539e2733ac4eb96adc6d3439090121e0b87a30c1ffbde50c1182fa793f3a921f344b38fef6ceb247c6a42d07c3a321b491c9c2255bd064bac6c271d455a967403bf52d7b64383a84f87df1dc941a8f01b9874a43e48002896ebbb6ff3a6d7ffc6999d1e0caa933f1c143167cc2e4cd55fa3861737656e9276cde9c65aea76c1b3b1567731477faefd49db1f73d79fc3790968cd53d9089cf768dd9c7c6f46fc991beb1fd293318bb070bf3bccdeed5b7e3588f49a99bbc18b1bccdec5ecfec392c668594edf38810794d61a8b619e2baa6b2abc4a1e77868447e8f1c2abb99eb59137bcc53f581ac967e860043377c13440d2682052d8d5003a11c5680b2b55afe0c0255d103b3b1986c773016f2a273849450728f0014024878580d322b156e660a1603392d0815954812694b3cead898e201b67a2d96fbb3b3449d5a6035d4578b095bccb4a2e095535bb71f1e006a21035269ab6ffb025955ac8ed2726cd6e28ce7a62de23e865304e9a34304338fe031cf6196af8130b0c5e5d82c5d64434741d8ba02a7a8acbb755b215e4bd4a1752f79c53e89cdb813da915644042165d9c36908ceab3488823fe09c62c5ad5d976035394c41409369203886f5d40632badb447555d12701de7042caf748839b97a00bea9d2bc25cc5923b62b71097efb415822a14577628904d7db5f02b329e8201bb2add0cba4ed7ca8f25c52cf3dd1810a46c6fd85c92eabac5cf05a803d3b49ca34491e1c61a400e2020c009168084f02a961e263558a89a8ae7a317147ba30018cfad11201091bba52e4412032bb18497b6010b89e14d30b8863675c226b43a629c5be091c4bd910c6d1dc480ff44f726f605c996ff0641bf5657cb645f2cc04a81295310bb230b2b237fcd227f641b93900562c1dbb187e5c54bc1c5f58fe530d1c35eb13056ee270824d61e4e96fa97b1086a57591af497a7f1fada12407595c563d73dd800eb34232298dd76d1f032766c2b2be8b7d147ab399f911dd4c450a32c47171926c5405518675272e8b18a743dc490c11a6db5a0710f16096d61c62d59062ad2d45ce847cad9e112722b9871d6a001d9f54875f56d8fd4552c75c3e04e106b4501602a0f3b23942abaf77b81252ba267ff23d17e11b19be5c4b08b0120b08d606926dd4fff96f260d9082530a0a8c8ad6ed9c4a8a53a98e93282e1534f24c014307931680f334caaa76fc14c729f03721e0305377775f9105d66a4792a19a609b011871f0c802c52b6640731c9ad6b13c84a400c2c5a0f1b961e0be1ee542760e018d529d2bae5ec54186a0dcab979ce890954cbe6a951764b004695b29319b130ca2defc67d0d03b3cfe6d311cfb0edf8ae0abf6a9901c80e30540b53786be4702c5cb38236da2aef8d73233240516a2fa64e2d47d8b2e8807112b29925ae3625f8c47f097f948ab27fdd142e6500e3a2ec482a3ecb8ae81372216670109fba56cf10a66630dd8190a3412e465aa8b6e5b09f238aced5d23bcd6cedd8d11ca6eed16699bd6c0e18834082355fede069ba2c3b6acf495a9b95fe109945d16c15574ffba890600c241aa59c1ca96bfc69291b3a77c79768c09a01e761b31bba844a158c07c972dda5256f1920dc2c838242a98e610588126c2b1ed841c584790654a31f7d375f1cf084f09768893102a9667076d34090a6ed11867466202de9e4d6b6953aa4061044b687b77c2d8928a28a767631a445f0a831638bae11d873562be0408094d2772bc4322da160b7446dd722782147cb4dd13366736c7b689f0adc0d03026a2b2ae3abe14f217f2bb29da1c666736fc7cfed735cc754fb7959570780273cff49e2564ee6ca4005d31ac9b724769c4145c2be9f5e19e65526e6ec3079c72eef0cb30f7688e7f58923520a3c232e01d90d1f896650f21a69ab1e81cc401dca06eb2791bcb8c49c2f1b4cd2d8ab5eec3ef291762ba9b8be81de59f5a02a38ab00ed723d06299ba31512f491493a1841f8bb183a260cc1860c15604cb4069b8a517e7f24ea2d3d9d77eddbe2897492464853252f06da2ca07a5b70a7bb1fa65ad3b50386c5cf999674b969c3726b9fe69d8d554f993c879f325bb353a6dd618b829e05316bb735379f876915007fb86135cf8598a0218859a711d3eeb0c5a3cf83980d293e9d37d16bc52b65af8b399b3d54e187685312add610449019ce663bab603b13877b25835439f135d613f712fe7f262385cba74d2bbf6dee5fb781f2f90cb354023e4a36a768738886091f49b1a8e4b98cb463a4303c77605f83888c94771efde4b2a94836d9d4a60bfa22ec81abd9ce0312b16471dc1e2b8850731b18cf4089ed916fa990ee1cba11f85236ceed3c86d306a1b4a62363fe3cf853c6087554c39fb5e24ea0c2b2b97f917bde572a8e8a4f1dec6b4eab787bb0cc3bdf6632520db51ba6bc01881a9a2a908b01ab7a1e23ad79a2594c5b6345798c75e43297f730a4ef6ad8e3704bc13d4ee6e53d1313a1d4e253c0f8dddb85536e77cf4bb7a2019a96e731d05de97ca4b2107cc203b1392f2bea51cd07547bb8b3c3dc606225b87005ae7db3d33b8ed42db0956e9dc9cac8a87009b6b5794f39da40eeb173adc078c3592927500ad5a0a4c384eb03809400d11de731b182b208a6e926fe0080e606c5d7ad1d0bced806421aa695fca0a0d4dabe9cc7442413da5a11f06103e5c0c38a5e457054e1550ca574070297c06878733e9ba704d601aed5db0d585719ec28fd3893610e00abf66a81816e38b6c1ea027b7097b449d8e6413684a3cf64f802dd55ab753ce8ee3eaea1e0bf67c30d65e4405d5071392ccce4d9141641ad5ee68a6a0f2febc5bfce63f86a3208a257b26e5c6c6e750ee6a0bca5ed7bf703059e7cb54a634378630418f87c4443ed56512830c3c8e30edd50c2e1473e13e150e17037416ce7dcadc4b78433b2b4ea003d293b35eb09e6dff889b4e0bff3301925995ccd9b8976598816aad5dac399685e1e680ea707058f2c0f3bee2095e75c283911f5accd738ab6e4cae2b18733d93e6ced39ad97c006c8615d72d97bf09cc9488ba573f03c71b41707fa3b12f4d37b5f98cdfbc23cdcfbc2deb657ef9cc718c9bdd75cbcbd70a1ee632c3f55dd50ad599c4cef368dd424f893cfc5086833719026c9fb699982453282f7b53a132ba0a1fbabd49e8a9db2c7067f01ac002be53c17b5a0eb2e0186ec6a9156a40a20b14310517e176af113a959b1324d649a0dc311410b040beb9f892cab1dbd13304c4b891deef81e1e7b3e177aa297010b599e2f1c0b563f546e8444f94483b4766266026ea905b215f69ecf49b01658fed2d056c9b29aab53b3eb71e53c8659d81a78795fd1ee0950d54edcba93ce659cc69c96e56760421b969fc4b361cf82c41fb5a98be7916fdd1c2d13fa6cd853182825c2a9ae561f52bd118632e799a408189441114ad3f35cd8f25c8261c5b5f330b1ac20556dade24138299e20a077ce8294dc9be70201a1d98a42d146a8c0f03f139b8e07524fc5f2388b953219b696f5fd3e1779c403febc821295bd90a4fad9f44ca2c3dc37dbbf796123f7cdf66f7226631cf9ed310e3ab731f6b18d716e63ccdb18cfc57a33a7531335dbadc66903b43b1f4959fb7442f6eca954fb627b5edaa71fe3d8177b6c639cdb629f8957ac6571c8a9b26e5949e4e988c0873b97610e87706a3ecc7a8aa21ece269f42e969c05da79041732b0f3c9f14aa86b499daac4ef1b8f0c5eb20cfc431d6b86cf9a76c7ba8713db394c956ac5d5f8571c97bab77b811c2993026a3ab327a0a9e380fac6d7c897c1eabcd65cf36aeae1e256fab7d2ef69a20c1a85507677564f6b2378738939dc365beb57358e8cc764e6146cf3b83199fc1fadc3a887da019e84c768f77926c76e8a9ae20556272a0f358efb2ed9db6ed9db2ad773b97bd23841e8743c93880a0c0e4f03b3cc299d81a95045d430b6a3107d61a30c7bade259e89bb0dc899d62e72dd6036d80120249ec9fe06ae282a860c34deaa3336bcf2e3c6b90619f9ab363afb3918cabf67c3b51d1ff4d86dad58b9b8d552d20d60f59f6050d10635a30fea97ca923b19145a2ed3d87aaaf0eeaa27ef91c8b06b643f15b06774006cdbbd3e8c8c0442f700de30628095e2adcc67f01613860bef85acb1591dde49dd6f75e81aab09ae0efd72f47a5b9f976a45ecd1c7147d4c8655660d7a82a769a254fa972abb3ba1ac4335ef50a6a8cc169423ce4fd186504abf369e20c1fb127caaf138c2f4de973092437e58eaf32759b57e6d44c147144f47f48b2c923b715e5372f7753dbaaf737297472bf336a6f19d0c6c1e075653df863693bc3db44fae31a54f43ad460ebad9c23d0db472e0a9e735ebfa015c9d1e0093c364187e825afa950db8c3212bc0a7c31056cec498e60ecca05150a26e260b0d203d601e2d967558ae801570c0c35303104ac49070806a12d10f4225bba5af8b7d59bc7adece102648a878d57311c77204d636b573f1c7f0a870c4e91c7b6a685c81d311da5e9466384c30a7546d6d39fa8131db33890d9509379d65faa462c84ad626a37afb8dd5baf264acef006044303c847a3e7b1098e682be3bd635039c350dad021050a897aa08794d6bbd32ad668a93ac15e042649e496b948b6d7c26f363a9413a5b7f1e548758b5116afc0d95aa58ce79031a1059b4b4443a9f446361ef2a50572207712b193d5328941cf996c7b4bb465eb56dcdb9be01c448368812ee91d190c83e0fb122869ee810d9a17fca9f89fb2132e4b7a08601686368c883cd72bc7a95038a1decc320222cd659f52933621956d48664198afb7c3d1b1f254e06f763fe74b1f632f0610af2a23aba1f422ad78af4780a83cd2c3ea2788a7749aeb7757cdef90a14ccaacb9b421b90a9b5130a15a07b86f903542dfbf8b2ccdba75cfe5a88b234fa3b88b2a59c0997df01bef0cb17871f3e19adb7761af72e2e2823a121d3e257bd2d13a86683d35c28034f043d312ece8349fe41c091e139b061663f1d6cf7d41ae7db6374dce938598d170fdbd21e8498fb9693db874afecf049b268bdc8e4407116b06d7dec4d1121f8a1a466fe254e910bb956e4e0376dbaf0e6c8d3ee50020c7a72ca91c28a3472819ae2e7963c4fde24d19c0a73a10f059dfb4d40faab8ca9bc8edc0b17e29949ff6240742ca523f14b54fdfcc432ca1bf613a48e86f0aebdb91d498d3fc73ab1f27acee8cb027c2aa3564d6e79e68697d0621ef0916a4eefd783e3907209fa48c96da215b3dbe41fd4eaf139c9645864e75584fc322d48f37b7f219fc1ae1954eb4ed360fa7d91d955df54cf65ae71284da1b16afb468def00f107b1bc470f14e9a05487ce54b9972768cdda58532c7a29fd6baaf0b8aa48be0baebb55aa1274af86cc6de5109555b92a5f71ea4b17d8ef21126c3dd32f3064425c3b3a7fa064475ca0d9f768cb5fb18ab971bd99db31aa3f04647cff0ea1b688ecc33c9946b3d6fd6a19f20ecce598d71ba7015d9b27c269dd918770520a3bcad00ce658cad79b6944c5febdecb36c63351520d27ed5a86376f46adcdb0061dfe797687c25a4b12a05dcad2d07db535514b8b3b7aff64bfea797ea442fa3546cf1dd8fc32132d5c9167d36baa4bc93d35243adcda56bc73674db5d6493555745acea102551ba8c1db95da3772883c1162fd38e3e5d7a077c925f4aa868a08fa3ce3ba010bfe3c39a4cc9a4ae8d4535f8a489aa17349732979831aa7331c75958291ce3416c1a1a197bc94397527524b63399dd799786b303c13d218a3a76acd9c5c99f473f1d880a43ed2e266a2de9377c7791b8eb833d0bd53d35ba572683274bf09a51e5a563ea81d59d9b35de3e34f366203d6edc90d8ac692dcec21ae69435dace3b661bdbb96ca3d238851c41b44b177e411ef745357832591501df4a5eb09dec1cc9bf592d960d0258d55104740bf189cfe11e2f07654dd609aa67e5faceb3d9c027543d91ec0f4afabe5f3a089087e3902046c1e0129cc71c480db44fb243298ff12591cb71cdda0f30a40460332b756022d7680cb3bc8395afd00b45c9f6e28bf24c3e923f45e61c03b02cccf7a41a866a5bddfd00020bbe5c05147d03a926c9f40d8ee1d803468e57824f7e9f5a393eb33e92bd83a107e3aa5be16efd281eefcb6d8e8eab01aa27e31c453fcb1a3210d79d3062b7a23e0ee187e4c067b34f00c72022cc8e4ada32c892b4c5be5553656dc1a7390752699ab35a19c480b10f4f969684755d1838b3278879056707b64a2bb266919c86a6bddb028fadeb21adbe0fd9cfa8bd9d428facb3875ed16486ca1603bceedf34dfe2582c15a767cac6c583b7a250dec7aab67403b935f9c35f96bad240acda9e67fa8cde13843c83ff12c1a245b9ec7e1b1cea9c42a9ccaea08a925508d53478a8fa7d9dbba1d7bf301bfdc6bfd4bd85abd58f266719a12686af8e6bc35b3f1cccc60189f0350a0cd1b29f6d4228341aba3117bf00132050143246a9550f65663fa34798f9824d1760b3ac578c3926aa89c962d4ad6aa4ed6d8ac4991a741aa0868d74a837fe9aa502ad2da5deb828cc98a35f16a601e03bc6e4e53f2c223eb8d4181adc1dfde2b51f6f67f74eccd6929b5d646c65b57146fe4c9d6bac256ca9a3756f76d23e5c6bfde1d776458b7ad95bdb79f60cd66b014b44f90598abcf820c57b89595e1a3081adf1337c23eb7e635a267144e69bf79313743f1c7b53c86cbd2fb79691d5da9978d7c7e648b786796179f8e3d81e7906efbdb27dae8695096bcbb9179f871cb2372b645fbae26d2eebb684de9595d7ad83a2153f5a3729ef9cd23d811b80165e9cdf1d216a2f39be3d604c4e77b95a607151a5243cf62aa0d32a54ef6be9ad3e9b3711457f9fbd5da8352429616f0abaf5a6f5566779af6f3d5663b6635bd0719d36f1f875714d61ddd268df41c506e66dba3f4191436faa516a9d6f623b9614985960bdad8ead84b70c7ad9eeed9d3fb18bfd8e37850b68261c9bf7f6dcf2ec0d1069eb232c9bb8d93a78e2ab16790cd3be76d2c1d6fbe93a4672f14e9d0329df0cbdb20d7bf830e72ed31c376c2b493e6645f1d66dc7811bdbd60382b11f0dca736f5b0a6583ffde5abce7d42bddf919b04e6fec3a5677d67a462ded22bb6e26cb890928de29feedbe425bd7540a5b6110a2be9f804191bbd4b8fd9341ffc11914ad4bb8fdefc6a0adab21589b9c32e88ec9c14756f446cefd846167dcdaaff3de7119b6259813ac72e44f7613a26dfce9a6c58617ff7efef4b6bdd5fb1cf6ad597a89c716c8e5c8a2d85f636b078d63eed6ebdaa01737fe8c4706b54e679eb7e03ddd6d69c917f8ccf9b3751cb100abe24470068d1b83fa6291534ce2c6a1de3b8ebca1e406595eb63671e4d623baaa7f0a1eadb35897f07ff2e83f328fd659bdf1fbdf8747b7d8c1372f9e7ff2ac9d6ca5ca7569a3ee57f0a84c5ada440fde99d35c3ac393d34b9233cc3e6ac3e6d196366768232f9d2642be92c6b9e41fb5e9d8146dcb3f6a1e0ed1cb31d299e4dfb74c69475590b437edcb5b9a6de77a2e9d45a820cb6ff48349b969e0ab5b535674b96d9602086156ed70b9ddb31ebbde71babaa0226f138a46f887ec8dfc77118b9a6986efb2b85bac1cadc8fd349f03a32131ea471c107643dc44f771f34d58958a8b1b6b4047915cba0fb7d7c6e6ed64c827eb90c230cdc44fdfc55b715b7b6eca26bd2558f7e6638f611f9e798e697321d306a2fbe47078f6f2d593e5f5d5e3e7afbe7e71f5ed83cb6f1fbfbe7af6fdbfe6443c16d50493c6b27fe066974475d6a5674a3c6bfd8d410e9446a91be44099ac3c75f5fd834b92542e97ab1ffceaf6af959a2a2fa3d424329abf5366d717d93be9a7de09d6b5ba62eb4443d60f1840b891d8030a540d0e7bf526c94004888c8ef0de58b9c15f54a2d729c69e642dae359b1f80a6a10fd9329a73a87ae35a6baf34d0329ddc274bde4ca0a4f950d0e6cbc03c45e092950ce8e67ddc3fee92e3d694cc328c96a5d06f2e6fded319ff7b47f8a4c6e56eb12a6e5c4499b684323f6eb6b173ca99c7d2b32499a37ceae99626a96dd32d896f9ceeff495bf3a7dfd9e74d2fd5bb35e5c1bcc05f33fbd8e64a757b2f8f7daed0bcfada9ee8e3f8a9a7398a20dda2d7ceefe3a65f39bd02332df98699f24e6196139484f7abeebf07dfef9dc1ac4b425e058e1b2fe06f56eb59d340dc1a870d3b5520720d1dee3045354c6f6143a8c244477d159fe86e6051c01a869dcf2c9e652075441657153d154d38fa4b446b018423071427e99f6af036fbfaa33322a58d537b58e60852f5f7246788e61ef609fd7866842e8805551c71a057a2d16ea8c5038468af8df012758bb80a7aeaa16f480466664455e37e0eb2941294539fd97c49d5a934b68c826dc6c571ba39f49f9f7247f8b8e013483b30d7aada06e69ca473db4dffbb58329fbc992d370a629d7e8ac18e08e804c01156d275a40db4881e9f48c69066ed63676c331554e8abac18865252079a94c45e6e7b76baf3c6c205ee27e6d5c00e58c76b678b1a0b4e256b6c26062321ae0a680b30151a0c024c240dab6214e59640d39b683b52c40cac278c198a87ac951b7a18697a1b4bf17695e741131e2d545d48ec86500a02c1123a08647a28275a5ba0623804141865e0c3b018dacaa67c4690b6617ef46cfa66acd3fba0b3f7069916073993c9d7a9c7605d0d5df8a9fb16f950debd19701e629461eb71db213523418ff2ea6db006ba20a814180005a9ab959cce882c34601000234459a27a16092047a0989b45e0d7e1476d36b8b1a2f4457fd673e9cc4d288468a2ec3290e884aec5608e16c1f88cc852b56433ec37efce4cca326d9d6ec43070473cb3cc90224784a9a2bb11df2f40ae1db7ed7773f75b053de7eb5ca12eb29a4c338c58b275269fdefadd1acee83dd54885ad77ed2db11aef1e274300a932d240ca2d6f96e6b0a143b4b7d540627a30c4100b26b67399c3696d51f449c46d12f13889e8b388368b787d163f75f4c16127fa296bffb0bb85529b8d97ce89a5743f73a90cad1f7fe63abe783b6c9dbc7690c8d2736a94e7273c74d5526e98ea0d87ae4fbe63a543c490dab2bd6f51f83cc32861587ae93c97b1963130d6023bc3071b6db0f1dc062b452d611e23c93a1d698d2d760600bb6a59afd9daecaaf89b2ad7550f009a6d35a82d32a02dea11757534d1546a4011d728d38136abea45fd23027162901100138825072a517ff2a1d8cd81ee6930eb747c144ec67a1ec4f39664aadb570377c271a1a075910e5e4f6c75acc088f28e466a910163c7e836cec5a4862c5093daa0d260536f1dcd6b804d5d5637a9813905933a1c4d6ab7a8ed242501a041d37253cca48e629cb519d4d12dea0840b6ae921f09edb74c1fbc738274ddc666516f0675dc0cea78625047b3a8e36e51c7a3451d37933aee26753c9ad4d16d6a808ca1f4852bcea172efe296059e774d85960568aa03ab0fbb3ab85d1d8e76b59bd56137abc36656bb551dddaa8e9b551dddac0e6656c753b33aba5d1d37bb3aee767574c33a6e86753c33c3ba629dcdb076bb3aec767538dad5665687cdac8e47b33aba5d1dcdae8e47bb3aba611d77c33a9e99615d07a9599d18c09740679bc110fe0009ba6e6675c4c993e0bf81cba5de7601efda11c51315164de5a0ad0cf09675f8aa0d1b7ca67c885dd7a4af641d943994cdd01634036b2a4445edd5e635202a2981604706510de78a15c4946a59f17af4aa2624ac5f33d2cacb3aad72429455e0e865bc25523b44ecb7beda4117720a421a65d9ca2bc22b0dab461886488b534e29b14a6a883d07642b17b87ff45fd6d56120d6ac32aba77630f8c1b6a279a92a0965bdaa4a8d62c5554f7230ec42320f1e63afa2a52ccecf4a3e396220a7160bdc29a467f0ae0683d94a4569826aa86e30b896fae390df38e44cab11840c2dde68d1009ec51c5e9e5884d0b6d51aea0a7483dcedaa86b19d1859fb34941d07a01cd502196bb4a2268edd9a096f7e5352a525488c19c0aee408da6e1521c0c935842b31d83c8c5e2c433c4eb811947322e5357283579363c5e91bf487233383e0c8c65a235be05e6d28207d82dcd1c95d55bb9a3185f6c2142547c2be026175ed504061852fdd0c38e070714df521771da54883f4a9aa902b62edc75df021d180f7644ca431a8dff1fea4a66295465fdb8c1d1aa8b548d4b03d8aae8e5e3f6c9550be9f6a186c7d4e0bae44661a0ff5aaa9a40af6c5c1135edcae57f72e2e1e72613c300312e2fdbb68fda73f701ec2aae6a17c5d01551a8e1553239ac16e1d6f507a404813e99055aa802b36510bd82e64358c96865256490d6125ec1caa5bbd2e37d7cfd90cf719bb4a811237795094d5bdf0a5ab5103390fcba8fa53aada99f5191d4c419f0e4ae56089bef045a9d4817d1587c1cfb1d7f5ba1550f53146e950c1f449f79801fac275a546054ca9aa2ac7ecb21c81cb4c3a3666734995359b5304855bddac320adb340575619b3dc38e871c40a1680df43bf25d2a720e210a2c49d18b29a3e52f4ae203321aa1fd1a248ad80f4e7bf13067a2a0b08fd8e0bf3a5427421e1cd9e48e037516544a75f7ea36f8e05057a72303bd903c09d1e44577ae90a18d5402b24b52b68a6db6cebfcd4c0db8eecc110390b711dd64357432fc5eb776732a46200c5d375514fa4928f8b3174eead1ce4a62b0fc367beb2baed354bbe661cde8918cddadd72570635cef2cfe1182280f99777d726e40d7550e6bae82dc7d0c4f166dddbdcf66c065aa08d301fb787777f7b5f17e7a23b20346bdf7adb80c7e02353b86d51e9fc730b9d13fc2302bcabf7b56a31c6609b0f619e272335755229e891ba214b5546cb8711f6fdcc71baf8df777f7bff9fdbd7308602349a10669c3dcc3e7312680a14a173b5bfdeefeab37dffcfedeff1f0000ffff5fe69651a1010100", - "8b0e984a5d392e463a901f21b248a7c4": "1f8b08000000000000ff7452cb6edc300cbceb2b089dd6856b033d1ac821011a1468da5ef203b24ddb42255195a83c50ecbf17921f9b069bbdac389a1992637935fc5633821a58938b4268eb29309c04809c352fa96f06b2ed4c7d9a2665a8cd8ad03e7d911f32f6ff806ec4204525c4930a10e0d38a345fddac1d1650c5881cefe8056ea038373ff1f92495f7dd7a256b904dd3fad41b3dc84a8829b901b4d37caae0af000870039b6f966ec75fbeec9309f9d7b6f0edf1c70318f54a8981097a8414718489022863d6eb807f12468edd26cbe0439174a5ce73193da8ecdd7893e2d22c6c8dacc5a54fde6520c74a3bede6e24d13f082c068bd518c87fde30edcd14bf77efd83bd2570a9ab7ad3dfeee195e98e28df4e733b8e475f58d0780c11160c78acb862dd9ee156efc115939c9123f7b927e2c841f98cd8c32eb981ac45c7654ba31dc6b7ea1e0d3d8372236c6febfaabd9dcda6c1de5bbf63636f714ec777c5d3fc405aaaf33ef29ace4ffa09d7cce877325cee25f000000ffff1baf99a500030000", - "8ccb2b48dd100514ebacd9654f7e2fce": "1f8b08000000000000ff7492c18edb201086cfcc534c39d99585db957ab19443ab6ebb87dd4d14a7eab1621deca0624018278da2bc7b35d8de5372b060f0c7fcffcce065f357760a7ba98d0a0380eebd0b113360dcb88e0330dee97818df44e3fab2736f63db4ae3ca650dcaee55e0f730658fe7bb3f493c94c787bbc0b2923b0e39c051061cfae8935f5127ed7418f0e3e4443cda4e5b05d08eb6416d75cc72bc00b0b2c4cd688cb61d36ceb6bac336b81ee341a1b247012cd55dad283a8b9f2a66bc7ed96dfe6cd6db1d2f907ffef4f085e7c00e6eb8853dadeb8419d748430cb1e3a0c20df657fdb82596102f87e1e4c2fe96f2d7bafebdde7e9f516054a80ae973011835a24807aba91fafea4417a7b66464a240aaaa403252e0a245b9749b6e7e58a1d5062fc098719df821a334990a2107760560947aeeebab3a65f376eda37676b80022e2d3eee5f9599edd182be4266dc421f68617c0d84ef5dec8a8866fee5f8569de291197de57f39babe20251a14294eff134f7bc987494f1442f7ee6f8722d805d73b8c2ff000000ffff685bab16cb020000", - "9d1b79c560fde234414ecf0149a1df01": "1f8b08000000000000ffa454516fda30107ee757dc2c2181b4e0419f5a39912a81c6c3da5515ef93832f89d5c446f6415bd1eeb74f26c012085da53dc5f6ddf7dd77be2f16054a852ee90108a537b02ca5f7315b5a43521b742c44da31679ff7a7a79832aa543486b0f05534d92d5e7c3481d2e6f6880110120a8759cc443f06672d3d482a0643e8272c11bacac1bb6547507a8fe4b9ae648e9e07ce91dfe40c6449316389e0f2288b2bbdf940e3f541e3f541e3f81b90a6127d5366314e82081ab0672c97b6c25fb943246d7216f4085e8c9bd993bf9b468f05d1cadf709e6b2ad6e968692b9edb749d65b2b47cff0d6d1f246632854c46753a03e9b48c0aad149a98915b63685427f019dac68d843b690a14c5e45050d9e5ba424392b435ec620fa1d6a1c0485bded61c24a7d63e5d163c6d96b9a8ac31b9e372bfe8097e306bafcb8f5d5e9c74f8d7afd3dda82f98b86dfcfaaeae922966daa08247bb26f48217571f296e73924c4b8c1cfa95355e6f1a857791561ad4c99e9c5ea16a8aa0d07c6b3ae480f0852259eadcc4acc48c5ae3db818e8da1217481f26eb698ff9c0a4ec55972f270bb987747ee6fef66dd91f9edfdf4c7ecf1342838b9e68c4ff40b4aad7a4d7a4d443f86cc3a18b82168036e77d5b085fe694dd73e0847eabccf939c9adf8dee900aab4e49770a55076f378dce6070a4fa1203fb3e5b30787b03370acf15fc8e816dd910b667680087b476669f79167f072c3d7e042cb5795ad8418dff0adb708f377bbaf76107e1ffb55a13dfcb0a3f4f2496566152a3e7d2a812dd9e40f03a74066cdb2594ae95371d543be6b80d7f4af75371f8347ec2cc5a620908bf92268107fb1c4c02e9ebbf1eb9e636bc5a82d70cfb127f020000ffff0dbe9ce240070000", - "9f2daa325aa64cda5f09da97a65b852d": "1f8b08000000000000ff548fcb6dc3301044ef530a01ef36910e5c80409313890ec555b8348d741f08f900bebdc300efcd64cbd6152168906aeb0ff8672d8390921915b7d214633f14cd3297ddf2a3d215e2d1fd9262daa8089723a68f2eabe178dc6a491add39ced9f464990a597b791fec0a619ba749deaecb755827821c2523d9648f2bff41721c11e2b3419235b7ca652b3eac7fbde803e4be3dff5aeedb530282f819b23320171f8a958d3d0ee6b3e9f737be030000ffffcfa015bc01010000", - "a0904bad0a4150c57d6f1e6c5d6aa503": "1f8b08000000000000ff010000ffff0000000000000000", - "a4be76308cb5f0ce6524479f82e9df1a": "1f8b08000000000000ff5c514d6edc3a0cdeeb14df5b3901fcdc7d16b9442f60ce88b2d89144839262f8f6853c13b4e8ca04cdef5751fe834c19bf7a6d886c8ca6e052fb982235acb71e0225c5ad4bf22b225510d6e54796cda88996ba42025a64d0be27b95fcbeb6ed77d71ae97a0d67aa1c6e99cffa835cebb1ad939a32aa822f77b1c5fc1a13d7924fdbaec64e68653fb0c2a1ecd0638f30c8131a574becedf64fa624426f3d8543d5a94b2d5f77118e94975636c2a655bf0f1e69c84413b19a3324bd9901952c6cefece328f700555335f94886a26b711e67bc2613a7ed0be73610fdf6d1cfe53de0cb5c10ea3026938a4c5abb8f57fbf22241abede9d33dec87ce25a67d478851ba8bb6606dd4d6b1d4e139d43836edadb8cc09c108cf92ac973e2c6c8bc40da54a18fe512d43235c46e6dc1c129cd6399658b0dcf2ed02bbf1c85a7a3d19ebf608fa2c7e29c4c2921f1287400be335446a0acbd62276bc3d8a1e6eb87739f9ff8a9485ab6d703462a8f8aa0064ae9520b52a3fb1d0000ffffd31e584a8b020000", - "a9b609ba9b7a306c42499485e3c01bab": "1f8b08000000000000ffacce410a02310c40d17d4f11ba3707f00e82201ea034510aa529498a8c43efeec6c185ab8139c0ffbc13143a435c5794ee861721ae782bed396ad2f266bc3762b52cca7362564ece84367266b318005c53b39abc48fbfb5c553aeb9cf04a06dfe6316a5d601bc5b00f303a1d03d8467b01c4e62acb1184df2a864f000000ffff4c95c89e87010000", - "aaa62e7739ae79a7991ad085bfba82da": "1f8b08000000000000ff6c53b98edb3014ecfd1584eae5b32eef556d912645bad40628e9c9a697e26348ca0782f5b70794684bcaba1366067388e4df156389161d26ef2ca9fab6158a92a7001ed13a493ae019a4908e6827e40049dde0190e6e4495ac51bbc1e3d7cfdf23e66a2b8d77c93b0b198c250d1e83e0849511f527e3fc247cbd1fc42c644bd52c78c338379676169d4b568c7d0db6160d39e9c95e827827fdbeafa0a66ebda3587fbd98d1a041dda0ae25ceba5444de792b4c30296113e731961832066d58f6ce926d06d9336437eea325ebc5091d75b86e49dfbe796b7118bfdd40964f5e873f3d8e3d0bd84c3623ccfb31e39a410ef934b0c1e38f879d3f2a51a15ad74a0e512ff00ae5bd59e4c86224dfa61a9134161d7a8efa78976c92a7d5a811bd2763b19567b403fd062ff07c3f9c60c0158926b2af904dfeb57333eebad88a67430ee7740a2f43ee40b7522dc8e7fb4d632cd991d9a33dcccdb729a493b921e797e1db626ee0c4b2d92ba490df497f596667904171637b3bdf7b2de77b3535c883f78d2a864a91341d97da79a1148f57991bd5efc66753423a8df7681dda07aa6b0ec5b4b2935af23013cfde8adacf84db747ece37a35aa1d09c2a470a3df27adfeb4f17e5e5ecd8c85c1e856f209bed898238b5cca75e539c8cbfbe80ec5b19258f6831fccaff077e937642cb169d5f0ac37b0a8f63f5b5fa170000ffff7d5869daad040000", - "adbdf21aecb8483652c3ca79c70c21e0": "1f8b08000000000000ff7455516fe3360c7eb67f05e1a72448edf7003da0b8eb5d07646971ceba01c3d02a161d0b278b9a24c71714f9ef03653b97146b5e224be4c78fe427ca8aea87d823882a28323e4d556bc90598a549b657a1e97679456db1a75d57d7425331fe671f9da3391cb334a9c955e8bd86ffb76afb9bc9224b132b9c6835edf7e83eb6bf307a17bc338eb4465978ac3a87593a4fd3a280fbcd33280f9d470981a0416dc1f72a540d780c4199bd879de05332d037e8104283ec29acd5aa125c1146d8a1327b709dc9e10bd6a2d38177338907d4645b3421cbd3837031e22d7005f26f1866d9b7c797fbcd73b6bcb69d475b612d2cc6f4f23b6b23e53b6b197a2023b406475d400fc2486895941a7be1106a7230bab2976fa8d3127608126b6550e6b06d9467a4d020187407840a4d400754c3913af72ecb3c2d0adefa4e1dd76579116c097b479df54bc050e5790e4c4062a5854309dbc727b8f9045f1effdc30c610b745613ca818098494202ec907825761ed2b2c441dd02d46302eb16088186e09a111615843afb486cde3161a71c0e1c0607f81c9f92278d1c6ee71daae434ed5a1a7ce5513e198ab07e1a147ada7a47f0b20b4a79176849fcaee10aa06ab1f284199584c72121daf8e578588c9bf965ce9af4aa37f6516023edf6d3f3fdcdcadd703e2123c810a53c384eec591e5c5ce568b0a2568e1c3142bfa5c515f327715868aa0f19d1bad3c439cbb120b7bb6337840c7eaa804df923cad3b53b1d466f32b05c25b9aa83a0af3f6168cd2bc91c4cf496df906fbd9b47eb491131b25f7e6b082e977bf795ea6c3b244ef15998d687105d9cbdb5b4e36788e96f35ecec53a9d5efc60962dd32439cdd33449f83274815a1114d33e8243a91c5681f55396eb8159fe87c7591c2465b99ecd27cf35edc1e1bf1dfa00716c6040e761562b1d17acfce33cbfc0b8182ef9d3e4b18edf1194edbedd6f6759912de1815a7c10466a3e4c4e699a380c9d338c9b9ee2459e380d1d988eafae01eb6c3c1d33130694a9a88dd366a01ff55c732b950743011eb6dba73287ac09c1ae8a027f8ad66ae43198c1eda761dfbf3bb8b899bfe24b420f8b85a1b058001ab1d3c875cde370e11171351f604b20299266b01ec161456d8b4642e7e3dd05ebe8e771051383f3f0ce15bf0a85a4ca17d1662c10b4e41094a9c9b531ca85ef87c3bd18d4fbabe76769fe7eceed2b5bbc9dbb323d341716b301ec52c265b9fe3e366235a998ef41661dc92ebe8e519e65b97ee2241e5048747e05adb07ffbc0f3eb9fe1ef2dfbebe62bb95e3889f2e6c951a06c3576263b2d5356f829fd2f0000fffff938fe4679070000", - "b944ada0d7dfee32b86a3c351586ba93": "1f8b08000000000000ff010000ffff0000000000000000", - "bf27d2dc0c63524e934bff393b6a81bf": "1f8b08000000000000ffb4525fabd330147fcfa738373048e09282e0cbb4f7c93b15748203c12749dbb4c6a5392149ebc6e87797a415953995827de99ffcceefdfa993f551760a2421ba77e8233002400d7634dd43f4da76213f773a7e1e2a51635f74580d6d2b0d16ad5175bc7decd015e3d33f9ccbfae88bf149423cdf94a05b60e862108f76d41e6daf6c84bb1268a34665d0a577cae1029b879b9cca8ee7990fa684e384b483ad415b1d1987cb2a29dd82f21eb625247af17608f1a022a32fdf7d7adc7fa0f74013e715dfe681f26779f2ae04ab4d564f97c14eec64948629ef3901987e724c001a8fee858cb292417dec0de3e96385a7e4209726f6ea2ba34be6addca674c98628289ffd567812af646054dbbc258d36882f012de58b8d70ff3d54c2eeb46d0e79dfbf1bc9034b0b7fcb32a701c8d4cb2f94fcbe57b2519e851993984ac83ae20dcae6f50f4de657e84d645a367d555e1e5dd95eb31089736ffea1b95fe1ffab35872e77b6f3d8af2eeb5b000000ffffd35ecdf2fc030000", - "c21d2243a9690d4f725d253a1eaae057": "1f8b08000000000000ff2a484cce4e4c4f55484c2ec9cccf2be602040000ffffe129fcc910000000", - "c5e5aa3411561d2c0c102809e446e220": "1f8b08000000000000ffa4935b4cd3671887ff26de6d59d8922d9b2eb33aa6558aadd406e3d45a40c64108300373ba1a8452a0500e838156401ca70844c7383928c7164a2dd0ca414e15778893a51048c620dbc230195bb22cc8b8a63c0b2064f77b9237bf2f5fbee77baf7e82b04bd82578786ca44848dc2d086f0882201604c143100491b075bfc96e4178eda5add98617acadb937f3f9f3659a4d7da87515f845e57136328f8bdadb7cf9958da53ffedc79bbbebebeade2766f9dedfde3f886e4f2e6891cde3e654074c680e8d475f61ccfe6755926126526f75a1cb0beb6e96fccb65b5963c1439c88e7f9124ec616732cbe0ec9d53abce38d48a38bf009c9c033a89457c449a4196a5ffcb1b5bfbbcfc9ab122d074f5fc753994de0d57c62efd850dfed475d35486c652767626f7128bc0cb1d2c0cbe238caab4c9beef2df7fa1d21bf1d2b4228b337230b21275452fe9ed8f894a2f223aa7820cf3d7846519d92bcfe4685809b24bb5482e55323bf70b2d3d4ec4da0e14993dc8756df8e5b4139e5e8ad7c9300e78fb73c05b85541941f8a795f86aeea248ef24a0681c454e3f85f71cc4df6cc24b67c3476f45a16be1d4875af61c3cc33b9200ce4705e11f1acc5b87fcd92f0d40f5710e87833fc7d3ff069ee70af8405d4a68463d47d3ecc8d36c48350dec93a808bb10c4a0ed0263c3597cebd4d1d61081af4ac561df18fc937bf152d72055d713a83111906e449a6a439e66c53bae91d331494c4d14b3f49b93d68e62ec0faa595eeaa3c79ec989c81b84660fe095d080546f2144dfcdfb294dc852adc8f55d48932d4414753038d2c4946b9edfe7ef303f6361c6354daba39ae8422731d726507e3688a2e009970d03f8c455732cb50b9f940e8e6adbf0cbed22bfc5ccf0680521091a92f232187df405ba9a2e0c75e32494b8f8e4d614970b2729ab1b22bfda8a58d3caf1e4667c7466e4574a286fba4f424115fb4e46f3eed98b14d69ac82a6f446d3061ec71d1f77896fc2a3b13ae196e37f6225237234bb17248634671a58ce8f85444de4a8e28cef19e4cc511df603e4acce2669505ebc8240ee7534cf7fb8175565756d116d713985c4a446e2389e5163a1f0c11a54e65efe1b3ec97faa1bf5648f7c8180ee7389d030fa96e32b3b2f2cf4e7fa6e77e64e1d90293ae27d807da714d7fc7af8b0b34771ae91f3633fbf337fc30fd90c1d12e0686fa585d5dddf4fedba1ed362e3e5be4d1b883a1e1562626cc3cfddec4d8580b63ce1ee6e67ec2ed76efb81b08ff937f030000ffff6ddbe2317e040000", - "c7c4ea3097c70c12789fa4422ab742fa": "1f8b08000000000000ff7c51cf6bc23014bee7af789481a7b678edd841711bc270e2d46b784d5f63306d6292ba8d92ff7dd4ead876d82990efc7fbdef734b6b243490548c39834050348219966d369f6913046ed79fc7a7ee58fabfd43201f18eb7b5035d009326383cf16f3eda72548acf1413af209a431324feeac04f9517fc34e9af57d0ad45610236325d5c611f7c2291b8a0bf4bf738ca39d3f6948054c84230c0415062cd113f4fda89c599badb0a1ec49698a910fc1ef2790eebe93fccc315836c74a39482ddc6d37b3fdf28dcf77cb97055f2c37b9ed4aad448ede53f0434d5c35d6b8c02d8643f16be61ac51125ad8f72584fb53ea0d66305d280a4005285435766c234b9346557d7a84dfee7bdf11b534165de5b6db062ecda125c497039c657000000ffffeab6a341c2010000", - "ccf670bbd1b940f77e6a33d18bed3b7e": "1f8b08000000000000ff348e314fc330148477ff8ac3ca9030383b12030b124b8580bd7ab8afa9456c07bfe7012cff77948a6e77a7d3ddb791ffa285415e434e624c885b2e8ad100565934a4c59add2c412ff5d3f91c67d1c2ea2f65be16ce3f73e1ef1a0a5b3399d650282d8c81f0f008f73f8cdecdb9268f9104f74fd7f0bd06e5091f2c7a6c6d70795371078aecde58722d9e7bbfa9636b18c8bd92785ac32fa3f771423300897ba6b08ef690152f715b3972523eddd9c9f41d87d3697fff0b0000ffffd638316cea000000", - "d258e202261ed56ac0a8449df027094c": "1f8b08000000000000ffaae65250502acecc4b2fcd492c52b252502ac8292d4acc51e2aae502040000ffff3f6c01c21b000000", - "d4f2890402006146d78d0aa8f8c5ba2a": "1f8b08000000000000ffb493516bdb301485dffd2b2e228516229bad7b328e47378751d8466065efb2a5d822d79291e48e4ce8bf0f3971da2cd9defae487cb3df73b47c70597cfd020b37645863dfd007d4ddf93320128bafb79c0a9542895a035ea66474aef533d389b7ed35c60ba317a102604a88463126d9175f76512155e696f5133478d6c3b37a90314372b40a9764ffa76d6fbce7a91fe64e633b36283a36118c286b9eef66e097e12ca81d44e41ed14956aab49b8030f370741804facd981d3c010e19cf18bd1e310c2f1308479e71584e0d29d81ccbe26020fe7336658ff588590ff75e848ff43aa164508e96305e11afd2f6694542d5942adf93e07b2e6d2453b9760d7d299f5df848d33d50a43964038738cf6c2759a931c48b5feba7e5a9f068d565b69fa38793002f67a043b1af1f1c55425ac337a7ff255645c3e97c9f193244931e2dc1094d6d136bed3d4412065e23d98c8028b01f2151cbc3c38672c8430350ce5e53a954ef430d4f4dddc3464b538ddb17dac077fe9322c863938db3094bf05845064d3d25160f8d79f109fc9fbc5ff52f6fe423fc4fe15d9708804659944ab42f168abc8462c933f010000ffffef62da7b98030000", - "d77707b5575db5b50791e6c1a131ac93": "1f8b08000000000000ff4c8e3f4bc4401047fbfd143fb74a4036bda5368782075e612116739bc92698fdc3ecac08c77d770997e2aac70cc37b53c8ff506090d725a76acc124b164567009b588759b558b34d61d1b99d9dcf7108f9dca689d63cecb4a637661870c8910f94c695054b0561e489daaa98f7a56654965f462bdb3d61ce915128b033534bfeded079ec7af79293f29ff660912cb81840589b2478f7c16964e9b647dd49495b3dbe3d42dcebe9f8de452a5f556549e1fb868b8d5c2b05b64fb09fbcfaadaf19cfb7d283bdf6bdb99aff000000ffff5167c69218010000", - "d8ea92bfa1667613feca7b7c00f413a6": "1f8b08000000000000ff8c8d414a04410c45d7d629c2308b6e90f45e702588a0a2a81788d569a7a12a35a4532086dc5d70445dbafb3c1effb98392bc31ec29dbda042e2e014f738388344de0be47a1caf8485ba6b27e7084fbb7ff17c2cc0bf562b0d663e1ca62f4a5a4a54bfeffcd90e1b52f0b9586574d8cdf6d04566d0a9ece94adab40c62796997538981df1d9c8faf6707b0e8a372ff777c3ee2776bd168e987e43278007ab65378e29923bcb1c913e030000ffff1fc509720a010000", - "dea300b9bc0b1a9623ad19f4494e92ca": "1f8b08000000000000ffcacd4f29cd49d54bad28c82f2a2956b055a8e65250505028c8294dcfcc2bb65288067315148a520b4b338b5235d4134b4bf20b8a52d3322b528bd435c1b2b15c0a0ab55c80000000ffffa429f83f4a000000", - "e0c0cd0d96c606a11abafce45587b849": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608bb8a0e2610b1e65c8ced66036b366260711dfbd74af3f1fff4ae99b2e8c942c4b5580bcacd20c5d653b7c99ad0e60ee35a127c5bbc74d8d3d1b073cb3dae7200b0f54a7c2cd07fc835d63c5fb07248dc3f9edd5bb830bf199cd07801d697cfae954fc6d1c4723ebfafeb2c7c61a4f3271d8c849aa51aeea6ff928d36f1cade57af1618fee834b9285d1048f7d9ea9880bf00fd7000000ffffecd480c3c7000000", - "e1ce4dd81dc280423d4863fc1a330606": "1f8b08000000000000ff4c8e414ac6301085d7ce2986ac5a90e4106e0a2a827a81f9d369136c326132911fc4bb4ba10b578ff7787c7c8de217ed8c142d4bed00b93451c309105d650bc9ac3938db9e2d8d9b8f52c22eb7b16d7448b8d2c10c10022e5278a1ba1eac983b12aebcd1380cd3359a6067fd661cedfc1326298c8d76f6b08d1aff13a68817de3f4935bedb8cac2a8a3ff0a06c432b46ffce75659d4e4fff6164a3bf3d3fa2fae5f3f56572b9ae7cf7c9cae1e6197ee12f0000ffff1754f1f8f0000000", - "e4f19bb976ea59b0682a286b89396afb": "1f8b08000000000000ffaae65250502a284a2d4e2d2956b252885672484a4c4acdd18708e9a6e69529c572d57201020000ffff2214070e27000000", - "e8696ae819b72019fcd50611211ddc80": "1f8b08000000000000ff54cc4d0a83301005e07d4ea1e22259680e20fdb9428f10c90b1852476712da527af722b482ab99f7e07b8cb54c0cdde0b990a04be43cf8d2d6c71c6f05fcaae3ba9dc60c6a77235196cc6eb17e926ca3d8bde9c732fb843eca415c0371760f08dd6103cdffbf0b0c6c032ea59f51add6a63a9dabb7521f33a86f000000ffff52246deaae000000", - "ea4216afa34546e2c4ecbfb7213f6fff": "1f8b08000000000000ff0a2d4e2dd24d4c4fcd2bb152d0e272c92c4eccc9c92fb752d0e702040000ffff4284a48f1a000000", - "eccd20a3ab2a512709dccf2fb8df4bac": "1f8b08000000000000ff34cdc16ec2301004d0fb7ec5c8a7a4aa927ba59eda5ecb851fd898b531246bcbb14108e5df5120ec6547a3274d627b662f605b42d499284c29e6828600e34339d6a1b371ea7d1caa733cc6fefdb3e841b2a196e8c219191fafa6fb531f54885c558ba0a1342dee04647c6323ff726db6b84bcfe115acf72b8eeb587ea216d1b2bf25f982e194c6607985fd698e6a3e09585a5ae8110000ffff7d25ad33bf000000", - "ed4d5aa3047fd65157293d965aaebec5": "1f8b08000000000000ff94545daf9b300c7de75758aa366d0f547c947babf4657f25909446176294ba2a7753fffb44122014b4f58a07a4c43e3ef139f6be424d5c6969e04f04d02a1ddf95a00b833c4bbafe143da2e822b9f0f725af3e6a83372de20a1b340c766f192fa43c45001d1742e99a419a743db8748012fbf8aa7edb8b128d90262ed101ef1bacd1e2aab6b67f005ffde8b31f368e1435f26a232ea90f3ca3a6015832c87db03fbc4b555f68384edca9a77abf2892eea4e5a6563a2e91085b06693e02f80bc28e41315218ca6661d95585804c7a1cb184ba760dff64a074a3b48ccb06ab8fb00c83642ac03dfe9a2bc99e62212b349c146a06372da41910a764e5933d7be3d81523911582c620792fb0bab55293bd5c2235f24c0cb26328c6f5565a3d6ce433ddc5c36643e45def8e360c94f1bc38e473f2a48a73d0d0fc7cad79966d6a7e181579eaf0238a88979e74a8d6c1d7f8be77f754a2f8043240c217f5a6b596f0e00ba7cf9d3923924db20de78daa35032bc6696ed5ae2a86ef146d79696d84ddb11cbed7ac3090a8a42669a45811711776f07eb552280ebc69806b013f5ade8f63fffe9e74fd4f9b1c8e5d30784b192693cd2d4f8b416d2846cd07669edd3f0abf1dbe56387fadb083c8b620d289bb0fdb9c84a759489339e9ff8f2af2af3d2a593f6afd9a5768ae80162b6db19d82b5f49876c2b49903b33b7f86cb7a5ad769927c5b34e56f000000ffffca7f6ab658060000", - "f535300726d0bc835017ec26af4e8408": "1f8b08000000000000ff8c90c16aeb301045f7fe8a61c0e080edc0cb5b19c7a504ba6b6a48e87e6c29b188a431b2926084febd389096eeba9ac51cee3ddc5aa81bf49aa6698be35cfc07d315ffb04900ea61f37c884259adac2c3acdfd059bbdbc4308258f7e2adf59485db68e47e962acd7c3a649eab550b72649ea740b2776e68d5df69bff24b7a3491e943d6b19630e817aafd856dfb97b32f289b5faea48c7d8921fb2550e46fa814505d87e1c8e185710207d28a75b18c979453ac310ca136bb158ad178972f046e3ea87d4ca5e8e9cfda5303c86a8003b6fa1f3b6b893b3ca9e310714e4a9e8d99e94335801be3a09335f61ba3af98239742ce60a7047b6977a914d9ba44e212ef72b0000ffff7e16bb647e010000", + "0234b5edc6e81c1e266d31f193fe20b9": "1f8b08000000000000ff8c8d414a04410c45d7d629c2308b6e90f45e702588a0a2a81788d569a7a12a35a4532086dc5d70445dbafb3c1effb98392bc31ec29dbda042e2e014f738388344de0be47a1caf8485ba6b27e7084fbb7ff17c2cc0bf562b0d663e1ca62f4a5a4a54bfeffcd90e1b52f0b9586574d8cdf6d04566d0a9ece94adab40c62796997538981df1d9c8faf6707b0e8a372ff777c3ee2776bd168e987e43278007ab65378e29923bcb1c913e030000ffff1fc509720a010000", + "02c0cabc5d0ccf06bf62aef1259e6eaa": "1f8b08000000000000ffcacd4f29cd49d54bad28c82f2a2956b055a8e65250505028c8294dcfcc2bb65288067315148a520b4b338b5235d4134b4bf20b8a52d3322b528bd435c1b2b15c0a0ab55c80000000ffffa429f83f4a000000", + "11a0cc9b3e885f72d7f5b4c016722237": "1f8b08000000000000ff010000ffff0000000000000000", + "11da39f868d54d3279affe59a569252f": "1f8b08000000000000ff348d310ec2301004ebec2b4ea9628ae40594b4f006c7d8e604b9b30e1b8a287f478250ed6a34d2141fee3e47f2a1b2ca13e0a5a8551ad0f599ebadcd63d065ca3ab794fc43a7ff5a946bb41e0e787923a3c38f8c27c92c11484d02b1701d1cade88c8eb41be7f81ef67b29dfecba396cf8040000ffff2bd288128c000000", + "1ec08471990f98ece7e8d944aa3cd415": "1f8b08000000000000ff010000ffff0000000000000000", + "1ecd294aa90a5a249902dadd8b1b7502": "1f8b08000000000000ff348e314fc330148477ff8ac3ca9030383b12030b124b8580bd7ab8afa9456c07bfe7012cff77948a6e77a7d3ddb791ffa285415e434e624c885b2e8ad100565934a4c59add2c412ff5d3f91c67d1c2ea2f65be16ce3f73e1ef1a0a5b3399d650282d8c81f0f008f73f8cdecdb9268f9104f74fd7f0bd06e5091f2c7a6c6d70795371078aecde58722d9e7bbfa9636b18c8bd92785ac32fa3f771423300897ba6b08ef690152f715b3972523eddd9c9f41d87d3697fff0b0000ffffd638316cea000000", + "1f893bc0a5e86464fb13af76078ae912": "1f8b08000000000000ffb2c930b42b49cd2dc8492c492dd6cf4dcccc492d2ad6cf49accc2f2dd12bc8292dced0cb28c9cdb1d1cf30b4e3e2b251b555a8cc4ccd495150b5e302040000ffff448386763b000000", + "1fd3e4602afd3c7e8d6adf2c2aca985c": "1f8b08000000000000ffa4935b4cd3671887ff26de6d59d8922d9b2eb33aa6558aadd406e3d45a40c64108300373ba1a8452a0500e838156401ca70844c7383928c7164a2dd0ca414e15778893a51048c620dbc230195bb22cc8b8a63c0b2064f77b9237bf2f5fbee77baf7e82b04bd82578786ca44848dc2d086f0882201604c143100491b075bfc96e4178eda5add98617acadb937f3f9f3659a4d7da87515f845e57136328f8bdadb7cf9958da53ffedc79bbbebebeade2766f9dedfde3f886e4f2e6891cde3e654074c680e8d475f61ccfe6755926126526f75a1cb0beb6e96fccb65b5963c1439c88e7f9124ec616732cbe0ec9d53abce38d48a38bf009c9c033a89457c449a4196a5ffcb1b5bfbbcfc9ab122d074f5fc753994de0d57c62efd850dfed475d35486c652767626f7128bc0cb1d2c0cbe238caab4c9beef2df7fa1d21bf1d2b4228b337230b21275452fe9ed8f894a2f223aa7820cf3d7846519d92bcfe4685809b24bb5482e55323bf70b2d3d4ec4da0e14993dc8756df8e5b4139e5e8ad7c9300e78fb73c05b85541941f8a795f86aeea248ef24a0681c454e3f85f71cc4df6cc24b67c3476f45a16be1d4875af61c3cc33b9200ce4705e11f1acc5b87fcd92f0d40f5710e87833fc7d3ff069ee70af8405d4a68463d47d3ecc8d36c48350dec93a808bb10c4a0ed0263c3597cebd4d1d61081af4ac561df18fc937bf152d72055d713a83111906e449a6a439e66c53bae91d331494c4d14b3f49b93d68e62ec0faa595eeaa3c79ec989c81b84660fe095d080546f2144dfcdfb294dc852adc8f55d48932d4414753038d2c4946b9edfe7ef303f6361c6354daba39ae8422731d726507e3688a2e009970d03f8c455732cb50b9f940e8e6adbf0cbed22bfc5ccf0680521091a92f232187df405ba9a2e0c75e32494b8f8e4d614970b2729ab1b22bfda8a58d3caf1e4667c7466e4574a286fba4f424115fb4e46f3eed98b14d69ac82a6f446d3061ec71d1f77896fc2a3b13ae196e37f6225237234bb17248634671a58ce8f85444de4a8e28cef19e4cc511df603e4acce2669505ebc8240ee7534cf7fb8175565756d116d713985c4a446e2389e5163a1f0c11a54e65efe1b3ec97faa1bf5648f7c8180ee7389d030fa96e32b3b2f2cf4e7fa6e77e64e1d90293ae27d807da714d7fc7af8b0b34771ae91f3633fbf337fc30fd90c1d12e0686fa585d5dddf4fedba1ed362e3e5be4d1b883a1e1562626cc3cfddec4d8580b63ce1ee6e67ec2ed76efb81b08ff937f030000ffff6ddbe2317e040000", + "200603a93cae9aee719dcb679b44c289": "1f8b08000000000000ffcacb4f498dcfcd4f29cd492dd6e7d2d2cbc94fe74acaccd3e702040000ffffe55507d519000000", + "357939eff9d3a7884ef4ebadca1b1668": "1f8b08000000000000ff748dc16ec3201044ef7cc58aa3a5d4698ffe19cb8131465d58044b94cfaf6afb5045f56ddebc817da2b6287922fb658ddbe0bedb64881274137fe398b1339193bcc6706422dd2ada26ec27fabcdf4de11e62de976b7c251c33e4e5c1f01369ed304441d6a4578a63be744ffcabf072dc3de6b2a8a21ee76f146a5cb58dc3300e3bdbdf342b9a7e04b167f5ce6f054b68e7f3d21f1cdd098a547851b43f7f67f19893f8ce68a3353f010000ffff524107ee51010000", + "3a5d3f320c662fc4951dba09e5ca48af": "1f8b08000000000000ff54cc4d0a83301005e07d4ea1e22259680e20fdb9428f10c90b1852476712da527af722b482ab99f7e07b8cb54c0cdde0b990a04be43cf8d2d6c71c6f05fcaae3ba9dc60c6a77235196cc6eb17e926ca3d8bde9c732fb843eca415c0371760f08dd6103cdffbf0b0c6c032ea59f51add6a63a9dabb7521f33a86f000000ffff52246deaae000000", + "3ab914a64676d62186c6060f4988dd39": "1f8b08000000000000ff7c94c1ab1b3710c6cfd55f31cf2ea4599c7d4e7b28bc4b49531a7269030998107a186bc796b0ac11d2c8db25e47f2fa3f53a79f491e38ad137bfef9bd1ae6147c1f29940187eaf870306be33e683c37882892b1c388375ccc5c7e352d00e27ae1946dac340170a9cce140522d1507a633e7f067f809e9394fe554afdce8b7bc7095e7cf962d66bf80305f75808de93d464cc5b81c07c2a10fc895a5bebb834a6420235cddd30a5e02d8ae708b501210c57a93bf813a360116f1b3fc1c1e722204eeb5452d9547160f005385154617104ab45a49fce6105071f08300e408317f0a297aad23802cb399315fdce11cf543690b09491f35036e0b848d90089edfb1ec4a1006652eecc297b14fa1a1dc58bcf1c35b6de988f5c61f4210086c237d4339e084acd346b75ddc4b5eba00866b9f7b10886d0b01603c08759dd3af696fadbc4ba6ee4f84cba0e966b6ab009a9c32b556fcc7abd86d79914f5a30a2da32ac6fc7dda4061ad7b76a1168e527e27bf264fc34cb4d46c20f278e3b218c1ceedbef551c0c7d97313bbe23d18f3c38fb0bf5e4d9c96ab2f50578ee2d0164c37ecbdb6d6c9abeaabaf7b63ccd2b9389f0a8c5e1c20583e9f95b8b56c731851acfbffda691156e1338ab718c20499f6d5873988370c7b1f314f735d9c004b2129b77ce143dbbfd626d738a7b7181ae8b25a481e5b1de862ccdb365a48eca3cc60fbcc63a1ac9bf2c989a487fbfb973fffda6ffb6dfff2e197ed76fbcf4f4f1e3f6f42c5710d03142240583df11b5841c223f5c674dd6b8ec78c52434ba1dc759d6e479ba4c30bcd384bb28f9e696a51e41aa38fc7b65fb053f77fd1bff29b313b824cea5987a7548e70d0b9f1e5b1b1235fc3e83ddf6c7d7bf87c6e44174f63fb3584a0af41133eea96c0c0b6ea6b9bc1c451566f6f980708d59eee8cf9f48e47ca34c07e5acc3cddcafc170000ffff90de672137050000", + "3c5378f5aa59242753fa2bcf50bbb6d2": "1f8b08000000000000ffa454516fda30107ee757dc2c2181b4e0419f5a39912a81c6c3da5515ef93832f89d5c446f6415bd1eeb74f26c012085da53dc5f6ddf7dd77be2f16054a852ee90108a537b02ca5f7315b5a43521b742c44da31679ff7a7a79832aa543486b0f05534d92d5e7c3481d2e6f6880110120a8759cc443f06672d3d482a0643e8272c11bacac1bb6547507a8fe4b9ae648e9e07ce91dfe40c6449316389e0f2288b2bbdf940e3f541e3f541e3f81b90a6127d5366314e82081ab0672c97b6c25fb943246d7216f4085e8c9bd993bf9b468f05d1cadf709e6b2ad6e968692b9edb749d65b2b47cff0d6d1f246632854c46753a03e9b48c0aad149a98915b63685427f019dac68d843b690a14c5e45050d9e5ba424392b435ec620fa1d6a1c0485bded61c24a7d63e5d163c6d96b9a8ac31b9e372bfe8097e306bafcb8f5d5e9c74f8d7afd3dda82f98b86dfcfaaeae922966daa08247bb26f48217571f296e73924c4b8c1cfa95355e6f1a857791561ad4c99e9c5ea16a8aa0d07c6b3ae480f0852259eadcc4acc48c5ae3db818e8da1217481f26eb698ff9c0a4ec55972f270bb987747ee6fef66dd91f9edfdf4c7ecf1342838b9e68c4ff40b4aad7a4d7a4d443f86cc3a18b82168036e77d5b085fe694dd73e0847eabccf939c9adf8dee900aab4e49770a55076f378dce6070a4fa1203fb3e5b30787b03370acf15fc8e816dd910b667680087b476669f79167f072c3d7e042cb5795ad8418dff0adb708f377bbaf76107e1ffb55a13dfcb0a3f4f2496566152a3e7d2a812dd9e40f03a74066cdb2594ae95371d543be6b80d7f4af75371f8347ec2cc5a620908bf92268107fb1c4c02e9ebbf1eb9e636bc5a82d70cfb127f020000ffff0dbe9ce240070000", + "3e00c27b916d08ee5aa54c8a3d2f31a5": "1f8b08000000000000ff548fcb6dc3301044ef530a01ef36910e5c80409313890ec555b8348d741f08f900bebdc300efcd64cbd6152168906aeb0ff8672d8390921915b7d214633f14cd3297ddf2a3d215e2d1fd9262daa8089723a68f2eabe178dc6a491add39ced9f464990a597b791fec0a619ba749deaecb755827821c2523d9648f2bff41721c11e2b3419235b7ca652b3eac7fbde803e4be3dff5aeedb530282f819b23320171f8a958d3d0ee6b3e9f737be030000ffffcfa015bc01010000", + "4a4954ee92c57e00f8a0f34ec9a08084": "1f8b08000000000000ff84524d6bdc3010bdeb573c9425b40559ec2d98f4104ad99e9a3d945e832ccfca62b51e23c9db429aff5e243b69c852727ae67dcc789eddd181233d241bfd945b012884112a4177b30f7d8276ac53b47af381ecc0908f8f0d4f393577d3d4ec8d3d1a47fba37b7a92f8033b67a81e524ba8c3f6639d66fb9711ff8b56dfe9d8fb0835619abbe0ad3629514e55720c47196a86f37998bbc6f2493beee6c3c104d66ff03972e21e3dff1a039bbe72f47be298b1bffbf1edb3dc146837bbfb82baf3a3142265e3282d25644a5988a6803a9b985a5cbf3c0be06ca2375d58dcc0eefee1ebf79f2d64f14821aeb0e360468733c5e479841dd85bc24061a2289a399172d5a1fcc9386a71fd8a0aa66e07566da1db957e2fbd553717d16d7323444997d7bdc297c18c8e9019f2f6b6c5a78bddb2687322e481b050d8f1f33502781b5b9656f6754db5d116eb39ff7eb2d2f0fab916f16f000000ffffcf5a70eb87020000", + "524efd5799b78f65989b6c1104215481": "1f8b08000000000000ff94544d8fa3300c3dc3afb0345a69f740c54799a9d2cbfe95405288066294ba2ab3abf9efab244009add4ae7273ece717bf17ef6ad4c4959606fec651af747255825a06459e0ee331fe8ee35672e1af2b5e7f36062f5a2435766818bcbde7bc94f21847031742e98641960e23f8e2a8c23139ab3f2e5ea111d224157ad45d870d82ea1b0b3cf53ccc2d77a4a8936768337b7b424d164632283cae8b5ca56a5ab2b1f4184713a16babc8d2e9b969944e2a24c29e4156b8ba294a383028b7bdf2a55788bc6a9f1d1c8c50e7a1e35f0c94ee949649d561fdb9c0334803606e7137f4488e940859a3e1a45033b868218d050b4a9513c593369e93a37d5faf7153ba13585f7aa9c925ac703a792206f9617efef952b992072c57ef59e95b0ca38b3c7043ce8b725fdc8f7ff1d2ad5b5b6ca4cdf37b69f74e8070acc42b4f76adcb7ec277973b9f42158a2f2003249c79bdff9cf6e9d6b09edc09916caa9b2eef54a319b8b1dffcf55697f63cf4e002b156fced50d9f382e6b5d4248d145b063eee727ef752280ebceb806b013f7b3ecefff5e3231dc65fb636fc3cc188bd79968166a59512ca49d0ef272ddef72fb4289eb488c2ff16a8e8e9ad72ee4d1cbad84bf7947859bc403c0d89af19bb5565f317cfa4ab8b6987cd4b2c4bd31ffff588a0f16a3745b73d332f18fbd07f010000ffffa680b9a8b2050000", + "52f14062d5b60ffc0896c4bda40d83fc": "1f8b08000000000000ff9c55df8be336107ef75f311504649a53ee36f4a1ee65e176cb9642f70877d7f6611b0ec5961d114b32929c0b2cf9dfcb48b2e3dcfe80f625966646df37f34933e978b9e78d00c5a5ce32a93a633dd00c80d4ca13fcb6a6095fe3d267218ea20c6b2f952019ae1ae977fd9695462d14b7fb2df7c22d1a2b6b1f7fc977418dd9f675cd5bb318beb6d7110ee02b90f7b31598ce3bb68ef9adf70dccae17fc7bf787d24ba35d74a3133db2061abc7f4bbf5b9b2e8747985dbf98014a601787ab9773ec4cb738fc14fc23f3bda9447b410ca7c8f22485df5001376631cd3fba9ea2e45956f7ba04a9a5a7393c667e0ec25a2856802ab135b74ed0b0fc7477bb5c2e7f9e47d46d2fdbea8b540201f30c30133cf8c30ab46ce1310300a895676b2bb56f3515d662d829034857c03e0b7f8330743084ddefba3678fc2f619d34ba98f0251352ce0301265080c7cd29cf4ea9187c63a118006e1b87c518c73ed8c66500076ec158d948cd5b34c1c3c6792b759301d4c6829ce3213c63b96e444488e5c83ab8562b206fde9064844bb415f0ae13baa203ec23023cbcdd9c02ae7b903fbe2b368cb13c9de6e914fa0ab949d6ad157c1fd6a7249aaca1159a625c8e29bc3b2785f6691239dec2db737eb176585d643a829f0bb80fba059315beb73a5197a84648f01de6e7be495feea00c04aff641c99d00a26463b917a408c8691778ce6f39461ee2fda6c80e5f4ebaf2101e833c777b3207e2c30f777b97e22f147a0fcb5180d634ec8e7bde52a28d07a14ddfecb0a05e09ed1d74dc3951813710b0f38934a1f43059d847f1edd6682f8e3e503c5c6df2a7b4d77035d29683ec217c596c26b8a9c722f2a75e0f90732847d427ed34ad24b553c4ab44cdfbd68f327c1d9b184728fbc398fd9afb1d2569d090fc97e7d09fe77c9675a823a9a4aa91ecd628c57575e64aef7efaea4b55b1cfbe921a426786e5d4617a3f7a4cefa72e4c7070096ba76262044af93f043c8db3e3f2d18573e314abe979a07ee44ab02fd2b782e630bb86c3309adc3f9acce162a2d13ccca6575a258eada13302ebd61cc75bec4c87cfef3e0448a36fcc91867f13b452c2bbae5083cf615bb0c5649fcf41853f11f6ebcd4b937ad4a5a6e48ecb36b643af9105ce5805cc107f32cbe37d6ccd91fdd9d1ff866e7bfd0af4291ba6c3bf010000ffff364833083b080000", + "545676fd88c0d1d27198d283049c41b0": "1f8b08000000000000ff4c8e3f4bc4401047fbfd143fb74a4036bda5368782075e612116739bc92698fdc3ecac08c77d770997e2aac70cc37b53c8ff506090d725a76acc124b164567009b588759b558b34d61d1b99d9dcf7108f9dca689d63cecb4a637661870c8910f94c695054b0561e489daaa98f7a56654965f462bdb3d61ce915128b033534bfeded079ec7af79293f29ff660912cb81840589b2478f7c16964e9b647dd49495b3dbe3d42dcebe9f8de452a5f556549e1fb868b8d5c2b05b64fb09fbcfaadaf19cfb7d283bdf6bdb99aff000000ffff5167c69218010000", + "59c3c4502bfd1cb86f9a7572f82ea9ed": "1f8b08000000000000ff7455516fe3360c7eb67f05e1a72448edf7003da0b8eb5d07646971ceba01c3d02a161d0b278b9a24c71714f9ef03653b97146b5e224be4c78fe427ca8aea87d823882a28323e4d556bc90598a549b657a1e97679456db1a75d57d7425331fe671f9da3391cb334a9c955e8bd86ffb76afb9bc9224b132b9c6835edf7e83eb6bf307a17bc338eb4465978ac3a87593a4fd3a280fbcd33280f9d470981a0416dc1f72a540d780c4199bd879de05332d037e8104283ec29acd5aa125c1146d8a1327b709dc9e10bd6a2d38177338907d4645b3421cbd3837031e22d7005f26f1866d9b7c797fbcd73b6bcb69d475b612d2cc6f4f23b6b23e53b6b197a2023b406475d400fc2486895941a7be1106a7230bab2976fa8d3127608126b6550e6b06d9467a4d020187407840a4d400754c3913af72ecb3c2d0adefa4e1dd76579116c097b479df54bc050e5790e4c4062a5854309dbc727b8f9045f1effdc30c610b745613ca818098494202ec907825761ed2b2c441dd02d46302eb16088186e09a111615843afb486cde3161a71c0e1c0607f81c9f92278d1c6ee71daae434ed5a1a7ce5513e198ab07e1a147ada7a47f0b20b4a79176849fcaee10aa06ab1f284199584c72121daf8e578588c9bf965ce9af4aa37f6516023edf6d3f3fdcdcadd703e2123c810a53c384eec591e5c5ce568b0a2568e1c3142bfa5c515f327715868aa0f19d1bad3c439cbb120b7bb6337840c7eaa804df923cad3b53b1d466f32b05c25b9aa83a0af3f6168cd2bc91c4cf496df906fbd9b47eb491131b25f7e6b082e977bf795ea6c3b244ef15998d687105d9cbdb5b4e36788e96f35ecec53a9d5efc60962dd32439cdd33449f83274815a1114d33e8243a91c5681f55396eb8159fe87c7591c2465b99ecd27cf35edc1e1bf1dfa00716c6040e761562b1d17acfce33cbfc0b8182ef9d3e4b18edf1194edbedd6f6759912de1815a7c10466a3e4c4e699a380c9d338c9b9ee2459e380d1d988eafae01eb6c3c1d33130694a9a88dd366a01ff55c732b950743011eb6dba73287ac09c1ae8a027f8ad66ae43198c1eda761dfbf3bb8b899bfe24b420f8b85a1b058001ab1d3c875cde370e11171351f604b20299266b01ec161456d8b4642e7e3dd05ebe8e771051383f3f0ce15bf0a85a4ca17d1662c10b4e41094a9c9b531ca85ef87c3bd18d4fbabe76769fe7eceed2b5bbc9dbb323d341716b301ec52c265b9fe3e366235a998ef41661dc92ebe8e519e65b97ee2241e5048747e05adb07ffbc0f3eb9fe1ef2dfbebe62bb95e3889f2e6c951a06c3576263b2d5356f829fd2f0000fffff938fe4679070000", + "5a632d314f6d6797fef503c04ff3e44b": "1f8b08000000000000ff2a484cce4e4c4f55484c2ec9cccf2be602040000ffffe129fcc910000000", + "5c28c6abb0b23e98772f3aaed045abf5": "1f8b08000000000000ffecbd6d8f1cc7912efa79f82beace7e590399c98cc8c837c3f48145c9f6023cf72cb05e5ddc4f06b74489bcdb228921454bfaf517f14454750f3994a8e1c86c9f630356176bbaba3223232322e3e589dffd8fefbf3d2c6f9e5cbd7af6e2f9834b4af97279f27c7df1d5b3e7df3cb8fceef5d7715cfe8fdfdffbddff15e3f2a727cf9f5c3d7efde2eab7cb1fbe7af15f4f967f3b1cbe7bf51ab716a694530ecb7f7cf9a7e58bef5fbeb87abdfcfbe1bb6fe2bf3d5f126e7e69eff8edd252cecb67df3d3b7cb5e4df2c4b8cfaf39fffaf877ff97ffffd8be5d59b6f967fffcfcf1efddbc3e532debfffff9487f7ef7ffe97cff10b94e8fefd2ffeefcbe5f2e9ebd72f7f7bfffedffef6b7f4b7925e5c7d73ff4f578f5f3e7db6bebaff1f5ffee9be7ef1f3bf7c7effd59b6f88d257afbfbafcfdbddfe92f9fcc932e97675f3db8fcecbbafbf7e7c78f1d7efeb1ffffaa7172f9f3eb9ba5cbefff6f0fcd5831b5ec23967fd51ffca6fbf3f3c7bfedf377d91e69cf7f1d7cbe5fb0797f9e5f797f72e961fec6a79f3ecc9df3e7ba1f797bccc8cff2bd51fffd7e149fcafc7eb7f7f73f5e2bbe75f3db87cfee46fcbb5ef7cffede1b7af5e3e5e9f3cb87c79f5e4d593ab374f746adffcfedec5ef5e3e7efd74f9fad9e1f0e0f2f98be74f2e9757afaf5efcf7930797ffc24493ea7623feedd957af9f3eb8a4b6df393c7bfe647dfcf2c125de7bedf6fff7e2d9f3b7ef7ffbecf593abc3b36f9fbd7e7049f972f9eac1e5bd8b8bff496d240934c6da66ec1ca8d53423514f25702fa9d8f5c3562971e839f53098024b4e822b9199c643bd6a75a612ec8b836710217c7bdebbb878c88553c1edc6a9e2bb6c97f88143cc89435e634e142951d04fd65bb1245e23a51eb9a7164b92586be25813c5c169e8233d12a516f5ff5cf020c522a9dfbbb8d03f732ca9c59c5aec8963d639e5d4d7ac132da904e23422e9a4f4e525d535871c721c3d75ff7895f52b55bfc291ea23e2ae447b3a93e8d06be49c585fa7cfd95b7aec69c6a62f0a19ffae4ae9d4624b823770121db37e869a26ee29f138b550f4bf071d3b4dffba4d44ffdcf5d3df1674c2ba2c2591fec9be1ab827b18fb6e2517c4fdfa66bcaab5243a92c51dfae33c0bcf19d8155183eda9186be8a31291dacbe4a473182a4b1e654424915eb37a20e9d729a4a76fb59c12b9b7ff2460c257adf2f9ee654fe0c56fcf1f2beee0be5e2c7577fba7afcd5b327cf5f63d3ffc7977ffab7cfff4a7fbd5cbef1dbfff9fcd9eb570f2ebf7bf5e4ea3f747ffdafe7fff9eac9e5f23d3db89429a9895c2e3fd083cb2a39b5dacae5f23d9ffe891f5cf69c6aa172f9fb7b1717bf7bf5fac5cb6579f1f5d7af9ebc7e709975ebfc7078f2e052efc7f5c5e1c5d56fffe573ea0f6bc320df7920491ef3e6a7f2c8f5b31b9fa21b1ff88cbf685ffcc16871ff3a31de121bdf5d1dfef55f36dafc06fb1a9bba041a1d9b9ad208d45a246a49b0a9c5ae8f9bbaee9bba1c37f59a95dd4bd48d2b2391f272e804ce3b44aa9466e8caff4df98138954734f426979cf8d13e085fd2972f0e3f7cf3e2b90ffb5ffef0c74ea55c2e2f5f3c7baeabd89ba8f490b934a92a1b724fb2d4ae7c53674fbcd43e12872a6369ac5ba99691ead2cad8af479e7e3db66ba154977b171723d7d443ad2df5a5cf9128d43ef57a8cd0724bbc74fd77689c535d7ae734432b92da72f141c36fa0928c5416154fa1144e75a9a2bb8570b7250a85ca5287ee84ac2f6fa2f7b24eaeebf04aae49963e702969e8c0bb4e8f5b4bb4d825eb4cbb8a4fa6aa93d63dc779a4b90c7d92b3a4b2cc1138531a0b652c49563a509e69069a4a5993607db125a3d1535d3863fff696445fcdd49575babe8565e8d77a496de1aa0ba1d7b4701bf8ced0eb5ef15365e101969839c9c243e9c1194f4e888bacb4e1a1220a9cb6f0245dac4636679e3d51682a6c17ee84eba9636e59af2be6c2e012a5e6a22a8a4313251265d1a5c3b313927576ac689aa1d6ae64645dfd5297a6e4aa042eaaa9059923b1bebf15d54bbd276535957375a6fa1e46e89f95cf59aef3f1084df0ab52f43aeb00949347a853c7c853c06a92faf5794063b6417abfe277664fdb1a756e200ef754436f9cfac24d257a1f25d5a55053119cf58152671a61704eb494a1ea58794254d486c13dcd45ca4ca4fa78912a50e57391a15c3fb8a5b12859200b74e349d1fb5413e900aa3263185997bc4edd897d369d2d29b9fbc0cc791b9872b9da05bd299bb7a65baf5749b4b4a933ec8595fd5507874e75e945d43e98398da5575299a02cb653ff28f9f63da8224fb7ce0cad97340fb1aa2ea4340e9cf186540fac6bdd0ea21f94cad3515239508dc574684b3dce5443e976a11a8f420e8d5458ea1cf7ab436f6a38ccc46f22cd43644923724be51065268e2dcd4727a3f9f1dd717ff6707ed11edab86b515ee342fa3ca9de95549e4612fd37d7d4637baab64c3bc4a202ad3d8d95f45f0c8191caaaef1e816a1a5174ab488b552da75e4c7147ddb80c5b43d7416a64e5a636cdae2a814ce3b34afb1194054a4f7c502b2a70a203bea41357f9cf9cc6a1c008a8a91d5ab7ab7aa8d574793d88287d929a7d072e6a9c49ea87d6d47ca1540f45ad0e4c905a2a5138f53791f8906145c83ad56aa846893860a2084cbca1d69e32995a7945a7d1a2c0b6503ad59ee6bbb46e7ff8bc7f518dd63c27e803aad14c2336d588983fc94c2d0c5d40bd948374d842f254482d3cb595cada7b12908af20ca3e0fb41bfaf8ba7dc3f92403b327e78ea42917d3fc953651f02c3347d693f28152434dc1cca067aafe8dcb2b2310fd8a5a93d526dc24166769e509bf0d1c9746e60b23fb6cff90f6c1317557041ca487d153556cd4a93585355ce51d394d68a498afe45774fd3bfa89d27abf285ee24e51ffd2495079c9ab21726a37f0b2a774999465f53549eeaafdb5c2516650f49758d2a9a945b6960044de75974282bb6206c509512532d793d87502a7a8428b34316ebe82567e85b7dddc9ec6ea203fee7741013ec92ca2a30be39546cd9118a32ad1e0b708ca87124561358cf033acab92a3b068e2aa71acce68989e9c8a4e43483f4aae3534b04d72d9cbcefe74646b01f549cafaa03d4245312e650c10d6dc5512cb1ae41d4f7e0c453d25c752f32560c6b596d852af6dfaae7a58089e8c6f6e38eb27fb53d8a93911e27aa4e7eac19363e36a8b1bc9ebc6ce84f0e87672f5f3d595e5f3d7efeeaeb1757df3eb8fcf6f1ebab67dfff6b4ec463519e9d3496fd436f4a4d35cb5846a9494aa1df5cbe3dfbf57b35c97b1a97cbfac383cb32492faf70f772b9fa019f3a00359d6f3586d839e5cc63e95992cc516e1e446992da368892f86e07d1d31cc5ecd95e3bbf6708256f74603ddbda105477db2070f50e1f756eb38e4dc489eed9ae7c14ab2d9f8a90ae4bdf54deb06e2e3000c5b9f1f84c12672c387f632bda2e54e1deedefd088d891ca416ab7eaaf06ce2627c63aa1246660bdad3bbf98ecb093abddcafb9951796be23e43a628b7d36aa2555f82932743ca90f3b1deebd10e93aad22ab481ee423bbceae932aac4aafa3b105838ef12045ec16070e0c4b91ffb60469c63ed67e034504182c3ea0ccdd527e11cdca31d73f5a45ed748f6749250ec341eaa523c43e2956813ab7a96d6a71ef26c81bb8a2c9e1557339c2cd5cfd8085c7194a1b1aa71112452379f05e368a7477c8874d61556f2135c225827b50fd49e523b081aa60635d887096fc29fa632432052598367d7ea16012437848b1a48b20e9fac1e9294bd42818722bbab420eee6c394415e9c36d9aa29c34d4a0e82a3eff8cf9fc7879efe2e2ed697f900f4ceed805564829d39aa89057abb729e734651de535d8905cb0a1365b6906eea60729f0486d9d60385ddad8942caad628a7baaa0a87e280882d38039aeebbc158b9b6e86aa106ae53175d42562d39c388259b229dbe27d80cb70e3d1e8a1de0121f8619a9f5d1fe433f7e900483cc8a26b4b6ffda3d1d38892c3da74679de2cc260cf7e9408738b9839d10adb0976287c62902aba99d706cf12991684b5c0f068a950e81015caef4aa8000b621abf43bb11dc52fa408f33a8d0834501c3bf2bf128520d3460a0817b0b2e093f0f438f60aa1fa03d39f5472763feb9556da14ad3d5c38c942174797bb65d4581724eb482f758d7146ec91a601f16350470b2527e13d8fdca753d1b29860b6963453267224cd4a47bb7d89e6e7086ce6096649295cdb690a087d6088710a920192b8c9f66f4afba8b0503512634f9a1d28fa71d305a6c50084a1c50c74e280433174ec30328cc6adbc23eee4a5736ff044ce50981aa4f408ce93d1c76533db841d60f3066ccce7e245542cb662aeb146c7554d1c841d9a2c6a9bf36201cf56755b4f32196a1a3c4407403412f1e224c42d8e513ebaa7bc797eb67247483d30167e615225a79ce5c9b6113d2b2ba8c0e9b8cd645d6adccab8be868225aa289e8eafa07323a988c8ebb8c8e2ea4e326a4a30969d5a32ea7e326a7e3514ec35bdd533b0c18bea4a7bad8931c7485479a8792f425ca4a8f4ea6f5cefc3f89a8aee07913d52ea9c32ea9c351529ba00e9ba08e47411d5d524793d4f128a9a38beab88beaf881a2ba9a376e4c089f8915c3efaaf15dd8fc066d85675db5ad0711b08b225570bb4ee1d1c90fddc070324be3133b4f25800a499ba19a20f8193d43c1972a7c88ddce34b0fb5453d83952cd311c17da8a63605122aa39d6cca0ab387041fae26cc415b6d108a586ac473bd58419fc22cadf7a402a6a01821795e445c9c6784b24ddc5c6b370fa9b2c87042f70f9c2098017ea8e257821f4740e55574aace27c1bca5a084195aa3fa007b081788aca41e5e982bd6fa456918425ac01dbbd92f977e4a09235bb5da9328ab15daa0a4018434a41610bc860157b80bc28aa52d6683e80a20489b6793ca0644e146c3d4214041ef34d2ee377328e5c6ab38a79323c5682af91ee4b446eb0954311634bc6299986bb9ab0626a466f3195d861663668a67d66165d9a6e89a9ecf4331e8c6509d95c007d972766a1739c300895732265b89758d92bd666ee88199b0a7bc92038c7fd8530f4a34c7d56854e85656e14af38c4ea8aeb54a3e4487a8a8820acaeddaa36baeaae6a4a78eaa8d46e81187cc8bde3c00f653470b88673fd6423dcb065da1795b62d23f05af1187031cde81ab75b540bcebf5457e85378323a2219b0f27425e000d063b7ae8d4af7083f2c4d0f33aa98d0430ee68fc3471de6a90169a7528e7028283950d1159c0fc56e22d028d8173a3e0a2763bdd1e95c3fab9fd53f1e9dce0ca7692d736151215095ce0b4b4d23d49a93de1f887e0cbb6a053efd0eaf7bd7ef16c1f5d0ef16d6e770ffdec505179563b50e7d047ed45a259585558e855a8b3ec22db9aa7c8f9ffced213786cb5ff4698fe7484e7d69b0736bd181347bb3706a4b1335722ac205ad4c7d5b2da92c4d256da8d59dd34d8fd01ee7d16bc65c6569100436277d5d0bb5cdc44bc34ef3fba4df10b8b22b8205157fd7c9e7f74c6bd303dbb44a472862e8fb4b535e6eb32e4594bbbbf9e6b9208e56970269d94957a540d57635e2179e3abd4e88afcc167aaebe1216379833c9c2b3223ea05f41b464e89a94dc4243c0a650c3a9a6a6b614d0baf5acf74bc635be236d8f3758c8a08d9aca4dbef66bfaeed7d3c2eeb07eaf223ea876a5035c877aced4c36f6c7a41309be8d1c9e06e0e3cbecd8816ced015e345d75c0982d0a3e84e6c5389560b488c604cc5d1afe796ca52595747f9484f00baaa8c27e1385139817889f266e8d497da085715f1c0866b4a6d5156ec58665c8786409432a54542e803f7d4754e5065a253290b2290a14d4eb49462315f7d6f4110482750970297b532ddbcc698f72e2edecf9b826113227bba55dbd4a9f16cd803a7619b9f09feb2ee8fd6556a2965058c5b1765c7e3753686d74d3f95d394f93f2c28d77044ac3c122dadb16a7a8f0a9e5c5b3c728e6580512b22c10381297db25c0b2f7770815e37133be47f7a5fc0f88f7ffcbcfde1445034c1ea668b556378ca70cbc826701021ab704411ddb8277fda02ff7883fb7f76e4e7d43adfc476cc6e611c1f29321c60e4091df0347a3e096d4e3fd86cf085f91d813080f3ef90f73c98cddd4cf815f23c180fb4d8335bb24b868980ffc23a235868fe9a68593d96e2939116334256dbc5fcda3eece1c39cab3dc3e631779f24d9c9d662201ccca46b9e6103171fc14a820711ffcd9eba93032c3cfdef2758ab8ab029b77faed5d9af55eb0db6889cae5580211d1807355f1578ef33bca6dbdacd6861d219b6542a318736d609546b27f96204cab66da994cad1a83e7e72a9a279b16bb4b5b5b38daf55f15f29c7d502ab0dbc89fd40e30f4cf8f3695baa785cab6abe10a48f350f09280f29cf114ea367b05475ea61a9cefccfa5fa5597cafd457cd7d9ad057ec6d1cded4596d596f73c50cbd02c27199ac53334cb498666fd800ccd7d793c42522c59d333347799f493199a6c39ac01a19d3d43933d4393dfcad064cfd0947733349b6768f60fccd0849b169fbca7ab22c23cf78b1bb26f1e7efe793e5a0abb9de08a475c82b7931dc1ae78ea89e219ae11c6cd8ac736c991ba6cdae744f7b0eb1e3e61c37715cfb4d8dca9da09bbda014ddf553c3a4cdb77bbee99a7ba67533c2e0dccabfe96e269c1b26e6fd8227fee8d6ff0595ca36b955da7ff93ae1f4cd72a3f43d7d6dbae7f7da36f6f3b358ac8a5fa29ad874bf5f193527d27ac8bf5b98b75b2f57a3f51fd89ea9fd7e439ed5ae15d79be53f51d91be9135be6528057a4b9e77c8f37e23515bbf294c7d4ad43acbae29ff49d40f226a9d3725069d12f557d760f72e2ede2e33f85535981bec3729b15f5783ddbbb878b453f3180bbf7afcd5b3c7871b2a0df8af16d1eea5a7d6a758505b724b34695c2e570f2ea5a632271f2b12fe725340bdf445974a262ffb076e4e4a75f4b2f0e0346b97dffc5c69c30757293c943ef83d550a37d71bd45a48de53d630f2e49b5f33c71f8b47bcef5f27e4fbab1478ab52e8390761c42b113cc602b23bfcf4c09a13af14b95a244704b97489a394242bd74001f71849802509feba6dd640cdc2b908c155fd99325379b4bff56732f27aae81e1f7cfa608c16d26baea6a5a49903da89f5d15db2a76c60d081d58fa0c83812d5083642a4826fd3f79811276644f25224d8103c9da548906825354efc01189b7b225a758ee21458498914b808371b4644cb6b8931296d8cf012c183147c4cdb2056cece4c0b10acc8a16518590b7dfd3f5a878ba2153802c6b4c3795253a53ec88a2af6c31654b8fd1c32d59bd485df5cbd411958c24dbe7bd8b8b877a0a9e817922fdc1897dbc7ab45ffdcc429561abdd53f5fc2e4b6043224ebec52c3d2e7827135d955f91f05b908d37b7cf37f926be3233fe4e58eb26beea1ec6d5a9985c6c10f4f2d314ae73aa002e9ccaca16e42d816a4431093e9eda6caca0ccbd344ad295dc2434361497e2165dc6c1912ccd35759daf92014c8e502d84fa083ac1cda2e86a35789450b78365a935b304c2c08b78c541d5680865d17c4d2de550229b8e0b08865ab2a34eca2c0e2c6a923536a8164b7554d3d57209df3dd85e23556b3a74290539855e7ba84b6b99ce88816e37a6b9d24ce0916527ca6e0e6d264bd9861ecdf556118b55535a4cc1daa4dd46c6817ff5c37db0f424da3e57b2fc1095254e187c1e72c8fb31c053ddb7a82e0e1196ace9fe3dd5ebdd6d1b4bdd44828bdf85dc31ab0703eb6f5982f3661a9ee636d48c7c9d5a61901c39c84e3492d808857c66ec938e9d3c525d2baca116105a27d702b09a8ae7aac769bb17c95c2e45b99941382dbadd635191b1a50f9415894158ad1ec93734ebf3d59faa6aee288b23a5aa0c4bcd2c5e37e0312d952f88de531ca9458461f2ba25ed547d0c59a47ad19046bb5ab688e5204e0804b68cfd15a5046aa5423fe8d8a0058ba5caaf88ed8f005eee961b4601d314cbcff7f423361980307641da2c923455b82131dfd20656378e0526a8399b24f1216fb906c5f4924a12fbcd692f1e2b922af41f1c3ce36b062be3d0c9588e020cf8026121a17b165c433225e40caa35500a4c4865a8f8249f2a92232d7f05f5299e7bc16b337bd3f2dd2c97a058e29eca126327b20c57af8229ab551b50e06a89139ecae2f93096ee5b603f4306e6807163f96deaa2bc8269aa41fbb0669450a01252af4b60140a9eb0f887c5c7c60835e76b512abfea057791758638591f308550b2b65dd3f11a8592fa7dbdf6e248ff27b37fad0751822e7d203c465612296f5f733d86d04a3e5ed7a6d7a8ad915a126dd782fb153c2162f17aff67c64fa1e44d32a3f40b994a39275eba28d79789b85ba9ca68134335ebceaeb3d2b50cd4ec75e4110e14a5f576bc6ed063282dbb7771d15ac5e3082e361b0642fe56cba92cb3a83cd7998ee3f53b81c39be37d22c2c2c72594822c71e24590f55949872d1637a49a44af916bc7b83b425519b08825632018a94fcefd3bf04ceb46d1c96cff2ca9ec5fe30f1e9a9a34faacfeecc0754de43582953a0687b40ccea9e19a4265c6f79be5a6a3a6b0fbf77d48482fa1869fd2ad55493e30922d48c7aa9cf1828a97e9af28252aa832432d4613bd325a5a2570c1df319422692c621922c533449c3a459cb81d8f545cb3fe14ae74ae0df3c6b7d9be514181899f2c3b352a663df17bdb0215fcca4625bc1606890ae145d802c9a47362e4b2948291aa98d291caf6b8ce7efbd9d2f09d8661dab5cdb86121505785598a64a403a18a57ffd16d5e765b5f88af0b8829f8c98919946bebf9a14b555046cba08b71a15c634f2928e2a689253c5dd89b38e7946d9c8bd899f33dc17e4f1e3fe51d5b1cc1ab09cb872179201f5765db514692be0d93e7c6313c4063702eea8f311c23797686a3fd27b187b81e69a816c136e4f5d9d57a78f2f60644ed9312c47c0bb530dc0a25b13d75f5647dbde03b7cb9e00bedf238eb4ebd5d2e1e391997cbd327cfbe798af8c70df6fcf64acb84aba10a3ff5e2d7edbca4f64cdefdb1279fabf9596036ab6de8ee2e31e310f6623ff96c7eaaddad4471df103db437abe9e163d83e7f7c7bc2dd26ac437e6b063ee1729cb0bce7e19a6ff3b0935ada473c5ce563863d3ee2e1f631c36eb7a2b63fdc6f456d1f76ff18828d8f1af6ada8ed0f8f5b51db873d3f8660f363863d6f456d7bb8e58fd8922d7f04c11a7dccb0e9238441a38fd8928d3f8660e56386cd1f210c5af905d47e27ce8f737c538b84695865a79518593400de8158de5b5682c8c7d4c362af3880c259e4304e285b573df5530f0fb8155b5e2dbec3eed380c3e2ad675fbc7cbc3e7bfdc3834bbd6d5e9c593c1d71ac5b6c125568a1a04ed5ab483d9062c1154e03e594e6abb0ac72c111dfa6dddcf9a1bf30f509af0998f876572bc4ca3767e856c180a7a29533557c130e2bc645858f9791ae8f842a87ce7202b3875bca0a002df8e39a8786dc19623f5ef012d40f468be09a726f1eb34185b847769ba172052073ad79cba10768842060531eb6a9c441aa31723567681d6eeb2349dff5e77e506e48b9ebdc1064ccb1f09b2a16fa42a15fb47a3f54c779a4adc46265129ce84ba16325b8bef1934ce17b7a70d947aa866f258d0cdaca6fb11a11f53c464983b76116553b3acced1e230bf63c32855a1d762e49f52745c39691e1314fb8513dc3329c246478c4b76ff782d56452dc9231aa0790e1b83d642b03ddd2362da4bce5436c09195b4019b167b7dc11e68e0873fb53e22e59099e92114cea59e6a45bef1e9e6e70cd8e4d3a995430d39f3ccb1359161eb0453c225a8cb7444fc8409a88951fe2bfc7b19987b25e2b89bd41d676f8451a006f548076a72b3cf851875bf79c00cf5b85973f6f7e69681389b4c5a5375c398bf6185819aa14b628790b0e74b2ff8afdaa67b180d8f0df013963eea4adbe2015de6e0ec763914532688f3e1e535dd98f466535f28be3030c1fb3de2feeeaa7688a6300d7c333139cb696db83300106886a2dfcf727a95b274a6026997bb782e308e118b270cceadab1c68d04804cd86641ae3465539e2733ac4eb96adc6d3439090121e0b87a30c1ffbde50c1182fa793f3a921f344b38fef6ceb247c6a42d07c3a321b491c9c2255bd064bac6c271d455a967403bf52d7b64383a84f87df1dc941a8f01b9874a43e48002896ebbb6ff3a6d7ffc6999d1e0caa933f1c143167cc2e4cd55fa3861737656e9276cde9c65aea76c1b3b1567731477faefd49db1f73d79fc3790968cd53d9089cf768dd9c7c6f46fc991beb1fd293318bb070bf3bccdeed5b7e3588f49a99bbc18b1bccdec5ecfec392c668594edf38810794d61a8b619e2baa6b2abc4a1e77868447e8f1c2abb99eb59137bcc53f581ac967e860043377c13440d2682052d8d5003a11c5680b2b55afe0c0255d103b3b1986c773016f2a273849450728f0014024878580d322b156e660a1603392d0815954812694b3cead898e201b67a2d96fbb3b3449d5a6035d4578b095bccb4a2e095535bb71f1e006a21035269ab6ffb025955ac8ed2726cd6e28ce7a62de23e865304e9a34304338fe031cf6196af8130b0c5e5d82c5d64434741d8ba02a7a8acbb755b215e4bd4a1752f79c53e89cdb813da915644042165d9c36908ceab3488823fe09c62c5ad5d976035394c41409369203886f5d40632badb447555d12701de7042caf748839b97a00bea9d2bc25cc5923b62b71097efb415822a14577628904d7db5f02b329e8201bb2add0cba4ed7ca8f25c52cf3dd1810a46c6fd85c92eabac5cf05a803d3b49ca34491e1c61a400e2020c009168084f02a961e263558a89a8ae7a317147ba30018cfad11201091bba52e4412032bb18497b6010b89e14d30b8863675c226b43a629c5be091c4bd910c6d1dc480ff44f726f605c996ff0641bf5657cb645f2cc04a81295310bb230b2b237fcd227f641b93900562c1dbb187e5c54bc1c5f58fe530d1c35eb13056ee270824d61e4e96fa97b1086a57591af497a7f1fada12407595c563d73dd800eb34232298dd76d1f032766c2b2be8b7d147ab399f911dd4c450a32c47171926c5405518675272e8b18a743dc490c11a6db5a0710f16096d61c62d59062ad2d45ce847cad9e112722b9871d6a001d9f54875f56d8fd4552c75c3e04e106b4501602a0f3b23942abaf77b81252ba267ff23d17e11b19be5c4b08b0120b08d606926dd4fff96f260d9082530a0a8c8ad6ed9c4a8a53a98e93282e1534f24c014307931680f334caaa76fc14c729f03721e0305377775f9105d66a4792a19a609b011871f0c802c52b6640731c9ad6b13c84a400c2c5a0f1b961e0be1ee542760e018d529d2bae5ec54186a0dcab979ce890954cbe6a951764b004695b29319b130ca2defc67d0d03b3cfe6d311cfb0edf8ae0abf6a9901c80e30540b53786be4702c5cb38236da2aef8d73233240516a2fa64e2d47d8b2e8807112b29925ae3625f8c47f097f948ab27fdd142e6500e3a2ec482a3ecb8ae81372216670109fba56cf10a66630dd8190a3412e465aa8b6e5b09f238aced5d23bcd6cedd8d11ca6eed16699bd6c0e18834082355fede069ba2c3b6acf495a9b95fe109945d16c15574ffba890600c241aa59c1ca96bfc69291b3a77c79768c09a01e761b31bba844a158c07c972dda5256f1920dc2c838242a98e610588126c2b1ed841c584790654a31f7d375f1cf084f09768893102a9667076d34090a6ed11867466202de9e4d6b6953aa4061044b687b77c2d8928a28a767631a445f0a831638bae11d873562be0408094d2772bc4322da160b7446dd722782147cb4dd13366736c7b689f0adc0d03026a2b2ae3abe14f217f2bb29da1c666736fc7cfed735cc754fb7959570780273cff49e2564ee6ca4005d31ac9b724769c4145c2be9f5e19e65526e6ec3079c72eef0cb30f7688e7f58923520a3c232e01d90d1f896650f21a69ab1e81cc401dca06eb2791bcb8c49c2f1b4cd2d8ab5eec3ef291762ba9b8be81de59f5a02a38ab00ed723d06299ba31512f491493a1841f8bb183a260cc1860c15604cb4069b8a517e7f24ea2d3d9d77eddbe2897492464853252f06da2ca07a5b70a7bb1fa65ad3b50386c5cf999674b969c3726b9fe69d8d554f993c879f325bb353a6dd618b829e05316bb735379f876915007fb86135cf8598a0218859a711d3eeb0c5a3cf83980d293e9d37d16bc52b65af8b399b3d54e187685312add610449019ce663bab603b13877b25835439f135d613f712fe7f262385cba74d2bbf6dee5fb781f2f90cb354023e4a36a768738886091f49b1a8e4b98cb463a4303c77605f83888c94771efde4b2a94836d9d4a60bfa22ec81abd9ce0312b16471dc1e2b8850731b18cf4089ed916fa990ee1cba11f85236ceed3c86d306a1b4a62363fe3cf853c6087554c39fb5e24ea0c2b2b97f917bde572a8e8a4f1dec6b4eab787bb0cc3bdf6632520db51ba6bc01881a9a2a908b01ab7a1e23ad79a2594c5b6345798c75e43297f730a4ef6ad8e3704bc13d4ee6e53d1313a1d4e253c0f8dddb85536e77cf4bb7a2019a96e731d05de97ca4b2107cc203b1392f2bea51cd07547bb8b3c3dc606225b87005ae7db3d33b8ed42db0956e9dc9cac8a87009b6b5794f39da40eeb173adc078c3592927500ad5a0a4c384eb03809400d11de731b182b208a6e926fe0080e606c5d7ad1d0bced806421aa695fca0a0d4dabe9cc7442413da5a11f06103e5c0c38a5e457054e1550ca574070297c06878733e9ba704d601aed5db0d585719ec28fd3893610e00abf66a81816e38b6c1ea027b7097b449d8e6413684a3cf64f802dd55ab753ce8ee3eaea1e0bf67c30d65e4405d5071392ccce4d9141641ad5ee68a6a0f2febc5bfce63f86a3208a257b26e5c6c6e750ee6a0bca5ed7bf703059e7cb54a634378630418f87c4443ed56512830c3c8e30edd50c2e1473e13e150e17037416ce7dcadc4b78433b2b4ea003d293b35eb09e6dff889b4e0bff3301925995ccd9b8976598816aad5dac399685e1e680ea707058f2c0f3bee2095e75c283911f5accd738ab6e4cae2b18733d93e6ced39ad97c006c8615d72d97bf09cc9488ba573f03c71b41707fa3b12f4d37b5f98cdfbc23cdcfbc2deb657ef9cc718c9bdd75cbcbd70a1ee632c3f55dd50ad599c4cef368dd424f893cfc5086833719026c9fb699982453282f7b53a132ba0a1fbabd49e8a9db2c7067f01ac002be53c17b5a0eb2e0186ec6a9156a40a20b14310517e176af113a959b1324d649a0dc311410b040beb9f892cab1dbd13304c4b891deef81e1e7b3e177aa297010b599e2f1c0b563f546e8444f94483b4766266026ea905b215f69ecf49b01658fed2d056c9b29aab53b3eb71e53c8659d81a78795fd1ee0950d54edcba93ce659cc69c96e56760421b969fc4b361cf82c41fb5a98be7916fdd1c2d13fa6cd853182825c2a9ae561f52bd118632e799a408189441114ad3f35cd8f25c8261c5b5f330b1ac20556dade24138299e20a077ce8294dc9be70201a1d98a42d146a8c0f03f139b8e07524fc5f2388b953219b696f5fd3e1779c403febc821295bd90a4fad9f44ca2c3dc37dbbf796123f7cdf66f7226631cf9ed310e3ab731f6b18d716e63ccdb18cfc57a33a7531335dbadc66903b43b1f4959fb7442f6eca954fb627b5edaa71fe3d8177b6c639cdb629f8957ac6571c8a9b26e5949e4e988c0873b97610e87706a3ecc7a8aa21ece269f42e969c05da79041732b0f3c9f14aa86b499daac4ef1b8f0c5eb20cfc431d6b86cf9a76c7ba8713db394c956ac5d5f8571c97bab77b811c2993026a3ab327a0a9e380fac6d7c897c1eabcd65cf36aeae1e256fab7d2ef69a20c1a85507677564f6b2378738939dc365beb57358e8cc764e6146cf3b83199fc1fadc3a887da019e84c768f77926c76e8a9ae20556272a0f358efb2ed9db6ed9db2ad773b97bd23841e8743c93880a0c0e4f03b3cc299d81a95045d430b6a3107d61a30c7bade259e89bb0dc899d62e72dd6036d80120249ec9fe06ae282a860c34deaa3336bcf2e3c6b90619f9ab363afb3918cabf67c3b51d1ff4d86dad58b9b8d552d20d60f59f6050d10635a30fea97ca923b19145a2ed3d87aaaf0eeaa27ef91c8b06b643f15b06774006cdbbd3e8c8c0442f700de30628095e2adcc67f01613860bef85acb1591dde49dd6f75e81aab09ae0efd72f47a5b9f976a45ecd1c7147d4c8655660d7a82a769a254fa972abb3ba1ac4335ef50a6a8cc169423ce4fd186504abf369e20c1fb127caaf138c2f4de973092437e58eaf32759b57e6d44c147144f47f48b2c923b715e5372f7753dbaaf737297472bf336a6f19d0c6c1e075653df863693bc3db44fae31a54f43ad460ebad9c23d0db472e0a9e735ebfa015c9d1e0093c364187e825afa950db8c3212bc0a7c31056cec498e60ecca05150a26e260b0d203d601e2d967558ae801570c0c35303104ac49070806a12d10f4225bba5af8b7d59bc7adece102648a878d57311c77204d636b573f1c7f0a870c4e91c7b6a685c81d311da5e9466384c30a7546d6d39fa8131db33890d9509379d65faa462c84ad626a37afb8dd5baf264acef006044303c847a3e7b1098e682be3bd635039c350dad021050a897aa08794d6bbd32ad668a93ac15e042649e496b948b6d7c26f363a9413a5b7f1e548758b5116afc0d95aa58ce79031a1059b4b4443a9f446361ef2a50572207712b193d5328941cf996c7b4bb465eb56dcdb9be01c448368812ee91d190c83e0fb122869ee810d9a17fca9f89fb2132e4b7a08601686368c883cd72bc7a95038a1decc320222cd659f52933621956d48664198afb7c3d1b1f254e06f763fe74b1f632f0610af2a23aba1f422ad78af4780a83cd2c3ea2788a7749aeb7757cdef90a14ccaacb9b421b90a9b5130a15a07b86f903542dfbf8b2ccdba75cfe5a88b234fa3b88b2a59c0997df01bef0cb17871f3e19adb7761af72e2e2823a121d3e257bd2d13a86683d35c28034f043d312ece8349fe41c091e139b061663f1d6cf7d41ae7db6374dce938598d170fdbd21e8498fb9693db874afecf049b268bdc8e4407116b06d7dec4d1121f8a1a466fe254e910bb956e4e0376dbaf0e6c8d3ee50020c7a72ca91c28a3472819ae2e7963c4fde24d19c0a73a10f059dfb4d40faab8ca9bc8edc0b17e29949ff6240742ca523f14b54fdfcc432ca1bf613a48e86f0aebdb91d498d3fc73ab1f27acee8cb027c2aa3564d6e79e68697d0621ef0916a4eefd783e3907209fa48c96da215b3dbe41fd4eaf139c9645864e75584fc322d48f37b7f219fc1ae1954eb4ed360fa7d91d955df54cf65ae71284da1b16afb468def00f107b1bc470f14e9a05487ce54b9972768cdda58532c7a29fd6baaf0b8aa48be0baebb55aa1274af86cc6de5109555b92a5f71ea4b17d8ef21126c3dd32f3064425c3b3a7fa064475ca0d9f768cb5fb18ab971bd99db31aa3f04647cff0ea1b688ecc33c9946b3d6fd6a19f20ecce598d71ba7015d9b27c269dd918770520a3bcad00ce658cad79b6944c5febdecb36c63351520d27ed5a86376f46adcdb0061dfe797687c25a4b12a05dcad2d07db535514b8b3b7aff64bfea797ea442fa3546cf1dd8fc32132d5c9167d36baa4bc93d35243adcda56bc73674db5d6493555745acea102551ba8c1db95da3772883c1162fd38e3e5d7a077c925f4aa868a08fa3ce3ba010bfe3c39a4cc9a4ae8d4535f8a489aa17349732979831aa7331c75958291ce3416c1a1a197bc94397527524b63399dd799786b303c13d218a3a76acd9c5c99f473f1d880a43ed2e266a2de9377c7791b8eb833d0bd53d35ba572683274bf09a51e5a563ea81d59d9b35de3e34f366203d6edc90d8ac692dcec21ae69435dace3b661bdbb96ca3d238851c41b44b177e411ef745357832591501df4a5eb09dec1cc9bf592d960d0258d55104740bf189cfe11e2f07654dd609aa67e5faceb3d9c027543d91ec0f4afabe5f3a089087e3902046c1e0129cc71c480db44fb243298ff12591cb71cdda0f30a40460332b756022d7680cb3bc8395afd00b45c9f6e28bf24c3e923f45e61c03b02cccf7a41a866a5bddfd00020bbe5c05147d03a926c9f40d8ee1d803468e57824f7e9f5a393eb33e92bd83a107e3aa5be16efd281eefcb6d8e8eab01aa27e31c453fcb1a3210d79d3062b7a23e0ee187e4c067b34f00c72022cc8e4ada32c892b4c5be5553656dc1a7390752699ab35a19c480b10f4f969684755d1838b3278879056707b64a2bb266919c86a6bddb028fadeb21adbe0fd9cfa8bd9d428facb3875ed16486ca1603bceedf34dfe2582c15a767cac6c583b7a250dec7aab67403b935f9c35f96bad240acda9e67fa8cde13843c83ff12c1a245b9ec7e1b1cea9c42a9ccaea08a925508d53478a8fa7d9dbba1d7bf301bfdc6bfd4bd85abd58f266719a12686af8e6bc35b3f1cccc60189f0350a0cd1b29f6d4228341aba3117bf00132050143246a9550f65663fa34798f9824d1760b3ac578c3926aa89c962d4ad6aa4ed6d8ac4991a741aa0868d74a837fe9aa502ad2da5deb828cc98a35f16a601e03bc6e4e53f2c223eb8d4181adc1dfde2b51f6f67f74eccd6929b5d646c65b57146fe4c9d6bac256ca9a3756f76d23e5c6bfde1d776458b7ad95bdb79f60cd66b014b44f90598abcf820c57b89595e1a3081adf1337c23eb7e635a267144e69bf79313743f1c7b53c86cbd2fb79691d5da9978d7c7e648b786796179f8e3d81e7906efbdb27dae8695096bcbb9179f871cb2372b645fbae26d2eebb684de9595d7ad83a2153f5a3729ef9cd23d811b80165e9cdf1d216a2f39be3d604c4e77b95a607151a5243cf62aa0d32a54ef6be9ad3e9b3711457f9fbd5da8352429616f0abaf5a6f5566779af6f3d5663b6635bd0719d36f1f875714d61ddd268df41c506e66dba3f4191436faa516a9d6f623b9614985960bdad8ead84b70c7ad9eeed9d3fb18bfd8e37850b68261c9bf7f6dcf2ec0d1069eb232c9bb8d93a78e2ab16790cd3be76d2c1d6fbe93a4672f14e9d0329df0cbdb20d7bf830e72ed31c376c2b493e6645f1d66dc7811bdbd60382b11f0dca736f5b0a6583ffde5abce7d42bddf919b04e6fec3a5677d67a462ded22bb6e26cb890928de29feedbe425bd7540a5b6110a2be9f804191bbd4b8fd9341ffc11914ad4bb8fdefc6a0adab21589b9c32e88ec9c14756f446cefd846167dcdaaff3de7119b6259813ac72e44f7613a26dfce9a6c58617ff7efef4b6bdd5fb1cf6ad597a89c716c8e5c8a2d85f636b078d63eed6ebdaa01737fe8c4706b54e679eb7e03ddd6d69c917f8ccf9b3751cb100abe24470068d1b83fa6291534ce2c6a1de3b8ebca1e406595eb63671e4d623baaa7f0a1eadb35897f07ff2e83f328fd659bdf1fbdf8747b7d8c1372f9e7ff2ac9d6ca5ca7569a3ee57f0a84c5ada440fde99d35c3ac393d34b9233cc3e6ac3e6d196366768232f9d2642be92c6b9e41fb5e9d8146dcb3f6a1e0ed1cb31d299e4dfb74c69475590b437edcb5b9a6de77a2e9d45a820cb6ff48349b969e0ab5b535674b96d9602086156ed70b9ddb31ebbde71babaa0226f138a46f887ec8dfc77118b9a6986efb2b85bac1cadc8fd349f03a32131ea471c107643dc44f771f34d58958a8b1b6b4047915cba0fb7d7c6e6ed64c827eb90c230cdc44fdfc55b715b7b6eca26bd2558f7e6638f611f9e798e697321d306a2fbe47078f6f2d593e5f5d5e3e7afbe7e71f5ed83cb6f1fbfbe7af6fdbfe6443c16d50493c6b27fe066974475d6a5674a3c6bfd8d410e9446a91be44099ac3c75f5fd834b92542e97ab1ffceaf6af959a2a2fa3d424329abf5366d717d93be9a7de09d6b5ba62eb4443d60f1840b891d8030a540d0e7bf526c94004888c8ef0de58b9c15f54a2d729c69e642dae359b1f80a6a10fd9329a73a87ae35a6baf34d0329ddc274bde4ca0a4f950d0e6cbc03c45e092950ce8e67ddc3fee92e3d694cc328c96a5d06f2e6fded319ff7b47f8a4c6e56eb12a6e5c4499b684323f6eb6b173ca99c7d2b32499a37ceae99626a96dd32d896f9ceeff495bf3a7dfd9e74d2fd5bb35e5c1bcc05f33fbd8e64a757b2f8f7daed0bcfada9ee8e3f8a9a7398a20dda2d7ceefe3a65f39bd02332df98699f24e6196139484f7abeebf07dfef9dc1ac4b425e058e1b2fe06f56eb59d340dc1a870d3b5520720d1dee3045354c6f6143a8c244477d159fe86e6051c01a869dcf2c9e652075441657153d154d38fa4b446b018423071427e99f6af036fbfaa33322a58d537b58e60852f5f7246788e61ef609fd7866842e8805551c71a057a2d16ea8c5038468af8df012758bb80a7aeaa16f480466664455e37e0eb2941294539fd97c49d5a934b68c826dc6c571ba39f49f9f7247f8b8e013483b30d7aada06e69ca473db4dffbb58329fbc992d370a629d7e8ac18e08e804c01156d275a40db4881e9f48c69066ed63676c331554e8abac18865252079a94c45e6e7b76baf3c6c205ee27e6d5c00e58c76b678b1a0b4e256b6c26062321ae0a680b30151a0c024c240dab6214e59640d39b683b52c40cac278c198a87ac951b7a18697a1b4bf17695e741131e2d545d48ec86500a02c1123a08647a28275a5ba0623804141865e0c3b018dacaa67c4690b6617ef46cfa66acd3fba0b3f7069916073993c9d7a9c7605d0d5df8a9fb16f950debd19701e629461eb71db213523418ff2ea6db006ba20a814180005a9ab959cce882c34601000234459a27a16092047a0989b45e0d7e1476d36b8b1a2f4457fd673e9cc4d288468a2ec3290e884aec5608e16c1f88cc852b56433ec37efce4cca326d9d6ec43070473cb3cc90224784a9a2bb11df2f40ae1db7ed7773f75b053de7eb5ca12eb29a4c338c58b275269fdefadd1acee83dd54885ad77ed2db11aef1e274300a932d240ca2d6f96e6b0a143b4b7d540627a30c4100b26b67399c3696d51f449c46d12f13889e8b388368b787d163f75f4c16127fa296bffb0bb85529b8d97ce89a5743f73a90cad1f7fe63abe783b6c9dbc7690c8d2736a94e7273c74d5526e98ea0d87ae4fbe63a543c490dab2bd6f51f83cc32861587ae93c97b1963130d6023bc3071b6db0f1dc062b452d611e23c93a1d698d2d760600bb6a59afd9daecaaf89b2ad7550f009a6d35a82d32a02dea11757534d1546a4011d728d38136abea45fd23027162901100138825072a517ff2a1d8cd81ee6930eb747c144ec67a1ec4f39664aadb570377c271a1a075910e5e4f6c75acc088f28e466a910163c7e836cec5a4862c5093daa0d260536f1dcd6b804d5d5637a9813905933a1c4d6ab7a8ed242501a041d37253cca48e629cb519d4d12dea0840b6ae921f09edb74c1fbc738274ddc666516f0675dc0cea78625047b3a8e36e51c7a3451d37933aee26753c9ad4d16d6a808ca1f4852bcea172efe296059e774d85960568aa03ab0fbb3ab85d1d8e76b59bd56137abc36656bb551dddaa8e9b551dddac0e6656c753b33aba5d1d37bb3aee767574c33a6e86753c33c3ba629dcdb076bb3aec767538dad5665687cdac8e47b33aba5d1dcdae8e47bb3aba611d77c33a9e99615d07a9599d18c09740679bc110fe0009ba6e6675c4c993e0bf81cba5de7601efda11c51315164de5a0ad0cf09675f8aa0d1b7ca67c885dd7a4af641d943994cdd01634036b2a4445edd5e635202a2981604706510de78a15c4946a59f17af4aa2624ac5f33d2cacb3aad72429455e0e865bc25523b44ecb7beda4117720a421a65d9ca2bc22b0dab461886488b534e29b14a6a883d07642b17b87ff45fd6d56120d6ac32aba77630f8c1b6a279a92a0965bdaa4a8d62c5554f7230ec42320f1e63afa2a52ccecf4a3e396220a7160bdc29a467f0ae0683d94a4569826aa86e30b896fae390df38e44cab11840c2dde68d1009ec51c5e9e5884d0b6d51aea0a7483dcedaa86b19d1859fb34941d07a01cd502196bb4a2268edd9a096f7e5352a525488c19c0aee408da6e1521c0c935842b31d83c8c5e2c433c4eb811947322e5357283579363c5e91bf487233383e0c8c65a235be05e6d28207d82dcd1c95d55bb9a3185f6c2142547c2be026175ed504061852fdd0c38e070714df521771da54883f4a9aa902b62edc75df021d180f7644ca431a8dff1fea4a66295465fdb8c1d1aa8b548d4b03d8aae8e5e3f6c9550be9f6a186c7d4e0bae44661a0ff5aaa9a40af6c5c1135edcae57f72e2e1e72613c300312e2fdbb68fda73f701ec2aae6a17c5d01551a8e1553239ac16e1d6f507a404813e99055aa802b36510bd82e64358c96865256490d6125ec1caa5bbd2e37d7cfd90cf719bb4a811237795094d5bdf0a5ab5103390fcba8fa53aada99f5191d4c419f0e4ae56089bef045a9d4817d1587c1cfb1d7f5ba1550f53146e950c1f449f79801fac275a546054ca9aa2ac7ecb21c81cb4c3a3666734995359b5304855bddac320adb340575619b3dc38e871c40a1680df43bf25d2a720e210a2c49d18b29a3e52f4ae203321aa1fd1a248ad80f4e7bf13067a2a0b08fd8e0bf3a5427421e1cd9e48e037516544a75f7ea36f8e05057a72303bd903c09d1e44577ae90a18d5402b24b52b68a6db6cebfcd4c0db8eecc110390b711dd64357432fc5eb776732a46200c5d375514fa4928f8b3174eead1ce4a62b0fc367beb2baed354bbe661cde8918cddadd72570635cef2cfe1182280f99777d726e40d7550e6bae82dc7d0c4f166dddbdcf66c065aa08d301fb787777f7b5f17e7a23b20346bdf7adb80c7e02353b86d51e9fc730b9d13fc2302bcabf7b56a31c6609b0f619e272335755229e891ba214b5546cb8711f6fdcc71baf8df777f7bff9fdbd7308602349a10669c3dcc3e7312680a14a173b5bfdeefeab37dffcfedeff1f0000ffff5fe69651a1010100", + "67965ff5ea3fd75bf5d6891d715a8d5f": "1f8b08000000000000ffaae65250502acecc4b2fcd492c52b252502ac8292d4acc51e2aae502040000ffff3f6c01c21b000000", + "6d6389bc500aa7c88f06a525ffdc3964": "1f8b08000000000000ff2ccdb10dc3201046e13a37c52f2a68f00caed266058c023939e690392ac4ee511257affaf46a887bc84fe4939336223eaa9c0a4b80c9acafbef928c79265eb2985b72c570dddcc18f052b5f9b556bf466529edb167cc69c811a55e22b8b05a8741c025fdfdb7b2e10fbed83a47933e010000fffff34f28648b000000", + "6db581c2c298b22b8281e79de71aa56a": "1f8b08000000000000ffb491c16ae3301086ef7e8a61c0e080edc0664fc6f1b224bb90438ba169ef634b8945248d91959420f4eec581b6a487de7a9ac37cccfc1f7f2dd4057a4dd3b4c6f15afc06d315bfb04900ea61f5be1085b25a5959749afb1336ff84f21042c9a39fca07165297ade351ba18ebe5b06a927a29d4a549923a5dc3819df9cf2ebbe75fc86d68924fca1eb58c318740bd576cab8fbb8f64e457ac253f64e11e69c991d96d63ace0db17e56e0b719183917e605101b6cf7b8c0b0890de74d3358ce4bc229d6108e581b598859673fe72f046e3e293d4ca9ef69cfd74d6702ba002ecbc85cedbe2959c55f68839a0204f45cff6a09cc10af0af9370e5334c6727ff600e1d8b6b05b821db4b3d8ba64d52a710e7f9160000ffff43242cc0f6010000", + "6e0c924074f3636a40c0a94549a7d6b0": "1f8b08000000000000ffbc544f6b1b3f10bde7530c22fee14064c32f3db9eb2d213625d006d386dcb5d6d82ba295965939ae2bf4dd8bf68fbd9bbabeb5975d09cd8cde7b9a3789546fb0d6a2aae6ac3cf00f5064fc7f965e0124f95d7720b9325a19e499b6eb57967a3fb1a5ab265fad443df94c765786904cf3bb3aaf5771a3ad709cd43677754d80643407adccebb31d1bdc77859e4481936f58d91dad31849570f9f8e6167c5d66062c730632677849aa107460e1063c8c9a8a000f84c2213ce11e86c856644ba410da9b213439c954aab7f4aafd5d254e641a3bc8cda6fef2dcbe21b5ebcc924442d968e37214f29812375cf7587a0f24cc16e1ba84d91c1a4cf7ce5105bc85138338a80d98183579b04561cdf3a144600e7f38d60b4c5c9e7a1fa36a9d56a25a0bad7e2244d15d9ef6eaa191c7c46edff17779fa9fc9aaf2639714ff28644328b3f2707aa28d25180fc57c11f4202afcaecc56630837a00c9c8d58e91d091d42ff891247ddb2af4e71419e77121597358a571c1f4468b535bc50526a6469e4e3fdf5052e13ef63fda1ba21764b3275327d07a8aff1199d5b2cfdaccb9638469dac31f0c53bb0b5393c0c42568244f1b8086176fe498e441f1710ce194b998d65b7109b6006ec45e13e7a6cf4478028951b2268adf657d0ed051965b627804ba9dc6580ff5c41193b9ad82d30299ce005badc4a3603b6587e593e2f8f076b6b368a8a78724f0807bb836a47f8e9446e8195237bf88d5f3baf4edb539325d3ce5ffd29d77a3a99d6132c4eba5e1f4603f1351a87d48cb4d11c4ab15546384be376a5aca941b457ff0a0000ffffc89382642d060000", + "70731710a6b9f5808311e8dc2d8f7460": "1f8b08000000000000ff7c52cd8a1b3d10bcfb29fa1318fc416686dc72900cf9bb267b302c3985b6a667d56b8d24a4f62c8ef1bb87b16cafc3929c24d155d5adaad6ff7df9fe79f3e3e12b3819fd7aa1eb01a01d613f5f00f44882107024a326a69714b328b031080531ea857b71a6a7892d35e7c73be0c0c2e89b62d19379afee85acc35c488cdacbd07cb89684c5d3fad37e18d04768e07884362629edc794da6f3852bb9911fc8be074d25d852f008ec706788010e50effc8e21e699bd0eee074aa0d96068a1c3c1547241b7c5aa96d6dd6da52d4ffb0bcaa51e8ff41c2943c5b148ee19ef8a74bb6e4a1499871bcf309f7e228085b96c34f893b0a0ababf702fe51b771ee42d1f96eb5709cf610799bc516c6350e0320d176229240f286ea578c4272add80d30c6ad9c6f307ce21e8ee1ab9dec6feb05e54dd9e27b01e4b316a1e073950be84560d4a98e7ac576af0585c3b2fd0ab2b157260f2fdcda8aee7e9aabe34f08c13169b39bd35f8f9e6afeeea4cbaab0bfa3b0000ffff85cad3beb8020000", + "70ae08ec6bfcd89151868c693af94486": "1f8b08000000000000ff7492c18edb201086cfcc534c39d99585db957ab19443ab6ebb87dd4d14a7eab1621deca0624018278da2bc7b35d8de5372b060f0c7fcffcce065f357760a7ba98d0a0380eebd0b113360dcb88e0330dee97818df44e3fab2736f63db4ae3ca650dcaee55e0f730658fe7bb3f493c94c787bbc0b2923b0e39c051061cfae8935f5127ed7418f0e3e4443cda4e5b05d08eb6416d75cc72bc00b0b2c4cd688cb61d36ceb6bac336b81ee341a1b247012cd55dad283a8b9f2a66bc7ed96dfe6cd6db1d2f907ffef4f085e7c00e6eb8853dadeb8419d748430cb1e3a0c20df657fdb82596102f87e1e4c2fe96f2d7bafebdde7e9f516054a80ae973011835a24807aba91fafea4417a7b66464a240aaaa403252e0a245b9749b6e7e58a1d5062fc098719df821a334990a2107760560947aeeebab3a65f376eda37676b80022e2d3eee5f9599edd182be4266dc421f68617c0d84ef5dec8a8866fee5f8569de291197de57f39babe20251a14294eff134f7bc987494f1442f7ee6f8722d805d73b8c2ff000000ffff685bab16cb020000", + "749dc26d85a249c8c5a3efa92cb0293b": "1f8b08000000000000ff010000ffff0000000000000000", + "7a58ef101f5e8bc63d4aa81d805d3dba": "1f8b08000000000000ff72c8cc2dc82f2a5150aa4bcacf2f292e294a2cd02f4e2e2ed68773f5405c256b2e844a87b4fca292c4f2d4e2fcdc54fdb4fc3c185b37ad2835551fa4393127472f37334f0fa213a135a9342d2d31275fc99a0b100000ffff04baf43578000000", + "82bafaaf693dd31835437687f3bc795c": "1f8b08000000000000ff24ccb1aec2300c05d0bd5f71d5b73c8612b1a18c4830b232a2d2baa9456223c711e2ef11b01f9d3f9cd450d4082c8b5a199d55a08256591278b71754a288d5fd516308897d6db7eda425084ff72aaf992c241d3eb41bc073c493f2a485aec9889c257580db28357ff788fef20370c5a12dcb9815ffc7f3a6efde010000fffff7ca089490000000", + "83e722486c9aaa60954a8c8bcd026763": "1f8b08000000000000ff7c90c14ac4400c86ef798a50f7d0824cef82278fa22ebb4f909da6ddc17666c864441de6dda5587b50f09404fe3fff9744b2af34319255177c02704b0ca2d80262e359fbab6a6c609d26a7d77c31362cfd142e791c690efd561be800f42332966242d4649e696173e214b258aef5a7c3a492ad1640dcacbb082a402928e427c603e1dd3d9a0d0b6b85bec7520e648e942ccdee936bc58147cab3a25be2cc0b7ba5556e60ccde62fbb61afea5e9feac6cedcef510bcf2bb76c82241704516d62c1ead39b11f58daf539e6aca439bd3cdea298b38af353dbecc14f61e0d91c2544965a6f7ec7355df77d36fba156f80a0000ffff7c5baa9c8e010000", + "8d1395ead30d0841f952b8cca46300a8": "1f8b08000000000000ffacce410a02310c40d17d4f11ba3707f00e82201ea034510aa529498a8c43efeec6c185ab8139c0ffbc13143a435c5794ee861721ae782bed396ad2f266bc3762b52cca7362564ece84367266b318005c53b39abc48fbfb5c553aeb9cf04a06dfe6316a5d601bc5b00f303a1d03d8467b01c4e62acb1184df2a864f000000ffff4c95c89e87010000", + "8f7214811ed4641d8d06c428e736e427": "1f8b08000000000000ffaae65250502a284a2d4e2d2956b252885672484a4c4acdd18708e9a6e69529c572d57201020000ffff2214070e27000000", + "9897b71949d4e127aa00c50724ae4b5a": "1f8b08000000000000ff24ccb1aec2300c05d0bd5f71d5b73c8612b1a18c4830b232a2d2baa9456223c711e2ef11b01f9d3f9cd450d4082c8b5a199d55a08256591278b71754a288d5fd516308897d6db7eda425084ff72aaf992c241d3eb41bc073c493f2a485aec9889c257580db28357ff788fef20370c5a12dcb9815ffc7f3a6efde010000fffff7ca089490000000", + "9a6b926cb5a5d57f2ebe46e33ce680be": "1f8b08000000000000ff7c51cf6bc23014bee7af789481a7b678edd841711bc270e2d46b784d5f63306d6292ba8d92ff7dd4ead876d82990efc7fbdef734b6b243490548c39834050348219966d369f6913046ed79fc7a7ee58fabfd43201f18eb7b5035d009326383cf16f3eda72548acf1413af209a431324feeac04f9517fc34e9af57d0ad45610236325d5c611f7c2291b8a0bf4bf738ca39d3f6948054c84230c0415062cd113f4fda89c599badb0a1ec49698a910fc1ef2790eebe93fccc315836c74a39482ddc6d37b3fdf28dcf77cb97055f2c37b9ed4aad448ede53f0434d5c35d6b8c02d8643f16be61ac51125ad8f72584fb53ea0d66305d280a4005285435766c234b9346557d7a84dfee7bdf11b534165de5b6db062ecda125c497039c657000000ffffeab6a341c2010000", + "9aec4669fcf2f836741c92fc02cc9098": "1f8b08000000000000ff2cc74d0a84300c06d0f5e41421ab7163cf9496fea16d827ebdbf20ae1ecf351d5a336b42b77913f5e17681ffc4cc2c332334c0e52dfda476b415f76423548bab143d2d7c0a6df4040000ffff73c1922350000000", + "a2aa87a7f3879b4244cf8c8555382e93": "1f8b08000000000000ffbc92414b03311085effb2b1e2b85f552a878743d78d793b7b2946967acc126914cc2e2bf9760060b2a56058f99f95ee6bd4cd66bdd49a0e4e2347581bc60447f8859111f303bde4bd6beeb80777099697b9069ea00c024c7e8477899e2dc0480e32ab85a8c28c5f11d79e1a1e9fb732caefbc6d9d5f78f4ee1b4b9c1d9ca806de4970a68f462dd5ab3fe2e0965e10d651b18e23c1c8f28cffc25f1d320c329de2ffecdfb37fb2a2ae917dbfa34e42da527dc5016b50eb1770123722a62a57d652f57edf8167973ea5ff8e373bc060000fffff48dcecee6020000", + "a5bd9ef051dd34fa95a8ddfe363e527a": "1f8b08000000000000ffec5a5f73dbb8117fd7a7d8e34c3b644785d29be94b3a79b063fbceade3786c25d7b70e4c2e25d420c000a02d57c3efde5900d4bf9328275192bb8b9f64098bfd87c56f7f4bbae6f91d9f20f0dc09adec6020aa5a1b07e960009094954be853a11b4d9dabfd978970d3e696e5ba1a4df46d53965cea51fcdc2d50eb7a74fff7ddebb391415b6b55a0f142f339d3b5b3eca8aed91b5da0b4577793b64d06d960301ac1782a2c944222080b135468b8c3026e1fe138286470ee4097251a0b1c6eb9153958679adc3506a1d486b4f0a2106a32042c84136a025c1550a0c4f0056a3e4106e7253ceac640455e90b94a1ba4ddb9ae6a8933d086044021167e0ddc942b70538c66058955a81ca71c2f659d262d641b5c170ef3d19d6929f50339a178451f524f48915deac20284ea827d499b7c965ec28d5093467203699742bfc0ae8caed1b46d46b227c730e6b7125fc2956c0c979bc27e51fc0fa3f8355add987c8bf825af9075cb51fa8abbe95272b426faeefa224abd17f80063ac6ac91d52c4059a955d2eaed8f5fd6794a320e4dd1b8572d8e14ef717658ecec374df4b6dfc0fdb53148e7ae01e6bdcab39d4d47c00102b79213468bd6b17c23a98a0b3c0a5dc30f893d14dddb62c9673a3fc2df435c6ebda978877b3e66e4aba7e3a1dc3967c0e6827a4f7fb9ccdbc3369be70f5b5560e672e0334461ba028c80a3a6ff5e41872ad1406a74aa32bff731e360d00dc6c08fa0e5ebe829cbde7b2c13471b32463e95f6a5d93f2b8371b0088127ed077de048041d7180565e5d829592ed3446970862bcba335dda822a18d2d21d17adade73f39a5b0c65d0b6e4c09ffd9159b635bf73afc357e644282a3783b691ce32b8e286571612baea89bfff498de63fe12b456ab4241ca06d422b16f49c60c91be9e09e82b6c00d060daffeb6a1e3d58f2f12daf3817c7433d639706674154ca7398b7f6459f4f21a9d11788fbb0b66791827c721b7680c99f8c08ea44c7bb395fdc30bfff00a9490ebe781c674098fbf2c3099fdc295b3693275954c86100aaeb7907c284745110bd8c74db74eaf1611580dc241ce15dc223436a01a0974f79f795539bb419726cb834886f0a1cba6363e730ba9def093617f3165ab09c9d93552f429353f76e3b86becdb7f0dc1b09fc76f2ed2640f360955e08cd5b2b153e61397f982ceba64fed7fa409e94cc4d8f7e7cf182fcf8e7cddbcb3de7bd6e73f6f4f3db61f2df6f2e9e66f13a144f9a67110a6fa6fa2140219d70c11df740acd52e20ee034652d861e32e601ccde7c93c69dbb5157fddce4fda8fc14df2fcf7889b7405a5d439611e578055ed1e77e47a17ca129f90d887b29d8605cc8e359442157d1d369c9ce1153a34b0fd7ce8b80912d81ac4b9193b13aad85e829db34388b0ba448375dd49d6838379c8eeeaadbfd4ee8c523ba44dd92151b20fb4ba70768156b71ef1ef30a865a7fae15b81d622a0af065a9b16d7416b3ea7ca5b4e2247f617bc85bfb62da1cf253e80f15602a095da541ed072833c8e100a1f7661db728ce9e57d3bb14de1c3d301ec12f7e0d713cb701f02642bd7e233eb50e16619b6741ea80a7f0094bed79468a4318e86bc5d50a3232aefa3d9a4d167fceaedcd67f2ece0d8de8ef10db0f99880b95f594c18653dd4348691d3aee170ce8ef7c2f0d3b8e66fb675bee75214743c4bbad279b448ce00e01e8db1c395fed4ed3b52452c843de8bdc8eb9e4c893218633f737ba41ed36c5df2b3fa908ff80dbf0bd1fa150bfc9e0bc96f2582505614b88cbde3e7716f848fb02d190637635b8a430d39067cc223c1a7ebbda609dc94872a682c1a9a0996bb736d0ce66155a8ba716cddee21ba672f6ebd53b5d1395a4bc938554eb8c7cf003232f6691df5539cf4ed361cc8a6e98f68ac9f6299baee86e195fe7ad851f3bca4ea30e8a771a5bb0ab6e880836d72f20e2a72718291789d496ea769c68e8a224da2483284311b132c488fe043e82f2ee69b3d16acdb9fc5721a8dfca300838508a51b5095d8957fb0b8c95682d86a526f10df52484348b6f5ff3fddef2b6c767e7238eeb6e25800b5e26b53b9ed1e7c0966775a08b7a0763c3ca25db0bb5d44e3d7f482547d04a1eb1f5647e4c5d3190885f03cb13e8915fd3667cbc374b64391712abe7d6cfc5dedc9523ee56a823d843c12807e42bef678e7eadd977dbc133c7fbe2ebfe3ebb27db4d91c02bfda4cd33713c46a7b9e097e35137894f93e86822d80fa3c15fc71a682c6dff1ef6a2a086ce21b0d04c1f827ce02fe8dae75463f86fffee8232f2b6f5e77d217cf5d5608ffc9e9c5e9f8f48b3298e8ff3385797e47b5418cd6bceacae4000ce76b00744950fc25e0b90879d80ed0d71be0ec5fe31f049d9367e05d05deff070000ffffe23875a37d280000", + "a85bfd7cc3b5f9eb04967d04cf35cc5e": "1f8b08000000000000ffb4525fabd330147fcfa738373048e09282e0cbb4f7c93b15748203c12749dbb4c6a5392149ebc6e87797a415953995827de99ffcceefdfa993f551760a2421ba77e8233002400d7634dd43f4da76213f773a7e1e2a51635f74580d6d2b0d16ad5175bc7decd015e3d33f9ccbfae88bf149423cdf94a05b60e862108f76d41e6daf6c84bb1268a34665d0a577cae1029b879b9cca8ee7990fa684e384b483ad415b1d1987cb2a29dd82f21eb625247af17608f1a022a32fdf7d7adc7fa0f74013e715dfe681f26779f2ae04ab4d564f97c14eec64948629ef3901987e724c001a8fee858cb292417dec0de3e96385a7e4209726f6ea2ba34be6addca674c98628289ffd567812af646054dbbc258d36882f012de58b8d70ff3d54c2eeb46d0e79dfbf1bc9034b0b7fcb32a701c8d4cb2f94fcbe57b2519e851993984ac83ae20dcae6f50f4de657e84d645a367d555e1e5dd95eb31089736ffea1b95fe1ffab35872e77b6f3d8af2eeb5b000000ffffd35ecdf2fc030000", + "a8ec67aa1e41fcbd2cdd86240d37c5e0": "1f8b08000000000000ff8c565f6fdb36107ff7a7b8e9c9326c0adbd3e02105b2366d36b88e51b9cd80a26818f16c73a5781c49d9f1027ff7e12829b10da4dd83219a3cfeeeffefe864f54dae11641535d93018e8da918f301c00646b1d37cdbda8a82ed674dfac56d2508176bbcf5e3cedbe2cb0225f6108e605c97a37e92558da492f6b43eb35fa972f1c099d9bd0584fc6a02a02568d473ed63fff6a5fc6e2d36c3000787c04bd02412e0671e99cb8d571b320078703ab787c7c3e794f0a4d587c5b1f0e3f8cc0c4912bb6bf14fc71e4ea5dd6aa42ab6072380cceeefb5054e4c3cbb00f45c01038472c53918d6863dc3b7cd9c323a16c900f06450157f34fa00334011544820d1a0761a763b58180316abb0e702ff9942cec36e811e206f9a674cee84a729530c23d6abb06df58016f70251b13793753b84543ae461b3331d84a9f345e00178d78877198bdbbf97a35ff948d4f65f3242b9d8351e700073c6d2e61c4a9124b2f6d3032924f9e5c3ac71a5b1ba531e0a98918405a05b556cae04e7ae422840e916f850d3546c13d82c295b6a8042c373a3052dc2058f45b840a6d440fb4823d35fecc7931280adefa400d876b7ca46c0c6b4f8d0b63c0580921800d505819e951c1f266019357f0e6e676ce18adde1aa50d5c7e7b6a402a05f2d8f84870279dbb83915c45f4a30e8c232f1922a91b43dcc8d8ae61a78d81f9cd1236728bed81c5dd1126fb8b10649d92ca6efb06d9558f811a5ff506275f03c8003b34a677fa8f08d204eacc4ef07dd83d42b5c1ea1b2ad0360593bc42cfabfd492092f3772547faad3618eed80a09af2f97afaf2797b3598b388640a0639f30697672cf55c7979d91152a3032c45e57ba7362fa986dd7b18d88f3b845db1bcb184f69499165c14860718b9e8ba3924c2562b06a6cc59536cc4fea121e995d56a95e2f2ec06a9376a0dde8eb4dcc7137ecd7372e59d58a015cd9ed945b63dcfd2fdbde2e23799c42dfe962de18f378e885161e6fa5c73085cf5f7adc6eafc76566f041742d39ccc5b5b4caa0ef210e670ae7b2c629645f8f598ef704a7e670f8da5992b5d70ef9207db9fd9a48b58c9a23b5078f4a7bac5210cb72d6c7427c0c384c245f96b361fe7c7b466bf0f84f8321b6c48f117d80e14a9bb4e07edbe7e204e788fbc5a2bf334bff9f814b8c6d3d74e01d054222ca48f06779333f413de24851323f1db57af177209bf5667f774c24e5b75eba0028abcd937e6d414264e66a07ace865a1129fa4697098c5872c17c39123275e93b598e4f25eee03d6b44da62b1de4bde1a6d6e12c323c5e5a7e6cb50ceb34a8c49bdff3bcb79de74e3b76da8befae96c3acc8c6704d357655c2c249c4636cbc65b9c121b16decc83791426a29435281a14a1a8415f7f1982708342ec53f3e9135dc754f0bb1bc1b272eb5aa45e8959c315e13d227e13354453e9556af8b7c0a314375514e8cc2fb3579046d57e4eb64ea143631ba302d9ee7a2d0fc82291455a14888fadf24dab6fab19bc3fca991df3f19f896a5b8d97832a14f3ff22d1b2cc769e722bd3b52f3f3e3caa71597d5b4f520f0ec13a2e8ffe563c8d04e3e9659fe5b02f8e98c514419c90dd177e979cacef2c8ae61de25aaefb6ef849859bb3bedba565ad0b6a23a8df436a6693aac981775004b11ae97cb452920e3884e8b021f64ed0cf2a323838b57ed7e383b389a73cffa156180d1c8521c8d006daae9b29c8994411eb827d31696048a92d10cb6e3d6aea8aeb99c9b902621384f0ffb1fe43ac9fc8f3a79f14159b415f2cc66dfab8e2eeefdfbf638512ddae93c28cbd9872e17d3763cf0a3e90232e74935a97d3a062ecbd9823db946a9d08729d4d27d0e919f045fdacf63f6d7e42df99df40ad564e1295236edd29325fa3f70adfc170000ffff9db270a2f80b0000", + "ab8942bb19a00ddb54dfc22df4c36c21": "1f8b08000000000000ff8453d16e2b35107df7578c6e1e7861775321845454a4d2842b046da240dbdb27e4d893dd21de19637be98da2fc3bb2779b80a04279f0c66766ceccf19919fcda51048aa0a11f5ca22a26dd222cc4ec31ecc82168b610f08f810246f8ee6682e0ea9b7afeb59a4197928fd74d63c5c4da16ac36d237c82d313643c4d00e64315f54d4eb169b425478aaed40ce36ea87cdea1e5ad90ebb9d76d24ce7f5f1588b4fb17ec21049f874021da1a460506af9f0041f57575757f7abc5e3cf4b109eaed69bd5a797d2d875d3f8209f0f752b4e735b4b6895da3c3e40bfb714a0f2d0c4609a379e5befebb5367bdde27adf9e4eea79b5f969f1e3e67fa2d4f1483bb880cf94ba67dc7a6df6509d4e6a06298bfc4ace81d1a643481d02fb1e8863d2ce414ce8bf84811dc6087eac5dff1e85c1749a5b8cea76b1f82750ff17eb8b0e5c2873f84107ae9d983dd465e6fcffcc58552c950fd2068c511d8fe82296cc1cf9f7d6fe15c8b6c45dbed40ceec41fca501f05eec50e0e23f49a6987314575b75abf402b752f763ace5771e8a743cd266d2cfa085bdc49c0f1ad89db624223fe90bfa30cc1204481d4e904af0856f88b048c68210904acacbcb2136db35ffac1746a562abca54c15266da774e23fb523ab13820c01de4aa005a70f188a30ad401ee20d5345e77ad27772edd8345479931219a8049a2d71a3bd57a3d1b5f3c45872b4df83b67654799c7fab63f71e6674653024da91d109a3ba183433a851d6aada05e96fa63d3993439d5fea918df43d722a4a0d5c5e6d4bacc30188e1830f62079348f8431e15afd50cc6adfa6df9f074738173b1ef896d2990cb2781795d7e59674a6034c316212232e48e408614c98eee37c2491363283b7bbb586c6ea66ca5969fd6ab5f96f0d57c3e7fb7e59edaa0731f67af848139dbe33250eefdee7e7151604cc26f2f0f9261fc8ce672f357000000ffffc5fa989b12050000", + "ad0590eeb12863588f25c48a5f376f57": "1f8b08000000000000ff94545daf9b300c7de75758aa366d0f547c947babf4657f25909446176294ba2a7753fffb44122014b4f58a07a4c43e3ef139f6be424d5c6969e04f04d02a1ddf95a00b833c4bbafe143da2e822b9f0f725af3e6a83372de20a1b340c766f192fa43c45001d1742e99a419a743db8748012fbf8aa7edb8b128d90262ed101ef1bacd1e2aab6b67f005ffde8b31f368e1435f26a232ea90f3ca3a6015832c87db03fbc4b555f68384edca9a77abf2892eea4e5a6563a2e91085b06693e02f80bc28e41315218ca6661d95585804c7a1cb184ba760dff64a074a3b48ccb06ab8fb00c83642ac03dfe9a2bc99e62212b349c146a06372da41910a764e5933d7be3d81523911582c620792fb0bab55293bd5c2235f24c0cb26328c6f5565a3d6ce433ddc5c36643e45def8e360c94f1bc38e473f2a48a73d0d0fc7cad79966d6a7e181579eaf0238a88979e74a8d6c1d7f8be77f754a2f8043240c217f5a6b596f0e00ba7cf9d3923924db20de78daa35032bc6696ed5ae2a86ef146d79696d84ddb11cbed7ac3090a8a42669a45811711776f07eb552280ebc69806b013f5ade8f63fffe9e74fd4f9b1c8e5d30784b192693cd2d4f8b416d2846cd07669edd3f0abf1dbe56387fadb083c8b620d289bb0fdb9c84a759489339e9ff8f2af2af3d2a593f6afd9a5768ae80162b6db19d82b5f49876c2b49903b33b7f86cb7a5ad769927c5b34e56f000000ffffca7f6ab658060000", + "ad984a19840b1660f7b799cfc369022d": "1f8b08000000000000ff8c535f6bdb30107ff7a7384c5f6dd33e0c26c660a5d9188c6dc42eec2d28f245516de934e99caea4feeec3499ad86dc2f6645bf7bbdf9f3b7983211a72026e92075a460109c0b2336d2d1200809a548361ff0e9081b152a30065826a519942532b9d16d7f9f5cd01b3dd825901fe869c3cc7fceeb67af208a9a7c83a604c21ebfb8b742f28f13e7f97c9d61b87072c00ba8d09e42c3a16c743809f3fcaeacb7c562eeecbd95cc00bc339c4ddad80ed76efeb93f7f9776931ff6c5aecfb0563e463820cd0d5d0f7497241b89a95d5623e2befbf55a58082ad2f06822c60ec5a8efbbec8e8e369746a8daaa18e8f07a173026c539b009987ab3167720261640ab85052ad719cbbc1a738fe1ec09bebcc373adb6193a98e26d0c8a00dafbb65aec8160f91d15a0c85a6eca1736670ef29f03f1b352dbbd54ab654bc7abe69b454434d8fae25594f6947c69db42860de39184cc030c7f1f614592b5d2de079129683f490beb20e1faeb6e331f643b68130a78ee1235ca81ebaf33fb64d61f6eb6b35513a84db19836760c44b3c83ca2966949bf36b13d33d9d6a5ef2facd4ed34253e11b9d8e9877374206362ba978d231509cbb9027448d918d93bcfbe9837cdc4f803af613f33b89a1b43850fc8fcadf000000ffff09da42524d040000", + "addf37c61e119909debf422a9b655510": "1f8b08000000000000ffa4935b4cd3671887ff26de6d59d8922d9b2eb33aa6558aadd406e3d45a40c64108300373ba1a8452a0500e838156401ca70844c7383928c7164a2dd0ca414e15778893a51048c620dbc230195bb22cc8b8a63c0b2064f77b9237bf2f5fbee77baf7e82b04bd82578786ca44848dc2d086f0882201604c143100491b075bfc96e4178eda5add98617acadb937f3f9f3659a4d7da87515f845e57136328f8bdadb7cf9958da53ffedc79bbbebebeade2766f9dedfde3f886e4f2e6891cde3e654074c680e8d475f61ccfe6755926126526f75a1cb0beb6e96fccb65b5963c1439c88e7f9124ec616732cbe0ec9d53abce38d48a38bf009c9c033a89457c449a4196a5ffcb1b5bfbbcfc9ab122d074f5fc753994de0d57c62efd850dfed475d35486c652767626f7128bc0cb1d2c0cbe238caab4c9beef2df7fa1d21bf1d2b4228b337230b21275452fe9ed8f894a2f223aa7820cf3d7846519d92bcfe4685809b24bb5482e55323bf70b2d3d4ec4da0e14993dc8756df8e5b4139e5e8ad7c9300e78fb73c05b85541941f8a795f86aeea248ef24a0681c454e3f85f71cc4df6cc24b67c3476f45a16be1d4875af61c3cc33b9200ce4705e11f1acc5b87fcd92f0d40f5710e87833fc7d3ff069ee70af8405d4a68463d47d3ecc8d36c48350dec93a808bb10c4a0ed0263c3597cebd4d1d61081af4ac561df18fc937bf152d72055d713a83111906e449a6a439e66c53bae91d331494c4d14b3f49b93d68e62ec0faa595eeaa3c79ec989c81b84660fe095d080546f2144dfcdfb294dc852adc8f55d48932d4414753038d2c4946b9edfe7ef303f6361c6354daba39ae8422731d726507e3688a2e009970d03f8c455732cb50b9f940e8e6adbf0cbed22bfc5ccf0680521091a92f232187df405ba9a2e0c75e32494b8f8e4d614970b2729ab1b22bfda8a58d3caf1e4667c7466e4574a286fba4f424115fb4e46f3eed98b14d69ac82a6f446d3061ec71d1f77896fc2a3b13ae196e37f6225237234bb17248634671a58ce8f85444de4a8e28cef19e4cc511df603e4acce2669505ebc8240ee7534cf7fb8175565756d116d713985c4a446e2389e5163a1f0c11a54e65efe1b3ec97faa1bf5648f7c8180ee7389d030fa96e32b3b2f2cf4e7fa6e77e64e1d90293ae27d807da714d7fc7af8b0b34771ae91f3633fbf337fc30fd90c1d12e0686fa585d5dddf4fedba1ed362e3e5be4d1b883a1e1562626cc3cfddec4d8580b63ce1ee6e67ec2ed76efb81b08ff937f030000ffff6ddbe2317e040000", + "afc1533d018c2d1730753da9c1eec198": "1f8b08000000000000ff8453c16e133110bdfb2b46cd810bbb49c5ada887d00d158274a3a036ed0979edc9ae8977c6b2bdb451947f47de6c12a02094831dbf9937ef3d7b3f2ecb39d45c75ebb5b43c1ed6abdd2e671743fe803e18a6fd5e88d9dd03dc96979797f3b2b8ff3203a6e168b12c1f9fa089d15d8dc7cef3cb36afd94aaa73f6b510cbfb3b6837da78c81c8c8357e323f9d4b97c21d546d6b8d8d4fbbd5895cbcfc5a7e57faac46e67d67006a761851564fbfd9fc0cac4668595936ad3c323888d09f06cac05255583101b04722d180a515a0b21a27b0b1d590c01dc6168fe3d30816a24d518c4b4287e07f2bf4d7d929efa91a97c2b3de596d506f23e8cf4ff3431cb8833e7b9f61882d8edd006ec3b53e5afd25e15921e3cbfde8911dcb0dbf6f66e19e6ac3b8b015a49668d210671532e9ea0e6bc653d2ca7a3d0b5c32246434a1a5d800ad7ec11aace586da806491a14bb6dda07eebc42080cb191119e1134d39b0884a8213278cc343f9365a94106683bd58851cf706c191886948776433fa4355a4604ee3c1c295083955bf47d4435433271c4449f783e243dbce68368c8b21065340a32867165682c9d4b51dd93e2b6458abdd48efad82a43d26fc1105c38cfba53d1305da4597825467078f9df66770fd76738917d30a47b02e95ce29be4fd2f1935119424a8100222c1da730bdcc560f4e1212aa6280da1efbfab69512caf876e21668f8bf2eb0cde4d26937f4a6e4ded65d271ba2cdf11a5fb391b4ada6fe6c5c9ffd084efcf8924185f509d4f7e060000ffff7cd3d84624040000", + "b1025117b1edd497f09f8663eb3a853b": "1f8b08000000000000ff7452cb6edc300cbceb2b089dd6856b033d1ac821011a1468da5ef203b24ddb42255195a83c50ecbf17921f9b069bbdac389a1992637935fc5633821a58938b4268eb29309c04809c352fa96f06b2ed4c7d9a2665a8cd8ad03e7d911f32f6ff806ec4204525c4930a10e0d38a345fddac1d1650c5881cefe8056ea038373ff1f92495f7dd7a256b904dd3fad41b3dc84a8829b901b4d37caae0af000870039b6f966ec75fbeec9309f9d7b6f0edf1c70318f54a8981097a8414718489022863d6eb807f12468edd26cbe0439174a5ce73193da8ecdd7893e2d22c6c8dacc5a54fde6520c74a3bede6e24d13f082c068bd518c87fde30edcd14bf77efd83bd2570a9ab7ad3dfeee195e98e28df4e733b8e475f58d0780c11160c78acb862dd9ee156efc115939c9123f7b927e2c841f98cd8c32eb981ac45c7654ba31dc6b7ea1e0d3d8372236c6febfaabd9dcda6c1de5bbf63636f714ec777c5d3fc405aaaf33ef29ace4ffa09d7cce877325cee25f000000ffff1baf99a500030000", + "b33656abe4a19add5fb7502f0b6b2dee": "1f8b08000000000000ff0a2d4e2dd24d4c4fcd2bb152d0e272c92c4eccc9c92fb752d0e702040000ffff4284a48f1a000000", + "b8438980c36888bd6a7b788a487d06ed": "1f8b08000000000000ff348eb1aac2401045fbfd8afb428ae415fb010f5e6123d80451fb306cc6b098ec86cca671987f978876977b8a73160a0f1a19144acc499c53c54a6964d484bf7ff80f8099bb6f29a021c1efe17d5eb758b8c58da5f4aab5cf4b11dfd1ccfec292b735b0d977f5aaa8c99f49024df1c9306b5aa80348fc91e2d4545d2e38cdcbc433a7c2c34fd53adb73380dbbfd150000ffff01382a01aa000000", + "b97ef3b8e9a685594ebc0fc9eebc931a": "1f8b08000000000000ffb493516bdb301485dffd2b2e228516229bad7b328e47378751d8466065efb2a5d822d79291e48e4ce8bf0f3971da2cd9defae487cb3df73b47c70597cfd020b37645863dfd007d4ddf93320128bafb79c0a9542895a035ea66474aef533d389b7ed35c60ba317a102604a88463126d9175f76512155e696f5133478d6c3b37a90314372b40a9764ffa76d6fbce7a91fe64e633b36283a36118c286b9eef66e097e12ca81d44e41ed14956aab49b8030f370741804facd981d3c010e19cf18bd1e310c2f1308479e71584e0d29d81ccbe26020fe7336658ff588590ff75e848ff43aa164508e96305e11afd2f6694542d5942adf93e07b2e6d2453b9760d7d299f5df848d33d50a43964038738cf6c2759a931c48b5feba7e5a9f068d565b69fa38793002f67a043b1af1f1c55425ac337a7ff255645c3e97c9f193244931e2dc1094d6d136bed3d4412065e23d98c8028b01f2151cbc3c38672c8430350ce5e53a954ef430d4f4dddc3464b538ddb17dac077fe9322c863938db3094bf05845064d3d25160f8d79f109fc9fbc5ff52f6fe423fc4fe15d9708804659944ab42f168abc8462c933f010000ffffef62da7b98030000", + "baca6b4ebf8cc8bd0ea945a5a2fffe15": "1f8b08000000000000ff4ccbb10ac2400c80e1d97b8a583af41cee01040717c14504dd255ca31cdca562d2c5907717ede2f6f3c16f062fe407418f59cbc4b0dd415a52dcc37de60c030a6cf63fbbcc4529c295446f667d626c94ce28196b7993fb1797fb5f8708165628e980a50edd695238b667a546ac34aebb183c98118feee1130000ffff2bf5ff9191000000", + "c3816880f9d6ede8f28a4a1f0360251d": "1f8b08000000000000ff648ec14ec2401086ef7d8a3ff4a209e9039870a8b2310605d2ad282732b453d8b8ec34bbdb62dfde948428718ef3ff33df97a23c9a808c5d8fc658c699020eecd853e41afb01fbae69c8ca1454d738b267c42363ecf7e40ded2d070cd2c131d748d26b1f5160856a1817e572a2961b8803b5ad351545230e21928f5d8b20e30b7f939dc57f0554e23d57d10e5992a2948bc42fb70b8c85dace36f9ebbb4223fe44717ab1a9c8c152640fcfd11bee476d1360dc3fd2e83ca00bc61d20217be6c8aebf9b2cd476729f256992427dd3a9b5fc90a498e765fe986bb55be75a7fac8af9ecf33a490aadb47e592d775a3d15aabc8ddecaf54eab62a38a3ffb9f000000ffffb53849697f010000", + "c6660b1c6a1a45d1cb79e72c7bb65764": "1f8b08000000000000ff2c8d4b6a03310c86f73a8536597a085d9ab647e8054a311a5be31864c9f8119adb974cbaf9d0e3e7fba9b5d0cda6c70d4a56eb9cc26192b80f0f0eefacc93a3814cb2f0e704863f07c0e6ded522238ccbd1ce765d6060ef7a2e0502d71a89696f0f3b50d1ac3458a3786a25156e214f877b28e627ad66dd99e64bdc3be8aa4d068defc297ded89851e1edfae571db017a5fe084a953dbe5f3e905adbbea8325e3edd998768b592a67008e5e1f1fb075869170ed1c4faf038fb6210cbff967d1d0789c15f000000ffff20a0099817010000", + "c6e3e8d28eed67725402c2b7c09dd7e7": "1f8b08000000000000ff5c514d6edc3a0cdeeb14df5b3901fcdc7d16b9442f60ce88b2d89144839262f8f6853c13b4e8ca04cdef5751fe834c19bf7a6d886c8ca6e052fb982235acb71e0225c5ad4bf22b225510d6e54796cda88996ba42025a64d0be27b95fcbeb6ed77d71ae97a0d67aa1c6e99cffa835cebb1ad939a32aa822f77b1c5fc1a13d7924fdbaec64e68653fb0c2a1ecd0638f30c8131a574becedf64fa624426f3d8543d5a94b2d5f77118e94975636c2a655bf0f1e69c84413b19a3324bd9901952c6cefece328f700555335f94886a26b711e67bc2613a7ed0be73610fdf6d1cfe53de0cb5c10ea3026938a4c5abb8f57fbf22241abede9d33dec87ce25a67d478851ba8bb6606dd4d6b1d4e139d43836edadb8cc09c108cf92ac973e2c6c8bc40da54a18fe512d43235c46e6dc1c129cd6399658b0dcf2ed02bbf1c85a7a3d19ebf608fa2c7e29c4c2921f1287400be335446a0acbd62276bc3d8a1e6eb87739f9ff8a9485ab6d703462a8f8aa0064ae9520b52a3fb1d0000ffffd31e584a8b020000", + "c7bf78b3701e04e6225e9c327e2e71a1": "1f8b08000000000000ffecbd6d8f1cc7912efa79f82beace7e590399c98cc8c837c3f48145c9f6023cf72cb05e5ddc4f06b74489bcdb228921454bfaf517f14454750f3994a8e1c86c9f630356176bbaba3223232322e3e589dffd8fefbf3d2c6f9e5cbd7af6e2f9834b4af97279f27c7df1d5b3e7df3cb8fceef5d7715cfe8fdfdffbddff15e3f2a727cf9f5c3d7efde2eab7cb1fbe7af15f4f967f3b1cbe7bf51ab716a694530ecb7f7cf9a7e58bef5fbeb87abdfcfbe1bb6fe2bf3d5f126e7e69eff8edd252cecb67df3d3b7cb5e4df2c4b8cfaf39fffaf877ff97ffffd8be5d59b6f967fffcfcf1efddbc3e532debfffff9487f7ef7ffe97cff10b94e8fefd2ffeefcbe5f2e9ebd72f7f7bfffedffef6b7f4b7925e5c7d73ff4f578f5f3e7db6bebaff1f5ffee9be7ef1f3bf7c7effd59b6f88d257afbfbafcfdbddfe92f9fcc932e97675f3db8fcecbbafbf7e7c78f1d7efeb1ffffaa7172f9f3eb9ba5cbefff6f0fcd5831b5ec23967fd51ffca6fbf3f3c7bfedf377d91e69cf7f1d7cbe5fb0797f9e5f797f72e961fec6a79f3ecc9df3e7ba1f797bccc8cff2bd51fffd7e149fcafc7eb7f7f73f5e2bbe75f3db87cfee46fcbb5ef7cffede1b7af5e3e5e9f3cb87c79f5e4d593ab374f746adffcfedec5ef5e3e7efd74f9fad9e1f0e0f2f98be74f2e9757afaf5efcf7930797ffc24493ea7623feedd957af9f3eb8a4b6df393c7bfe647dfcf2c125de7bedf6fff7e2d9f3b7ef7ffbecf593abc3b36f9fbd7e7049f972f9eac1e5bd8b8bff496d240934c6da66ec1ca8d53423514f25702fa9d8f5c3562971e839f53098024b4e822b9199c643bd6a75a612ec8b836710217c7bdebbb878c88553c1edc6a9e2bb6c97f88143cc89435e634e142951d04fd65bb1245e23a51eb9a7164b92586be25813c5c169e8233d12a516f5ff5cf020c522a9dfbbb8d03f732ca9c59c5aec8963d639e5d4d7ac132da904e23422e9a4f4e525d535871c721c3d75ff7895f52b55bfc291ea23e2ae447b3a93e8d06be49c585fa7cfd95b7aec69c6a62f0a19ffae4ae9d4624b823770121db37e869a26ee29f138b550f4bf071d3b4dffba4d44ffdcf5d3df1674c2ba2c2591fec9be1ab827b18fb6e2517c4fdfa66bcaab5243a92c51dfae33c0bcf19d8155183eda9186be8a31291dacbe4a473182a4b1e654424915eb37a20e9d729a4a76fb59c12b9b7ff2460c257adf2f9ee654fe0c56fcf1f2beee0be5e2c7577fba7afcd5b327cf5f63d3ffc7977ffab7cfff4a7fbd5cbef1dbfff9fcd9eb570f2ebf7bf5e4ea3f747ffdafe7fff9eac9e5f23d3db89429a9895c2e3fd083cb2a39b5dacae5f23d9ffe891f5cf69c6aa172f9fb7b1717bf7bf5fac5cb6579f1f5d7af9ebc7e709975ebfc7078f2e052efc7f5c5e1c5d56fffe573ea0f6bc320df7920491ef3e6a7f2c8f5b31b9fa21b1ff88cbf685ffcc16871ff3a31de121bdf5d1dfef55f36dafc06fb1a9bba041a1d9b9ad208d45a246a49b0a9c5ae8f9bbaee9bba1c37f59a95dd4bd48d2b2391f272e804ce3b44aa9466e8caff4df98138954734f426979cf8d13e085fd2972f0e3f7cf3e2b90ffb5ffef0c74ea55c2e2f5f3c7baeabd89ba8f490b934a92a1b724fb2d4ae7c53674fbcd43e12872a6369ac5ba99691ead2cad8af479e7e3db66ba154977b171723d7d443ad2df5a5cf9128d43ef57a8cd0724bbc74fd77689c535d7ae734432b92da72f141c36fa0928c5416154fa1144e75a9a2bb8570b7250a85ca5287ee84ac2f6fa2f7b24eaeebf04aae49963e702969e8c0bb4e8f5b4bb4d825eb4cbb8a4fa6aa93d63dc779a4b90c7d92b3a4b2cc1138531a0b652c49563a509e69069a4a5993607db125a3d1535d3863fff696445fcdd49575babe8565e8d77a496de1aa0ba1d7b4701bf8ced0eb5ef15365e101969839c9c243e9c1194f4e888bacb4e1a1220a9cb6f0245dac4636679e3d51682a6c17ee84eba9636e59af2be6c2e012a5e6a22a8a4313251265d1a5c3b313927576ac689aa1d6ae64645dfd5297a6e4aa042eaaa9059923b1bebf15d54bbd276535957375a6fa1e46e89f95cf59aef3f1084df0ab52f43aeb00949347a853c7c853c06a92faf5794063b6417abfe277664fdb1a756e200ef754436f9cfac24d257a1f25d5a55053119cf58152671a61704eb494a1ea58794254d486c13dcd45ca4ca4fa78912a50e57391a15c3fb8a5b12859200b74e349d1fb5413e900aa3263185997bc4edd897d369d2d29b9fbc0cc791b9872b9da05bd299bb7a65baf5749b4b4a933ec8595fd5507874e75e945d43e98398da5575299a02cb653ff28f9f63da8224fb7ce0cad97340fb1aa2ea4340e9cf186540fac6bdd0ea21f94cad3515239508dc574684b3dce5443e976a11a8f420e8d5458ea1cf7ab436f6a38ccc46f22cd43644923724be51065268e2dcd4727a3f9f1dd717ff6707ed11edab86b515ee342fa3ca9de95549e4612fd37d7d4637baab64c3bc4a202ad3d8d95f45f0c8191caaaef1e816a1a5174ab488b552da75e4c7147ddb80c5b43d7416a64e5a636cdae2a814ce3b34afb1194054a4f7c502b2a70a203bea41357f9cf9cc6a1c008a8a91d5ab7ab7aa8d574793d88287d929a7d072e6a9c49ea87d6d47ca1540f45ad0e4c905a2a5138f53791f8906145c83ad56aa846893860a2084cbca1d69e32995a7945a7d1a2c0b6503ad59ee6bbb46e7ff8bc7f518dd63c27e803aad14c2336d588983fc94c2d0c5d40bd948374d842f254482d3cb595cada7b12908af20ca3e0fb41bfaf8ba7dc3f92403b327e78ea42917d3fc953651f02c3347d693f28152434dc1cca067aafe8dcb2b2310fd8a5a93d526dc24166769e509bf0d1c9746e60b23fb6cff90f6c1317557041ca487d153556cd4a93585355ce51d394d68a498afe45774fd3bfa89d27abf285ee24e51ffd2495079c9ab21726a37f0b2a774999465f53549eeaafdb5c2516650f49758d2a9a945b6960044de75974282bb6206c509512532d793d87502a7a8428b34316ebe82567e85b7dddc9ec6ea203fee7741013ec92ca2a30be39546cd9118a32ad1e0b708ca87124561358cf033acab92a3b068e2aa71acce68989e9c8a4e43483f4aae3534b04d72d9cbcefe74646b01f549cafaa03d4245312e650c10d6dc5512cb1ae41d4f7e0c453d25c752f32560c6b596d852af6dfaae7a58089e8c6f6e38eb27fb53d8a93911e27aa4e7eac19363e36a8b1bc9ebc6ce84f0e87672f5f3d595e5f3d7efeeaeb1757df3eb8fcf6f1ebab67dfff6b4ec463519e9d3496fd436f4a4d35cb5846a9494aa1df5cbe3dfbf57b35c97b1a97cbfac383cb32492faf70f772b9fa019f3a00359d6f3586d839e5cc63e95992cc516e1e446992da368892f86e07d1d31cc5ecd95e3bbf6708256f74603ddbda105477db2070f50e1f756eb38e4dc489eed9ae7c14ab2d9f8a90ae4bdf54deb06e2e3000c5b9f1f84c12672c387f632bda2e54e1deedefd088d891ca416ab7eaaf06ce2627c63aa1246660bdad3bbf98ecb093abddcafb9951796be23e43a628b7d36aa2555f82932743ca90f3b1deebd10e93aad22ab481ee423bbceae932aac4aafa3b105838ef12045ec16070e0c4b91ffb60469c63ed67e034504182c3ea0ccdd527e11cdca31d73f5a45ed748f6749250ec341eaa523c43e2956813ab7a96d6a71ef26c81bb8a2c9e1557339c2cd5cfd8085c7194a1b1aa71112452379f05e368a7477c8874d61556f2135c225827b50fd49e523b081aa60635d887096fc29fa632432052598367d7ea16012437848b1a48b20e9fac1e9294bd42818722bbab420eee6c394415e9c36d9aa29c34d4a0e82a3eff8cf9fc7879efe2e2ed697f900f4ceed805564829d39aa89057abb729e734651de535d8905cb0a1365b6906eea60729f0486d9d60385ddad8942caad628a7baaa0a87e280882d38039aeebbc158b9b6e86aa106ae53175d42562d39c388259b229dbe27d80cb70e3d1e8a1de0121f8619a9f5d1fe433f7e900483cc8a26b4b6ffda3d1d38892c3da74679de2cc260cf7e9408738b9839d10adb0976287c62902aba99d706cf12991684b5c0f068a950e81015caef4aa8000b621abf43bb11dc52fa408f33a8d0834501c3bf2bf128520d3460a0817b0b2e093f0f438f60aa1fa03d39f5472763feb9556da14ad3d5c38c942174797bb65d4581724eb482f758d7146ec91a601f16350470b2527e13d8fdca753d1b29860b6963453267224cd4a47bb7d89e6e7086ce6096649295cdb690a087d6088710a920192b8c9f66f4afba8b0503512634f9a1d28fa71d305a6c50084a1c50c74e280433174ec30328cc6adbc23eee4a5736ff044ce50981aa4f408ce93d1c76533db841d60f3066ccce7e245542cb662aeb146c7554d1c841d9a2c6a9bf36201cf56755b4f32196a1a3c4407403412f1e224c42d8e513ebaa7bc797eb67247483d30167e615225a79ce5c9b6113d2b2ba8c0e9b8cd645d6adccab8be868225aa289e8eafa07323a988c8ebb8c8e2ea4e326a4a30969d5a32ea7e326a7e3514ec35bdd533b0c18bea4a7bad8931c7485479a8792f425ca4a8f4ea6f5cefc3f89a8aee07913d52ea9c32ea9c351529ba00e9ba08e47411d5d524793d4f128a9a38beab88beaf881a2ba9a376e4c089f8915c3efaaf15dd8fc066d85675db5ad0711b08b225570bb4ee1d1c90fddc070324be3133b4f25800a499ba19a20f8193d43c1972a7c88ddce34b0fb5453d83952cd311c17da8a63605122aa39d6cca0ab387041fae26cc415b6d108a586ac473bd58419fc22cadf7a402a6a01821795e445c9c6784b24ddc5c6b370fa9b2c87042f70f9c2098017ea8e257821f4740e55574aace27c1bca5a084195aa3fa007b081788aca41e5e982bd6fa456918425ac01dbbd92f977e4a09235bb5da9328ab15daa0a4018434a41610bc860157b80bc28aa52d6683e80a20489b6793ca0644e146c3d4214041ef34d2ee377328e5c6ab38a79323c5682af91ee4b446eb0954311634bc6299986bb9ab0626a466f3195d861663668a67d66165d9a6e89a9ecf4331e8c6509d95c007d972766a1739c300895732265b89758d92bd666ee88199b0a7bc92038c7fd8530f4a34c7d56854e85656e14af38c4ea8aeb54a3e4487a8a8820acaeddaa36baeaae6a4a78eaa8d46e81187cc8bde3c00f653470b88673fd6423dcb065da1795b62d23f05af1187031cde81ab75b540bcebf5457e85378323a2219b0f27425e000d063b7ae8d4af7083f2c4d0f33aa98d0430ee68fc3471de6a90169a7528e7028283950d1159c0fc56e22d028d8173a3e0a2763bdd1e95c3fab9fd53f1e9dce0ca7692d736151215095ce0b4b4d23d49a93de1f887e0cbb6a053efd0eaf7bd7ef16c1f5d0ef16d6e770ffdec505179563b50e7d047ed45a259585558e855a8b3ec22db9aa7c8f9ffced213786cb5ff4698fe7484e7d69b0736bd181347bb3706a4b1335722ac205ad4c7d5b2da92c4d256da8d59dd34d8fd01ee7d16bc65c6569100436277d5d0bb5cdc44bc34ef3fba4df10b8b22b8205157fd7c9e7f74c6bd303dbb44a472862e8fb4b535e6eb32e4594bbbbf9e6b9208e56970269d94957a540d57635e2179e3abd4e88afcc167aaebe1216379833c9c2b3223ea05f41b464e89a94dc4243c0a650c3a9a6a6b614d0baf5acf74bc635be236d8f3758c8a08d9aca4dbef66bfaeed7d3c2eeb07eaf223ea876a5035c877aced4c36f6c7a41309be8d1c9e06e0e3cbecd8816ced015e345d75c0982d0a3e84e6c5389560b488c604cc5d1afe796ca52595747f9484f00baaa8c27e1385139817889f266e8d497da085715f1c0866b4a6d5156ec58665c8786409432a54542e803f7d4754e5065a253290b2290a14d4eb49462315f7d6f4110482750970297b532ddbcc698f72e2edecf9b826113227bba55dbd4a9f16cd803a7619b9f09feb2ee8fd6556a2965058c5b1765c7e3753686d74d3f95d394f93f2c28d77044ac3c122dadb16a7a8f0a9e5c5b3c728e6580512b22c10381297db25c0b2f7770815e37133be47f7a5fc0f88f7ffcbcfde1445034c1ea668b556378ca70cbc826701021ab704411ddb8277fda02ff7883fb7f76e4e7d43adfc476cc6e611c1f29321c60e4091df0347a3e096d4e3fd86cf085f91d813080f3ef90f73c98cddd4cf815f23c180fb4d8335bb24b868980ffc23a235868fe9a68593d96e2939116334256dbc5fcda3eece1c39cab3dc3e631779f24d9c9d662201ccca46b9e6103171fc14a820711ffcd9eba93032c3cfdef2758ab8ab029b77faed5d9af55eb0db6889cae5580211d1807355f1578ef33bca6dbdacd6861d219b6542a318736d609546b27f96204cab66da994cad1a83e7e72a9a279b16bb4b5b5b38daf55f15f29c7d502ab0dbc89fd40e30f4cf8f3695baa785cab6abe10a48f350f09280f29cf114ea367b05475ea61a9cefccfa5fa5597cafd457cd7d9ad057ec6d1cded4596d596f73c50cbd02c27199ac53334cb498666fd800ccd7d793c42522c59d333347799f493199a6c39ac01a19d3d43933d4393dfcad064cfd0947733349b6768f60fccd0849b169fbca7ab22c23cf78b1bb26f1e7efe793e5a0abb9de08a475c82b7931dc1ae78ea89e219ae11c6cd8ac736c991ba6cdae744f7b0eb1e3e61c37715cfb4d8dca9da09bbda014ddf553c3a4cdb77bbee99a7ba67533c2e0dccabfe96e269c1b26e6fd8227fee8d6ff0595ca36b955da7ff93ae1f4cd72a3f43d7d6dbae7f7da36f6f3b358ac8a5fa29ad874bf5f193527d27ac8bf5b98b75b2f57a3f51fd89ea9fd7e439ed5ae15d79be53f51d91be9135be6528057a4b9e77c8f37e23515bbf294c7d4ad43acbae29ff49d40f226a9d3725069d12f557d760f72e2ede2e33f85535981bec3729b15f5783ddbbb878b453f3180bbf7afcd5b3c7871b2a0df8af16d1eea5a7d6a758505b724b34695c2e570f2ea5a632271f2b12fe725340bdf445974a262ffb076e4e4a75f4b2f0e0346b97dffc5c69c30757293c943ef83d550a37d71bd45a48de53d630f2e49b5f33c71f8b47bcef5f27e4fbab1478ab52e8390761c42b113cc602b23bfcf4c09a13af14b95a244704b97489a394242bd74001f71849802509feba6dd640cdc2b908c155fd99325379b4bff56732f27aae81e1f7cfa608c16d26baea6a5a49903da89f5d15db2a76c60d081d58fa0c83812d5083642a4826fd3f79811276644f25224d8103c9da548906825354efc01189b7b225a758ee21458498914b808371b4644cb6b8931296d8cf012c183147c4cdb2056cece4c0b10acc8a16518590b7dfd3f5a878ba2153802c6b4c3795253a53ec88a2af6c31654b8fd1c32d59bd485df5cbd411958c24dbe7bd8b8b877a0a9e817922fdc1897dbc7ab45ffdcc429561abdd53f5fc2e4b6043224ebec52c3d2e7827135d955f91f05b908d37b7cf37f926be3233fe4e58eb26beea1ec6d5a9985c6c10f4f2d314ae73aa002e9ccaca16e42d816a4431093e9eda6caca0ccbd344ad295dc2434361497e2165dc6c1912ccd35759daf92014c8e502d84fa083ac1cda2e86a35789450b78365a935b304c2c08b78c541d5680865d17c4d2de550229b8e0b08865ab2a34eca2c0e2c6a923536a8164b7554d3d57209df3dd85e23556b3a74290539855e7ba84b6b99ce88816e37a6b9d24ce0916527ca6e0e6d264bd9861ecdf556118b55535a4cc1daa4dd46c6817ff5c37db0f424da3e57b2fc1095254e187c1e72c8fb31c053ddb7a82e0e1196ace9fe3dd5ebdd6d1b4bdd44828bdf85dc31ab0703eb6f5982f3661a9ee636d48c7c9d5a61901c39c84e3492d808857c66ec938e9d3c525d2baca116105a27d702b09a8ae7aac769bb17c95c2e45b99941382dbadd635191b1a50f9415894158ad1ec93734ebf3d59faa6aee288b23a5aa0c4bcd2c5e37e0312d952f88de531ca9458461f2ba25ed547d0c59a47ad19046bb5ab688e5204e0804b68cfd15a5046aa5423fe8d8a0058ba5caaf88ed8f005eee961b4601d314cbcff7f423361980307641da2c923455b82131dfd20656378e0526a8399b24f1216fb906c5f4924a12fbcd692f1e2b922af41f1c3ce36b062be3d0c9588e020cf8026121a17b165c433225e40caa35500a4c4865a8f8249f2a92232d7f05f5299e7bc16b337bd3f2dd2c97a058e29eca126327b20c57af8229ab551b50e06a89139ecae2f93096ee5b603f4306e6807163f96deaa2bc8269aa41fbb0669450a01252af4b60140a9eb0f887c5c7c60835e76b512abfea057791758638591f308550b2b65dd3f11a8592fa7dbdf6e248ff27b37fad0751822e7d203c465612296f5f733d86d04a3e5ed7a6d7a8ad915a126dd782fb153c2162f17aff67c64fa1e44d32a3f40b994a39275eba28d79789b85ba9ca68134335ebceaeb3d2b50cd4ec75e4110e14a5f576bc6ed063282dbb7771d15ac5e3082e361b0642fe56cba92cb3a83cd7998ee3f53b81c39be37d22c2c2c72594822c71e24590f55949872d1637a49a44af916bc7b83b425519b08825632018a94fcefd3bf04ceb46d1c96cff2ca9ec5fe30f1e9a9a34faacfeecc0754de43582953a0687b40ccea9e19a4265c6f79be5a6a3a6b0fbf77d48482fa1869fd2ad55493e30922d48c7aa9cf1828a97e9af28252aa832432d4613bd325a5a2570c1df319422692c621922c533449c3a459cb81d8f545cb3fe14ae74ae0df3c6b7d9be514181899f2c3b352a663df17bdb0215fcca4625bc1606890ae145d802c9a47362e4b2948291aa98d291caf6b8ce7efbd9d2f09d8661dab5cdb86121505785598a64a403a18a57ffd16d5e765b5f88af0b8829f8c98919946bebf9a14b555046cba08b71a15c634f2928e2a689253c5dd89b38e7946d9c8bd899f33dc17e4f1e3fe51d5b1cc1ab09cb872179201f5765db514692be0d93e7c6313c4063702eea8f311c23797686a3fd27b187b81e69a816c136e4f5d9d57a78f2f60644ed9312c47c0bb530dc0a25b13d75f5647dbde03b7cb9e00bedf238eb4ebd5d2e1e391997cbd327cfbe798af8c70df6fcf64acb84aba10a3ff5e2d7edbca4f64cdefdb1279fabf9596036ab6de8ee2e31e310f6623ff96c7eaaddad4471df103db437abe9e163d83e7f7c7bc2dd26ac437e6b063ee1729cb0bce7e19a6ff3b0935ada473c5ce563863d3ee2e1f631c36eb7a2b63fdc6f456d1f76ff18828d8f1af6ada8ed0f8f5b51db873d3f8660f363863d6f456d7bb8e58fd8922d7f04c11a7dccb0e9238441a38fd8928d3f8660e56386cd1f210c5af905d47e27ce8f737c538b84695865a79518593400de8158de5b5682c8c7d4c362af3880c259e4304e285b573df5530f0fb8155b5e2dbec3eed380c3e2ad675fbc7cbc3e7bfdc3834bbd6d5e9c593c1d71ac5b6c125568a1a04ed5ab483d9062c1154e03e594e6abb0ac72c111dfa6dddcf9a1bf30f509af0998f876572bc4ca3767e856c180a7a29533557c130e2bc645858f9791ae8f842a87ce7202b3875bca0a002df8e39a8786dc19623f5ef012d40f468be09a726f1eb34185b847769ba172052073ad79cba10768842060531eb6a9c441aa31723567681d6eeb2349dff5e77e506e48b9ebdc1064ccb1f09b2a16fa42a15fb47a3f54c779a4adc46265129ce84ba16325b8bef1934ce17b7a70d947aa866f258d0cdaca6fb11a11f53c464983b76116553b3acced1e230bf63c32855a1d762e49f52745c39691e1314fb8513dc3329c246478c4b76ff782d56452dc9231aa0790e1b83d642b03ddd2362da4bce5436c09195b4019b167b7dc11e68e0873fb53e22e59099e92114cea59e6a45bef1e9e6e70cd8e4d3a995430d39f3ccb1359161eb0453c225a8cb7444fc8409a88951fe2bfc7b19987b25e2b89bd41d676f8451a006f548076a72b3cf851875bf79c00cf5b85973f6f7e69681389b4c5a5375c398bf6185819aa14b628790b0e74b2ff8afdaa67b180d8f0df013963eea4adbe2015de6e0ec763914532688f3e1e535dd98f466535f28be3030c1fb3de2feeeaa7688a6300d7c333139cb696db83300106886a2dfcf727a95b274a6026997bb782e308e118b270cceadab1c68d04804cd86641ae3465539e2733ac4eb96adc6d3439090121e0b87a30c1ffbde50c1182fa793f3a921f344b38fef6ceb247c6a42d07c3a321b491c9c2255bd064bac6c271d455a967403bf52d7b64383a84f87df1dc941a8f01b9874a43e48002896ebbb6ff3a6d7ffc6999d1e0caa933f1c143167cc2e4cd55fa3861737656e9276cde9c65aea76c1b3b1567731477faefd49db1f73d79fc3790968cd53d9089cf768dd9c7c6f46fc991beb1fd293318bb070bf3bccdeed5b7e3588f49a99bbc18b1bccdec5ecfec392c668594edf38810794d61a8b619e2baa6b2abc4a1e77868447e8f1c2abb99eb59137bcc53f581ac967e860043377c13440d2682052d8d5003a11c5680b2b55afe0c0255d103b3b1986c773016f2a273849450728f0014024878580d322b156e660a1603392d0815954812694b3cead898e201b67a2d96fbb3b3449d5a6035d4578b095bccb4a2e095535bb71f1e006a21035269ab6ffb025955ac8ed2726cd6e28ce7a62de23e865304e9a34304338fe031cf6196af8130b0c5e5d82c5d64434741d8ba02a7a8acbb755b215e4bd4a1752f79c53e89cdb813da915644042165d9c36908ceab3488823fe09c62c5ad5d976035394c41409369203886f5d40632badb447555d12701de7042caf748839b97a00bea9d2bc25cc5923b62b71097efb415822a14577628904d7db5f02b329e8201bb2add0cba4ed7ca8f25c52cf3dd1810a46c6fd85c92eabac5cf05a803d3b49ca34491e1c61a400e2020c009168084f02a961e263558a89a8ae7a317147ba30018cfad11201091bba52e4412032bb18497b6010b89e14d30b8863675c226b43a629c5be091c4bd910c6d1dc480ff44f726f605c996ff0641bf5657cb645f2cc04a81295310bb230b2b237fcd227f641b93900562c1dbb187e5c54bc1c5f58fe530d1c35eb13056ee270824d61e4e96fa97b1086a57591af497a7f1fada12407595c563d73dd800eb34232298dd76d1f032766c2b2be8b7d147ab399f911dd4c450a32c47171926c5405518675272e8b18a743dc490c11a6db5a0710f16096d61c62d59062ad2d45ce847cad9e112722b9871d6a001d9f54875f56d8fd4552c75c3e04e106b4501602a0f3b23942abaf77b81252ba267ff23d17e11b19be5c4b08b0120b08d606926dd4fff96f260d9082530a0a8c8ad6ed9c4a8a53a98e93282e1534f24c014307931680f334caaa76fc14c729f03721e0305377775f9105d66a4792a19a609b011871f0c802c52b6640731c9ad6b13c84a400c2c5a0f1b961e0be1ee542760e018d529d2bae5ec54186a0dcab979ce890954cbe6a951764b004695b29319b130ca2defc67d0d03b3cfe6d311cfb0edf8ae0abf6a9901c80e30540b53786be4702c5cb38236da2aef8d73233240516a2fa64e2d47d8b2e8807112b29925ae3625f8c47f097f948ab27fdd142e6500e3a2ec482a3ecb8ae81372216670109fba56cf10a66630dd8190a3412e465aa8b6e5b09f238aced5d23bcd6cedd8d11ca6eed16699bd6c0e18834082355fede069ba2c3b6acf495a9b95fe109945d16c15574ffba890600c241aa59c1ca96bfc69291b3a77c79768c09a01e761b31bba844a158c07c972dda5256f1920dc2c838242a98e610588126c2b1ed841c584790654a31f7d375f1cf084f09768893102a9667076d34090a6ed11867466202de9e4d6b6953aa4061044b687b77c2d8928a28a767631a445f0a831638bae11d873562be0408094d2772bc4322da160b7446dd722782147cb4dd13366736c7b689f0adc0d03026a2b2ae3abe14f217f2bb29da1c666736fc7cfed735cc754fb7959570780273cff49e2564ee6ca4005d31ac9b724769c4145c2be9f5e19e65526e6ec3079c72eef0cb30f7688e7f58923520a3c232e01d90d1f896650f21a69ab1e81cc401dca06eb2791bcb8c49c2f1b4cd2d8ab5eec3ef291762ba9b8be81de59f5a02a38ab00ed723d06299ba31512f491493a1841f8bb183a260cc1860c15604cb4069b8a517e7f24ea2d3d9d77eddbe2897492464853252f06da2ca07a5b70a7bb1fa65ad3b50386c5cf999674b969c3726b9fe69d8d554f993c879f325bb353a6dd618b829e05316bb735379f876915007fb86135cf8598a0218859a711d3eeb0c5a3cf83980d293e9d37d16bc52b65af8b399b3d54e187685312add610449019ce663bab603b13877b25835439f135d613f712fe7f262385cba74d2bbf6dee5fb781f2f90cb354023e4a36a768738886091f49b1a8e4b98cb463a4303c77605f83888c94771efde4b2a94836d9d4a60bfa22ec81abd9ce0312b16471dc1e2b8850731b18cf4089ed916fa990ee1cba11f85236ceed3c86d306a1b4a62363fe3cf853c6087554c39fb5e24ea0c2b2b97f917bde572a8e8a4f1dec6b4eab787bb0cc3bdf6632520db51ba6bc01881a9a2a908b01ab7a1e23ad79a2594c5b6345798c75e43297f730a4ef6ad8e3704bc13d4ee6e53d1313a1d4e253c0f8dddb85536e77cf4bb7a2019a96e731d05de97ca4b2107cc203b1392f2bea51cd07547bb8b3c3dc606225b87005ae7db3d33b8ed42db0956e9dc9cac8a87009b6b5794f39da40eeb173adc078c3592927500ad5a0a4c384eb03809400d11de731b182b208a6e926fe0080e606c5d7ad1d0bced806421aa695fca0a0d4dabe9cc7442413da5a11f06103e5c0c38a5e457054e1550ca574070297c06878733e9ba704d601aed5db0d585719ec28fd3893610e00abf66a81816e38b6c1ea027b7097b449d8e6413684a3cf64f802dd55ab753ce8ee3eaea1e0bf67c30d65e4405d5071392ccce4d9141641ad5ee68a6a0f2febc5bfce63f86a3208a257b26e5c6c6e750ee6a0bca5ed7bf703059e7cb54a634378630418f87c4443ed56512830c3c8e30edd50c2e1473e13e150e17037416ce7dcadc4b78433b2b4ea003d293b35eb09e6dff889b4e0bff3301925995ccd9b8976598816aad5dac399685e1e680ea707058f2c0f3bee2095e75c283911f5accd738ab6e4cae2b18733d93e6ced39ad97c006c8615d72d97bf09cc9488ba573f03c71b41707fa3b12f4d37b5f98cdfbc23cdcfbc2deb657ef9cc718c9bdd75cbcbd70a1ee632c3f55dd50ad599c4cef368dd424f893cfc5086833719026c9fb699982453282f7b53a132ba0a1fbabd49e8a9db2c7067f01ac002be53c17b5a0eb2e0186ec6a9156a40a20b14310517e176af113a959b1324d649a0dc311410b040beb9f892cab1dbd13304c4b891deef81e1e7b3e177aa297010b599e2f1c0b563f546e8444f94483b4766266026ea905b215f69ecf49b01658fed2d056c9b29aab53b3eb71e53c8659d81a78795fd1ee0950d54edcba93ce659cc69c96e56760421b969fc4b361cf82c41fb5a98be7916fdd1c2d13fa6cd853182825c2a9ae561f52bd118632e799a408189441114ad3f35cd8f25c8261c5b5f330b1ac20556dade24138299e20a077ce8294dc9be70201a1d98a42d146a8c0f03f139b8e07524fc5f2388b953219b696f5fd3e1779c403febc821295bd90a4fad9f44ca2c3dc37dbbf796123f7cdf66f7226631cf9ed310e3ab731f6b18d716e63ccdb18cfc57a33a7531335dbadc66903b43b1f4959fb7442f6eca954fb627b5edaa71fe3d8177b6c639cdb629f8957ac6571c8a9b26e5949e4e988c0873b97610e87706a3ecc7a8aa21ece269f42e969c05da79041732b0f3c9f14aa86b499daac4ef1b8f0c5eb20cfc431d6b86cf9a76c7ba8713db394c956ac5d5f8571c97bab77b811c2993026a3ab327a0a9e380fac6d7c897c1eabcd65cf36aeae1e256fab7d2ef69a20c1a85507677564f6b2378738939dc365beb57358e8cc764e6146cf3b83199fc1fadc3a887da019e84c768f77926c76e8a9ae20556272a0f358efb2ed9db6ed9db2ad773b97bd23841e8743c93880a0c0e4f03b3cc299d81a95045d430b6a3107d61a30c7bade259e89bb0dc899d62e72dd6036d80120249ec9fe06ae282a860c34deaa3336bcf2e3c6b90619f9ab363afb3918cabf67c3b51d1ff4d86dad58b9b8d552d20d60f59f6050d10635a30fea97ca923b19145a2ed3d87aaaf0eeaa27ef91c8b06b643f15b06774006cdbbd3e8c8c0442f700de30628095e2adcc67f01613860bef85acb1591dde49dd6f75e81aab09ae0efd72f47a5b9f976a45ecd1c7147d4c8655660d7a82a769a254fa972abb3ba1ac4335ef50a6a8cc169423ce4fd186504abf369e20c1fb127caaf138c2f4de973092437e58eaf32759b57e6d44c147144f47f48b2c923b715e5372f7753dbaaf737297472bf336a6f19d0c6c1e075653df863693bc3db44fae31a54f43ad460ebad9c23d0db472e0a9e735ebfa015c9d1e0093c364187e825afa950db8c3212bc0a7c31056cec498e60ecca05150a26e260b0d203d601e2d967558ae801570c0c35303104ac49070806a12d10f4225bba5af8b7d59bc7adece102648a878d57311c77204d636b573f1c7f0a870c4e91c7b6a685c81d311da5e9466384c30a7546d6d39fa8131db33890d9509379d65faa462c84ad626a37afb8dd5baf264acef006044303c847a3e7b1098e682be3bd635039c350dad021050a897aa08794d6bbd32ad668a93ac15e042649e496b948b6d7c26f363a9413a5b7f1e548758b5116afc0d95aa58ce79031a1059b4b4443a9f446361ef2a50572207712b193d5328941cf996c7b4bb465eb56dcdb9be01c448368812ee91d190c83e0fb122869ee810d9a17fca9f89fb2132e4b7a08601686368c883cd72bc7a95038a1decc320222cd659f52933621956d48664198afb7c3d1b1f254e06f763fe74b1f632f0610af2a23aba1f422ad78af4780a83cd2c3ea2788a7749aeb7757cdef90a14ccaacb9b421b90a9b5130a15a07b86f903542dfbf8b2ccdba75cfe5a88b234fa3b88b2a59c0997df01bef0cb17871f3e19adb7761af72e2e2823a121d3e257bd2d13a86683d35c28034f043d312ece8349fe41c091e139b061663f1d6cf7d41ae7db6374dce938598d170fdbd21e8498fb9693db874afecf049b268bdc8e4407116b06d7dec4d1121f8a1a466fe254e910bb956e4e0376dbaf0e6c8d3ee50020c7a72ca91c28a3472819ae2e7963c4fde24d19c0a73a10f059dfb4d40faab8ca9bc8edc0b17e29949ff6240742ca523f14b54fdfcc432ca1bf613a48e86f0aebdb91d498d3fc73ab1f27acee8cb027c2aa3564d6e79e68697d0621ef0916a4eefd783e3907209fa48c96da215b3dbe41fd4eaf139c9645864e75584fc322d48f37b7f219fc1ae1954eb4ed360fa7d91d955df54cf65ae71284da1b16afb468def00f107b1bc470f14e9a05487ce54b9972768cdda58532c7a29fd6baaf0b8aa48be0baebb55aa1274af86cc6de5109555b92a5f71ea4b17d8ef21126c3dd32f3064425c3b3a7fa064475ca0d9f768cb5fb18ab971bd99db31aa3f04647cff0ea1b688ecc33c9946b3d6fd6a19f20ecce598d71ba7015d9b27c269dd918770520a3bcad00ce658cad79b6944c5febdecb36c63351520d27ed5a86376f46adcdb0061dfe797687c25a4b12a05dcad2d07db535514b8b3b7aff64bfea797ea442fa3546cf1dd8fc32132d5c9167d36baa4bc93d35243adcda56bc73674db5d6493555745acea102551ba8c1db95da3772883c1162fd38e3e5d7a077c925f4aa868a08fa3ce3ba010bfe3c39a4cc9a4ae8d4535f8a489aa17349732979831aa7331c75958291ce3416c1a1a197bc94397527524b63399dd799786b303c13d218a3a76acd9c5c99f473f1d880a43ed2e266a2de9377c7791b8eb833d0bd53d35ba572683274bf09a51e5a563ea81d59d9b35de3e34f366203d6edc90d8ac692dcec21ae69435dace3b661bdbb96ca3d238851c41b44b177e411ef745357832591501df4a5eb09dec1cc9bf592d960d0258d55104740bf189cfe11e2f07654dd609aa67e5faceb3d9c027543d91ec0f4afabe5f3a089087e3902046c1e0129cc71c480db44fb243298ff12591cb71cdda0f30a40460332b756022d7680cb3bc8395afd00b45c9f6e28bf24c3e923f45e61c03b02cccf7a41a866a5bddfd00020bbe5c05147d03a926c9f40d8ee1d803468e57824f7e9f5a393eb33e92bd83a107e3aa5be16efd281eefcb6d8e8eab01aa27e31c453fcb1a3210d79d3062b7a23e0ee187e4c067b34f00c72022cc8e4ada32c892b4c5be5553656dc1a7390752699ab35a19c480b10f4f969684755d1838b3278879056707b64a2bb266919c86a6bddb028fadeb21adbe0fd9cfa8bd9d428facb3875ed16486ca1603bceedf34dfe2582c15a767cac6c583b7a250dec7aab67403b935f9c35f96bad240acda9e67fa8cde13843c83ff12c1a245b9ec7e1b1cea9c42a9ccaea08a925508d53478a8fa7d9dbba1d7bf301bfdc6bfd4bd85abd58f266719a12686af8e6bc35b3f1cccc60189f0350a0cd1b29f6d4228341aba3117bf00132050143246a9550f65663fa34798f9824d1760b3ac578c3926aa89c962d4ad6aa4ed6d8ac4991a741aa0868d74a837fe9aa502ad2da5deb828cc98a35f16a601e03bc6e4e53f2c223eb8d4181adc1dfde2b51f6f67f74eccd6929b5d646c65b57146fe4c9d6bac256ca9a3756f76d23e5c6bfde1d776458b7ad95bdb79f60cd66b014b44f90598abcf820c57b89595e1a3081adf1337c23eb7e635a267144e69bf79313743f1c7b53c86cbd2fb79691d5da9978d7c7e648b786796179f8e3d81e7906efbdb27dae8695096bcbb9179f871cb2372b645fbae26d2eebb684de9595d7ad83a2153f5a3729ef9cd23d811b80165e9cdf1d216a2f39be3d604c4e77b95a607151a5243cf62aa0d32a54ef6be9ad3e9b3711457f9fbd5da8352429616f0abaf5a6f5566779af6f3d5663b6635bd0719d36f1f875714d61ddd268df41c506e66dba3f4191436faa516a9d6f623b9614985960bdad8ead84b70c7ad9eeed9d3fb18bfd8e37850b68261c9bf7f6dcf2ec0d1069eb232c9bb8d93a78e2ab16790cd3be76d2c1d6fbe93a4672f14e9d0329df0cbdb20d7bf830e72ed31c376c2b493e6645f1d66dc7811bdbd60382b11f0dca736f5b0a6583ffde5abce7d42bddf919b04e6fec3a5677d67a462ded22bb6e26cb890928de29feedbe425bd7540a5b6110a2be9f804191bbd4b8fd9341ffc11914ad4bb8fdefc6a0adab21589b9c32e88ec9c14756f446cefd846167dcdaaff3de7119b6259813ac72e44f7613a26dfce9a6c58617ff7efef4b6bdd5fb1cf6ad597a89c716c8e5c8a2d85f636b078d63eed6ebdaa01737fe8c4706b54e679eb7e03ddd6d69c917f8ccf9b3751cb100abe24470068d1b83fa6291534ce2c6a1de3b8ebca1e406595eb63671e4d623baaa7f0a1eadb35897f07ff2e83f328fd659bdf1fbdf8747b7d8c1372f9e7ff2ac9d6ca5ca7569a3ee57f0a84c5ada440fde99d35c3ac393d34b9233cc3e6ac3e6d196366768232f9d2642be92c6b9e41fb5e9d8146dcb3f6a1e0ed1cb31d299e4dfb74c69475590b437edcb5b9a6de77a2e9d45a820cb6ff48349b969e0ab5b535674b96d9602086156ed70b9ddb31ebbde71babaa0226f138a46f887ec8dfc77118b9a6986efb2b85bac1cadc8fd349f03a32131ea471c107643dc44f771f34d58958a8b1b6b4047915cba0fb7d7c6e6ed64c827eb90c230cdc44fdfc55b715b7b6eca26bd2558f7e6638f611f9e798e697321d306a2fbe47078f6f2d593e5f5d5e3e7afbe7e71f5ed83cb6f1fbfbe7af6fdbfe6443c16d50493c6b27fe066974475d6a5674a3c6bfd8d410e9446a91be44099ac3c75f5fd834b92542e97ab1ffceaf6af959a2a2fa3d424329abf5366d717d93be9a7de09d6b5ba62eb4443d60f1840b891d8030a540d0e7bf526c94004888c8ef0de58b9c15f54a2d729c69e642dae359b1f80a6a10fd9329a73a87ae35a6baf34d0329ddc274bde4ca0a4f950d0e6cbc03c45e092950ce8e67ddc3fee92e3d694cc328c96a5d06f2e6fded319ff7b47f8a4c6e56eb12a6e5c4499b684323f6eb6b173ca99c7d2b32499a37ceae99626a96dd32d896f9ceeff495bf3a7dfd9e74d2fd5bb35e5c1bcc05f33fbd8e64a757b2f8f7daed0bcfada9ee8e3f8a9a7398a20dda2d7ceefe3a65f39bd02332df98699f24e6196139484f7abeebf07dfef9dc1ac4b425e058e1b2fe06f56eb59d340dc1a870d3b5520720d1dee3045354c6f6143a8c244477d159fe86e6051c01a869dcf2c9e652075441657153d154d38fa4b446b018423071427e99f6af036fbfaa33322a58d537b58e60852f5f7246788e61ef609fd7866842e8805551c71a057a2d16ea8c5038468af8df012758bb80a7aeaa16f480466664455e37e0eb2941294539fd97c49d5a934b68c826dc6c571ba39f49f9f7247f8b8e013483b30d7aada06e69ca473db4dffbb58329fbc992d370a629d7e8ac18e08e804c01156d275a40db4881e9f48c69066ed63676c331554e8abac18865252079a94c45e6e7b76baf3c6c205ee27e6d5c00e58c76b678b1a0b4e256b6c26062321ae0a680b30151a0c024c240dab6214e59640d39b683b52c40cac278c198a87ac951b7a18697a1b4bf17695e741131e2d545d48ec86500a02c1123a08647a28275a5ba0623804141865e0c3b018dacaa67c4690b6617ef46cfa66acd3fba0b3f7069916073993c9d7a9c7605d0d5df8a9fb16f950debd19701e629461eb71db213523418ff2ea6db006ba20a814180005a9ab959cce882c34601000234459a27a16092047a0989b45e0d7e1476d36b8b1a2f4457fd673e9cc4d288468a2ec3290e884aec5608e16c1f88cc852b56433ec37efce4cca326d9d6ec43070473cb3cc90224784a9a2bb11df2f40ae1db7ed7773f75b053de7eb5ca12eb29a4c338c58b275269fdefadd1acee83dd54885ad77ed2db11aef1e274300a932d240ca2d6f96e6b0a143b4b7d540627a30c4100b26b67399c3696d51f449c46d12f13889e8b388368b787d163f75f4c16127fa296bffb0bb85529b8d97ce89a5743f73a90cad1f7fe63abe783b6c9dbc7690c8d2736a94e7273c74d5526e98ea0d87ae4fbe63a543c490dab2bd6f51f83cc32861587ae93c97b1963130d6023bc3071b6db0f1dc062b452d611e23c93a1d698d2d760600bb6a59afd9daecaaf89b2ad7550f009a6d35a82d32a02dea11757534d1546a4011d728d38136abea45fd23027162901100138825072a517ff2a1d8cd81ee6930eb747c144ec67a1ec4f39664aadb570377c271a1a075910e5e4f6c75acc088f28e466a910163c7e836cec5a4862c5093daa0d260536f1dcd6b804d5d5637a9813905933a1c4d6ab7a8ed242501a041d37253cca48e629cb519d4d12dea0840b6ae921f09edb74c1fbc738274ddc666516f0675dc0cea78625047b3a8e36e51c7a3451d37933aee26753c9ad4d16d6a808ca1f4852bcea172efe296059e774d85960568aa03ab0fbb3ab85d1d8e76b59bd56137abc36656bb551dddaa8e9b551dddac0e6656c753b33aba5d1d37bb3aee767574c33a6e86753c33c3ba629dcdb076bb3aec767538dad5665687cdac8e47b33aba5d1dcdae8e47bb3aba611d77c33a9e99615d07a9599d18c09740679bc110fe0009ba6e6675c4c993e0bf81cba5de7601efda11c51315164de5a0ad0cf09675f8aa0d1b7ca67c885dd7a4af641d943994cdd01634036b2a4445edd5e635202a2981604706510de78a15c4946a59f17af4aa2624ac5f33d2cacb3aad72429455e0e865bc25523b44ecb7beda4117720a421a65d9ca2bc22b0dab461886488b534e29b14a6a883d07642b17b87ff45fd6d56120d6ac32aba77630f8c1b6a279a92a0965bdaa4a8d62c5554f7230ec42320f1e63afa2a52ccecf4a3e396220a7160bdc29a467f0ae0683d94a4569826aa86e30b896fae390df38e44cab11840c2dde68d1009ec51c5e9e5884d0b6d51aea0a7483dcedaa86b19d1859fb34941d07a01cd502196bb4a2268edd9a096f7e5352a525488c19c0aee408da6e1521c0c935842b31d83c8c5e2c433c4eb811947322e5357283579363c5e91bf487233383e0c8c65a235be05e6d28207d82dcd1c95d55bb9a3185f6c2142547c2be026175ed504061852fdd0c38e070714df521771da54883f4a9aa902b62edc75df021d180f7644ca431a8dff1fea4a66295465fdb8c1d1aa8b548d4b03d8aae8e5e3f6c9550be9f6a186c7d4e0bae44661a0ff5aaa9a40af6c5c1135edcae57f72e2e1e72613c300312e2fdbb68fda73f701ec2aae6a17c5d01551a8e1553239ac16e1d6f507a404813e99055aa802b36510bd82e64358c96865256490d6125ec1caa5bbd2e37d7cfd90cf719bb4a811237795094d5bdf0a5ab5103390fcba8fa53aada99f5191d4c419f0e4ae56089bef045a9d4817d1587c1cfb1d7f5ba1550f53146e950c1f449f79801fac275a546054ca9aa2ac7ecb21c81cb4c3a3666734995359b5304855bddac320adb340575619b3dc38e871c40a1680df43bf25d2a720e210a2c49d18b29a3e52f4ae203321aa1fd1a248ad80f4e7bf13067a2a0b08fd8e0bf3a5427421e1cd9e48e037516544a75f7ea36f8e05057a72303bd903c09d1e44577ae90a18d5402b24b52b68a6db6cebfcd4c0db8eecc110390b711dd64357432fc5eb776732a46200c5d375514fa4928f8b3174eead1ce4a62b0fc367beb2baed354bbe661cde8918cddadd72570635cef2cfe1182280f99777d726e40d7550e6bae82dc7d0c4f166dddbdcf66c065aa08d301fb787777f7b5f17e7a23b20346bdf7adb80c7e02353b86d51e9fc730b9d13fc2302bcabf7b56a31c6609b0f619e272335755229e891ba214b5546cb8711f6fdcc71baf8df777f7bff9fdbd7308602349a10669c3dcc3e7312680a14a173b5bfdeefeab37dffcfedeff1f0000ffff5fe69651a1010100", + "c942384692540a659219d8746ee9fcae": "1f8b08000000000000ff5490cf4ec3300c87ef3cc54f968640a2aae04ad20b4fe22d5e172d69a6381b428877476bba35bbe49f3ffbb3639cbf601758d5524edf343c01eddb2e852ebaeefd638e006663b14f192fc7374451e551f4157ec23eb01ef08b4de51a32ea381337bc851e651c2417cc6b774d3f623310720ab2c468cdab82a8635b0c30db73296942f93989a57aa1fb3021a9101c17ee9cd7e8ef520267cf5de0ad044b5f33d796058c9e78aad4c13b2793a592cf42c373f151f4d3f457e0a195beea9b597be72febffe0efd6fb7a5e9065fb0f0000ffff829b6c549e010000", + "cc0ec998cebfa39579cabe0ebf0062f9": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608bb8a0e2610b1e65c8ced66036b366260711dfbd74af3f1fff4ae99b2e8c942c4b5580bcacd20c5d653b7c99ad0e60ee35a127c5bbc74d8d3d1b073cb3dae7200b0f54a7c2cd07fc835d63c5fb07248dc3f9edd5bb830bf199cd07801d697cfae954fc6d1c4723ebfafeb2c7c61a4f3271d8c849aa51aeea6ff928d36f1cade57af1618fee834b9285d1048f7d9ea9880bf00fd7000000ffffecd480c3c7000000", + "ce01971710d9b9f11bba237baf76ec52": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608b5814ec21824719b2b33598cdac99c941c4772fedf5e7e35f297fd39991b215690a509655baa16b6cbb2fb3d501cca365f4a478f778536914e380efacf67994858fd4a6cadd07fc834d67c5fb07248d2fe9f4e6ddce85f8cce603c086343efd0caafe3a8ec9c8869e5eb7d859e341260e37729066549afa6bdecbf41b93f5d2ce3e6cd17d70cdb2309ae07ecc33557101fee1120000ffff2fa22d1ac7000000", + "cf6712125ddfa9d651b4f66d736d6303": "1f8b08000000000000ff5492416be3301085effa156fdbc326c5c8f72e3da4878585a52ce450f6e6893cb645648d90e4a6a1e4bf2f92b3b4b9198fdeccbcf95e2073a4913193f54ad93948ccd828e0cec978a7cac7c707b4849cf42e04bd33d98a4f7f8e232e973bb555aa6dab1836214f8c942966eb4704b13e639088b32c11cfcb3090135008ce1a2a5d74d1fe9505863c0666872132837c0fea7b64419e6c4257da7798394fd2373013f9918bf4345186cde8855303ce46ebda72e71c4e0c4ac77529ca0d2823c9cceb564d5909331d1969898c2c4566c839741482de737ce3cdb66bb078c729d5e7bdf8ef1927f2b96c566d566745fac5549d079b341eb76a58bca9d7d96cf1a150dee1f109b41eb11c74b355801dc031d6cae7f41ff5dfb72778ebaa187032ea9f94c96d38c622bca88b52ed83bac78b644ea0832c793d981ea553eafe1efbfd6fec9750c02af5ca886c649ed9f7088e4c2155f97cb570e0c916080851decf0dd262265052bb40666248c4cb68fd7b25e53857dc79e219bdd40c949113d3db19ce0ea5aaae31d098720ee9b16d4739ac81d0565af66d2f26b5755c5dfa7f5a9e17eb7aa55e27f6e8ae0a1ccacfaeb08d8b2f308cccc13a5e8d1caca7786ebe66a772a8ce4ed6391cb8c4a12c3a71a128c30a6d556afc2afcc0ef814de65ed55a6d7d4de26db7cf24dcdc7049c577197213a96b8cb5520fadfa170000ffff71ae9b187d030000", + "d439a742bb76bceaa50df253815eda39": "1f8b08000000000000ff6c53b98edb3014ecfd1584eae5b32eef556d912645bad40628e9c9a697e26348ca0782f5b70794684bcaba1366067388e4df156389161d26ef2ca9fab6158a92a7001ed13a493ae019a4908e6827e40049dde0190e6e4495ac51bbc1e3d7cfdf23e66a2b8d77c93b0b198c250d1e83e0849511f527e3fc247cbd1fc42c644bd52c78c338379676169d4b568c7d0db6160d39e9c95e827827fdbeafa0a66ebda3587fbd98d1a041dda0ae25ceba5444de792b4c30296113e731961832066d58f6ce926d06d9336437eea325ebc5091d75b86e49dfbe796b7118bfdd40964f5e873f3d8e3d0bd84c3623ccfb31e39a410ef934b0c1e38f879d3f2a51a15ad74a0e512ff00ae5bd59e4c86224dfa61a9134161d7a8efa78976c92a7d5a811bd2763b19567b403fd062ff07c3f9c60c0158926b2af904dfeb57333eebad88a67430ee7740a2f43ee40b7522dc8e7fb4d632cd991d9a33dcccdb729a493b921e797e1db626ee0c4b2d92ba490df497f596667904171637b3bdf7b2de77b3535c883f78d2a864a91341d97da79a1148f57991bd5efc66753423a8df7681dda07aa6b0ec5b4b2935af23013cfde8adacf84db747ece37a35aa1d09c2a470a3df27adfeb4f17e5e5ecd8c85c1e856f209bed898238b5cca75e539c8cbfbe80ec5b19258f6831fccaff077e937642cb169d5f0ac37b0a8f63f5b5fa170000ffff7d5869daad040000", + "d7356a0c96560b441eda4c9e940b5754": "1f8b08000000000000ff8c90c16aeb301045f7fe8a61c0e080edc0cb5b19c7a504ba6b6a48e87e6c29b188a431b2926084febd389096eeba9ac51cee3ddc5aa81bf49aa6698be35cfc07d315ffb04900ea61f37c884259adac2c3acdfd059bbdbc4308258f7e2adf59485db68e47e962acd7c3a649eab550b72649ea740b2776e68d5df69bff24b7a3491e943d6b19630e817aafd856dfb97b32f289b5faea48c7d8921fb2550e46fa814505d87e1c8e185710207d28a75b18c979453ac310ca136bb158ad178972f046e3ea87d4ca5e8e9cfda5303c86a8003b6fa1f3b6b893b3ca9e310714e4a9e8d99e94335801be3a09335f61ba3af98239742ce60a7047b6977a914d9ba44e212ef72b0000ffff7e16bb647e010000", + "daae3f6c1877694081e2d9bbe1ef33a2": "1f8b08000000000000ffa4574f6fe3b613bdfb53cc4f0860293f59027ad4c2dd431a2c0aec26db76db3dd846424b239bb64c6a399412afedef5e50a464f94fba059a836593f31e8733a33793540ad2f015e7254bd7300685df2aaed0f75eec9217bc1b589b0f859cf70d16859c1f77ef64b9752c9f8b6ac145df3495e576e4084765b37d447ee282df11ddbf6ac5527d09de70c14729d108adc52501133c47ba026d8fdc388b0be85d814c3cce4916a8f16e5989355dc3a7c66c249ddd286d0c8f2c5f5011aacbe375b3fee6c53ff21a7fc742b2ec6dcf0b5ea36a6c7a70874fa5c8f9a2524c4b0563d80d005068c59112c82b916a2e851f9865809aa976d3999a3f5696054f99314c60e2160186512c64864f1b99550552bcfa56a1da8eaa15c5a4d258315e50b4a261d8473022d414a744718f36a2948e8633fbe530681ea6a022da8ad4f73af86d7c1bdd7a41944b75cfd2a5ef1ba7b7018c7fee9ce639d855188fc73f3a39e860000a75a584fbe97c002850c31ab7306ee2b38d1496054bd18ffd693475dcd3d82795ee57b44f89f60b194ce3603f8d7c4d668d262c9dd9f57811c27018749efa6bdc46a499d2f495eba5ef3d7901ecf7e0c797d89b98079146d2dd9dc790b382f0c777e0b9df6677b2c6edcc404555147de4e93e4c9a43663f20ee83a2b2a2a5f3cda6d13e2cb2351d001c4203b7e54a7eeb83a940b7668e7707087c69c527faac64cd33b42f83bfbb49c0b395e785abdfccf3b87008c21ec13505f177392f50b00d26e04dcc73164d5229340abd64b49c4529d119cf8586f9935daee42681ae40bd50cb043cef300b616764ed4fb19119cf396609685561c817422a4c60e29982bcbdf542f056ed17f3fadcde7a33383db88dc047c932548fa5a95f6aef61f46fc3bfa3e3cf705e2d125b19676138d1411b80071b805600a31549717eeb4b0df46d6667ef06fd0cbbec7519b6f2e0bced4b8ecbb883b525a88c96f465e6589b00a6ee1388a7917b216ee2b0b75b11f681e6ef5acea3a2895f7862b803bb9a8049c8c8fef04290addf3b92954af1132b6d840f8737094a49fa3f9310fb970c3d82e37bdae3dd1da3a6e9f5fd4d1cda4079bac78faf69516598c0a9a45fa759599aced5399b63d171bd41f5864bfe8bccf3bdf9f869af75bea77a11f8d3f7f5789afd7f1ab51f8139cf7a5da9eea8eb8c28f53f12987a6f19ae39e59a6ba4906451a3df8a49e0f0f85a4a6a19de5bc9f9dfe9e2cd1bae2de431fa0b592e51adba1cb4799cb9ded7be3ef38a17d95dd3c32ffb751cc3c3e397fb047ecd612b2b600a61c96a2e16c0892a2478e17a097ac90984d43047b345a8c12b952c51155b2f840d5b634b47954243a5e0c3e3d3fdc35fc0a9b16fcd81113ccfab3c6785b4be3d83ac51299e21c1c3e32ff706d5b235a7bf2c99c61acf19b504a9c0cbb0c642961b14da8b1a9c1d5b50d43036c7a64814a1a8a396dc74c61398d31fd33aecb0d39b5d36d294228a3aecf5aa6d72321545ae29f99de0c94a97954ee05a77b06d61455e0825d3cb049e6f764f4f195766ff1097d5bce0a9eb03cf5d1d38553c3bb8eb7ee1d1ddaac033ab13053ddaba024dfaddfb55a320ab149361a46918c2b099c19a8714c359d7bbe1d8c1ed60503793d249642168b9ad43adc3b6c99bb6703e9dfa3b569628b23f52c54bfd852d9c4c0541e77523f796afef844dbb1d8661dcf49cfec4ecb79e588bae9f1c2f9fca4da990cc5aeff5db30b1284e8204b0462c9f72932fb2ee5dd3cdae067ac0546e4c5cc835d6f012d77d71ff86dc5d431c82eeca26a846dc37fc7b338ff64bd7757495c0c45e7ad68fd779200f83c360604b253272a4b499a04e0aa9a7257e30f83b0000fffff3292c28d40d0000", + "db8e1e2167d7993bdf62512ba883d4d0": "1f8b08000000000000ff9456dd6ee3bc11bdf7534c75651b36857e57858b2c90cd269b02de2488bcbb058a2261a4914d84e2b02465c50dfceec590926307c86ebf8bc00a393c73e687676865f92cd708b20c8a8c1f8d5463c905188f00b2b50a9bf64994d4e46b7a6aeb5a6acad16c77d987bbfd2f1bd4e44af45e7f60d974f3c182adad74b2d1b45ea3fbf8c091d17b0aad71a43556b9c7b275988d4600afafa06a10648317e7d68a9f2a6ceec8c27ecf875f5fdf76be5185dadf3daff7fbdfc636b764f3ed1f39ff58b24d972557682a98eff7ecb8f4aefe380adee533eaaf7f331f5bf1eec75cb86e2edffe918d26a3519ec3e5cd0f501e5a8f1504820d6a0bbe53a1dc80c71094597b7892bc4b06ba0d3a84b0413e29add5aa945c7e46784265d6e05a23e00bd6b2d58157b30ab7a8c936684226465be9a2c733e06e105f318cb3afb70f97373fb2d9a9ed24da4a6b61da53e77cc7c5154c3946b172d2782d03b918c9b9b5ec3171945a83a336a007692a68545569eca443ee2ee811f994df50ab2b7842a8b056062b01ab8df28c14360806dd16a14413d001d5b0a3d6bd0b5e8cf29c97eea9e574cd8e9ccd60eda8b57e06184a210430810a4b2d1d56b0babd83f927f872fbf3863192df06a5f1dc7d3b6a415615c863f281e0515afb0853590774d31e8c332f1922ba9b41d8c890bea1535ac3cded0a36728b69c3607784c9f12278d9c4a272d8ae450ed5a1a7d69503e118ab07e9a143ad87a0ff11406a4f3ded083fa4dd21941b2c9fb102656232c955e8f86b77928818fc63c199be521afd23b3907071bebab89e9f2f970971069e4085a160527772c75dc787ad962556a0a50f83af78e684fa8cb9ab9032621d6ed10c6419e350969859360c0406b7e8b8394ac91a2146756b4aeeb4f1e4a42fe195af651dfbf5ec0c8cd27105d2c2d06fe206bbf1f07d6b23ab64067069b60bbe1ab3feff02bd57646e64830bc81e8e3587d704676abf7ff0c92c4bc7f69351fce5dbd0066a64504c7c070e2be5b08c3115c572a026be7b1c47312d8ae578f2767a496b70f89f167d48028b019d8771ad74fce0f6df4dc409ce91c68abbe1cc32feff067ce728300fb996caf80017c5fd15c81064f9ec056c42b07e91e75dd709eaa4b782dc3a57a6c217613736bf70e4fdbc50011fee13bb872b726b74bb8731234d0637f7d8d0365e974a79f9a4b9f3953fe5cb6aca15e9c9fd52f323e84f27ad0794e5e6901b654042601d4a73500cb6508a1f52b738cec24b3611e3a9252b2ec8188c767f8a689c1549ed92977113a78ef8f2793219b8f310493324e216185a1ba5aff59818ea740d1627d8c73b8706e0cdaf97ab71966733b8a606afa5a9f4a18cbcfd765b9395f41e83ff4c2f13f6eea36ad6bc0db5a326de48db3e6955426a4472bb1140e4eb30b4ce30ea681f85fc9853baad9a64059a4aa97bd4190f27686d040e8739008ffd7344ac1e6751a64d95100627efc4342687123e4395e4e235197c918bf566a8bee451ac78bd2187a04c4dae89541787ee3d0c5ba1f8d5935754fa3c22aaff46d3a422a7a93f68c4b703c12bb6627de0a1872efe914b42b39ac595b3f81688ba12077bfccaa4b58b1481e7b12a443efc3799418666febdc8267f8f007f792756a20864c7e8dc2496e7509dd511aff1a42fd4a01cbf48310f847eb75720694099929af85a48398d83a766c9551e0c05b85eadee0a0119677491e7f8221bab915f32199c7d4aebfeddc6d1087df35f117a984e0d85e914d0c40b56144b112bc8b3fc6490c38aa0a2489ac13a048725350dc66b14872c58472fbbdfd43adafc1f7df2e123344f1df2a6ccbfea8e3eefc39bf8b85009ed74d414c5f2beafc5224d1e7e8f9d41661d556dbc3efd34298ae51d47728db242e717d048fb2f1ff8b5f1eff4f39afd737e45ae93aec26aceda4ed9a22f4fb667943df7caff020000ffffcc4ac5ca2c0c0000", + "db9e7b0a79a9cfb135df713ae83ce099": "1f8b08000000000000ff4c8e414ac6301085d7ce2986ac5a90e4106e0a2a827a81f9d369136c326132911fc4bb4ba10b578ff7787c7c8de217ed8c142d4bed00b93451c309105d650bc9ac3938db9e2d8d9b8f52c22eb7b16d7448b8d2c10c10022e5278a1ba1eac983b12aebcd1380cd3359a6067fd661cedfc1326298c8d76f6b08d1aff13a68817de3f4935bedb8cac2a8a3ff0a06c432b46ffce75659d4e4fff6164a3bf3d3fa2fae5f3f56572b9ae7cf7c9cae1e6197ee12f0000ffff1754f1f8f0000000", + "e255094fe51ef01862178e311e17f754": "1f8b08000000000000ff7c8ec14ac4301086ef7d8a217441c18d7a2d6d61d9931711ec0b24d9e95a4c9398996835e4dd655d1441e96d0efff77d933344e58e087580a603e90393dc3147826d2955ce308d802f5007b9f7f3ecddf01e1004e3c2e26bd16e3a18e5800bef22aa411d2f44ce7590f76a46f9a0c8283b7d6029e20a72f46fd4c0ed4db9844d7f72a3255ced68efedefcefe09cdb3f6cb7a273973dae1a1815159c2bfbdb3edce85c42baa1fcc1dbebffce7ac5a9d98bd0363155127343bd0ecb6948c412201d15bec04253d4f2cfa47f58aedf519e9abcf000000ffffdcd8bf6980010000", + "e2d5d81577b142a416eee01f2874f794": "1f8b08000000000000ffb2c930b4abaed6cb4bcc4dd50b482c4e4eccc9ac4aadad55aeaed64b4c2ec9cccf4316b5d1cf30b4e302040000ffff9ca0bf3a33000000", + "e8972ac6dc3e57b0c59883df456ad37c": "1f8b08000000000000ff34cdc16ec2301004d0fb7ec5c8a7a4aa927ba59eda5ecb851fd898b531246bcbb14108e5df5120ec6547a3274d627b662f605b42d499284c29e6828600e34339d6a1b371ea7d1caa733cc6fefdb3e841b2a196e8c219191fafa6fb531f54885c558ba0a1342dee04647c6323ff726db6b84bcfe115acf72b8eeb587ea216d1b2bf25f982e194c6607985fd698e6a3e09585a5ae8110000ffff7d25ad33bf000000", + "ea761d55cd5f5d08a297041a98564260": "1f8b08000000000000ff4c8e414ac5401044d7f6298aac1290c91d74f3c185e03f41ff4927199c991e3a3d228877974016ae8a2a8ac76b1c3f791370f4a4f5204aa5a9394602862a3eefee6da0b36dc9f7fe0851cbbce9a3af2b679daf1c68229a67dcb4c88deb92c5900e301659b967c77e8dae38c4be04bd9d7fc6ae45d07893406baff13f618cb8f0e155abcbb74f103335fcd0938977ab88e143ea22369e9ee1eeecfd787f7b8685bb5baadb38dc2467c56a5af072c94e13fdd25f000000ffff16411447fa000000", + "efa72723cef2e8bfedc523738bf5d159": "1f8b08000000000000ff9454c16edb3814bceb2b064c60ec2e4009392c1008e9c1a95df790c6aea5b4e849a0a46799082d2a24e53670f5ef8524cb8993a6494f4f18be9911f9864c69a50d253633b272a1b7db71c815e80ebeae9cf52797f17d456095b6ae3064199ac6033844e578410e75950b47188d0e882cad134a81df6360dd299e2949a5ebf44959faadc9e6dedea9bf73e82847e2653e08a812dc22486ba9728ba0d081355970fa0f656b0db6dbf5e6e3aaf21722bb15052d6e8ba661f889ac76e03958c0c05767ff766a597e907889daf56d6e7369c02b5475aa6416086bc9d96ea9d0687f9fd728a45bd7a99fe94d50e8b45ead84d2c1933a50363a47aebf974a8bbcc3e847a58dc3621c7f7cc74edb129ecee66d0d525932cfb34e1464c3aed991759ee7b7856f85b12146876f0fd80a2345aafa6e60364fa6d75f42b0b687bd350dc0621ec5b3e5344a2697e1f1d15e8b0df91fa4a2a6491e44df1401e0d3b7e8f3553219c7e3cb71347d55f981b29ccfe364318ea2aff3e52404335a0fce433e80781ac507f1e46679d51bb45a93f4c6a8a6619e77829956a22cb02563a52e91adb5cc086b521519cfaf2df1a2ebe072230a0a317a0429d19d3fb05febe1700fbfc63ee3e7cfa867feb9e7b5ec76602778bf166541701aece222c47fcfbc59bb565b825b137a08333decc6039ed27ad30e7d1c942e5321f6dbb164b6326b53f352448e07c9fb8b1afeffe7e93fcb153f3c21c3991dcd7078b5fad6fdbde9fff157000000ffff99f35612d8040000", + "fb822827dff50f68a3cd4cbdf7a507a1": "1f8b08000000000000ff74903d6b342114856befafb8afc58b2e83032917b6d866cb14c942cae08ace4a6655f49a0fc2fcf7e038c51248a93ecf390793366f7ab2a80df9180a80bfa5980905304eb6900f1307607cf274ad1765e26d9ce2a53aa7e73836398fef0ffc2fa0544f968304a0af64f1b8963cb74b2c94ab21fc06b65b29d51f61017035183cdb42af778220dc6d83d45936af4f1ed0e68cfb03f69447fbd1a5174fd793ffa49a6d11c794841c70dddb10c17fc7f301b952a3db0c2e2530efd6ec7f070c7e6e8d8cd449939e85cd59025b00982eadfbff5d52e3fa71bffdead050d6f73dd52068405d242cf0130000ffff7b2fce9c7d010000", + "fcf9b1fe98670ffe85fadf1593a3b534": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608bb8a0e2610b1e65c8ced66036b366260711dfbd74af3f1fff4ae99b2e8c942c4b5580bcacd20c5d653b7c99ad0e60ee35a127c5bbc74d8d3d1b073cb3dae7200b0f54a7c2cd07fc835d63c5fb07248dc3f9edd5bb830bf199cd07801d697cfae954fc6d1c4723ebfafeb2c7c61a4f3271d8c849aa51aeea6ff928d36f1cade57af1618fee834b9285d1048f7d9ea9880bf00fd7000000ffffecd480c3c7000000", }) if err != nil { panic(err) @@ -93,156 +93,156 @@ var _ = func() error { func() { b := packr.New("buffalo:genny:assets:standard", "../standard/templates") - b.SetResolver("public/assets/application.css.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "b944ada0d7dfee32b86a3c351586ba93"}) - b.SetResolver("public/assets/application.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "a0904bad0a4150c57d6f1e6c5d6aa503"}) - b.SetResolver("public/assets/buffalo.css.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "2613a5ab39a3b9986bb019331d8546e9"}) - b.SetResolver("public/assets/images/favicon.ico.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "04485932d90f92b1f6d01ac655f3b3d2"}) - b.SetResolver("public/assets/images/logo.svg.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "8904c5384fa8668d6a79e32e48c53111"}) + b.SetResolver("public/assets/application.css.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "749dc26d85a249c8c5a3efa92cb0293b"}) + b.SetResolver("public/assets/application.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1ec08471990f98ece7e8d944aa3cd415"}) + b.SetResolver("public/assets/buffalo.css.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "524efd5799b78f65989b6c1104215481"}) + b.SetResolver("public/assets/images/favicon.ico.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1fd3e4602afd3c7e8d6adf2c2aca985c"}) + b.SetResolver("public/assets/images/logo.svg.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "5c28c6abb0b23e98772f3aaed045abf5"}) }() func() { b := packr.New("buffalo:genny:ci", "../ci/templates") - b.SetResolver("-dot-circleci/config.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "543c89ec0b890fad904db35b155d0b21"}) - b.SetResolver("-dot-gitlab-ci-no-pop.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "5d6f2ea1184b1653049f127764858779"}) - b.SetResolver("-dot-gitlab-ci.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "02e9568ee200d1f95e13ba2235a3085a"}) - b.SetResolver("-dot-travis.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c7c4ea3097c70c12789fa4422ab742fa"}) + b.SetResolver("-dot-circleci/config.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ad984a19840b1660f7b799cfc369022d"}) + b.SetResolver("-dot-gitlab-ci-no-pop.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "4a4954ee92c57e00f8a0f34ec9a08084"}) + b.SetResolver("-dot-gitlab-ci.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "efa72723cef2e8bfedc523738bf5d159"}) + b.SetResolver("-dot-travis.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "9a6b926cb5a5d57f2ebe46e33ce680be"}) }() func() { b := packr.New("buffalo:genny:newapp:api", "../api/templates") - b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "4334b0f46d779c32dd8a3ee235a4b42e"}) - b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d77707b5575db5b50791e6c1a131ac93"}) - b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3453f7ce3ce1e9c9d586ba9aa79a8794"}) - b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "eccd20a3ab2a512709dccf2fb8df4bac"}) - b.SetResolver("locales/all.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "7fcc70e2c7483a7326a24bd1cdc4af08"}) + b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "a8ec67aa1e41fcbd2cdd86240d37c5e0"}) + b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "545676fd88c0d1d27198d283049c41b0"}) + b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ce01971710d9b9f11bba237baf76ec52"}) + b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e8972ac6dc3e57b0c59883df456ad37c"}) + b.SetResolver("locales/all.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "9897b71949d4e127aa00c50724ae4b5a"}) }() func() { b := packr.New("buffalo:genny:newapp:core", "../core/templates") - b.SetResolver("-dot-codeclimate.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "52cdf751a4adab526c64b817f123a6bf"}) - b.SetResolver("-dot-env.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3643cac7aad7e449dde7f023f89ff862"}) - b.SetResolver("README.md.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "0ac9c97b14565a81e81adc4ef482ff28"}) - b.SetResolver("actions/actions_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "5eb380c2ae8ca6e10dffc3b60fd4c68c"}) - b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "adbdf21aecb8483652c3ca79c70c21e0"}) - b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "81cb1587fe133299c9c3ce339d832518"}) - b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "7246b36750fc4704d53f0fe7dc0f9a92"}) - b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "60b5ddeee92d1c5cda67c7a329b10b52"}) - b.SetResolver("fixtures/sample.toml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "50d3e266d6148ce655a2a7ff90ce1dd7"}) - b.SetResolver("grifts/init.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "37c2dc1a1f60c5e3d5255a61cf48ad1a"}) - b.SetResolver("inflections.json.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d258e202261ed56ac0a8449df027094c"}) - b.SetResolver("main.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "813f5480d7e19daf02c182e36fa8863c"}) + b.SetResolver("-dot-codeclimate.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "357939eff9d3a7884ef4ebadca1b1668"}) + b.SetResolver("-dot-env.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c3816880f9d6ede8f28a4a1f0360251d"}) + b.SetResolver("README.md.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3ab914a64676d62186c6060f4988dd39"}) + b.SetResolver("actions/actions_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "fb822827dff50f68a3cd4cbdf7a507a1"}) + b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "59c3c4502bfd1cb86f9a7572f82ea9ed"}) + b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ea761d55cd5f5d08a297041a98564260"}) + b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "fcf9b1fe98670ffe85fadf1593a3b534"}) + b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "11da39f868d54d3279affe59a569252f"}) + b.SetResolver("fixtures/sample.toml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "a2aa87a7f3879b4244cf8c8555382e93"}) + b.SetResolver("grifts/init.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "6d6389bc500aa7c88f06a525ffdc3964"}) + b.SetResolver("inflections.json.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "67965ff5ea3fd75bf5d6891d715a8d5f"}) + b.SetResolver("main.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "cf6712125ddfa9d651b4f66d736d6303"}) }() func() { b := packr.New("buffalo:genny:refresh", "../refresh/templates") - b.SetResolver("-dot-buffalo.dev.yml.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "242b39ad54264b3a991f6244cef7c7fe"}) + b.SetResolver("-dot-buffalo.dev.yml.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "c6660b1c6a1a45d1cb79e72c7bb65764"}) }() func() { b := packr.New("buffalo:genny:vcs", "../vcs/templates") - b.SetResolver("ignore.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "9f2daa325aa64cda5f09da97a65b852d"}) + b.SetResolver("ignore.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3e00c27b916d08ee5aa54c8a3d2f31a5"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo/@v0.15.4/genny/resource/templates/core", "../resource/templates/core") - b.SetResolver("locales/folder-name.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "a9b609ba9b7a306c42499485e3c01bab"}) - b.SetResolver("templates/folder-name/_form.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "567e2638f2c5d15d059defb14e4e463a"}) - b.SetResolver("templates/folder-name/edit.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "72d19d26d8f2fe5da0c98e7273b5c28a"}) - b.SetResolver("templates/folder-name/index.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "42ef67a69104cc24dbb29e2ddffdf564"}) - b.SetResolver("templates/folder-name/new.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "f535300726d0bc835017ec26af4e8408"}) - b.SetResolver("templates/folder-name/show.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d4f2890402006146d78d0aa8f8c5ba2a"}) + b.SetResolver("locales/folder-name.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "8d1395ead30d0841f952b8cca46300a8"}) + b.SetResolver("templates/folder-name/_form.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e255094fe51ef01862178e311e17f754"}) + b.SetResolver("templates/folder-name/edit.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "6db581c2c298b22b8281e79de71aa56a"}) + b.SetResolver("templates/folder-name/index.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "6e0c924074f3636a40c0a94549a7d6b0"}) + b.SetResolver("templates/folder-name/new.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d7356a0c96560b441eda4c9e940b5754"}) + b.SetResolver("templates/folder-name/show.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "b97ef3b8e9a685594ebc0fc9eebc931a"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo/@v0.15.4/genny/resource/templates/standard", "../resource/templates/standard") - b.SetResolver("actions/resource-name.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "6573548b2fc0f0f412c4d11f61313305"}) - b.SetResolver("actions/resource-name_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ccf670bbd1b940f77e6a33d18bed3b7e"}) + b.SetResolver("actions/resource-name.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "83e722486c9aaa60954a8c8bcd026763"}) + b.SetResolver("actions/resource-name_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1ecd294aa90a5a249902dadd8b1b7502"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo/@v0.15.4/genny/resource/templates/use_model", "../resource/templates/use_model") - b.SetResolver("actions/resource-name.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "699a49e7ff71b8f8ca660965ef51458f"}) - b.SetResolver("actions/resource-name_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "765269a6919d64f4181ba2d9c7592a90"}) + b.SetResolver("actions/resource-name.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "a5bd9ef051dd34fa95a8ddfe363e527a"}) + b.SetResolver("actions/resource-name_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "b8438980c36888bd6a7b788a487d06ed"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo/common", "../docker/templates/common") - b.SetResolver("-dot-dockerignore.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "2c6bd972240bcd80d2ed0682ad950326"}) + b.SetResolver("-dot-dockerignore.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "200603a93cae9aee719dcb679b44c289"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo/genny/actions/templates", "../actions/templates") - b.SetResolver("actions.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d8ea92bfa1667613feca7b7c00f413a6"}) - b.SetResolver("actions_header.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "6d370f84065919e03dd2bd3d253bad56"}) - b.SetResolver("test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "856a80f6bafc680de7d735663c530c12"}) - b.SetResolver("tests_header.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c21d2243a9690d4f725d253a1eaae057"}) - b.SetResolver("view.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "6791bbd7d67bf8d4c3e88687fb9eac28"}) + b.SetResolver("actions.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "0234b5edc6e81c1e266d31f193fe20b9"}) + b.SetResolver("actions_header.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "9aec4669fcf2f836741c92fc02cc9098"}) + b.SetResolver("test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "baca6b4ebf8cc8bd0ea945a5a2fffe15"}) + b.SetResolver("tests_header.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "5a632d314f6d6797fef503c04ff3e44b"}) + b.SetResolver("view.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e2d5d81577b142a416eee01f2874f794"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo/genny/assets/webpack", "../webpack/templates") - b.SetResolver("-dot-babelrc.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e4f19bb976ea59b0682a286b89396afb"}) - b.SetResolver("assets/css/_buffalo.scss.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ed4d5aa3047fd65157293d965aaebec5"}) - b.SetResolver("assets/css/application.scss.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "09debad446adbbaa70992811a3b479d2"}) - b.SetResolver("assets/images/favicon.ico.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c5e5aa3411561d2c0c102809e446e220"}) - b.SetResolver("assets/images/logo.svg", packr.Pointer{ForwardBox: gk, ForwardPath: "35b86742dab99741a63518db24bb76a5"}) - b.SetResolver("assets/js/application.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e8696ae819b72019fcd50611211ddc80"}) - b.SetResolver("package.json.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "aaa62e7739ae79a7991ad085bfba82da"}) - b.SetResolver("postcss.config.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "dea300b9bc0b1a9623ad19f4494e92ca"}) - b.SetResolver("public/assets/-dot-keep.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "709335c479cc2996cc506ec82da2424b"}) - b.SetResolver("webpack.config.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "06a6a4ca9e718a10ee1efef1c2e49b52"}) + b.SetResolver("-dot-babelrc.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "8f7214811ed4641d8d06c428e736e427"}) + b.SetResolver("assets/css/_buffalo.scss.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ad0590eeb12863588f25c48a5f376f57"}) + b.SetResolver("assets/css/application.scss.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "7a58ef101f5e8bc63d4aa81d805d3dba"}) + b.SetResolver("assets/images/favicon.ico.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "addf37c61e119909debf422a9b655510"}) + b.SetResolver("assets/images/logo.svg", packr.Pointer{ForwardBox: gk, ForwardPath: "c7bf78b3701e04e6225e9c327e2e71a1"}) + b.SetResolver("assets/js/application.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3a5d3f320c662fc4951dba09e5ca48af"}) + b.SetResolver("package.json.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d439a742bb76bceaa50df253815eda39"}) + b.SetResolver("postcss.config.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "02c0cabc5d0ccf06bf62aef1259e6eaa"}) + b.SetResolver("public/assets/-dot-keep.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "11a0cc9b3e885f72d7f5b4c016722237"}) + b.SetResolver("webpack.config.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "daae3f6c1877694081e2d9bbe1ef33a2"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo/genny/mail/init/templates", "../mail/init/templates") - b.SetResolver("mailers/mailers.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "8ccb2b48dd100514ebacd9654f7e2fce"}) - b.SetResolver("templates/mail/layout.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "24acb3645d0c223724ce264b932033fd"}) + b.SetResolver("mailers/mailers.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "70ae08ec6bfcd89151868c693af94486"}) + b.SetResolver("templates/mail/layout.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1f893bc0a5e86464fb13af76078ae912"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo/multi", "../docker/templates/multi") - b.SetResolver("Dockerfile.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "47cdc99cfd7800b23c57b35568e02598"}) + b.SetResolver("Dockerfile.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ab8942bb19a00ddb54dfc22df4c36c21"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo/standard", "../docker/templates/standard") - b.SetResolver("Dockerfile.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1a498e3f79e792cf588697578944bc27"}) + b.SetResolver("Dockerfile.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "afc1533d018c2d1730753da9c1eec198"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo:genny/newapp/web", "../web/templates") - b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1ad33d32c175564c3b3ccb60ccc718c9"}) - b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e1ce4dd81dc280423d4863fc1a330606"}) - b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e0c0cd0d96c606a11abafce45587b849"}) - b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "8b0e984a5d392e463a901f21b248a7c4"}) - b.SetResolver("locales/all.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "2b2a30dbb8a10e299ad753680511cf4a"}) - b.SetResolver("public/robots.txt.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ea4216afa34546e2c4ecbfb7213f6fff"}) - b.SetResolver("templates/_flash.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3baa9872a06bb993286ec8aa69b4f41f"}) - b.SetResolver("templates/application.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1766fb2f5a37b14997d2efd7a94119b8"}) - b.SetResolver("templates/index.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "9d1b79c560fde234414ecf0149a1df01"}) + b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "db8e1e2167d7993bdf62512ba883d4d0"}) + b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "db9e7b0a79a9cfb135df713ae83ce099"}) + b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "cc0ec998cebfa39579cabe0ebf0062f9"}) + b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "b1025117b1edd497f09f8663eb3a853b"}) + b.SetResolver("locales/all.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "82bafaaf693dd31835437687f3bc795c"}) + b.SetResolver("public/robots.txt.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "b33656abe4a19add5fb7502f0b6b2dee"}) + b.SetResolver("templates/_flash.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c942384692540a659219d8746ee9fcae"}) + b.SetResolver("templates/application.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "70731710a6b9f5808311e8dc2d8f7460"}) + b.SetResolver("templates/index.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3c5378f5aa59242753fa2bcf50bbb6d2"}) }() func() { b := packr.New("github.com/gobuffalo/buffalo@v0.15.6/genny/build", "../build/templates") - b.SetResolver("a/aa.go.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "bf27d2dc0c63524e934bff393b6a81bf"}) - b.SetResolver("buffalo_build_main.go.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "4e577aceb26efd4aa3e9ef3ab5ae5884"}) - b.SetResolver("migrations/-dot-pop-tmp.md", packr.Pointer{ForwardBox: gk, ForwardPath: "a4be76308cb5f0ce6524479f82e9df1a"}) + b.SetResolver("a/aa.go.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "a85bfd7cc3b5f9eb04967d04cf35cc5e"}) + b.SetResolver("buffalo_build_main.go.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "52f14062d5b60ffc0896c4bda40d83fc"}) + b.SetResolver("migrations/-dot-pop-tmp.md", packr.Pointer{ForwardBox: gk, ForwardPath: "c6e3e8d28eed67725402c2b7c09dd7e7"}) }() return nil From 4357a7569c995b2d5c01d79dfc493b37cedcdd4c Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Sat, 19 Dec 2020 09:20:20 -0500 Subject: [PATCH 27/37] Warns if response is attempted to be written twice (#2059) * v0.16.16 (#2055) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com * Task updating formam (#2025) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating formam Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * Fixes #1987 and #2023 (#2026) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * fixing #1987 and #2023 * adding missing converstion * removing commented code Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * changing version number * moving to latest 2 go versions (#2038) * Task binding cleanup (#2039) * moving to latest 2 go versions * cleaning up the decoder on the binding package * Task update formam (#2041) * v0.16.14 (#2030) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com * Task updating formam (#2025) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating formam Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * Fixes #1987 and #2023 (#2026) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * fixing #1987 and #2023 * adding missing converstion * removing commented code Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * changing version number Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updates formam version #2040 Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating flect versionm (#2042) * updating version * updating some libraries to pass the github security warnings (#2044) * Removing Grifts folder (#2050) * removing the grifts folder * removing grifts folder from codeclimate exceptions * fixes the non-existing .git folder case (#2053) * calling persist explicitly (#2054) * adding version number Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * only writing the header if it has not been written * bumping version * adding packr2 files Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> --- response.go | 15 ++++++++++++--- response_test.go | 22 ++++++++++++++++++++++ runtime/version.go | 2 +- 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 response_test.go diff --git a/response.go b/response.go index 81f9c7577..77ed02977 100644 --- a/response.go +++ b/response.go @@ -18,9 +18,18 @@ type Response struct { } // WriteHeader sets the status code for a response -func (w *Response) WriteHeader(i int) { - w.Status = i - w.ResponseWriter.WriteHeader(i) +func (w *Response) WriteHeader(code int) { + if code == w.Status { + return + } + + if w.Status > 0 { + fmt.Printf("[WARNING] Headers were already written. Wanted to override status code %d with %d", w.Status, code) + return + } + + w.Status = code + w.ResponseWriter.WriteHeader(code) } // Write the body of the response diff --git a/response_test.go b/response_test.go new file mode 100644 index 000000000..1dbd60fed --- /dev/null +++ b/response_test.go @@ -0,0 +1,22 @@ +package buffalo + +import ( + "net/http" + "net/http/httptest" + "testing" + + "github.com/stretchr/testify/require" +) + +func Test_Response_MultipleWrite(t *testing.T) { + r := require.New(t) + resWr := httptest.NewRecorder() + res := Response{ + ResponseWriter: resWr, + } + + res.WriteHeader(http.StatusOK) + res.WriteHeader(http.StatusInternalServerError) + + r.Equal(res.Status, http.StatusOK) +} diff --git a/runtime/version.go b/runtime/version.go index 9ec0a5fa2..c816e52e9 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.16" +var Version = "v0.16.17" From 122e3e342e375a00ebcaf86e2950b7d07f171ac9 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Wed, 23 Dec 2020 19:18:41 -0500 Subject: [PATCH 28/37] allows to specify custom partialfeeders --- render/partials_test.go | 33 +++++++++++++++++++++++++++++++++ render/template.go | 6 +++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/render/partials_test.go b/render/partials_test.go index 82420d046..d158ac9b2 100644 --- a/render/partials_test.go +++ b/render/partials_test.go @@ -29,6 +29,39 @@ func Test_Template_Partial(t *testing.T) { r.Equal("Foo > Mark", strings.TrimSpace(bb.String())) } +func Test_Template_PartialCustomFeeder(t *testing.T) { + r := require.New(t) + + box := packd.NewMemoryBox() + r.NoError(box.AddString("base.plush.html", `<%= partial("foo.plush.html") %>`)) + r.NoError(box.AddString("_foo.plush.html", "other")) + + e := NewEngine() + e.TemplatesBox = box + + t.Run("Custom Feeder", func(t *testing.T) { + e.Helpers["partialFeeder"] = func(path string) (string, error) { + return "custom", nil + } + + bb := &bytes.Buffer{} + + re := e.HTML("base.plush.html") + r.NoError(re.Render(bb, Data{})) + r.Equal("custom", strings.TrimSpace(bb.String())) + }) + + t.Run("Default Feeder", func(t *testing.T) { + e.Helpers["partialFeeder"] = nil + + bb := &bytes.Buffer{} + + re := e.HTML("base.plush.html") + r.NoError(re.Render(bb, Data{})) + r.Equal("other", strings.TrimSpace(bb.String())) + }) +} + func Test_Template_Partial_WithoutExtension(t *testing.T) { r := require.New(t) diff --git a/render/template.go b/render/template.go index 7d2daf8bf..4c806a1f5 100644 --- a/render/template.go +++ b/render/template.go @@ -158,7 +158,11 @@ func (s templateRenderer) exec(name string, data Data) (template.HTML, error) { for k, v := range s.Helpers { helpers[k] = v } - helpers["partialFeeder"] = s.partialFeeder + + // Allows to specify custom partialFeeder + if helpers["partialFeeder"] == nil { + helpers["partialFeeder"] = s.partialFeeder + } helpers = s.addAssetsHelpers(helpers) From e34adaec964df24e4ece3b75d50e642bb59d86dc Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Wed, 23 Dec 2020 19:33:21 -0500 Subject: [PATCH 29/37] cleaning up a bit for codeclimate --- render/template.go | 55 +++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/render/template.go b/render/template.go index 4c806a1f5..b67641d39 100644 --- a/render/template.go +++ b/render/template.go @@ -119,29 +119,7 @@ func (s templateRenderer) exec(name string, data Data) (template.HTML, error) { name = fixExtension(name, ct) // Try to use localized version - templateName := name - if languages, ok := data["languages"].([]string); ok { - ll := len(languages) - if ll > 0 { - // Default language is the last in the list - defaultLanguage := languages[ll-1] - ext := filepath.Ext(name) - rawName := strings.TrimSuffix(name, ext) - - for _, l := range languages { - var candidateName string - if l == defaultLanguage { - break - } - candidateName = rawName + "." + strings.ToLower(l) + ext - if _, err := s.resolve(candidateName); err == nil { - // Replace name with the existing suffixed version - templateName = candidateName - break - } - } - } - } + templateName := s.localizedName(name, data) // Set current_template to context if _, ok := data["current_template"]; !ok { @@ -182,6 +160,37 @@ func (s templateRenderer) exec(name string, data Data) (template.HTML, error) { return template.HTML(body), nil } +func (s templateRenderer) localizedName(name string, data Data) string { + templateName := name + + languages, ok := data["languages"].([]string) + if !ok || len(languages) == 0 { + return templateName + } + + ll := len(languages) + // Default language is the last in the list + defaultLanguage := languages[ll-1] + ext := filepath.Ext(name) + rawName := strings.TrimSuffix(name, ext) + + for _, l := range languages { + var candidateName string + if l == defaultLanguage { + break + } + + candidateName = rawName + "." + strings.ToLower(l) + ext + if _, err := s.resolve(candidateName); err == nil { + // Replace name with the existing suffixed version + templateName = candidateName + break + } + } + + return templateName +} + func (s templateRenderer) exts(name string) []string { exts := []string{} for { From bfd73793f0e188842ead1d96b273972bf7bce273 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Wed, 23 Dec 2020 19:34:35 -0500 Subject: [PATCH 30/37] changing the version --- Dockerfile.build | 2 +- Dockerfile.slim.build | 2 +- runtime/version.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 0f83c15d6..e9cd12591 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -32,7 +32,7 @@ RUN npm install -g --no-progress yarn \ # Install golangci RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Installing buffalo binary -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.16 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.18 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index 4badb0dfe..10097ddd3 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -17,7 +17,7 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.16 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.18 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/runtime/version.go b/runtime/version.go index c816e52e9..8d41ab854 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.17" +var Version = "v0.16.18" From 00f638886dabff1cd63cafeadd4d83e90ac0a4ab Mon Sep 17 00:00:00 2001 From: Antonio Pagano <645522+paganotoni@users.noreply.github.com> Date: Thu, 7 Jan 2021 18:14:37 -0500 Subject: [PATCH 31/37] Application Route Namer (#2075) * Development (#2072) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com * Task updating formam (#2025) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating formam Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * Fixes #1987 and #2023 (#2026) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * fixing #1987 and #2023 * adding missing converstion * removing commented code Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * changing version number * moving to latest 2 go versions (#2038) * Task binding cleanup (#2039) * moving to latest 2 go versions * cleaning up the decoder on the binding package * Task update formam (#2041) * v0.16.14 (#2030) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com * Task updating formam (#2025) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating formam Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * Fixes #1987 and #2023 (#2026) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * fixing #1987 and #2023 * adding missing converstion * removing commented code Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * changing version number Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updates formam version #2040 Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating flect versionm (#2042) * updating version * updating some libraries to pass the github security warnings (#2044) * Removing Grifts folder (#2050) * removing the grifts folder * removing grifts folder from codeclimate exceptions * fixes the non-existing .git folder case (#2053) * calling persist explicitly (#2054) * adding version number * Pointing README to new go docs link * running packr2 * Warns if response is attempted to be written twice (#2059) * v0.16.16 (#2055) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com * Task updating formam (#2025) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating formam Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * Fixes #1987 and #2023 (#2026) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * fixing #1987 and #2023 * adding missing converstion * removing commented code Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * changing version number * moving to latest 2 go versions (#2038) * Task binding cleanup (#2039) * moving to latest 2 go versions * cleaning up the decoder on the binding package * Task update formam (#2041) * v0.16.14 (#2030) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com * Task updating formam (#2025) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating formam Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * Fixes #1987 and #2023 (#2026) * v0.16.13 (#2019) * adding direct version on the docker build * fixing plugin installation * Fix npm's package.json permissions (#2005) Changed created file permissions from 644 (`-w----r--`) to 0644 (`rw-r--r--`) * Bump spf13/viper to v1.7.0 (#1999) * bunping version * changing version on dockerfile * patch to fix the keywords check on new app * removing unneeded append * Task fixing html binder (#2016) * binder was not wired * packing * adding new version number * pulling the buffalo binary from gobinaries.com Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * fixing #1987 and #2023 * adding missing converstion * removing commented code Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * changing version number Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updates formam version #2040 Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * updating flect versionm (#2042) * updating version * updating some libraries to pass the github security warnings (#2044) * Removing Grifts folder (#2050) * removing the grifts folder * removing grifts folder from codeclimate exceptions * fixes the non-existing .git folder case (#2053) * calling persist explicitly (#2054) * adding version number Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * only writing the header if it has not been written * bumping version * adding packr2 files Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * allows to specify custom partialfeeders * cleaning up a bit for codeclimate * changing the version Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> * allowing apps to define their own route namers * tweaking and packing Co-authored-by: Disconnect3d Co-authored-by: hackerman <3372410+aeneasr@users.noreply.github.com> --- app.go | 6 ++++ route_mappings.go | 58 +------------------------------------ routenamer.go | 74 +++++++++++++++++++++++++++++++++++++++++++++++ router_test.go | 4 +-- 4 files changed, 83 insertions(+), 59 deletions(-) create mode 100644 routenamer.go diff --git a/app.go b/app.go index 8ef8245e9..a255bd216 100644 --- a/app.go +++ b/app.go @@ -23,6 +23,10 @@ type App struct { root *App children []*App filepaths []string + + // Routenamer for the app. This field provides the ability to override the + // base route namer for something more specific to the app. + RouteNamer RouteNamer } // Muxer returns the underlying mux router to allow @@ -48,6 +52,8 @@ func New(opts Options) *App { moot: &sync.RWMutex{}, routes: RouteList{}, children: []*App{}, + + RouteNamer: baseRouteNamer{}, } dem := a.defaultErrorMiddleware diff --git a/route_mappings.go b/route_mappings.go index d77adc099..e5c9429a7 100644 --- a/route_mappings.go +++ b/route_mappings.go @@ -11,7 +11,6 @@ import ( "strings" "github.com/gobuffalo/envy" - "github.com/gobuffalo/flect" "github.com/gobuffalo/flect/name" "github.com/gorilla/handlers" ) @@ -263,7 +262,7 @@ func (a *App) addRoute(method string, url string, h Handler) *RouteInfo { url = path.Join(a.Prefix, url) url = a.normalizePath(url) - name := a.buildRouteName(url) + name := a.RouteNamer.NameRoute(url) hs := funcKey(h) r := &RouteInfo{ @@ -291,61 +290,6 @@ func (a *App) addRoute(method string, url string, h Handler) *RouteInfo { return r } -//buildRouteName builds a route based on the path passed. -func (a *App) buildRouteName(p string) string { - if p == "/" || p == "" { - return "root" - } - - resultParts := []string{} - parts := strings.Split(p, "/") - - for index, part := range parts { - - originalPart := parts[index] - - var previousPart string - if index > 0 { - previousPart = parts[index-1] - } - - var nextPart string - if len(parts) > index+1 { - nextPart = parts[index+1] - } - - isIdentifierPart := strings.Contains(part, "{") && (strings.Contains(part, flect.Singularize(previousPart))) - isSimplifiedID := part == `{id}` - - if isIdentifierPart || isSimplifiedID || part == "" { - continue - } - - if strings.Contains(nextPart, "{") { - part = flect.Singularize(part) - } - - if originalPart == "new" || originalPart == "edit" { - resultParts = append([]string{part}, resultParts...) - continue - } - - if strings.Contains(previousPart, "}") { - resultParts = append(resultParts, part) - continue - } - - resultParts = append(resultParts, part) - } - - if len(resultParts) == 0 { - return "unnamed" - } - - underscore := strings.TrimSpace(strings.Join(resultParts, "_")) - return name.VarCase(underscore) -} - func stripAsset(path string, h http.Handler, a *App) http.Handler { if path == "" { return h diff --git a/routenamer.go b/routenamer.go new file mode 100644 index 000000000..b6d28058d --- /dev/null +++ b/routenamer.go @@ -0,0 +1,74 @@ +package buffalo + +import ( + "strings" + + "github.com/gobuffalo/flect" + "github.com/gobuffalo/flect/name" +) + +// RouteNamer is in charge of naming a route from the +// path assigned, this name typically will be used if no +// name is assined with .Name(...). +type RouteNamer interface { + // NameRoute receives the path and returns the name + // for the route. + NameRoute(string) string +} + +// BaseRouteNamer is the default route namer used by apps. +type baseRouteNamer struct{} + +func (drn baseRouteNamer) NameRoute(p string) string { + if p == "/" || p == "" { + return "root" + } + + resultParts := []string{} + parts := strings.Split(p, "/") + + for index, part := range parts { + + originalPart := parts[index] + + var previousPart string + if index > 0 { + previousPart = parts[index-1] + } + + var nextPart string + if len(parts) > index+1 { + nextPart = parts[index+1] + } + + isIdentifierPart := strings.Contains(part, "{") && (strings.Contains(part, flect.Singularize(previousPart))) + isSimplifiedID := part == `{id}` + + if isIdentifierPart || isSimplifiedID || part == "" { + continue + } + + if strings.Contains(nextPart, "{") { + part = flect.Singularize(part) + } + + if originalPart == "new" || originalPart == "edit" { + resultParts = append([]string{part}, resultParts...) + continue + } + + if strings.Contains(previousPart, "}") { + resultParts = append(resultParts, part) + continue + } + + resultParts = append(resultParts, part) + } + + if len(resultParts) == 0 { + return "unnamed" + } + + underscore := strings.TrimSpace(strings.Join(resultParts, "_")) + return name.VarCase(underscore) +} diff --git a/router_test.go b/router_test.go index 11fca3f7a..b41a33893 100644 --- a/router_test.go +++ b/router_test.go @@ -740,7 +740,7 @@ func Test_buildRouteName(t *testing.T) { a := New(Options{}) for input, result := range cases { - fResult := a.buildRouteName(input) + fResult := a.RouteNamer.NameRoute(input) r.Equal(result, fResult, input) } @@ -751,7 +751,7 @@ func Test_buildRouteName(t *testing.T) { } for input, result := range cases { - fResult := a.buildRouteName(input) + fResult := a.RouteNamer.NameRoute(input) r.Equal(result, fResult, input) } } From 0381b3a01d17cb21850385b121640db8a0cca40b Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Thu, 7 Jan 2021 18:16:59 -0500 Subject: [PATCH 32/37] v0.16.19 --- Dockerfile.build | 2 +- Dockerfile.slim.build | 2 +- runtime/version.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index e9cd12591..00973c48c 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -32,7 +32,7 @@ RUN npm install -g --no-progress yarn \ # Install golangci RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Installing buffalo binary -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.18 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.19 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index 10097ddd3..e1a020908 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -17,7 +17,7 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.18 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.19 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/runtime/version.go b/runtime/version.go index 8d41ab854..d8ab7a115 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.18" +var Version = "v0.16.19" From cceaf61d27cbb29a9c36c651eca71382870f3cc2 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Fri, 8 Jan 2021 13:20:12 -0500 Subject: [PATCH 33/37] fixing groups routenamer issue --- route_mappings.go | 1 + 1 file changed, 1 insertion(+) diff --git a/route_mappings.go b/route_mappings.go index e5c9429a7..1e860b018 100644 --- a/route_mappings.go +++ b/route_mappings.go @@ -236,6 +236,7 @@ func (a *App) Group(groupPath string) *App { g.Name = g.Prefix g.router = a.router + g.RouteNamer = a.RouteNamer g.Middleware = a.Middleware.clone() g.ErrorHandlers = a.ErrorHandlers g.root = a From cb7e62938457a1546c2adda721812e94fbeda067 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Fri, 8 Jan 2021 13:23:01 -0500 Subject: [PATCH 34/37] version change --- Dockerfile.build | 2 +- Dockerfile.slim.build | 2 +- runtime/version.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index 00973c48c..3172b822b 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -32,7 +32,7 @@ RUN npm install -g --no-progress yarn \ # Install golangci RUN curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.24.0 # Installing buffalo binary -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.19 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.20 | sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/Dockerfile.slim.build b/Dockerfile.slim.build index e1a020908..1e16f9701 100644 --- a/Dockerfile.slim.build +++ b/Dockerfile.slim.build @@ -17,7 +17,7 @@ RUN npm i -g --no-progress yarn \ && yarn config set yarn-offline-mirror-pruning true # Pulling docker binary from releases -RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.19 | sh +RUN curl -sf https://gobinaries.com/gobuffalo/buffalo/buffalo@v0.16.20| sh RUN go get github.com/gobuffalo/buffalo-pop/v2 RUN buffalo version diff --git a/runtime/version.go b/runtime/version.go index d8ab7a115..a287a7f10 100644 --- a/runtime/version.go +++ b/runtime/version.go @@ -1,4 +1,4 @@ package runtime // Version is the current version of the buffalo binary -var Version = "v0.16.19" +var Version = "v0.16.20" From b3c3975a1399e9777e0effcc00073354d079c5af Mon Sep 17 00:00:00 2001 From: Zeger-Jan van de Weg Date: Thu, 11 Mar 2021 13:45:20 +0100 Subject: [PATCH 35/37] Fix generated GitLab ci YAML (#2086) * gitlab-ci: Default to Golang 1.15 Given the policy by the golang team to support and maintain only the latest two Go releases defaulting to Go 1.8 effectily made buffalo test with a EOL'ed Golang. This change defaults to 1.15, and allows the user to switch to 1.16 with the already present latest switch. * gitlab-ci: Leverage gomodules over GOPATH Prior to this change, the `.gitlab-ci.yml` linked the directories so that GOPATH would work. Given buffalo now always uses gomodules these steps are no longer required, and currently even break the pipeline created from the generated CI definitions. By just executing the job in the `/builds` subdirectory gomodules work as expected again. * gitlab-ci: Update postgres connection details Docker links the containers differently than was priorly assumed for GitLab CI. As such the out-of-the-box settings weren't properly working. This change resolves that in the CI YAML definitions to isolate the changes from local setups. --- genny/ci/templates/-dot-gitlab-ci-no-pop.yml.tmpl | 9 +++------ genny/ci/templates/-dot-gitlab-ci.yml.tmpl | 15 ++++++++------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/genny/ci/templates/-dot-gitlab-ci-no-pop.yml.tmpl b/genny/ci/templates/-dot-gitlab-ci-no-pop.yml.tmpl index 35736fd35..2bbabae53 100644 --- a/genny/ci/templates/-dot-gitlab-ci-no-pop.yml.tmpl +++ b/genny/ci/templates/-dot-gitlab-ci-no-pop.yml.tmpl @@ -1,10 +1,7 @@ before_script: - - ln -s /builds /go/src/$(echo "{{.opts.App.PackagePkg}}" | cut -d "/" -f1) - - cd /go/src/{{.opts.App.PackagePkg}} - mkdir -p public/assets - go get -u github.com/gobuffalo/buffalo/buffalo - go mod download - - export PATH="$PATH:$GOPATH/bin" stages: - test @@ -17,12 +14,12 @@ stages: .use-golang-image: &use-golang-latest image: golang:latest -.use-golang-image: &use-golang-1-8 - image: golang:1.8 +.use-golang-image: &use-golang-1-15 + image: golang:1.15 test: # Change to "<<: *use-golang-latest" to use the latest Go version - <<: *use-golang-1-8 + <<: *use-golang-1-15 <<: *test-vars stage: test script: diff --git a/genny/ci/templates/-dot-gitlab-ci.yml.tmpl b/genny/ci/templates/-dot-gitlab-ci.yml.tmpl index aa355cb00..6e8f70f27 100644 --- a/genny/ci/templates/-dot-gitlab-ci.yml.tmpl +++ b/genny/ci/templates/-dot-gitlab-ci.yml.tmpl @@ -4,12 +4,9 @@ before_script: {{- else if eq .opts.DBType "mysql" }} - apt-get update && apt-get install -y mysql-client {{- end }} - - ln -s /builds /go/src/$(echo "{{.opts.App.PackagePkg}}" | cut -d "/" -f1) - - cd /go/src/{{.opts.App.PackagePkg}} - mkdir -p public/assets - go get -u github.com/gobuffalo/buffalo/buffalo - go mod download - - export PATH="$PATH:$GOPATH/bin" stages: - test @@ -19,22 +16,26 @@ stages: GO_ENV: "test" {{- if eq .opts.DBType "postgres" }} POSTGRES_DB: "{{.opts.App.Name.File}}_test" + POSTGRES_USER: runner + POSTGRES_PASSSWORD: "" + POSTGRES_HOST_AUTH_METHOD: trust + TEST_DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable" {{- else if eq .opts.DBType "mysql" }} MYSQL_DATABASE: "{{.opts.App.Name.File}}_test" MYSQL_ROOT_PASSWORD: "root" -{{- end }} TEST_DATABASE_URL: "{{.testDbUrl}}" +{{- end }} # Golang version choice helper .use-golang-image: &use-golang-latest image: golang:latest -.use-golang-image: &use-golang-1-8 - image: golang:1.8 +.use-golang-image: &use-golang-1-15 + image: golang:1.15 test: # Change to "<<: *use-golang-latest" to use the latest Go version - <<: *use-golang-1-8 + <<: *use-golang-1-15 <<: *test-vars stage: test services: From bbdf5bbfc5e7ed8b0a26060339d28d350b409168 Mon Sep 17 00:00:00 2001 From: Antonio Pagano Date: Thu, 11 Mar 2021 08:14:28 -0500 Subject: [PATCH 36/37] moving to last 2 versions of Go --- .github/workflows/tests.yml | 11 ++++--- README.md | 19 +++++++----- go.mod | 2 +- go.sum | 61 ------------------------------------- 4 files changed, 20 insertions(+), 73 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 457405146..6c8551081 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,14 +1,17 @@ name: Tests -on: [push, pull_request] -jobs: - +on: + push: + branches: + - master + pull_request: +jobs: tests-off: name: ${{matrix.go-version}} ${{matrix.os}} runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.14.x, 1.15.x] + go-version: [1.15.x, 1.16.x] os: [macos-latest, windows-latest, ubuntu-latest] env: GO111MODULE: on diff --git a/README.md b/README.md index e4d2d12ea..2b6a26e23 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,6 @@ # Buffalo - -### **As of December 1st, 2019 Buffalo, and all related packages, require Go Modules and the use of the `GOPATH` is no longer supported.** - -Please see this blog post for more information [https://blog.gobuffalo.io/the-road-to-1-0-requiring-modules-5672c6b015e5.](https://blog.gobuffalo.io/the-road-to-1-0-requiring-modules-5672c6b015e5). - ---- - A Go web development eco-system, designed to make your project easier. Buffalo helps you to generate a web project that already has everything from front-end (JavaScript, SCSS, etc.) to the back-end (database, routing, etc.) already hooked up and ready to run. From there it provides easy APIs to build your web application quickly in Go. @@ -24,6 +17,18 @@ Buffalo **isn't just a framework**; it's a holistic web development environment > I :heart: web dev in go again - Brian Ketelsen +## ⚠️ Important + +Buffalo works only with Go modules. `GOPATH` mode is likely to break most of the functionality of the Buffalo eco-system. + +Please see [this blogpost](https://blog.gobuffalo.io/the-road-to-1-0-requiring-modules-5672c6b015e5) for more information. + +Also, the buffalo team will support the last 2 versions of Go, which at the moment are: + +- 1.15.x +- 1.16.x + +While Buffalo `may` work on older versions we encourage you to upgrade to latest 2 versions. ## Documentation Please visit [http://gobuffalo.io](http://gobuffalo.io) for the latest documentation, examples, and more. diff --git a/go.mod b/go.mod index be9ef8141..6e4a7e416 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/gobuffalo/buffalo -go 1.13 +go 1.15 require ( github.com/BurntSushi/toml v0.3.1 diff --git a/go.sum b/go.sum index 83f7c8e6d..764691d2f 100644 --- a/go.sum +++ b/go.sum @@ -40,14 +40,12 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= -github.com/cockroachdb/cockroach-go v0.0.0-20190916165215-ad57a61cc915 h1:QX2Zc22B15gdWwDCwS7BXmbeD/SWdcRK12gOfZ5BsIs= github.com/cockroachdb/cockroach-go v0.0.0-20190916165215-ad57a61cc915/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051 h1:eApuUG8W2EtBVwxqLlY2wgoqDYOg3WvIHGvW4fUbbow= github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= @@ -89,14 +87,12 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobuffalo/attrs v0.0.0-20190219185331-f338c9388485/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/attrs v0.1.0 h1:LY6/rbhPD/hfa+AfviaMXBmZBGb0fGHF12yg7f3dPQA= github.com/gobuffalo/attrs v0.1.0/go.mod h1:fmNpaWyHM0tRm8gCZWKx8yY9fvaNLo2PyzBNSrBZ5Hw= github.com/gobuffalo/attrs v1.0.0 h1:aAK8D55L0GNVbVRlaCwvAGE2BcGdEoVoK86vgQpuUZ8= github.com/gobuffalo/attrs v1.0.0/go.mod h1:YWU+sjOr7V05rNzvCoVc5qQTC2IgEz9434TFW5GhNaw= @@ -198,7 +194,6 @@ github.com/gobuffalo/envy v1.6.13/go.mod h1:w9DJppgl51JwUFWWd/M/6/otrPtWV3WYMa+N github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/envy v1.7.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= -github.com/gobuffalo/envy v1.8.1 h1:RUr68liRvs0TS1D5qdW3mQv2SjAsu1QWMCx1tG4kDjs= github.com/gobuffalo/envy v1.8.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= github.com/gobuffalo/envy v1.9.0 h1:eZR0DuEgVLfeIb1zIKt3bT4YovIMf9O9LXQeCZLXpqE= github.com/gobuffalo/envy v1.9.0/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= @@ -215,7 +210,6 @@ github.com/gobuffalo/events v1.1.8/go.mod h1:UFy+W6X6VbCWS8k2iT81HYX65dMtiuVycMy github.com/gobuffalo/events v1.1.9/go.mod h1:/0nf8lMtP5TkgNbzYxR6Bl4GzBy5s5TebgNTdRfRbPM= github.com/gobuffalo/events v1.2.0/go.mod h1:pxvpvsKXKZNPtHuIxUV3K+g+KP5o4forzaeFj++bh68= github.com/gobuffalo/events v1.3.1/go.mod h1:9JOkQVoyRtailYVE/JJ2ZQ/6i4gTjM5t2HsZK4C1cSA= -github.com/gobuffalo/events v1.4.0 h1:Vje/vgTWs+dyhIS0U03oLpvx1SUdAqutv/hDWIz2ErM= github.com/gobuffalo/events v1.4.0/go.mod h1:gQbNh681BwO+urxPpHHBiVD8Y+2lg17Wj2xuCMMKr8E= github.com/gobuffalo/events v1.4.1 h1:OLJIun6wRx4DOW19XoL/AoyjuJltqeOBFH3q8cDvNb8= github.com/gobuffalo/events v1.4.1/go.mod h1:SjXgWKpeSuvQDvGhgMz5IXx3Czu+IbL+XPLR41NvVQY= @@ -231,7 +225,6 @@ github.com/gobuffalo/fizz v1.6.1/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+ github.com/gobuffalo/fizz v1.8.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo= github.com/gobuffalo/fizz v1.9.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo= github.com/gobuffalo/fizz v1.9.2/go.mod h1:XJb7Do1keOPkaJnJ48OCjV+7ABQ7mbOqui2WfDobXTQ= -github.com/gobuffalo/fizz v1.9.5 h1:Qh0GkP7MYtJs9RZwBkPJ0CzEXynVowdNfrjg8b+TOxA= github.com/gobuffalo/fizz v1.9.5/go.mod h1:v9cFl56oXm+hNNayTsIQHnq209bTDUbIM8GYWCJw3TE= github.com/gobuffalo/fizz v1.9.8 h1:K0uXVQ/hF1NaETpW++bTvK4A+42GCioKzpvdtSfkiRM= github.com/gobuffalo/fizz v1.9.8/go.mod h1:w1FEn1yKNVCc49KnADGyYGRPH7jFON3ak4Bj1yUudHo= @@ -254,9 +247,7 @@ github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= github.com/gobuffalo/flect v0.1.5/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/gobuffalo/flect v0.1.6/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/flect v0.2.0 h1:EWCvMGGxOjsgwlWaP+f4+Hh6yrrte7JeFL2S6b+0hdM= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/flect v0.2.1 h1:GPoRjEN0QObosV4XwuoWvSd5uSiL0N3e91/xqyY4crQ= github.com/gobuffalo/flect v0.2.1/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= github.com/gobuffalo/flect v0.2.2 h1:PAVD7sp0KOdfswjAw9BpLCU9hXo7wFSzgpQ+zNeks/A= github.com/gobuffalo/flect v0.2.2/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= @@ -304,7 +295,6 @@ github.com/gobuffalo/genny v0.4.0/go.mod h1:Kdo8wsw5zmooVvEfMkfv4JI9Ogz/PMvBNvl1 github.com/gobuffalo/genny v0.4.1/go.mod h1:dpded+KBgICFciAb+6R5Lo+1VxzofjqHgKqFYIL8M7U= github.com/gobuffalo/genny v0.6.0 h1:d7c6d66ZrTHHty01hDX1/TcTWvAJQxRZl885KWX5kHY= github.com/gobuffalo/genny v0.6.0/go.mod h1:Vigx9VDiNscYpa/LwrURqGXLSIbzTfapt9+K6gF1kTA= -github.com/gobuffalo/genny/v2 v2.0.5 h1:IH0EHcvwKT0MdASzptvkz/ViYBQELTklq1/l8Ot3Q5E= github.com/gobuffalo/genny/v2 v2.0.5/go.mod h1:kRkJuAw9mdI37AiEYjV4Dl+TgkBDYf8HZVjLkqe5eBg= github.com/gobuffalo/genny/v2 v2.0.6 h1:5M1Cl4pkS3mIl/X5s27nhq/o/2S8e5cPXmlcGwSDBI4= github.com/gobuffalo/genny/v2 v2.0.6/go.mod h1:3tUHnhxSOSe1wmx669WaBtIA3OSvtVkwRTvJFsH+d9o= @@ -344,7 +334,6 @@ github.com/gobuffalo/httptest v1.0.6/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ github.com/gobuffalo/httptest v1.1.0/go.mod h1:BIfCgiqCOotRc5xYwCcZN7IFYag4277Ynqjar/Ra3iI= github.com/gobuffalo/httptest v1.2.0/go.mod h1:0KfourZCsapuvkljDMSr7YM+66kCt/rXv54YcWRWwhc= github.com/gobuffalo/httptest v1.3.0/go.mod h1:Y4qebOsMH91XdB0cZuS8OUdAKHGV7hVDcjgzGupoYlk= -github.com/gobuffalo/httptest v1.4.0 h1:DaoTl/2iFRTk9Uau6b0Lh644tcbRtBNMHcWg6WhieS8= github.com/gobuffalo/httptest v1.4.0/go.mod h1:VDkgCFmIxAunkLNts49TC949NRLTtvyLKuN67o6hrXM= github.com/gobuffalo/httptest v1.4.1/go.mod h1:F541Rwcu9Ypo1NBAsYxrCV0J6ibAGGEvhM3653G+u5I= github.com/gobuffalo/httptest v1.5.0 h1:kzrM6oEJccNN36cow9fLvgWfwUpUfwBBelsgA6Gghnk= @@ -362,7 +351,6 @@ github.com/gobuffalo/licenser v0.0.0-20190224205124-37799bc2ebf6/go.mod h1:ve/Ue github.com/gobuffalo/licenser v0.0.0-20190329153211-c35c0a2813b2/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY= github.com/gobuffalo/licenser v1.1.0/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY= github.com/gobuffalo/licenser v1.2.0/go.mod h1:ZqDQ+UOqsXPovl65rbCr3Tye6+nKjT4ovwurjVxvMQM= -github.com/gobuffalo/licenser v1.4.0 h1:S8WY0nLT9zkBTjFYcbJ0E9MEK7SgE86aMfjsnuThQjY= github.com/gobuffalo/licenser v1.4.0/go.mod h1:YkyTh2T/d7KECTh32j65auPV876gkJJk55aAdBfDehg= github.com/gobuffalo/logger v0.0.0-20181022175615-46cfb361fc27/go.mod h1:8sQkgyhWipz1mIctHF4jTxmJh1Vxhp7mP8IqbljgJZo= github.com/gobuffalo/logger v0.0.0-20181027144941-73d08d2bb969/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8= @@ -397,7 +385,6 @@ github.com/gobuffalo/meta v0.0.0-20190320152240-a5320142224a/go.mod h1:+VGfK9Jm9 github.com/gobuffalo/meta v0.0.0-20190329152330-e161e8a93e3b/go.mod h1:mCRSy5F47tjK8yaIDcJad4oe9fXxY5gLrx3Xx2spK+0= github.com/gobuffalo/meta v0.1.0/go.mod h1:vAgu28tKdaPIkt8j60wYv1dLuJ1UwOmAjZtYOnLJlko= github.com/gobuffalo/meta v0.2.0/go.mod h1:KZ9Hk/o+kFpwRhzUO95EOuxf3jXU4GleCTUDSTpe3hQ= -github.com/gobuffalo/meta v0.2.1 h1:6SWsmdlfPC91ysIaPHhXjtVzcAIqUxxC5uetDd4fpdo= github.com/gobuffalo/meta v0.2.1/go.mod h1:KZ9Hk/o+kFpwRhzUO95EOuxf3jXU4GleCTUDSTpe3hQ= github.com/gobuffalo/meta v0.3.0 h1:F0BFeZuQ1UmsHAVBgsnzolheLmv11t2GQ+53OFOP7lk= github.com/gobuffalo/meta v0.3.0/go.mod h1:cpr6mrUX5H/B4wEP86Gdq568TK4+dKUD8oRPl698RUw= @@ -407,21 +394,16 @@ github.com/gobuffalo/mw-basicauth v1.0.7/go.mod h1:xJ9/OSiOWl+kZkjaSun62srODr3Cx github.com/gobuffalo/mw-contenttype v0.0.0-20180802152300-74f5a47f4d56/go.mod h1:7EvcmzBbeCvFtQm5GqF9ys6QnCxz2UM1x0moiWLq1No= github.com/gobuffalo/mw-contenttype v0.0.0-20190129203934-2554e742333b/go.mod h1:7x87+mDrr9Peh7AqhOtESyJLanMd2zQNz2Hts+vtBoE= github.com/gobuffalo/mw-csrf v0.0.0-20180802151833-446ff26e108b/go.mod h1:sbGtb8DmDZuDUQoxjr8hG1ZbLtZboD9xsn6p77ppcHo= -github.com/gobuffalo/mw-csrf v0.0.0-20190129204204-25460a055517 h1:pOOXwl1xPLLP8oZw3e3t2wwrc/KSzmlRBcaQwGpG9oo= github.com/gobuffalo/mw-csrf v0.0.0-20190129204204-25460a055517/go.mod h1:o5u+nnN0Oa7LBeDYH9QP36qeMPnXV9qbVnbZ4D+Kb0Q= -github.com/gobuffalo/mw-forcessl v0.0.0-20180802152810-73921ae7a130 h1:v94+IGhlBro0Lz1gOR3lrdAVSZ0mJF2NxsdppKd7FnI= github.com/gobuffalo/mw-forcessl v0.0.0-20180802152810-73921ae7a130/go.mod h1:JvNHRj7bYNAMUr/5XMkZaDcw3jZhUZpsmzhd//FFWmQ= github.com/gobuffalo/mw-i18n v0.0.0-20180802152014-e3060b7e13d6/go.mod h1:91AQfukc52A6hdfIfkxzyr+kpVYDodgAeT5cjX1UIj4= github.com/gobuffalo/mw-i18n v0.0.0-20181027200759-09e0c99be4d3/go.mod h1:1PpGPgqP8VsfUppgBA9FrTOXjI6X9gjqhh/8dmg48lg= -github.com/gobuffalo/mw-i18n v0.0.0-20190129204410-552713a3ebb4 h1:c1fFPCxA7SozZPqMhpfZoOVa3wUpCl11gyCEZ4nYqUE= github.com/gobuffalo/mw-i18n v0.0.0-20190129204410-552713a3ebb4/go.mod h1:rBg2eHxsyxVjtYra6fGy4GSF5C8NysOvz+Znnzk42EM= github.com/gobuffalo/mw-paramlogger v0.0.0-20181005191442-d6ee392ec72e/go.mod h1:6OJr6VwSzgJMqWMj7TYmRUqzNe2LXu/W1rRW4MAz/ME= -github.com/gobuffalo/mw-paramlogger v0.0.0-20190129202837-395da1998525 h1:2QoD5giw2UrYJu65UKDEo9HFcz9yun387twL2zzn+/Q= github.com/gobuffalo/mw-paramlogger v0.0.0-20190129202837-395da1998525/go.mod h1:gEo/ABCsKqvpp/KCxN2AIzDEe0OJUXbJ9293FYrXw+w= github.com/gobuffalo/mw-tokenauth v0.0.0-20181001105134-8545f626c189/go.mod h1:UqBF00IfKvd39ni5+yI5MLMjAf4gX7cDKN/26zDOD6c= github.com/gobuffalo/mw-tokenauth v0.0.0-20190129201951-95847f29c5c8/go.mod h1:n2oa93LHGD94hGI+PoJO+6cf60DNrXrAIv9L/Ke3GXc= github.com/gobuffalo/nulls v0.0.0-20190305142546-85f3c9250d87/go.mod h1:KhaLCW+kFA/G97tZkmVkIxhRw3gvZszJn7JjPLI3gtI= -github.com/gobuffalo/nulls v0.1.0 h1:pR3SDzXyFcQrzyPreZj+OzNHSxI4DphSOFaQuidxrfw= github.com/gobuffalo/nulls v0.1.0/go.mod h1:/HRtuDRoVoN5fABk3J6jzZaGEdcIZEMs0qczj71eKZY= github.com/gobuffalo/nulls v0.2.0 h1:7R0Uec6JlZI02TR29zrs3KFIuUV8Sqe/s/j3yLvs+gc= github.com/gobuffalo/nulls v0.2.0/go.mod h1:w4q8RoSCEt87Q0K0sRIZWYeIxkxog5mh3eN3C/n+dUc= @@ -443,7 +425,6 @@ github.com/gobuffalo/packd v0.0.0-20190315122247-83d601d65093/go.mod h1:LpEu7Oko github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= github.com/gobuffalo/packd v0.2.0/go.mod h1:k2CkHP3bjbqL2GwxwhxUy1DgnlbW644hkLC9iIUvZwY= -github.com/gobuffalo/packd v0.3.0 h1:eMwymTkA1uXsqxS0Tpoop3Lc0u3kTfiMBE6nKtQU4g4= github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q= github.com/gobuffalo/packd v1.0.0 h1:6ERZvJHfe24rfFmA9OaoKBdC7+c9sydrytMg8SdFGBM= github.com/gobuffalo/packd v1.0.0/go.mod h1:6VTc4htmJRFB7u1m/4LeMTWjFoYrUiBkU9Fdec9hrhI= @@ -487,7 +468,6 @@ github.com/gobuffalo/packr/v2 v2.5.1/go.mod h1:8f9c96ITobJlPzI44jj+4tHnEKNt0xXWS github.com/gobuffalo/packr/v2 v2.5.2/go.mod h1:sgEE1xNZ6G0FNN5xn9pevVu4nywaxHvgup67xisti08= github.com/gobuffalo/packr/v2 v2.5.3/go.mod h1:sgEE1xNZ6G0FNN5xn9pevVu4nywaxHvgup67xisti08= github.com/gobuffalo/packr/v2 v2.6.0/go.mod h1:sgEE1xNZ6G0FNN5xn9pevVu4nywaxHvgup67xisti08= -github.com/gobuffalo/packr/v2 v2.7.1 h1:n3CIW5T17T8v4GGK5sWXLVWJhCz7b5aNLSxW6gYim4o= github.com/gobuffalo/packr/v2 v2.7.1/go.mod h1:qYEvAazPaVxy7Y7KR0W8qYEE+RymX74kETFqjFoFlOc= github.com/gobuffalo/packr/v2 v2.8.0 h1:IULGd15bQL59ijXLxEvA5wlMxsmx/ZkQv9T282zNVIY= github.com/gobuffalo/packr/v2 v2.8.0/go.mod h1:PDk2k3vGevNE3SwVyVRgQCCXETC9SaONCNSXT1Q8M1g= @@ -539,7 +519,6 @@ github.com/gobuffalo/pop v4.12.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcV github.com/gobuffalo/pop v4.12.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= github.com/gobuffalo/pop v4.13.1+incompatible h1:AhbqPxNOBN/DBb2DBaiBqzOXIBQXxEYzngHHJ+ytP4g= github.com/gobuffalo/pop v4.13.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop/v5 v5.0.9 h1:F6nT4I2S8tkwBGX0JZePvmOIg1A1VX8Exgcsaak7BfM= github.com/gobuffalo/pop/v5 v5.0.9/go.mod h1:mZJHJbA3cy2V18abXYuVop2ldEJ8UZ2DK6qOekC5u5g= github.com/gobuffalo/pop/v5 v5.0.11 h1:BzSFbylk6+w2pEj+8yFHPxsShiJvg6ZV8rcAPNVdmtw= github.com/gobuffalo/pop/v5 v5.0.11/go.mod h1:mZJHJbA3cy2V18abXYuVop2ldEJ8UZ2DK6qOekC5u5g= @@ -567,7 +546,6 @@ github.com/gobuffalo/shoulders v1.0.1/go.mod h1:V33CcVmaQ4gRUmHKwq1fiTXuf8Gp/qjQ github.com/gobuffalo/shoulders v1.0.3/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4= github.com/gobuffalo/shoulders v1.0.4/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4= github.com/gobuffalo/shoulders v1.1.0/go.mod h1:kcIJs3p7VqoBJ36Mzs+x767NyzTx0pxBvzZdWTWZYF8= -github.com/gobuffalo/shoulders v1.2.0 h1:XcPmWbzN7944VXS/I//R7o2eupUHEp3mLFWbUlk1Sco= github.com/gobuffalo/shoulders v1.2.0/go.mod h1:Ia3oFybQWg4711cb2S5JkFSt9V4rMiLGusWZ6mRAdNM= github.com/gobuffalo/syncx v0.0.0-20181120191700-98333ab04150/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= github.com/gobuffalo/syncx v0.0.0-20181120194010-558ac7de985f/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= @@ -585,13 +563,10 @@ github.com/gobuffalo/tags/v3 v3.1.0 h1:mzdCYooN2VsLRr8KIAdEZ1lh1Py7JSMsiEGCGata2 github.com/gobuffalo/tags/v3 v3.1.0/go.mod h1:ZQeN6TCTiwAFnS0dNcbDtSgZDwNKSpqajvVtt6mlYpA= github.com/gobuffalo/uuid v2.0.3+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= github.com/gobuffalo/uuid v2.0.4+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= -github.com/gobuffalo/uuid v2.0.5+incompatible h1:c5uWRuEnYggYCrT9AJm0U2v1QTG7OVDAvxhj8tIV5Gc= github.com/gobuffalo/uuid v2.0.5+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= -github.com/gobuffalo/validate v2.0.3+incompatible h1:6f4JCEz11Zi6iIlexMv7Jz10RBPvgI795AOaubtCwTE= github.com/gobuffalo/validate v2.0.3+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM= github.com/gobuffalo/validate v2.0.4+incompatible h1:ZTxozrIw8qQ5nfhShmc4izjYPTsPhfdXTdhXOd5OS9o= github.com/gobuffalo/validate v2.0.4+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM= -github.com/gobuffalo/validate/v3 v3.0.0 h1:dF7Bg8NMF9Zv8bZvUMXYJXxZdj+eSZ8z/lGM7/jVFUE= github.com/gobuffalo/validate/v3 v3.0.0/go.mod h1:HFpjq+AIiA2RHoQnQVTFKF/ZpUPXwyw82LgyDPxQ9r0= github.com/gobuffalo/validate/v3 v3.1.0 h1:/QQN920PciCfBs3aywtJTvDTHmBFMKoiwkshUWa/HLQ= github.com/gobuffalo/validate/v3 v3.1.0/go.mod h1:HFpjq+AIiA2RHoQnQVTFKF/ZpUPXwyw82LgyDPxQ9r0= @@ -615,7 +590,6 @@ github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= @@ -645,7 +619,6 @@ github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -684,13 +657,11 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jackc/chunkreader v1.0.0 h1:4s39bBR8ByfqH+DKm8rQA3E1LHZWB9XWcrz8fqaZbe0= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= -github.com/jackc/chunkreader/v2 v2.0.0 h1:DUwgMQuuPnS0rhMXenUtZpqZqrR/30NWY+qQvTpSvEs= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= @@ -698,7 +669,6 @@ github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80s github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= -github.com/jackc/pgconn v1.0.1 h1:ZANo4pIkeHKIVD1cQMcxu8fwrwIICLblzi9HCjooZeQ= github.com/jackc/pgconn v1.0.1/go.mod h1:GgY/Lbj1VonNaVdNUHs9AwWom3yP2eymFQ1C8z9r/Lk= github.com/jackc/pgconn v1.3.1/go.mod h1:2Ze5IP7prCiM28C4nc5LUoRaSyMDYZFE32L4gMJVtcU= github.com/jackc/pgconn v1.3.2 h1:9UIGICxEAW70RQDGilGwsCG63NCcm5amjuBQCFzrmsw= @@ -715,7 +685,6 @@ github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.0 h1:FApgMJ/GtaXfI0s8Lvd0kaLaRwMOhs4VH92pwkwQQvU= github.com/jackc/pgproto3/v2 v2.0.0/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.1 h1:Rdjp4NFjwHnEslx2b66FfCI2S0LhO4itac3hXz6WX9M= github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= @@ -751,7 +720,6 @@ github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0Lh github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/karrick/godirwalk v1.12.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.15.2/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= -github.com/karrick/godirwalk v1.15.3 h1:0a2pXOgtB16CqIqXTiT7+K9L73f74n/aNQUnH6Ortew= github.com/karrick/godirwalk v1.15.3/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/karrick/godirwalk v1.15.5 h1:ErdAEFW/cKxQ5+9Gm/hopxB8ki21/di+vyNb9mHnHrA= github.com/karrick/godirwalk v1.15.5/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= @@ -764,7 +732,6 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -775,7 +742,6 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU= github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= @@ -837,12 +803,10 @@ github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o= github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -868,14 +832,12 @@ github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGE github.com/monoculum/formam v0.0.0-20190307031628-bc555adff0cd/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/monoculum/formam v0.0.0-20190730134247-0612307a4099/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/monoculum/formam v0.0.0-20190830100315-7ff9597b1407/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= -github.com/monoculum/formam v0.0.0-20191229172733-952f0766a724 h1:qlTmDrFZLQIGXnd1JE58dqyLnKyIJjR9WBeDQcT3O8w= github.com/monoculum/formam v0.0.0-20191229172733-952f0766a724/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/monoculum/formam v0.0.0-20200905010316-d7a8fbd33677 h1:N11HMdhT5DtkXsQQo3xPFipjvG7QwzKa9MBupRQqXaU= github.com/monoculum/formam v0.0.0-20200905010316-d7a8fbd33677/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= -github.com/nicksnyder/go-i18n v1.10.0 h1:5AzlPKvXBH4qBzmZ09Ua9Gipyruv6uApMcrNZdo96+Q= github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -883,7 +845,6 @@ github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.9.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.3 h1:OoxbjfXVZyod1fmWYhI7SEyaD8B00ynP3T+D5GiyHOY= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -891,14 +852,12 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.6.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -923,7 +882,6 @@ github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.4.0 h1:LUa41nrWTQNGhzdsZ5lTnkwbNjj6rXTdazA1cSdjkOY= github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.5.2 h1:qLvObTrvO/XRCqmkKxUlOBc48bI3efyDuAZe25QiF0w= github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -935,9 +893,7 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516 h1:ofR1ZdrNSkiWcMsRrubK9tb2/SlZVWttAfqUjJi6QYc= github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= -github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= @@ -974,7 +930,6 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.5.0 h1:1N5EYkVAPEywqZRJd7cwnRtCb6xJx7NH3T3WUTF980Q= github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo= @@ -997,7 +952,6 @@ github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.4/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v0.0.6 h1:breEStsVwemnKh2/s6gMvSdMEkwW0sK8vGStnlVBMCs= github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= @@ -1012,7 +966,6 @@ github.com/spf13/viper v1.3.0/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.6.2 h1:7aKfF+e8/k68gda3LOjo5RxiUqddoFxVq4BKBPrxk5E= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= @@ -1021,7 +974,6 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= @@ -1034,7 +986,6 @@ github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljT github.com/unrolled/secure v0.0.0-20180918153822-f340ee86eb8b/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= github.com/unrolled/secure v0.0.0-20181005190816-ff9db2ff917f/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= github.com/unrolled/secure v0.0.0-20181022170031-4b6b7cf51606/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= -github.com/unrolled/secure v0.0.0-20190103195806-76e6d4e9b90c h1:ZY4dowVsuIAQtXXwKJ9ezfonDQ2YT7pcXRpPF2iAy3Y= github.com/unrolled/secure v0.0.0-20190103195806-76e6d4e9b90c/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= @@ -1082,7 +1033,6 @@ golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c h1:/nJuwDLoL/zrqY6gf57vxC+Pi+pZ8bfhpPkicO5H7W4= golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200206161412-a0c6ece9d31a h1:aczoJ0HPNE92XKa7DrIzkNN6esOKO2TBwiiYoKcINhA= golang.org/x/crypto v0.0.0-20200206161412-a0c6ece9d31a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1105,7 +1055,6 @@ golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -1140,9 +1089,7 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7 h1:fHDIZ2oxGnUZRN6WgWFCbYBjH9uqVPRCUVUDhs0wnbA= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200219183655-46282727080f/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= @@ -1159,7 +1106,6 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a h1:WXEvlFVvvGxCJLG6REjsT03iWnKLEWinaScsxF2Vm2o= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1209,7 +1155,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 h1:LfCXLvNmTYH9kEmVgqbnsWfruoXZIrh4YBgqVHtDvw0= @@ -1304,7 +1249,6 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191224055732-dd894d0a8a40/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200131211209-ecb101ed6550/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200308013534-11ec41452d41 h1:9Di9iYgOt9ThCipBxChBVhgNipDoE5mxO84rQV7D0FE= golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200323192200-8849913b6971 h1:7xTjEBkQgB1qdLZddETld2Flxf5D/U848jdOyhu39TE= golang.org/x/tools v0.0.0-20200323192200-8849913b6971/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= @@ -1328,7 +1272,6 @@ google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1355,12 +1298,10 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= @@ -1370,13 +1311,11 @@ gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From 8d604419136d68a4b8c0cb5e09407dc6caad13c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Mar 2021 08:18:12 -0500 Subject: [PATCH 37/37] Bump elliptic from 6.5.3 to 6.5.4 in /genny/build/_fixtures/coke (#2088) * Update 'goreleaser' config to use new syntax (#2079) Previous config used `brews`, which has been deprecated and superseded by `tap`: https://goreleaser.com/deprecations/#brewsgithub * Bump elliptic from 6.5.3 to 6.5.4 in /genny/build/_fixtures/coke Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4) Signed-off-by: dependabot[bot] Co-authored-by: Adriano Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .goreleaser.yml | 2 +- genny/build/_fixtures/coke/yarn.lock | 32 ++++++++++++++-------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index ce7fef0ce..6e132e7bb 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -38,7 +38,7 @@ changelog: brews: - name: 'buffalo' - github: + tap: owner: 'gobuffalo' name: 'homebrew-tap' install: | diff --git a/genny/build/_fixtures/coke/yarn.lock b/genny/build/_fixtures/coke/yarn.lock index 6d2a8cef6..febb9f7fb 100644 --- a/genny/build/_fixtures/coke/yarn.lock +++ b/genny/build/_fixtures/coke/yarn.lock @@ -1296,10 +1296,10 @@ bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.1.1: version "5.1.3" @@ -1352,7 +1352,7 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -2104,17 +2104,17 @@ electron-to-chromium@^1.3.413: integrity sha512-2fvco0F2bBIgqzO8GRP0Jt/91pdrf9KfZ5FsmkYkjERmIJG585cFeFZV4+CO6oTmU3HmCTgfcZuEa7kW8VUh3A== elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" emoji-regex@^7.0.1: version "7.0.3" @@ -2788,7 +2788,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -3562,7 +3562,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=