From b6ec01f3779e377bd6e1cedf356f0d533ec6cef5 Mon Sep 17 00:00:00 2001 From: Caleb Doxsey Date: Wed, 3 Mar 2021 18:56:55 -0700 Subject: [PATCH] assets: use embed instead of statik (#1960) * assets: use embed instead of statik * remove empty line * maybe fix precommit --- .gitattributes | 1 - .github/workflows/test.yaml | 3 + Makefile | 1 - authorize/evaluator/evaluator.go | 2 +- authorize/evaluator/functions.go | 19 +------ authorize/evaluator/opa/opa.go | 7 ++- authorize/evaluator/opa/policy/statik.go | 14 ----- authorize/evaluator/opa_test.go | 2 +- go.mod | 3 +- go.sum | 3 - internal/controlplane/luascripts/statik.go | 14 ----- internal/controlplane/xds_lua.go | 31 ++++------- internal/frontend/statik/statik.go | 14 ----- internal/frontend/templates.go | 65 ++++++++++------------ internal/frontend/templates_test.go | 24 ++++++++ 15 files changed, 78 insertions(+), 125 deletions(-) delete mode 100644 authorize/evaluator/opa/policy/statik.go delete mode 100644 internal/controlplane/luascripts/statik.go delete mode 100644 internal/frontend/statik/statik.go create mode 100644 internal/frontend/templates_test.go diff --git a/.gitattributes b/.gitattributes index d768c4e80..e69de29bb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +0,0 @@ -statik.go binary diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 85e4234ba..fd26b8ed9 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -157,6 +157,9 @@ jobs: - uses: actions/checkout@v2 with: fetch-depth: 0 + - uses: actions/setup-go@v2 + with: + go-version: 1.16.x - uses: actions/setup-python@v2 - uses: pre-commit/action@release with: diff --git a/Makefile b/Makefile index 2d0a13993..74e3cc3e3 100644 --- a/Makefile +++ b/Makefile @@ -119,7 +119,6 @@ cover: ## Runs go test with coverage @echo "==> $@" $(GO) test -race -coverprofile=coverage.txt -tags "$(BUILDTAGS)" $(shell $(GO) list ./... | grep -v vendor | grep -v github.com/pomerium/pomerium/integration) @sed -i.bak '/\.pb\.go\:/d' coverage.txt - @sed -i.bak '/\/statik\.go\:/d' coverage.txt @sed -i.bak '/\/mock\.go\:/d' coverage.txt @sort -o coverage.txt coverage.txt diff --git a/authorize/evaluator/evaluator.go b/authorize/evaluator/evaluator.go index 8514e8142..dbb9c5f4d 100644 --- a/authorize/evaluator/evaluator.go +++ b/authorize/evaluator/evaluator.go @@ -38,7 +38,7 @@ func New(options *config.Options, store *Store) (*Evaluator, error) { return nil, fmt.Errorf("authorize: couldn't create signer: %w", err) } - authzPolicy, err := readPolicy("/authz.rego") + authzPolicy, err := readPolicy() if err != nil { return nil, fmt.Errorf("error loading rego policy: %w", err) } diff --git a/authorize/evaluator/functions.go b/authorize/evaluator/functions.go index de83d0866..de2d8cd13 100644 --- a/authorize/evaluator/functions.go +++ b/authorize/evaluator/functions.go @@ -4,12 +4,10 @@ import ( "crypto/x509" "encoding/pem" "fmt" - "io/ioutil" lru "github.com/hashicorp/golang-lru" - "github.com/rakyll/statik/fs" - _ "github.com/pomerium/pomerium/authorize/evaluator/opa/policy" // load static assets + "github.com/pomerium/pomerium/authorize/evaluator/opa" "github.com/pomerium/pomerium/internal/log" ) @@ -67,17 +65,6 @@ func parseCertificate(pemStr string) (*x509.Certificate, error) { return x509.ParseCertificate(block.Bytes) } -const statikNamespace = "rego" - -func readPolicy(fn string) ([]byte, error) { - statikFS, err := fs.NewWithNamespace(statikNamespace) - if err != nil { - return nil, err - } - r, err := statikFS.Open(fn) - if err != nil { - return nil, err - } - defer r.Close() - return ioutil.ReadAll(r) +func readPolicy() ([]byte, error) { + return opa.FS.ReadFile("policy/authz.rego") } diff --git a/authorize/evaluator/opa/opa.go b/authorize/evaluator/opa/opa.go index 7f90cbcea..00eb05766 100644 --- a/authorize/evaluator/opa/opa.go +++ b/authorize/evaluator/opa/opa.go @@ -2,5 +2,8 @@ // decisions. package opa -//go:generate go run github.com/rakyll/statik -m -src=./policy -include=*.rego -ns rego -p policy -//go:generate go fmt ./policy/statik.go +import "embed" + +// FS is the filesystem for OPA files. +//go:embed policy +var FS embed.FS diff --git a/authorize/evaluator/opa/policy/statik.go b/authorize/evaluator/opa/policy/statik.go deleted file mode 100644 index a0da82fcb..000000000 --- a/authorize/evaluator/opa/policy/statik.go +++ /dev/null @@ -1,14 +0,0 @@ -// Code generated by statik. DO NOT EDIT. - -package policy - -import ( - "github.com/rakyll/statik/fs" -) - -const Rego = "rego" // static asset namespace - -func init() { - data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x00authz.regoUT\x05\x00\x01\x80Cm8\xc4ZKs\xdb8\xf2?\x93\x9f\xa2\xff\xcca\xc4\xff\xd0t\x1c{\x0e\xab\x946\x9b\x9d\xda\x9a\x9d}ej\x92\xd4\x1eX\x1c\x0eD\xc2\x12,\x8a\xe0\x02\xa0,\xc5\xc9w\xdfj\x80\xa4\xc0\x97\";I\xed\xc5\"\x81~\xfc\xba\x014\xba\x9b.I\xba!+\n%\xdfR\xc1\xaamH*\xb5\xfe\xe0\xba\x19\xbd%U\xae\x80\xe49\xbf\x87\x05\xdc\x92\\R\xd7\x15\xbcR4)y\xce\xd2C\xc2\xb2=\xcc\x17p\xcb\x84T\x89&\xa4Y\xd2\xa7\x98\xb1\xa2\xacT\xb8V\xaa\x0c+\x91\xfb]\x19\xc8\x9f\x11EBk\x90Q\x19\xf5\xa5\xc4\xae+\xa9\x94\x8c\x17\xb0\x00 \x0f\xae#a\x01|yGS\x95\xac\xa8\x9ai!\xf8g)\xf8\x86\x8a\x04\x1f#O\x1dJ\x1a\xae8_\xe5\x94\x94L\x86)\xdfzq\xe4U\x92\x8a\xf0-\x15;\x96\xd2\xd7i\xca\xabByq\x00\x06i\xad'dY\x00E\x95\xe7>\xea\xfa\xbf\x85~v?\x01\xcd%\xfd\x1a\x18\x1a5o\xcd\xefc\xf5?|B\x00JT\xd4\xfd\xe4\xbah\x10,\xa0\xc2\xb1\xea\x0b@i\xc7\xbc\x97T \x9c\x16\xc8\xb6\xa4B\xf2\x82(\x9a Ab!\xab\x86\xc8\xbe\x0d\x883\x14w]\x921AS\xc5\xc5!\xa9\x9d\x93i`\xd9\x97 ke>\xcaG\xd9\x08\xd6o\n\xe6\x1c\x00]g\xad\x04\xaf\xca\x84e\xb8\xa1Wzk\xaf\xf0q\xcc:M*5\xc1@\xa8\xc5\xdau\x7f\xd8*\x18g\x8c\xe2\x01\x1a\x89\xa1\x81\x08A\x0ea\xca\x8b\x94\xa8Y+#\xe8\x8dS\x95XN3d\x05\xd9Ryd\xf1\x03\x18%\xa3[\xc2r\x9b\xce\xf7]\x97\xe4y\x1b\xce2\xbe%\xac\xd0`P@oxf\xc7\xa9\x1e\xe7\xd1\n\x9b\xd1\x8c\x9e\xe2C\x7f\x0d\xd8\xf4\xe0).\x96\x95I\x9a\x13\xb6\x1d\xb0\x1eg\xfa\xfcL&\xc7\x95e\xc5\n9u0\x9c\x8d-\xbcv\x95\x0f\x7f\x84\xe7\xae\xfb\xac\xbe\x17\xcaj\x99\xb3\xd45/\x0f\xaec+\x08_\xe3\xe8/\x9a\xe2}\x81\xd7\n-\x14K\x89\xa2\xd9\xeb4\xa5R\xc2b\x01\xcd\x927\x02S.$\x94\x82\xde\xe6l\xb5V\x13\x82\x7f|\xf3\xeb[#\xbc!lE9\xd6m\xb3\xa5j\xcd3\x9c\xf2\xde\xfc\xf2\xee\xe77\xffz\xeb\xb9\x8e\xb1\xcf\x9c\xb9\x10\xcf\x9c\xc5\xb0\xa6$\xa3B\x06\xe0\x19\x80\x17?\xf2B \x9e_\xfcJ\xffSQ\xa9.\xfe\xa9%z\x01D\xb1o'O\xf2-\xad)\x1ds\xc8\xa2$\xc6\x98d\x86\x86'\xd3\x9e\xeeZ`\xed\xfa\xbe\x8f\x86z\xc7\xc0O\x84N#kZW\xcf\xce\xd36N\xc7\xe6'\xdbm\x82\xdaY\x8e\xaeI\x1dmR\xc2\x8a: \xce\x8e\xbb%\x80\x910\x1a\x99\xdf\xd8?\xe1\x85>\x8aG\"\x98t\xfc\xa3\x00\x11\xb1dJ\x10q\x00\x96\x95`\xc2\xe7\x11\x12\x11\xb4\x0e\xa9\x8d\xbc\xd9x,\x8e\x12\xebZ6CZ\xd3\x13%i\xefZb\xda0\\'\xefP\x89\xdc\x82\x99\xf2B\xe9[\xaa\x9b\x82\x07\xe0]\x86\x0d\xcb\xa5\xa7%e\xb48D\x82\x12\xc9\x0b}\x15\x9bG\xbc\x99o\xfe\xf0C\x00\x1e+v$g\x19\xa49\xa3\x85\x82\x94\n\xc5nu\xf0\xf1b\xbdDK\xcesJ\x8aZ\x15\x93\x89\xa6O\x0c}b\xd1\xfb\xf5\xbe\xfa\x1c\x1d\xa2\xba\xbbWI\x1dD1eq\x1d\xcc\x85\xbc9x\x7f\xfb\xf7;/p\x1d\x8f\xe4+on\n\x08\xc9V\x05+V\xc9\x86\x1eB\x92\xafpv\xc3\xb2\xb1\xd9\x0d\xcb\x82FzI\x0e9'YB\xaa\x0c\x16\xb0C\x1d;X@I\x84\xa4I%\xf2~\xf5\x12\xae\xb9T\x98[\x1cs\x17\xcf\xb3s\x17[(\x93:\x13B\xfdL\xca\x8a\x8a\xee\xf4\x9db\xb6\xcec\xde\x7f\x8el\xba/\xc7\x98\xe9\xbed\x82\xca\x84`\x1d\x91\xf2\"\x93Ga\x98rMB%\xaa\x11\xf7\xac\x11&A*.(\xa85\x05\x8d?K\x88\x02^\x98\x81,Q|C\x8b>v3\x1a\xb6\xf4C\x18\xad\x12]~\x011\xf5\xd7P\x19\x10Ug\x91\xf9\xa1\xa7eZ\xf8)\x1be\xb5\xb4]V_@\xe78\xbb\xae \x9e\xc2Z\xdf\x9c#\xcb<\xbc\x18:\x1e\xda\x0d\x93\xe8)\xb2\xb1\xc9iDu^j\xf1Oe\xd9g%\xd6\xfeT\x16\x8f:\x8f\x19i\xe4:\x91\xc7\xa4\xf4\x02\xe8\x1d\x918\xc0)Re\xbd)Ref\xeaN\xb1\xde\xd4\x9dbf\x8a\xee\xcb\xde\x14\xdd\x97f\x8a\x11\xd5\xd7E\x94\x99\x92\xd5\xb27%\xab\xa5\x99BW\xf6\xe6p\xa8\xd6\x86.\xee\xeb\xc313m\x1c\xdb\x9b7\x83q\xe0\xc6\x9dU\xc0p\xb6\xa1\x879\xecH^Q\xf8\x88'\xa2\x92\x14\x08\xa4|[\n\xba\xa6\x85nv\xf0\x1d\x15@\n\xb3D\xa08\x08\xba\xe5;\n\x05\xcb\x0d\xabt\x9dhC\x0f\x81y\x8b\xd1\xd5G\xc7c\x1e\xe5\x18\x0dm\xc9\xe5\xba\x18\x0bi\x96\xdc\xdd\xe3\x91g<\xbc\xbbW!-R\x9e\xd1\x04\xa7fV\xd4\xed\xd8\x12\x0cB\xa9\xef\xba\x9bjIEA\x15\x95V\xa4^\x0f\xd2\xd6\xbf\xb7d\xdd\xb6\xcb;\x8c\x16u\x86\xea\xac\xeb\x8d\xe2D\x1e\xa6\xb7\\\xb0\x0fD1\x8eys\xbd9=\xc0\x1c\xda\xfb3%B\xaf\xd3\xf9:b\x1f\x17\xc9\x89\xbc\x9f\x8f\xe7\xee\xe2\xfdp\xb5\xdb\xf5\xec\x91\xfe\x84\xeb\xe8\x993a\x0cM\xa4\x12\xe8\x07\xed\xdf\xd9p\xcd\xb5\xc2x\xb2\xc6\xd5\xf5|\x92\xe6\xbc\xca\x12\x8c\x85T\xe4T\xca\xc4*\x04\x18/\x92:J&u\x94<6\x9e\x9a\xbe\xd9\xd3\xe4L\xc5\x89)i\xa7\x96\xf6/\x05Y\xe6\xf4'\xcd\xf9#2\xbem\xf9^w@\xb8N\xd4\xdc\x9e\x01$z\xab\x9a{\x16G\x93\x92\x0b\xd5)P\xc3w\xee\x89\x8e\x03\xe6q2\x1a8\xd6|\x1b\x14\\\xc7y\x06\xbc\xc8\x0f\xc0\x8a4\xaf2\xbc\x86\xb9\xa4\xd0\xa0\x16\xa6\xfe\xa5\x19\xa6\xc6xC\xeb\x02\xd51\x89x}\x1atR\xe48dGX\x8e\x1b\xa2\xdd\xa1-\x80\xc6 \x91\xc5\x11wX\x16\x0bh-1\xa0RA\xb1&@\x9d\x86\x0b6\xf4\x00\xa4\xc8\x8c\x03]\xc7\xd9\xa0\xa2.\x86]\xb3\xeec\x07\xd5\xb2\xdf\xc7\xf3\xe9:\xebk\xa4\x1f\x062\xd7Y\xdft<\x0dF\xf0\xe9\xcd\x14mb-t\xd0\xbe\x9a~Y_\x05\xb0~\xe1\x07\xb0\xbe\xc6?7\xfe0\xa6\xaf\xdb\x92XPU\x89Bj\x97\xe8\xce;l\x89J\xd7\xacX\x99h\xe8\x9e\xd3\x8e\xc7\xd4\xd6\x87\xa6uo\xb5\xf3\x1f\\g0\x86.\xc0\xdf\x8f\xa0\xd7\x9be\xfb\x00\xcc\xf4\xcb\xfa\x17\xc6\x9b\xf8,\xdb\xc7/\xa1\x83dP\x8a\xd4\xcd\xa88z\x1e\xb7\x85Q\x978\xb1\xe9tA\xd8\x8c&|yw\x8c\"m\xb6\xae\x8d\xd3\x95\xaf\xe5\x01\xc9+\x91Z\x12\x91\xb7\x95\xda'.\x05\xbde\xfbs\x89\x89Z\x9fI*\xe8\x8aN\x8a\xed[\x7f\x1a2:\xc2\xea:\x99\xd1\x00<\xc3\xe4\x05\xe0y\xben}y\xdfBp}a\x9b\xb1\xf1\xa5\xa8\x83\xb8!\xf1{\xab\xa6\xcb(\x84\xd7\x95\xa0\x87\x87xO.\xc7\x14^\xc3t\xda\x11_.\xb8q\x84\"B\xc9{\xd6\xdf !n\x8eFbh8GV\xfa\xc4\x16\x9aDA\xd4\xfa3\xc6}\x91\xd0\xda\xb0\x069Qk\xd434n\xa8\xf7\xd4&\x9fR\xacyN\x9b\xf3\xa5bk\x83\x04Mt\xbcl\xf6\xa7& F\x0c\xd3\xcbt\xdc\xceR \x0c\x98\x0f\x9eL\xd7tK\xbd9\x98\x87\x00<\xdc\xb4\xde\\g\x1e\xf5\x1b\xdeC\xf5\x88\xc9v\x8cg\xe7\x80?:A\x88\x92\xa0\x15`\x18\x05\xb9\xc7\xd9\x18\x16\xa01\x85\xb7\xac\xc80\x8c7\xd7\x97\xac\x96\x1ayR\xcc~\x9f\xbd\x9a\xcff\xaf\xe6*-\xa3\xefc\xff\x15\x86\xd3H\xc6\xaf\xfc\xf9\xe5\xa5\xffj\x16\xfdv\x19\x7f\xef\xcf\xa2\xdf^=\x8b\xff\xdf\xff=\x00\xa9D\x00W>\xc6\xd8^\x0e6L\xc1\xd6&\xd72+\x0e\x05\x17[\x92\xb3\x0f\xe6\x88\xea-U\x03\xb5\xfcsd\xae\xbd\x14\x19\x93pH'\xbdm#J\x03\xf1\xe6\x9e_\xe3hh\x16 \xcb\x9c)k\xfe\x986\xf7d\x99\xc8\x81&\xe1\xee\x14\xf8\xec\xdd\xdc\\\xeb\x1d3\x82\xb6F\xe4]\xea\xf9Mg\xafKye\x11^\xc5\x06\x8e\xd52~*\xaa\xeb\xf3Q\xf1\x17}\xba>\xa6I\xf0/,\xc2\x17_\x0f\xfc\xcdW\x07\xcf\xaf\xfbd}\xe8\x936^[\x84\xd7_\xcf\xc6\x1f\xfeW6\xf2\x9b>Y\xdf\xc2IW\xdcX\x847\xd3\xae\x18c\xed\x1c7\xf7\x93\xfb\xdf\x00\x00\x00\xff\xffPK\x07\x08\xa6m\xed)\xba\n\x00\x00\xc7(\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00 \x00authz_test.regoUT\x05\x00\x01\x80Cm8\xecY]o\xdb6\x17\xbe\x96~\x05\xc1\xab\xe4}\x1d\x19I\xbb]\x180V\xaf\x18\x8a]l)\xfaq\x15\x04\x02-\x9dZ\\%Q%\xa9\xd5\x8e\xe1\xff>\x1cR\x92eYj%\xd7\xf6\xd2.\xbe\xb0%\xf2|=\xe79\xfct\xc6\x82\x8fl\x01$\x13 H\x9e'\x1e\xcbu\xf4\xe0\xba\x0b\xd0\xfeB\x88E\x0c~\x10\x8b<\xf4\x15\xc8\xbfA\xc6\xa0\x94\x1f\x01\x0bA\xaa\x0bl\xe2\x01\xcc\x82@\xe4\xa9\x1e\x11\x96\x87\x1c\xd2\x00.\xc9\x94Dd\xed\x12BHD&\xd3\xe2\x11?t\x96\xebHH\xfe\xc04\x17)\x9d\x10\xfa+0 \x92,\x97Kj\xa46\xee\xc6u5(\xedC\xc2x\xec\xb38\x16\x9f!$k\xd71\x8f\xe43\xd7\x11 \x99f\x9e\x14\xb9\x06?\x131\x0f8(\xc2\x14\xb9[\xbb\x8eC\x95\xc8e\x00h\x1c\x96,\xc9b\xf0\x02\x91\xd0\x11v\x15\xd6\xfc\\\x81TtB\xee\xe8\xf2E]\xe8~\xe4:\x9b{\xd7qjn\xf0k.\xc5G\x90>>\xa2\x9f5\xd5\xab\x0c<\x9b \x96qe\x94'\x18$\xfa\x07\xa5\xb8H\xbd\xb7\xf6\x17\xdb\xcb\xb6k\xf3\xc2C\x0c\xaej\x1a\x11\x8a\xf1\xf8\xb6\x19\x1f\xaf\xe9f32\xb6\xf0\xcd{\xaf@\x1aE\xdb\xb75a\xdfG\x84\x9a\\a\xcb.\x1cke\xb3\xa9\x00\xf14\xcb\xb5\x17i\x9dY\x18\xb94Z\xd80\x19\x8fwT\x1b:E\xb4V\xad\x01`\xcb\x19O2\x90J\xa4LC\xc1_*t\x9d\xc3Th\xf2_\xe2qD\xe8^N\xb0w\xd5\xc2\xd3\x0f\xc0\xf6\xa9G\xeb\xea\x89\xe5\xb3\xb3\xbc\x90\"\xcfN\xc4\xac\xb1m\xa95\x8f\xd7\x8f\x87\xd3c\xb2\xe5\xd0\x90K\x08\xb4\x90\xab\x1e\xa6l\xc2y\xb8\x9b\x97}K\xaf\xb0\xc7\x18(d\xb6\xb6\x8a\x86\xb3\xd7J}\x14XnO\xbc\x00<\xe2\x02\xea7)4\xa4\x9axn\xb6\xc4?\x15\xe2\xb7\x15\xe2yf\xb0\x9b\xa7\x02|*@\xa5\xfdP$\x8c\xa7'*:k\xdcf\xe5Qn\x88\x8eY2g$\xad>\x10\n\x02O\xbb|=z\"\xbb\xe7\x90T\xe8\x1f`s\xdb\xc2\xf8\xe9\x87l#uOd\x9f\x8b\xec0\xf3\x83\x98\xf1\xe4T\x9b\x81\xad\x03\x9b\x7f\x91\x80g\xde\x0d\xed\x0cs1\xa7\xf7\x9bo\xe4\xfb\x10\xae\xbb\xa3\xc2\x80\xf0s6\x16\n\x0b\x03fS\xd7q\x8a\"\xaf(h\x89\xc6\x96d\xc6t\x84\x02cV4\xf4\x99j\x1dS\x89\xc3}\xcc\x1b>\xf2\xea\xa2\"\x15\"\x85\x17\xd5\xad\xea\x8e\xa3\xfb\xe1\xa9\x1e\xcf\xf7\x92\x8d\xbe\xea\x99\xde\x1di\x7f \xd8\x1dk\x8dk\xd5\x10R~\x92\x15m\x9b\x82\xb9\x98\x7f\xe9\xb6\xa67\xf6\xa3!\xcf\xf2y\xcc\x83#\x0f\xfd\x19\x9axm,\xbfOY\xae#H5\x0f\x98\x86p\x16\x04\xa00\x15Z\xe6p8\xf6F\xf4\x83\x89k)\xec\x96\x8a\x96\xf0\x81/mM\xaf\xae0\xc1\x9d\x95\xddFk\xfb\xf8\xd9w\xd3?Y\x87\x0f\x94\"\xfcZ\xe2\x8aAxd\xe2\xfbe\xe6\x10\xd2\xc7^\x19\xf2\xb8\x06#\x10R\xf9\xc8S\xcc\x17\x91\xfeW\xc08\xf4\xe5\xed\x9b\xb7\x96\xc42\x90>\xf5m\xb8O@G\xc2\x8c\xd7\xdb\xd7\xef~\xbf\xfd\xf3mQ\x13\xddi(\x04\x8a\xbf\x9b\xca\x9d\x8eCo%_\xf0\xd4D\x89k\x99\xb0\xaf&@\xac1SIW/E\xaa\xa5\x88\xaf\xde\xc0\xa7\x1c\x94\xbe\xfa\xa3t\x7fG_\xfd\xf6\xae\x90\xb6\x1b\x90\xae\x14\x0f\x1ej\xc7\xc9\xf2\xf7\x9f\xc7\x8cI\x05~.c\xf4\x84?\x93)\xa9\xda.\xdaBD\xffc\\V\x7f\xf9\xa4\xe8\xa5Q\xf2T\x10A\x02d:\xb5\xa0\xa8m\x8d\x84\xd2\xa6\xad\x9e6\xdb\x85\xfa\xa6kk\x8e6b\xd2A\xd6\x1d\x97\x0e\xb2\xff\x0f\x8f\xad\xd4\xfa\xc6\xf8\xca\xda\xb0ee\x8b\xa8\x1a\xdce{[\xee\xe8\xc8\xec\xe9\xda\x8ans9\\\xbfm\x0d:\xd0\x8c:\xc4\xce\xf8X\x86\xbeng\xdc\xcfP\x8f\x88\xac\xa5j\x96\xe8\xb4&\xe4\xe2\xcbt\xb5W\x83]\x9d\xfbWCm5\xef \x91\x85 OMY\x9a\xaal\x181\xbd=!\xb6\xc4P\xa9w\xa0\xc3a\xd1\x1f[\xb9\xf7\xee\x89\xacE\xa9\x17\x88\xd6\x94Tg\x8bC\x12\xb2\xa7\xdc\x9e\x0e \x0b\x18\xc0\xb5\x11G\xbb\xde\xffzf\xa4\x05Xe\xa4\xe8,l\xf5\x07W\x19\xb8[\xae\x1e\xee\xeb\xe0T>\xb7\x8b\xe4\n1-q\xca]\xc0\x16\xb3Y\n/\x86/\x9c\xb9\xbd\xc1\xb8)\xf6%\x95\x17\x0e\xa6\x1f\x17\xa5u\xb7\xda3{\x08\xef\x90\xb912\xcf\x0b\x19\xb3$_\xba\x18\xfbt\x8a\xdb\xb6\xd2\xb35dE7\xae\xeb\xac\x9a\xd8\x8a\x13got\xf5\x13jh\xbc\x84\xfd\xf0\xb5(\xb6 \xdc\x912\xe1\x87{\x18W\x16c\xe5\xdd\x9a\xb2\xa2\x88\xf1\xa1\x89\xd1\xfe]\xd0\x1bb\xfd\xdf\x05{\xc3\xdf\x0f\xe1\xbe^\x0b\xc0\xba\x90 }\xb1\x87\xef\xc1\xe2\xab|[KVt\xbb\x7fa\x12\xda\xee\x89\xf6Z/\xd6\x94\x19w\xd7\xe8\x87\xd4\xdf\xca\xd1\xd3\xads\xd3\xa2\xf3\x15'#BM\xc8\xcf\xda\xdc\x0d\x08\xafn\xe7\xeb\x81>G\xd1\x9f\xf0\xeb\xe7\x01!{s/(\xc5\xb0~<\xf0>\xec\xe0\xdem\xa9\xcd\x86\xe9\xca\xdf9\x1a\x9a\xa1y\xe4\xf3\x8e9\xc3\xcc\xd2\xd5\xac\xee\xa8\xb8\xc8\xdc?\xce\x0c\xbe\xa1;\xda\x8d\xecwz\xd1\xda\xc1\xe1\xd1\x0fT\xc3h<\x1d\xea\x7f\x02\x00\x00\xff\xffPK\x07\x08\x08\x1b\xb1\x1d*\x05\x00\x00F)\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xa6m\xed)\xba\n\x00\x00\xc7(\x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x81\x00\x00\x00\x00authz.regoUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x08\x1b\xb1\x1d*\x05\x00\x00F)\x00\x00\x0f\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x81\xfb\n\x00\x00authz_test.regoUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x02\x00\x02\x00\x87\x00\x00\x00k\x10\x00\x00\x00\x00" - fs.RegisterWithNamespace("rego", data) -} diff --git a/authorize/evaluator/opa_test.go b/authorize/evaluator/opa_test.go index de0585c61..da50c006d 100644 --- a/authorize/evaluator/opa_test.go +++ b/authorize/evaluator/opa_test.go @@ -35,7 +35,7 @@ func TestOPA(t *testing.T) { require.NoError(t, err) eval := func(policies []config.Policy, data []proto.Message, req *Request, isValidClientCertificate bool) rego.Result { - authzPolicy, err := readPolicy("/authz.rego") + authzPolicy, err := readPolicy() require.NoError(t, err) store := NewStoreFromProtos(data...) store.UpdateIssuer("authenticate.example.com") diff --git a/go.mod b/go.mod index 5dde5f2a3..423c5fcbe 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/pomerium/pomerium -go 1.14 +go 1.16 require ( contrib.go.opencensus.io/exporter/jaeger v0.2.1 @@ -45,7 +45,6 @@ require ( github.com/pomerium/csrf v1.7.0 github.com/prometheus/client_golang v1.9.0 github.com/prometheus/procfs v0.2.0 - github.com/rakyll/statik v0.1.7 github.com/rjeczalik/notify v0.9.3-0.20201210012515-e2a77dcc14cf github.com/rs/cors v1.7.0 github.com/rs/zerolog v1.20.0 diff --git a/go.sum b/go.sum index 0ce1b785f..418448d04 100644 --- a/go.sum +++ b/go.sum @@ -159,7 +159,6 @@ github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5Xh github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= @@ -529,8 +528,6 @@ github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O github.com/prometheus/statsd_exporter v0.15.0 h1:UiwC1L5HkxEPeapXdm2Ye0u1vUJfTj7uwT5yydYpa1E= github.com/prometheus/statsd_exporter v0.15.0/go.mod h1:Dv8HnkoLQkeEjkIE4/2ndAA7WL1zHKK7WMqFQqu72rw= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= -github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= diff --git a/internal/controlplane/luascripts/statik.go b/internal/controlplane/luascripts/statik.go deleted file mode 100644 index 1576413dd..000000000 --- a/internal/controlplane/luascripts/statik.go +++ /dev/null @@ -1,14 +0,0 @@ -// Code generated by statik. DO NOT EDIT. - -package luascripts - -import ( - "github.com/rakyll/statik/fs" -) - -const Luascripts = "luascripts" // static asset namespace - -func init() { - data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00 \x00clean-upstream.luaUT\x05\x00\x01\x80Cm8\x94S\xc1n\x9c0\x10\xbd\xf3\x15O\xf4PV%\x91z\xdd\xc8\xff\xd0{\xd5\"\x17f\x17\xab`\xbb\xf68\x9b\xe4\xd0o\xaf\x00\xc3\xe2\x00\xaa\xe2\x03\x1e\xcb\xf3\xde<\xde\x8c/A\xd7\xac\x8c\x86\xa3\xde\xfcZk\xc5\xe3#r\xf1\xfd\xe7\xd3\x8f/O\xc8K\xe4\xf9\xe9\xa3\xb8\x15\xca\x11\x07\xa7#&#\xddd\xd9\xe2[+}e\x1d]\xd4K\xe1\xd9\x95\x98\xe2\x04\xe7\xd9\xe1\xaf\x80V\x1d\xa4n\x86\xe3y(\xfb\xb5\xc4\xa7\x98\x0d!\"\xf0\x1d;\xe9g\xf3Z\x19]9\xfa\x13\xc8s\x11\xf7jrl*\xd3\x99ZvhI6\xe4<\x04\xd2\x9cs\xbc(\xd6\xc9=\xb1l$\xcbm\xf6|S\x9c\xb2U~\x9c\x8e\xb5Sb!9_\x89\x8b|\x7f\x80\xa2\x83\xea\xb2G\xc1-\xe9\xf1\xfa^hiPT=q'\\\x91/fFc\x13\xaaai\xba-\\\x07\xb3\xbdU\x94\x8e\xf8\xbcf)ql\x179\xe5\xbd\xc8\x1d0\xf4o\xde\xb7\x06\xca\xc0\xadq\xeaM\x8e\xdd\xfd\x9f\x85I\xf6\xc6\xc9\x94k\xc7\xcb\xf7\xc5\x12K\xf7\xb8\x0f\xa0q\xbe!\x90\x7f\x8b\xd2\x90\xaf[\xb1z\x03 \xb0\xdc\xe59m\x9buwx\xf8\xb3cqks\x0f\x1f\x8a\xb7F\xfb\xa1\xbbS\xb0<\x95\x11\xf1/\x00\x00\xff\xffPK\x07\x08\xfb\x06j<\xa2\x01\x00\x00\xf0\x04\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00 \x00ext-authz-set-cookie.luaUT\x05\x00\x01\x80Cm8\x8c\x91An\x830\x10E\xf7\x9cb\xc4\xcaHI\x0e\x80\x94\x03t\xd1\x13T\x955\xc5C\xb0j\x8fS{\x88\x9aM\xcf^AM\x04\x0dM\x19 \x01\xe2\xff?\xf8\xbf\xb6\xe7Fl` \xbe\x84\xab\x0e\xac#}\xf4\x94D\xe5\xbb\xee\x90\x8d\xa3\xaa\x00\x00p\xa1A\x07\x1d\xa1\xa1\x98\xe0\x08KM\x9d?\xa8\xb9\xd8\\\x19\xbdm\xb4'\xc1{G\x92H\xe8\x9f\xb8\x0d\xaa\xaa\xb3\xf4\x99\x04\x0d\n\xe6\x18\xdbN\x0b\xeb\x13\x89*?\xf7\xe7\xe0)\xda\xde\xef\x13\xc9\xbe \xe1\xddRY\xc1\xd7\x11\xd8:\x90\x8ex\xf4\x0d3_^\xa7\xc1=\x1e\xf3\xd0Z'\x14\xd3\xa1\x139\x1f\\\x8f\xe5\x0e\xca)U'\x12\x9dSw\xb7\xa4\xbb\xd9\xf2OU\xf1[\x1d\xc9\x87\x0b\xfdi\x18\xf5\xc4\xa6\x18\xaeb\x8dM:\x07N\xa4\xa6\x87\x7f\xe8,D\xdb\xf0,-\x1b\xf8\xfc\xe4\xc8\x9b\x83\xe3\xb2\xef\xd3\x83\xbeoh\x07_&\x87l\x86\xd7\x97U\x12\xaf\xab|\xa7Z\xd1\x18U\xce\x8a\xdc=\x08Z\x96\xfc\x1d\x00\x00\xff\xffPK\x07\x08\x93\xe7\xad\x94\x07\x01\x00\x00\x00\x03\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00 \x00fix-misdirected.luaUT\x05\x00\x01\x80Cm8\x9cR\xd1\x8a\xdb0\x10|\xcfW,\x82r6\xe4\xd2\xbb\xe0'\x83?\xa0\x0f\xfd\x82R\xcc\"\x8dc\x83\xbdJ\xa5U\xaey\xe9\xb7\x17;v\xe2\xf4B[\xee!\xc4H3\xb3\xb33j\x92X\xed\xbc\x10\xe4\xe4\xcf\xb5\x97:\xe0GB\xd4l\xfe\xaf[\x16\xd7#\xdf\x10\x11\xf5\xderO-\xd8!D\xaa\xe8\x1eS\xce\x17\xd9\x1a\xec\xce\xc2Cg\xeb\x01\xca\xef\x19Q\x03x\xf8\"\x8d\xcf\xf2r\x86~\x85\xb2c\xe5,\xdf\xact8i\xebC\xa7g\xaa\x16\x03\xe5\x01\x9a\x99\xf2zcf\xc2\xf33E\xf5\x01\xa4-V\xbc\x0b\x8b:\x99\xce\x87y\nEOo \xcbB\x01\x1a:\x9c@\x9d.\xa8\x80x\xf4\x121\xe9\xaeW)\xe38{\nm\xd7t\xbd\"\xc4]\xabz\xdc\xf5\x89\xcd\x96\xcc\xbc\xe7\xeefn{\xb3\x92o n\xb3y\x94\xfde\\\xb6|\xfc#\xfd;\xd0\xff\xc5\x7fO\xf9P\xfe\xd3\xe9\xbb@\x0e\x7f $\xff\xf6 \x90\xef+u\xfc<\xc2*\\\xbd\xae\xd9|\x8a\xe6\xdah\xd7\x8c5\x1d\xbc\x12S\xf1RP&\x9e\x82O\nj|\x12\x97\x13\x8b{\\\xb8\xf3\x88\xf2\xa44\xb0\xdav\x91\xe3\x18\xd3\x00z\xc3\xd3 d=\xf7\x88\x16\x8eF\xc7\x9f\xf7d\xbd\x08\xa6n\xe2\xa4\x1b\xa0)\xc88y\xff:)t\xcd\x1f\x8f0*k\x8a&\xa7\xaa\"S\xbc\x14f\xe2\xdd\xbc\xfc\xaa\x1e\xed\xa8-\xe4\x9a\xe6\"\x18p\xec\xd9\xe2&\xba%S\xec_\xcd\xa5\xd6\xf1\xe5\x8c\xbf\xdf\x01\x00\x00\xff\xffPK\x07\x08\xef\xd3u\xba}\x01\x00\x00\xb9\x03\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00 \x00remove-impersonate-headers.luaUT\x05\x00\x01\x80Cm8|\x92\xd1n\xb30\x0c\x85\xefy\n\x8b\xff&H\xf4\x97v\x8b\xc4\xb3DiqKTH\x98\xed\xb0M\xd3\xde}\xca\x02)\xack\xb9I\xc4\xf9|\xec#g\xf0'3\xc09\xb8\x93X\xef\x80\xc5\x90\xb0~\xb3\xd2+\x16\xaa\xd3\x8f\xaa\x00\x00 \x94@\x11\xa1\x86\xc3Q\xbd\xd4\xf0/\xa9\xd0\xb6\x89+\xd0uE\x91\xcd\xd0\xcd\xfeC{\xa7 _\x03\xb2\xa8\xe5\xd4\xbdq\xdd\x80\xc95\x0d\xd0\xa3\xe9\x90\x18Z\xd83\xcd\"\xa8-<\xa2\x98\xce\x88\xb9\xa7WEU\xc5\x86'\x1c\xfd\x8c\xda\x8e\x13\x12{g\x04\xf5\xad\xdfZ\xd2\\PT\xf9\x18-\xd3\x04\xf6\xfc\xccNzt?\xd8\xad\xb9x\x9d\n\xa0\x85\xcf\xaf,\x9e=\xc1\xb5\x86\x19\xac\x83\xc9Xb\xb5xT\xd0\xf9L-\x1d\xb7[\xb9\xd6PnZ\x1f\xf0]\xc8\x1c\xca\n\xa2a\xdc\xc4N\xbd\x90\x0fS\xf9\xb7\x16\x18\xa9\xdc\x8f\xbc~b\x8e\x03\xfe\xb7\x8e\x91D\xe5\x045\\\xab\x1d\x1a\xd7\xbd\xbd?I\x97M\xee\xf2-\xb9\x9b$\xab\xb9*~\xdb\xc7\xf3\xe1\xcb\xe2\xc9;F\xb5^\xf2\xdb\x8a\x05\xdf\x01\x00\x00\xff\xffPK\x07\x08y\x19$\xa3\x1b\x01\x00\x00\xdd\x02\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xfb\x06j<\xa2\x01\x00\x00\xf0\x04\x00\x00\x12\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x81\x00\x00\x00\x00clean-upstream.luaUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x93\xe7\xad\x94\x07\x01\x00\x00\x00\x03\x00\x00\x18\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x81\xeb\x01\x00\x00ext-authz-set-cookie.luaUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xef\xd3u\xba}\x01\x00\x00\xb9\x03\x00\x00\x13\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x81A\x03\x00\x00fix-misdirected.luaUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(y\x19$\xa3\x1b\x01\x00\x00\xdd\x02\x00\x00\x1e\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x81\x08\x05\x00\x00remove-impersonate-headers.luaUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x04\x00\x04\x007\x01\x00\x00x\x06\x00\x00\x00\x00" - fs.RegisterWithNamespace("luascripts", data) -} diff --git a/internal/controlplane/xds_lua.go b/internal/controlplane/xds_lua.go index d1b85cb53..542cc04b4 100644 --- a/internal/controlplane/xds_lua.go +++ b/internal/controlplane/xds_lua.go @@ -1,16 +1,12 @@ package controlplane import ( - "os" - - "github.com/rakyll/statik/fs" - - // include luascripts source code - _ "github.com/pomerium/pomerium/internal/controlplane/luascripts" + "embed" + "io/fs" ) -//go:generate go run github.com/rakyll/statik -m -src=./luascripts -include=*.lua -p luascripts -ns luascripts -//go:generate go fmt ./luascripts/statik.go +//go:embed luascripts +var luaFS embed.FS var luascripts struct { ExtAuthzSetCookie string @@ -20,28 +16,23 @@ var luascripts struct { } func init() { - hfs, err := fs.NewWithNamespace("luascripts") - if err != nil { - panic(err) - } - fileToField := map[string]*string{ - "/clean-upstream.lua": &luascripts.CleanUpstream, - "/ext-authz-set-cookie.lua": &luascripts.ExtAuthzSetCookie, - "/remove-impersonate-headers.lua": &luascripts.RemoveImpersonateHeaders, - "/fix-misdirected.lua": &luascripts.FixMisdirected, + "luascripts/clean-upstream.lua": &luascripts.CleanUpstream, + "luascripts/ext-authz-set-cookie.lua": &luascripts.ExtAuthzSetCookie, + "luascripts/remove-impersonate-headers.lua": &luascripts.RemoveImpersonateHeaders, + "luascripts/fix-misdirected.lua": &luascripts.FixMisdirected, } - err = fs.Walk(hfs, "/", func(p string, fi os.FileInfo, err error) error { + err := fs.WalkDir(luaFS, "luascripts", func(p string, d fs.DirEntry, err error) error { if err != nil { return err } - if fi.IsDir() { + if d.IsDir() { return nil } - bs, err := fs.ReadFile(hfs, p) + bs, err := luaFS.ReadFile(p) if err != nil { return err } diff --git a/internal/frontend/statik/statik.go b/internal/frontend/statik/statik.go deleted file mode 100644 index 5603ed029..000000000 --- a/internal/frontend/statik/statik.go +++ /dev/null @@ -1,14 +0,0 @@ -// Code generated by statik. DO NOT EDIT. - -package statik - -import ( - "github.com/rakyll/statik/fs" -) - -const Web = "web" // static asset namespace - -func init() { - data := "PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00 \x00html/error.go.htmlUT\x05\x00\x01\x80Cm8tSAo\x9c<\x10\xbd\xf3+\xe6\xf3\xf9\x03Gi\x0fU\xe5\xe5\x92\xe4P\xa9R\xab6=\xf48\xc0\x00V\x8dA\xf6\xb0l\x84\xfc\xdf+\xc3f\x03\x9b\xed\xc9\xf6\xcc\xd3\x9b\xf7\xfc\xecy\xae\xa8\xd6\x96@\x90s\xbd\xcbZ\xee\x8c\x08!Q\xff=~{x\xfe\xfd\xfd b%OT\\\xc0\xa0m\x0e\x82\xac\x80\xb2E\xe7\x89\x0fb\xe4:\xfd$\xf2$Q-a\x95'\x00\x8a5\x1b\xca\xe79\xfb\xc9\xc8\xa3\x0f\x01R\xb8\x9c\x9e\xe9\xc4!(\xb9\x82\x12\x80yf\xea\x06\x83L \"\x05mD\xc8\x953QE_\xbd,\xdc\x95>Bi\xd0\xfb\x83\xd0\xd6\x92\x13\xb1\xba\xaf\xaf$P\x1aBW\xeb\xd3\x19\xf1\x1e\xa3m#r%+} \xec\xd2\x01\x00\x00\xfd\x03\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00 \x00html/header.go.htmlUT\x05\x00\x01\x80Cm8\x8c\xceMj\x031\x0c\xc5\xf1}Na\xb4N\xc6t\x1f\xf7\x04]\x15z\x00u\xfc2#j\xcb\x83\xad|a|\xf7\x92@)\xddu\xf9\x04\xff\x1f\xea=\xe2$\nG+8\xa2N\xab\xe5Dc\xec\x8e\x19\xc6N9#\xd0Ep\xddJ5rsQ\x83Z\xa0\xabD[C\xc4Ef\x1c\x9ec\xefD\xc5\x84\xd3\xa1\xcd\x9c\x10^\xf6.\xf3M\xf29\xff\x1e\xce\x0d\xf5\xb9\xf83!h!\xe7_w\xc7$\xfa\xe5*R\xa0f\xf7\x84\xb6\x02F\xce\xee\x1b\x02\x19n\xe6\xe7\xd6\xc8\xad\x15\xa7@\xbdG6\xfex\x7fs\xe4\xa7\xaddT9g\xcf\xad\xc1\x9a\x7f\xe6>\xb3\xe8\xf4H\xc6\xa0\xbf\xbc\xccE\x7f`\xc9\xbc\xc0o\xba\xfcK\x96\xbc\xf8T\x96r(\x9a\xeeS\xbb,\x0f\xfc\xf1|\xef\xd08\xc6\xee;\x00\x00\xff\xffPK\x07\x08\x16\x19\xf5V\xd2\x00\x00\x00H\x01\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00 \x00html/userInfo.htmlUT\x05\x00\x01\x80Cm8\xecY\xddn\xdb:\x12\xbe\xf7SL\xd9^\xd6b\xb6\xbb\x17\x8b@\xf6n\xd0t\xdb\x00E[4-\x16\xbd\nhj,\xb3\x91H\x81\x1c\xd9\xf1\xaa~\xa0}\x8d}\xb2\x05\xf5\xe3H\x16\xdd&9\xa7\xa7\xa7\x07\xa77\xae\x86\x9c\xe1\xfc~3d\xaa*\xc1\xa5\xd2\x08\xacth/\xf4\xd2D+\xca3\xb6\xdbM\xe2G\xe7o\x9f\x7f\xf8\xf4\xee\x05x\xca|\x12\xfb\x1f\xc8\x84Ng\x0c5\x03\xb9\x12\xd6!\xcdXI\xcb\xe9\xdf\xd9|2\x89W(\x92\xf9\x04 &E\x19\xce?:\xb4\xa0\xf4\xd2\x00\xea\xa40JS\xcc\x9b\x95 @U\x11\xe6E&\x08\x81y>\xb4\xb7'\xf3F\xd0$^\x98d[\x0bL\xd4\x1ad&\x9c\x9b1\xa55Z\xe6\xa9Cz#\x04d\x86\xc2.\xd5M\xbbc\xbcG\xe9t\xbf\x06\x10\x0bXY\\\xceXUE\xef1Q\x16%}|\xffz\xb7c\x1dOfR\xc3\xe61\x17\xb7L5\xa3+\x84\x1e\x92\x00\xe2\xa5\xb19\x08I\xca\xe8Z\xe4\xa5J\xf5\xdb\xb2\x93\x98#\xadL2c\x85q\xc4\x0ey\xbdK\"\xe9\xec\xf2_\n\xb3d\xb7\x1b-\xc7J\x17%\x01m\x0b\x9c\xb1\x95J\x12\x1f\x05-r\xf4\x02s\xb4\xaa\xcc\xaflk\xc2Ui\x15\x83\xb5\xc8J\x0c\x986>\xba\x95\xdd\x9a\xbc(\x89\x8cf\xedQ\xae\\\xe4\x8a\xf6\xd2^\x9b\xd4\x94\xc4\xf8\xc8v\xee\x8d?p\x12\xef{)\xe6\x89Z\xb7\x81\xeb\xfd\xb7\x17\x1fi4\xa1\xa6`\xec6+E\x08\x0bs\xd3\x8f^o=\x136EG\x82J70\xb0\xaa\xac\xd0)B\xe4\xd31z\x89\xf4<\x13*\x07V(I\xa5E6\xf0t\xac\xf2\xb4\x13\xd8\xc8\x9a.\xca\xc5\"C\x06\xce\xca\xda\x95_\x9cXb\x1bP\x91\xf9\xfc\xaf\xd3<\x17)2\xe0\xc3\x931sxO\xf9\x89 \xf1\xf1\xfdk`<\xea\xa2\xca\x85sH\x8e\xab<\xe5BJSj\xba\x92\xca\xca\x0c\xa7\xcf\xfeV\xdcDn\x9d2\xaf\xcdM\x9ei\x9f\xe4D\xc5)\xe7\x9b\xcd&\xda\xfc526\xe5\xcfNNN\xb8\xdf5\xd2O\x0f\x13\xad\xef\xcf\xbaR\xa7\x1b+\x8ab_o\xfb}>\xac\x83\x8d\xa3\x9c\xaa\xaa\x8d\xa2U\xeb\xf57\"\xc7@F\xbfR>\xe7w\xbbG#\xde\x91\xe3\xba\x85p,S\xb5F}\xe5k\x81\x05\xb8\x8e\x1f\x14\xf2\xc11\xea0\x97[Z&\x16\x98\x1d\x04\x94T>vG\x10.\x00\xfe\x8d\x9949\x02\x19\xa0\x15B9B\xcc\x08^\xa1E\xd8\x9a\x12\xa4\xd0\xb0V\xb8\x19 \xd9\x9a\xd2\x82,\xadEM\xe0\xd09e4$HBe\xee)\x08\x9d\x80(ie\xac\xfa\x8f\xf0\xc0\x04u\x95\xddP4*\xe0\x80\x81\xbc\xb6\xb0O\xec\x95\xee\xe8\xb3\xfd\x08T\xaf\x14\x84\xa9\xb1[\xf8V\x19\xe7\xe8\x9cHqX\xc3\xfd\x0d\x0bs3\xed\xf7\x80\xd0\x9e\xee\xb4\xe9\xb1\xa6\xb0g\xea'\xf2\x9e\xab\xcd\xe8\xcb\xd6\x95\xe7\x8d+\xc3\xfe\x198\xa3!\x95\xd9\x90RUj Q+\xed0\xabH,\x9a\x868\xa4v\xad\xf4\x90n\xc7\xc4z\xfb|\xdf\xc8|\xf9\xbbS\xceM\x81Z%\x91F\xe2\xae@\xe9Z\xc2T\x1a\xadQ\xd2T\x1a\x8b\xd3\xbf\\\x9d\xd4m\xf7\xf1% \x9d\x08\x9b\xd4\x05\xe5\xd8\xbc\xf9\xf5]/\xe6\xb4:zhp-\xe6c5\xfd\xce\x80I1u-~\xf8\xafC\x8f\xd6iu\xbd_\x04\x9b\xe21\x8f$\xcd\xf8qq\x1es\nx\xb2\xd9R\x83BxC\xc8\x88cp1\xd6\xf7\xbe\xba\xfe 5_\xdc\x14\xca\xa2;\xa3\xfbi\xdb\xb2\xc1\x19}C\xeb3\xf7A\xe5\x08_\xc0\x8f\x06\x82\xfc\xc7\xf71\xe4\"/\xd0:\xa3\x05\xe1CR\xa5\xc7\xfe\xc32\xe6V\x85\x17\xb9P\xd9\xc3\x0d\xa8\xd9\x7fK\x1b\x9e\xa4\xd6\x94\x85\x83\xd3Y\xd0\x9c\x97\xf5\xea\xc3\xedi\xf8\xbffP\x80|;+\xb4\xda\x05\xe7\x02\x80\xb8\xe8\xdcQ\x1c\x13\x13\xb6\xbd\xf6\xd5/\xf4`\xcc\x03\xf0\x17\xf3@K\x08NDo\xcca\xb7\x87\xa5)u\xf2\xe8\x90\xf5p\xca\xbbC\x07\xef>\x7f\xf2\x16^\xf7\x80\xae\x97\x85F\xb01p\x7f0\xd7x\xd8\xa5{\xf7\xc4\xae\xbd~\xdeP\xa4\x0c\x7f\x9c\xe0\xa2LS\xb4Se\xfeA\x9eu\xe6\xaf[b\x13\xbef\x05uU\xd2h6\x0f\xce_> b\xacsh:\xfds\x10\xb9S-\xde{\x10iQ\xe4\xfa\xe9\x93\xf5\xe9l\x9f'\x8dZ\xf7\x03\xb5\xaazr}\x0cx\xef\x02d\xeb\xe8\xcc]fJ\x86nF\xf0\xf3cY}\xf9\x91\xb5_\x1f\x84cG\xf0#S\xfa\xfa\xa0\x14kT\x18\xe5ib\xa4\xdb\xdf\xb9}m[\\\xa2E-\x91?\xfe\xbc\xa1i\xadZ\x0bG\x8e\xcdU\x82\x9a\x14m[\x95}\x86\xd6W\xb4\x05B\xe1/\xec\x89\xbf\xd4\x95\x85#\x8b\"\x07Q\x14\x99\x92\xf5\xfd\xcbE\xc7m\xf8\x03\xdf\xa6\xba6\xde\x80\xdcA\x9a\xdc\x19\xbc\xce\xebg,c\xb7\xc1\xa9\xe2W\x03\xb1z\x08<\x8a6oD\x8e\xdf\x0dq\x8eh\xb5\x7f\xfa\xf8\xba\x07:\x19\xf5\x94\xe7\xc7\xe0\xaf\xc1\x0dTU\xfb4\xf3\xbb\x00\x80v\x8c\xfc\xbe\xb5\xff\xc9\x94\x16\x84sF*A\x98t\x87\n\x8bP\x94Y\x86 ,\xad\xc9\x9b7\x95\x11Dl6\x9b\x01Bx\xc8\xe0\x1d\x10L\x0bk\xd6\xca\x83\x03\xef\xa1CG\xf4\xf8p\xcf\xc2\xef\x19\xa6\x92\x19[\x1aC\x83:\x8d\x87%\x12gj\xdc|\xf7\xdaJ\x93s6\x7fe|\xe6\xfa^\x9a\xa9\xfb\xf1zS\xd9\xfc\xdcH\xf7p~.M\x9e\x97Z\xd1\x96\xb3\xf9eY\x14\xc6\xd2\x9d\xa5\xa5\x8aV\xe5\xa2\x96\xd5 f\xf3\x975\xf1\x88\x8c\xdb\x97\xe1\xd1s\xfbH:m\x14\x11\xda\x81\xf8+e\xd8\xfc\x9f\xbd\xaf\x83Ylx\xe4\x10\xb1\xe2b\xfe\xbf\xff\xc2\xbb\x96\xf7)\\h\x19\xf5\xfar\x1b\xe1\x987%3\x89y\xf3G\x96.\xd1\xff\x1f\x00\x00\xff\xffPK\x07\x08\x05\xd0\x7f\x19\xab\x05\x00\x00\x98\x19\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00 \x00img/account_circle-24px.svgUT\x05\x00\x01\x80Cm8<\x90Ao\x830\x0c\x85\xff\xcaSv\x8eq\x9c\x90\xc2Tz\xd8.\xbb\xec\xb4_0\xb5\x8c \xb5\xa5\x1a\x88T\xfc\xfa\xc9\x80&\x81\xfc\xf9\xe5=K\xf6q\x9c;\xcd\xcb\xeb\xa5\xd1\xf5/\x00\x00\xff\xffPK\x07\x08\xfc\xc6x\x8f\xb7\x00\x00\x00\xf9\x00\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00 \x00img/jwt.svgUT\x05\x00\x01\x80Cm8\xc4\x96OO\xf3F\x10\xc6\xef|\x8a\xd5J\x91Z)Lf\xf6\xff\x04\x0cR\x0f=\xd1[{\xe9\x8d\x12\xe3X\x04;\x8aM\x12\xbe}\xb56q6`@\xe2\xd5\xcb{\xb1\x9c\xf1xg~y\x9e\x9d\xf5\xe5\xf5\xfeq%\xb6\xf9\xa6)\xeb*\x93\x04(E^\xdd\xd5\x8b\xb2*2\xf9\xcf\xdf\x7f\x9e\x07y}uv\xd9l\x0b\xb1\x7f\\UM&\x97m\xbb\x9e\xcff\xbb\xdd\x0ev\x1a\xeaM1S\x888k\xb6\x85\xecS\xe6\xfbUY=\x8c%\x123\xcf\xba\xa7R\xec\xcaE\xbb\xcc$\xd9u+\xc52/\x8be{\xf8\xb5-\xf3\xdd\x1f\xf5>\x93(P\x90\x15de\xda\"\xc9\xab\xb3\xcbB\x94\x8bL6O\x9b\xfb\xdb\xbb\xbc\x8b\xaco\xdb\xa5h\xda\xe7U\x9eI\xd1\xb4\x9b\xfa!\x9fWu\x95_\xdc\x97\xab\xd5\xf9\xe6i\x95\xcf\xf3m^\xd5\x8bE\x17\x99o\x8a\xff~#\xc4\xc9t\xb8\xfc\xde\xa7\xd6\xeb\xdb\xbb\xb2}\x9e\xd3\x85\x14\x8bL\xfe%\x02\xd8`Y\x07a\x005\xa3S\xe2&\xc6d\x80\x94\x8d!\x05^9\xebT\xbc\x0b\xe4\x0c\xba>Q\x07\x15H \x06\xebC\x9f:,\xc9\xa7\xba\xfd\x02\xba1si`v\xc8\xd1\x85\x01\xd1\x87\xa8\x95\x02bV\xc4\xf1\x06Y\xfb\x88a\xc0F\x93\xb2\xb0\xa0\x8dw\xd6\xa5\xea[`\x15\x81O\xf5\xfbqg\xe2d\xea\x15X\xc3\xa8:T\x8b\x1c\xd0\xbc\xcb7\xd6#\x827\x8aB\xdc'DZu|\x08\xf8\"\x82\x03\xa5T\x9f\xa8!\xb8\xee\xf9\xc1\x947\xc2\x82sH\xd6 \x071\x10\xe1\xde\x96\xf8.8\x86\xcepV\x04@\xfb\"\xd4\xa8\xe1\xa2I\x83\xb6l:\x8b\x0d\xb1\xe8\xb5\x10D\x80n\x86tA\x02\x8c\x0b\x1e\x80#\xdf\xdb*_\xe6\x0b\x1aX\x91u<\x99*\x05\xdeD\xbe\x8fG\xcc\xeb\x86\xd2\xbe\x13\xa5\x8e\x80\x89\xa6\xc7\xbf\"\x11\x7f\xa09\n\xf8\xba\xc67\xe2\x8d8\xec\xe8\xc4D\x97\xc1\xb2G\xfd\x06\xdb%:\x0f\xee\x1c\xa4\x8a|o\x8a|\x19\x90\x03\x18M\xda\xeb\xc9\x14AGV?\x99j\x0b.8\xe5\xed\xe7\x9b0iu\x18(\xe9\xb4\x1c&\xcf0U?>b\xf8t\x03\x0e\xcb\x7f7\xe0\xa8\xd3\x8e\x07B23\x8f\x07G2\\\xdf\xf9>\xe8c'\x83t\xa4P\xc7:+\xe2\xa5\xd9\x16Wg\xff\x07\x00\x00\xff\xffPK\x07\x08\xd2\x86\x862\x9f\x02\x00\x00\x92 \x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00 \x00img/logo-long.svgUT\x05\x00\x01\x80Cm8\xdcWM\x8f\x1c\xb9\x0d\xbd\xe7W\x08\x9dKr\x10G$ER\nl\x1f\xf2O\n\x1b\xef\xd4\x02=\xebmO\xa3f\xe1_\x1f<\xa9\xaa{\xc6\x1e\x03 r\x0b\xdc~\xd0\xe8\x93\"\x1f\x9fX\x1f\x9e\xb7\xc7\xb4\xfd\xf6\xf9\xe5\x9f_\xfe\xfcx*\xa9$f\xee\x14-\xb18E;\xa5?\x9f\xce\xbf?\x7f<\xad\xd7\xeb\x1f\xffxxxyy\xa1\x17\xa5/_\x1f\x1f\xa4\x94\xf2\xf0\xbc=\x9e>}xL\xbf\xfev>\x7f<\xfd\xd5?W\xfd\xdcN\xe9\xfau\xf9\xfd\xf9\xd7/_\x9f>\x9eF\xf3\xbc\\?\xff-\x87\x93s\xca\xdc\x99\xaa\xff\xfd\xf4\xe9\xc3\x1f\xcbuM\xff\xfaxz\xaa\xa6\xd48\x89:y_\xa4\x93\xd54q\x98\x94\xb2`\x98\x85\x9a^\xb2\x11{b&\xe6\xccm\xb4\x8dl\x91J\x91\x06\xecK\x82\x9a$&\x8b\xa4Nu\xc2>\xc4NaY\xc9\xb7\x8c \x8b\x16\xaa-M,\xe3\x9f0\xb1f!\xbb4r\xce\x95\xb4\xe1\xc8\xa8\x99+U^\xa4\x90i\x9a8WP\xaf\xd9\xa8\xd7-+U\xbbdR\xce\xcc\xd9(z\xe6\xa0j\xd7\xccFZ\xb3\x93\xad\x99\xdb\xd61o\xe1B\xc5\xd2\xc4\xb9\x91\xa2\x19\xa9S\xed\x13fw$\xa1\xd6W\xd9`\xf1\x9a\xb5\x92\xf4i\xfe*\xcb\x0f\x93\xe1\xb0\x9e\xde\xdf<\xc7\x96[\xd08\x1b\xde\x1b8\x87\xb3\x92\xb4\xecs7\xe7 \xfb\x90\xe3\xf6B\xd6\xd7\xcc\xd4\xe2\x9c\x89\x1d\xe7\xfbZ\x0b5\xbb0\xce\x10%\xaf\xa9Q\xf1+\x1c\x97D\x88\xed\xdb\xe9\xe1u\xac\xbbRh\x12qbY\xbc$/{\\L\xa9\xc0\x92\xda\xa8\xca\x8es\x84; '\xb8\xd1S\xed$\x13\xe6XI\xc6\x98\xacu\xc7#\xc8\x9d8\xf65\xa6\xe4\xb2\xe3\xc1\xa8\n+\x9c\xb8%\xaf$\x13\x8e1!\xed\xe0G2&\xb3\x1d\xef\xe4i\x92\xb9\xa4\xea\xc4}\xc7c\x8cG\xd8\x8d\\.\xb9\x12[\xee$u\xb6\x84\xc9\xdbR\x95\xdc\xd2\xc4\xb9(\x88%\x8bR\xcc[\xb4\x1do\x17\xe76\xf8\xd3\xbf=e\xa1\x9e\xc2.\xcc\x83\xdaB\xd5\x90%j\xa3]\x17\xed\xf0\xdf\xc4\x9d\xc6\x9d\xaa\xe61:V\xf5B\xc0\xb3\x04I\xc5\xf1n\xabT\xb2\xb6\x88\x93\xf54q?L\xf6\xa7\x89\x93\x8c\xdf\x11Y\xe3\xb17d\xce\x0e\x9ccF\x02%*\xb1N\xee\x1f\xd2\xacm\xcd\x8ey\xd3\xf9o9\xd1\xb4QM\"\xb1\xe6\x86\xb7&\xfa\xd2H#\x0d8<\xa2-\x05\xa9\xe3\xed\x19\xff\x8f~\xe8\x00\x95\xbe\xcay<1G\x9a\x17\xbfe\x08c;\x07\xcf\xfc\xce3n\x93gAa\x13\x0e\x9eY\x7f\xc53Y\x02\xe90\xe0\xe6\xc39\x03\xbc\xdd\xe1\xc6\xb3\xb1\xebw<\xd3N\xd2/\\)d>[\x82\x88\x86.\x82\xe2$M\x1c\xeeNm\xdc&\xc8\xfb\xa5 \x9f\xbbe\x1f\xaf+\x12a\x91Hr\xab9\xa6H6\xaa~\xb1\x84\xd3\x10\xad2\xe4R8\xe3=B0\x06w\xda\xb5Ah\xb8P\xe8/\x82\xe3\x05\x01\xab\xc4p\x1f\xe4\xcf<\x195_\xb8Qx\x9a\xb8S@I\xb1O\xdb\x05\x14\xcaq\x81P\xab\xa7\x82\x87\xaf\xf2\xe8[\x90M\x96&\xee&v\x8a\xdc\xa8\xeb\x05\xc9\x94\x19\xcc\x08\xea\xa8U\xae9\x86\xde\x17\xaa|\xc9\xb8\xc4hw\xbcg\x8dg{x\xcf/\xb8\xfa\xf0\x9bP\x999\xf1\x8bR\xc5vS&\xc7\xe3i)Fj-bTk\x9a8/\xa0\xe3D\xa5\x88K\xc9\xbb:\xbb\xe6\x11\x8eQ'q\x1b=\xbfd\xa1hyh;\x15\x19\x8dN\x1eh\xbcek/\x9dj\x1c\n\xc6<\xb4\x97\xefI\x1e\xa4\x06\x92\xfc\x90\xfd\x8al\xf2-\x87R\xd3\xe5\x07m\x98\xc3\xd8\xcam\xc7}d$\x9c\xa0\x98\x93\x83SF\x1a{H\x046\xccu\xf7\x05\xd2\xa0\xbd\xa3>\xb2 \xb7S4\x10\xec\xedP\xd1\x189p\xb7Q:\x86\xe3\x1d;F\xfa!i\xde\xe6\x1a\xe8\xf3^Vs1\xc3\x03.\xa88\xd6\xa1zK\xe0\x85\x1bpK\x99\xca8\x14J\x17;\xecCLc\xa4o&\x14\x8a\x84p\x88\xda \x0dB\x1cv\xcd\xd2\xa0\xdb\x88\xc7eT\xe8\x86\xb2\xa1Ad\xa1\xff\xd7\x9dUb\xe4\xb1\xe5\xb1\xcf2\xeb0\xc0-\x9f\xb9\xe7\x8a\x83\x03u@\xdc\x8b\x81l\xa4\x92e\xda~\xc8I\xa7\xa8\x87\xe7w\x0fj\x1a\xf0jQ\x92\xf4\xee9P\xf6\xb6Y\xa1\x16\xb8\x10\xd87\xc5G\x94\xba]\xa1\xe5P\x81p\xe8\xc5X*2\xb2H\xfa\xb5\x91)\xea\xc5y\x13\xeb\x8b\xc3R\x7fe\xae\xe0\xe1\xaa\xd4<\x05d7^\x95\xd4\x86\xe2\x10o\xff\xdb\xcb8u\xf9.j\x8c\x87\xef\xdd\xc2\xc9\xdf\x16N\x0e\xa2\xdc\x14\xb5\x12\xd7\xa3p\xfa\xbe\xb2\xe9\xb7\xc2\xa9\x8e\xc2\xe9?\xa9\x9bb\xd6M\xf2\xffP7\xc5\xadnrM\x03\x8eds\xfey\xe1\xc4o\x03\xa3p\x07\x9e\x0b\xa3&\xf8\x06E2\x0e<\xa2\x8f?&\xaeYP6\xfft\xd6\xec\xda\xb8\x14\xd2X\xf1\x99\xb1ei\x8bVbN\x13\xc7'A\xf2\x86\xaf\xa1\xb2I[Q\x0c\xfc\xd7\xd3\xc6\xacW\x93\xf69F\xaa\xf8\xc8\xa8u\xe4\x8a\xe1u\xfb\xe9\xae\xdf\x9eZ\x19\xc5\xdc\xff6\x05\xce|x\xfc\xf4\xe1\xe1y{\xfc\xf4\x97\x7f\x07\x00\x00\xff\xffPK\x07\x08\xfa\xc3(\xcbm\x06\x00\x00\x8e\x10\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00 \x00img/logo-only.svgUT\x05\x00\x01\x80Cm8\x9c\x91?k\xf3@\x0c\xc6\xf7\xf7S\x1c7\xbd\x85\xb3,\xe9.\x17\xa5\xd8\x1e:uh\xd6\x0eY\xcaA\\;\xe0?\xc1>\xec\xe4\xdb\x97\xd8\xa5tI)E\xf0\xf0\xf0\xe3\x874(\x1b\xa7J\x9d\x8e\xb9~ \xd7rx#\xad\x8e!\x86\xa4\x0bm\xf9\xc9\x14iui\x9bn\xccu\x1d\xe3\xf91M\xe7y\x86\xd9B?T)#b:N\x95V\xd3\xa9\x9c\x9f\xfaK\xaeQ\xa1bO@\x1bE\xec`ku\x91\xc5Sl\xca\xa2\xe9\xab>\xe9\xbb\xe6\x9a\xa5+\xc8\xce!\xd6\xea\x98\xeb\xfd\xd61l\xbd!\xcf \x1c\xd8\x81\xf5fM\xbcM\xb2\xf45\x9f7\xe8\xef\x19+yeo\x81v5y\x10;%,5\x06\xeb\x80\xc8\xac\x89\x86\x0c\x19/\xc0d\xb0\xc6\x89\xa5&\x06\x92\xbf\xa9\x8b\xf9M\xfc\xf26`\xeda\xefv\x02\xce\x19\x12\x01\xb2\xf7w\x1fZA\xb0;\xf3\xc3\xf9\xdf(Z\xc5!t\xe3{?\xb4\xb9^j\x13b\xf9?qB\xe0I%d\x05\x9c\x7f\xd0i\x91\xdd\xdeV\xfc\xfb\x08\x00\x00\xff\xffPK\x07\x08\x060\xc7a\n\x01\x00\x00\x00\x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00 \x00img/pomerium.svgUT\x05\x00\x01\x80Cm8\xc4UMo#7\x0c\xfd+\x84{i\x0fz\x16I}\x16\xeb\x1c\xfaO\x06\x89\xe3Y\xc0N\x16q:Y\xf8\xd7\x17\xa4\xc6N\x8a\xdd\xf4\xd4\xa2\x08\xc2\x91\x1f)\x0d\xf9\x9e\xc8\xf9r^\x0e\xb4|\xdd\xbf\xfd\xf1\xfc}\xb7\x89\x14\x89\xb5\x93\xc6\x0d}?\x1d\x9f\xce\xbb\xcd\xfc\xfa\xfa\xed\xf7\xed\xf6\xed\xed\x0do\x8a\xe7\x97\xc3Vb\x8c\xdb\xf3r\xd8\xdc}9\xd0\xeb\xcb\xf4t~|~9\xed6\xbe\xe9\xbe\x8d\x9f\xe1\xe5\xcf\xe3~\xb7\xd9/\xfb\xa7\xe7\x87\x87\xcd\xd6\xaaZ\xc3\x1e\x1f\x1f?\x96P3\x12IA\x9190R92X\x83\xa0\xf6 \x90l\x89\xf4\x99\x91\xd3\x91-\x01E+\xc4H\x1a\x14\xad\xba\xe3r\xb2 \xb6\x04\xd3\xb4f\x99\x84\x9cv\n\x8c\x1c\x90\xf3\x02\xad\xf6\x82\xccKhHi\xf6\xa5Z|#7#~\x0d\xbfgd\x83\x04\xc5^'m\xac\x8c\xa2s`\xc4f\xcb\x16\xae`\xbb\x9c\x02TBBk\x13\xa34r\x13\xfd/0\xb8!\xeb\"\xc8b\xdeLn\x86w8\xd3=Z\xf6_)\x05T\x1d\x0bF;\x07\xe4\x1e\xd8\xe8X\xa1\xda/\xa7\xd0\xd0L<\xcb_-7m\x1f\xea\xb5\xfc\xedY)z\x86\x81!u\xac\xbc\x00F\xecC\xed\x1bf<$rs\xe3\xc1X\x0bjD\xc9\xd2\x90\xb2\xd3'\x97S4\xea\xad\x0e\xcb\xb2\xe8\x87*k@\xd6\xfb`\x12EK7\xa3\xaa?\xc9\xd2>#wb\x187\x8e\xf8\x19v\xc4;\x13v\x80\xe9\xd9\x9d?\xf3\xfb\xaa\xdf\"|s'E\xce\xc3\\\x1d\xb5\x04\xe4\xb20\xa4L\xc9\x08t\xb3r\"\x84TH\xe9\x06\xd8\xeda%A\xab\xc3\x0c\\\xd0\x9a\xd1\xa1Cm7WO\xee\xa4\xd6j\xab\x19p$\xe4r91\xd4\xf8\xd54\xb1)\xc1W9\x9c\x15\xad\x06\x94Y\x90\xeb\xe4W\xc9\xcd;k\xa6\xac\x16\xbf\xc5\x9a\xd0uQt\xe7z \x19}\\T\xe4> \xc9M\x9c\x94\xc3\xca\xcd\x87\xcb\xc4\x84\xd4\x11\x8d\x05\xcd\x13\xa3\x99@\xed&\x10\xb2\x06D\xcb\xa6\xad\xe6\x96C2\x02/\xa7P`\x9e\xc4?a\xbe\x96\xff\x8d\xfa\xf2\x1f1/ze\xbe\xa0TJh\x06H\xb0.\x13J\xa6\x81\x1e}\x16\x0e\x15l4uJ\xe4\x9a\xd9\x04\xd1\xfa\x03\x94\xf9\x18l\xf6Z\x93v\x88\x82m&u\xeb\xad\x9e>r\x10\xfb\xca\n\x13S1]\"\xfd\x18h\xb8\xf1e]\x97\xd0\xc5\x9a\xab\x8d\xe6\xea\xa8\xd9\x9f.\xf2\x19\x85i\x95|\x85\xac\x875\xb8\xa2Y\xc7\x08A\xb1-^\xa6CMG\xf1\xe2\xf7\xc1\x0b.\x8b\xa0\xb3\xcf\xe2n\xa32\xd6\xd9d\x9a\xc4^\xe0f\xa4l\x9f\x19\xb1\xb1'\x12\x9c*N\x8b\xa0\xf1l\xab\xbf\xa9a\xb16\x88j\xbe|\xf6qx\xff\xa0\xa9\xa02qB\x9f\x14]\xc9\xcd\xaa\x98\xad\x837\x87&\xf0'\x01\x06\xc8\xc2\x05\x9cf;k \x99\xa7l\xac\xb8\x19\xe93S\\\xcc3\xcb\xbf\x11\x81T/\xa7\xa0\x1d\x9a(\xe1\xe7\xa1\x97\x13\x0bz\xa6\xf8\x0f\xde\xf4\x99\xd7X\xda\x1e\xd6\xff\xf3r\xb8\xfb+\x00\x00\xff\xffPK\x07\x08K\xfe\x8b#M\x03\x00\x00d\x08\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00 \x00img/pomerium_circle_96.svgUT\x05\x00\x01\x80Cm8\x8c\xfa\xc9\xce\xebJ\xb3-\x86\xbe\xca\x8f\xbfu/\xe4s(R\x14Im\x9fm Y\xd7u\xdd\xd9`]\xd7\xa4\x92\xd4\xd3\xf8Y\xfcd\x864\xe7\xda-\xc3p\xe3k\xac\xc5\xcc\x8c\x8c\x88\x11#F\xa4\xe6\xff\xda\xde\xd5\xbf\x9a\xfc?\xff\xed\x17\xd9>\xad\xff\xe5\x0c\xc9\xba\xff\x97\x91\xb6E\xb6\xff\x974$U\xf1\xef\x7f\xe5\xc9\x9e\xfc\x8f1\x19\x8a\x7fV\xfd\xeb\xb7\xea_\x7fV\xfd_\xff\xe7\xdfe\xe7\xd0\x8f\xdb\x7f\xfe\xbb\xde\xf7\xf9?\x10\x04B\xf8?\xe1\xe3\x7fNk\x85`\xf7\xfb\x1d\xd9\xde\xd5\xdf%\xffq\xf6\xcd\xd8\xfd?-D_\xaf\x17\xf2\xfb\xfa\xef\x7f\xbd\x9b\x02\xd2\xd3\xf9\x9f\xff\xbe\xff\xeb\xfe/\x0c%\xbe\x7f\xff\xfe?\xfeW\xf3\xb5\xf5\xff~\xe1\xff\x81\xfd\x7f\xbe2l\xf2\xbd\xfe\xcf\x7f\xbf\xee\xf7\x7f\xff\xab.\x9a\xaa\xde\xff\xfe\xc7\xbe&\xe3VN\xeb\xf0\x9f\xff\xde\xb2\xa4/\xfe\x7f\xf7\xff\x89\xe1\xff\xff\x7f\xff\xebw\xb9\xff\xa8\xd7\xa2\xfc\xcf\x7f\x7fm\xfc\xc7\xef>\xc8\x8f\xceIw\"\x7f\x8a\x1d.?\x8aWA`/\xbf\xdfE\x1b\x16\x8e\xac\xfa\xc9\xd0\x02\x0b\x13\x1c\x1d%\xe2\x15\x11a\x1b\xb1hea\x80\x8d\xf4G\x82\xe2\x11\xb0p\x91\xde\x13\xca\\\xc5{>)(F\xc6\x13\xb6\x0c\x01\xb1\xc19:\xf44\xe4+f}c\xdc\xb1\n^\x00\xae\x03\xc8\x19sa{\x11\xa2+qc\xc4f\x7f\xad\x1e\xbf\xe7%\xa5\x87\xc4m\xe2\xe5\x9e\x8f\xa5n\xf7\x9b\xb4\xf6\x19\x07\x05\xf5\x0c\xeb\x14\xde\x86#\xfd~\xcf\x8b\x87\xe8\xe61\xb1:\xcf+N\xf9!\xf0?\xaf\xa12\xb5\xd5\xbc\xe3\xf4\xb39oG\xe1+\xa3A\xdc\xc4{\xe7\x14\xd3\x87!\xb8n\xf1K\xa7\x06\x18\xc03\x16\x83b\x82\x8a/\xcaH\xb5.\x8d\x8b\xd7\x0e\x15p\x94\xd5\x1b\xfdxs\xa5\x0f7\xef\xecG\x10\x0b`\xd1\x94\x07\x86?m\xa5\xcf\xfc\x1c\xb1\x12GV\x1e\xba\xd5\xd4r1k\xf7(\xd4+\x1b\xa3Gk\xe7\xd3\xb0\x9c\x83\x9e\xa2\xf5\x83<\xa3\xc0e\xca\xa0\x1d\xbb6\x95p!\xae$W\x99\xbd!\x7f\xa3s\xact\xdb\xcaYN/\xc9\xb3\xd5\xa7 \xdd,g\x7f\x19{^~\xff\x92\xcf\x0b\x9b\x03:\xb2\xae\x83\xe7psL\x92K\x85\xa1\x12*\xce\x0b\xcd\x15\xae[\xc4\xea\xa8e\xda\xf7\x86\x96\x91<\xd3\xc5h1b_\xcb\xfa:X\x03\x96m\x11.\xeb\x15\x00\x8d\xa2q\x9c\x1b\x93\x96\xba1\xeeY.\xa9r\x1dp\xeb\x9d\xb2\xef\xa4\xd8\xe9Fns\xe9ZW\x1e\x07 \xc4\xd5+s\x98ct\x9e\xce\xcf^\x99\xe7g\xc4r83&\xc4mL\xda\x97\xb1\xf2v|\xcf1\xbe[\xecm;i\xc5\x9b\x88\x8e\x897\x9a\x84\"F\xbf\x93\xf9\x1d\xa6\"\xbe\x94A\x00p\n|\xa0`\x02B\x03'\xb1\xfb\xe2\xf0\xc4\x88\xads\xe2\xbe\xfe\xdal\x95\xe9\xf5$\xb3\xf7\xc6#\xfb\xf9\xb8\xcb\x02\xb9K\x81\x9b\xf1\x02\xbf\x93\xa6\xa5h\xaf\xb2\xe7\x9cl\x1a\xbe9\x8a=&\xd9X\xa2\xbe\xd1\xa8U\xdc\xeef\xaa\xbfw\xdbWn.(\x05\xa0\xe8\xcbz\xcf\x16\xdf'w\xa4\x96eo\xd1c\x86 \xe6+W8}S?\xa5\xa3/+\xd4d\x81|\xe1\xe9\x8c(1\xe3\xd7\xf0\xb9\x88\x95.\xa0(n+\xbc\x95\x0d\xddns|'\xcb\xc9\n\xee\x91S\xd7\xe8\x81X\xd8D\xb5\x14\x03\x91\xc55?L\xe6C^\x04\xa5\xa6\xccN\xec\x8d\x8f\xfe\xde8\xb7Mg\x14\xaeG\xfb&\xde\x18\xfad\x14\x89\x11AA\xf1\xf4\x98\x93]\xe2\x1a+\x00\x05}\xe05\xaf\xb9\xa4\x82zA\x1e\xdedY\xe9\x1e\xaa\xe48(wCG\xf7\x15\xf6\xe4\x8be\xd2\x03\xb0\xc7\x07\x93\xba\xfe\xb5Y3\xde\xf3\xc0 /\xce;\xc51\x0f/Y&&\x82\xf7d\x99P\xbcGT\xf1\xec\xcd\xeck\x92\xb4:\x8d0\xa3\xc6\x89\x1e\x96;V\x06\x95\x91 \xf1|*}\x16\xfe\xf6\x04\xb3\xc1{\xb2\xd4\xdc'\x87\xae\xf9;\xd2^\x92\x07\x81\x0e\xc1Y\xcd\x0d\x1a9c{\xa38\xb2\xf2\x05\xde\x98\xb7e%\x9d\xcb\x99\x1f\xcc\xc5u\xbb#\xeb\x02'\xe2\\[A\xdcr\x0en|\xf8\xf7V\x99\xf8\x02\x188\x9dV\xec\xb6\xf8N\xfc\x10\x9fEG}1[+\xef\x0f\x94\n\x96\x86lI\xbb\xd1\xbb\xdcV\xd9\x08\xad;\xc5\xe8\x10<\x00\xa0\xf0\xc2\x99\x15\xde\xe3\x15\x19u\x13\xf6f\xb3P\xcbd\x0d\x17\xd2<\xbc\x84\xd9\xe2\xf1\xe1C\x7f\n\xa0\x9f\xc9R\xca\x97\xcc\xbc\xe4:\xb0\xea\x9e\xb7\x96$\x93\x8f\x1a\xc88+\xf0\xc2]\xc8h9\xb9s\xe2\x02\xb0\x02mf\xaa\x83\x9dz\x1f\xf8\xc8\x11<_\xa8gX\xb1\x95e0.\x14E\xe0\xeeh)y\x1d\xc5\xa2P\x0d\xc1\x9d\n\x94\xd1\x11\xb7^\xf5\x86g\xcc0\x9e\xef\xce\x13\x14\xd8&\xf3\x80b\xd2i\xba \xd5,\x13\xbb\xb4Y\xed@1k\xb3z\x83\xff\xfc\xde\xe3\x08\xa4\xef=\xa4$\x93\x08H\x8b\x80\x89\x9c\x18r\x18\xf9\xbe+N1\xdco\x93}\x16L~\x1eFl{4\x1d3N\xda\xfb\x03\xec(\xf0\xae\xee\x93e\x13\xba\xe4tq\xdf\x03E*B\x8eZ\xeb\xa6\xab\x8b\xaeUe\xab\xa9f\xff\xf5\xc5\xa6!\x1d\xfa\xcb\xb45\xb8\xd7/\x0e\xb5\xd5\xb2\xba\xa8\xdd#b\xbc\x86Vo*M\xc5\xaa\x17>\x0c\xfa\x0d\xd9\xd1_f\xad\x95\xbc~q\xb3\xdf:\xa9\xbbG\x0c}\xaa\x8a$\x8b\xf8j\xd0]o\xbf\xc9\x8c\xdd-\x10\xe0k/\xf7\xbec\xbd\x1d\x9f\x0b\xacn|uM\xbcYNC\xcfPM\xedCqfs\x89\xdc\xbe6\x82\xa5\xf7\x06[S\x1dT\x0e\xbf\xb7CV\xe0\xa4\xb1\x96d\xe6)+S$V<\xc5\xea\xa8\xb3\x18t\xe39\xdb\xc9(\xf2\xb7\xa7\x81\xe8\x06\xce:)\x9a\xa2K\xabn\x89\x9b\xaf#\x9c\xba\xa0^`s\xaasM\x05C\xf0\x9e6\x8c\x0c\xa7I\x83\x96S|>\xb5\x9c\xec\x8d\xbd\x06B\x9c-\x99\xd1\x99\x83~K\x99\x0e_\x81\xe54\x81-/\xdf\x1c*#x\xed\xc2\xf7\x8e\xd9<\x1b\x01\xb7\x12\xe5\x19\xb3\x7f\xefG\xcf\xd6\xb8\x02\x9f\xaaU\x80\xa1\x0c\xb78\xc5 \xe9\xe9\xb2(&\xd7N\xd9\xf7Rl)K\x1fq\xef\xfb4U\xfb\xce\xe1\xb3\xd4\xe5A4\xe0\xf6\xc86\x9bo)M\xa4N\xbe\x05wG\x89\xb81\xd2\x1f\xce\xe4\xf4\x973\xcb(\xd9\xb4\x81\x82\xcbt\x12\xf44\x15XKW\xdd'\x1be\xb8\x10\xd6\x14\x13|}t\xc2\xfb\xc9 \x15\x9fqD\x7f\xbd\xe5(\xe0U,\xb0\x9a\xfe\xd7\xa3+0\x82\x0f\xc5?\xf6\xe7\x1e\xc8Jw\x1b+\xfb\x06z\x98%\xa1\xb2\xf4u\xe4\x8dq\xcc(A\xb6\xd4\xf7 y\x88\x95\x89\x8b\xf9\xb7N\xbaz\xad\x93\x82-+e{\xe1<\xa9\xc8\xf0\xa8{N\x9fa-\x82\x0f.\xbe\"\xb4\x97\xbby\xad\xa2\x02\x88\xbd3?NIq\xb6\xcdg\x14\xc3\x97\x86\x15 x>\xe8,\x95\\]\xe3\xa0P~\x00\xf6\xda}{+\x98nUi\xabi{K^\xa0\x86\xf1\x8f\x1d\xa7\xd84\x16p\x99\x1bv\x14\xf0\x19x\\oo\xf0\x1b\x95\xb9\xe6\xdd\xb98oJz&\xdeX\x13\xb27\xc6\xafFn\xce:\xc5;\x02\xf0\xa0@\xd9\x13\xb3\xd6fA\xbf[ \xdfIs\x85\xcd\xa2#B\xf6F\x0b\xd0q\xac\xc3\xf1\x95@u\xe8\xad2#\xb2%\x16k\xdbrF\x11|mx\x03\x19\xbeUk\x0c\xf4\xd8\x89\xe5+fTh\x16 \xc9/\xc7\xdf\xbe=Z\xf0\xb9a\x04 \xa3c\x181pu|\xc5h-\xe5\xe6'\xdd\xa5\xd4\x89\x87\x8aU`-#\x7f\x9f\xdc\x1a*7\xf0\xb91\x82\x16+]vT\x00\xa9\x92,\\\xbaK\xb6\x93\x00e\xbf\xebz\xfe\x9b\xaf*\xa4\xfa\x94\x9e>:\xad\x84\xb22Hacd\xcbc\x0f\xe6l^\xbfX\xbb\xad\x9a\xe54\x98%\x8f\x97\xb6\xb1\x1f\xef \xad\xde\xb1V\x93G\x9e\xeb\x9c\xcd\xe8\x96|\xd7H\x96\xd3\xa1\x9eqG`j\x80vK`\xe78\xfe\x9dA\x80\xfe\xb9n\xde\xf0\xf5\x8f\xf5\xe9a\x05t\x14\x8c\xd3\xfb&?\xab\x1f\xce\xb2gd\x87\xfa\xe7\xda}~+\x99\xee\xbd\x8aVS\xa1\x81\xbc\xc2 \x93Nn\x7f\xf3\xdb,uD\x18\xbaUA1%bD\xcc\xd2\x9f\xaad;\x15a\xc9\x07\x94\x11\x00\x083v|\xd9\x9bs\x01\xf4\xb7\xb7/w\x16s_\x17\xd3:j_\xc8gX\xb3Un\x00-\xe2\xaaN\xed\x06\x07\x9f#\xbb\x1dZ\"NBe\xfb\xe2l{\xc5\x8c\xe2\x11N\xad\xdd\x80 m\x8c\x0d\x82\xde\xb1\xe5\xb7\x1b\xd17~\xe9\xaf\x1e;'\xc5)6\x9bV\xf2\x18\x0c) )\xfd\x01.\xb1\xc1\xdf\x8e/\xb5\xb9\x05B.\"\xe6\x81\xdeT\xe7\xb6\x14\xb5\xcf.\xf5\xc7\xa9Y\xb7\xe2o\x00\x83\xc57\xdf\xb1\xba\xc4' \xc5\x020\xfa\x13\xb3o\xdb\x93QL\xdfNs#bF:R\x99\xfd\x8b\xebA\xa1\xd3I@m6\xb3d\xba\xc2\x99\x91\x80\x80\xf0\xcd}s\xe6\xb8\xf7\xbb\xf8\xae\xefs\xb6\xe0\x01\xcf*\xdc\xb3\xd0\x96\x9euj\x85r\xd0\xf7\x99\xd2\x8d/{\xedc\xa7\xa7\xebh\xdd\xa0\x83##x\x92o\x05\x97J\xd87\xf6\xf3\x8b\x8d/!\xa1\xe5d\xc12\\2\x9dx\xdb\xf6d\x16\xfdT\xb9G\xc4\xaf\x95\x8b\xb5\x82\xd7\x7fk\xe5\xc9\x8dU\xcd->\x95\nU/x\x87\xe0\x07\xc7lu#\x10\x0c\xc8r\x8b3\x1bi\xd2\x91\x0c\xf7\x92\xec\xc8\xd3\xa6+\x86\x8d\xef`#\x13iJ\xbd%\x7f0\xe6X(\xa6\xbfA\xce\x92r(\xf6\x9d\xd4\xbb\xfb\x0c\xdf)xf\x80\xfes\x17\xc5m\x19u\xb3\xda\xa9\xe7g\xe7:\x99\xa0\xbdf\xef\x8e{&\x90\xd0J\x90\xbd\xde\xd9k\x08|aoy\xa7{\x8c\x0c\xef\xa9\x8b%\xa7\x19;C\x91\x02\xe0\xd2O'V:\x7f\xe8\xc4\xb2r\xa9\xa5W\xf9*\x8d\xae\xcf]\x99>\xdc\xe6\xa2Uyc\xcd\x93\xfd\xd5\xf6l\xd9=4\x91@\x19.\x83N\xbc`\xeb\x99\x85\xfb\xf9\xcd\xadU\xfa\xa7\xc6b\xe9\x8a\xeb\x0fl\xbc\xc5wR\xa1B\x99\xe9f\x11\xad\xf6\xe5%\x87\xad\x1d\xd8J\x93\x13\xabW\"\xbc*W\x9e\xa1\xcd\xc0i\x8f\x16\xde\x93\x07O\x1eaz\xd0^\xc4o\xbb\xd25v\x8f\xb1l\xd5\xefkdoS\xd6\xe3p\xf9j\xe4W\xc4\"\xe0N(_\xae\xecFu\xe0\x0eV\xed\x9d\xe5}F\xb2\xb3\xa1\x95\xd4\xdb\x03J\xc1\xe0\x0d\xcaD\xff\xb3F^T\x93=\x9d9\x98\xb7\x84\xf5X\x06\x8f}'\xe9\x18+s\xc6\xba\xb8\xff\xf2\xc0\xa8i\x8f\xd0\x19\x1e \xe7\xa4[\x1a\xdf)h(\xcfPj\x81\x831\xcb\x8fG\x95\x89\xd9+\x99\x9f\xf1F\xbb\x92\x16\x0b[e\xee\x93\xa9\xd4\x11XB@\x80\xfd\xdb7\x1dgI\xd8\x83 \xa1DQ'O\xecQ\xc3{\xce\xcb\xc2Z\xb2\xb3n\xbc\xb5)\xf7\xc1\xf1E\x1a\xa1\xefOl;\x87\x9f\xe6v\xe3lH\x81\x9f17X^\xf7\xc5\x91\xe5\x90\x13\x0c\x06w\xe6 \x8c:a\x1e\x9b\x8bK\x96\xe9\x1eYHe\x0f\x8c\x18\xf0\xc9\xb7\xee\xba\xb9bE_\x99(\xc1\xda\x95W\xa1\x0c\xda\xb0$\xba\xc1K8\xe0\xb6\xea)uN|\x8f\xd9\xfd*\xe5\x11N\xfc\xec.\xa7\xa7LsW\xb9n#j\xac\x80g\x7fmE\xe7\x06\xf4=\x15\\T\x04\x81\xd5\xfa\xd9\xf0\xa6Y\x9cA\x00\xce\xd7A\xd7\xd82\x0b\xd2[\xd7\xa4\x94B'\xdem\xdbGF\xf7`\x92\xc9\x00\x17o\xb4\x87}\xb9K\xea\xf2db\x10\xde\xe8\xafe\x8eJ\xb0\xa5\x82%s\x83\xe3\x0b\xa5\xc8mIs\xb5\x9c\x1aED\xcf$\x19\x1b\xe2\xef\xfe\xfbm\x06\xe93\x18Pm\x99\xcf\xab\x7f \x99S\xeb\x06hp\x06\x1b\xfe\xd4\xcb\x12qD%k\xab_\xe2 s\xcd\xa4*Y\xcf\xa7&~\xbe6\xaf\xba2\xd7\x8d\x9a\x19L4f\xd0\x93\xe0\x9d\xb1\x02U\xfc\xf8\xcc\xab\x8d\x17\xa8Og)\xe5NU\xdam\xa3\xd9\xc110\xaa\x87\xe5Y\x80^\xfe\xf6\xe5\xfb\xdde`\xe9\x7f\xa2\x8e\xef\xab\xe7[yrN\xb2\x81'd\xe3\x98\xfe\xda\x8e\xf3\xd2\x80l\x80n\xc9~AN\x89\x00\xd63\x02B\x8f\xb8B\xfft\x9a\x13,g\x85\x03\x04\xa5\x12x\xb5\x95\x1a\xb9D\x06b\xe81\xdf\xb8s]\x9c\xd9r\xcd*\x87F\x9d#\xd3r\x9bkVh\xd6l\xb9\xea\xc8R\xa7\xf8\x14Qi\xaf`\xe9a\xc0\x103\xaaJV\xdc7\x89\x06\xb8\x88\xb1\xfe\xf2\xad\x12\x19\x01\x90\xf2p\x99.\x83\xce\xbd\x84\xdf\x14\xcd\xa9\x0d\x0c\x10+\xe8Wa\xfb\xc6\xaf\x17\x84O\xa5\xd8N\xecO\xdbb\xa4\x1f!\x93\xbek\x04n\x8c\xbc\xdd:\x95\xae\xb1f\x92\x8c\xb8u\xc1\xf4,\xf6N~\x93\xb7\xa5b\xc9\xd3S~\xf5\xe0\x1eP\x1d\xe9M]\xcan\xab\xe9\xc1\xfdj\x97\x1b\x0f7\xf9\xeb\x83\x11jN\x1a\x9ck\xabr1\xac>2w\xc7\xc1Z\xf1\xc2?\xf8s\x87;\xf3\xae\xe1\x9cM\xf9\x960 \xbc+\x11\x17\x8cL\xbb\x81(\xe2\xab?\xf83\xc2\xc8\x14X\xc4\x99}yK@\xf2\xb9\x82V\xf0i\x12\x9a\xf1\xa2J\xc67N\xcb{\x10\x81\x1e\xe0W\x07\xef\x01\xacc\xf5\xdb/(\\xI(/w\x8d3+f\xc4|\xeb\xb9\xce\xfdo=\x07\xc6y\xc7\xa5_=\x0f\x0esD\x1c.\x9d\x91#=z\x0d\xb7\xf6\x9e\x892:\xbf\xa4\x81\xaa\xa5\xef\xde\x91\x8f\xe8\x13u\x96\x07=\xa9K\xcbm5\x839\xf2\x00M\x13\xc8\xdb?\xd8\xa5\xddH\xc4\x94\x97\x13\x07\xd3\xb6\x98\xf3\xe7\n*u\x06\xe3\n\xe4\xbc\x16b\xabsb\x05\x03\x0c\xb1\xb6\xb1\xe8\xc7t\xca\xa0\xefJ\xcf\x04\xf0\x8b\xffW\xe7T\x91un\xf3\xaa\xc9\x89\xae\x7f\xb9\x02\xf0\xb0\xb8\xfe`\xa0\x7f\x81\x9b\xaf\xf4%g-S\xc9`\x9c;[\x03 *\x8a\x15\xfe\xf6o\xaf\xeav\x99>\x13\xf3\xe2\x02_\xc4\xf0X\xb5\xe5\xa4\xca\xdfH\xfdP\xa7/\x1f\xef\x8e\xdfF`5S\xe7V8\x17\xf7 5c\xe3\xb2\x7flg\xe3\xe4\x9c\xdbs\x05\xd6^q\x89')#\xfdQ\xbf\xd8q,\xb5z\xb2n\xbd\x90\x82u\xdb^#Co\x9b\x9bW\xaa\x00\xb0\x8d\xa7\xfe\xf8]\xec\xe8Z\x1b\x99<\xe2\x90G\xc3\xd2\xe0\xd8\xd8J\x8b\xc7g\xf6\xbfz{pf\xfd\x99\xb0H\x93~N\x0d\xeb\xa7\x00n\x19\xc9w\x9e\x0b\xa4K\xa0i\xcc\xf5\x9b\xcf\xba\xd9J)\x9c~\xfc\xde+\xacP=\xe9\x91\xd9\x91\xe9\xfdOL\xef\x16l[3@\xe9!\x93\xd0'\x18J\xc0\xe0\x1cz\x96\xea\x97\x0fh\xdf\xa2\x1f47g\xab\x14\xa8`S%\x0bM2\xc9\x8a\xe8\x0f\xfc\xf4\x7fc:\xe0/\xe6v\xbaK*\xdd\xf9\x06\xb2=~\xddp+\xff'.Mq\xe5\xd0nN\x8f\xdfp\x0b\x0c#\xb3nl[h\x17\xf7\xeb\xe3 U+\xf1\xd7\x8fL::\x8e\x17kp{\xa9KJ\xff\x97/T)\x02\xf3\xa7\xc5\"+\xb0&\xd6\xc4\xe7\x81\xfd\xd9\xdc\xbb\xcc>*f\xf6\xd3EN\xf4\x19V)(\x046\xfd3\x07\xf5\x0e\xeeA1_v/\xb0\xa1\xca\xf7a\x1c\xc3\x1ai\x04\xdf\xfa\xeeU\x96}gb\xac\xda\xb9\x89\xb4\x9e\xd5\xf0\x9d\x87\xaa\x8c2~\x18\x0d\x02\x8c\xd5\x9b\xd5;\x82g\xa02\xd2\xd5\x9e\xec\xcd\xbc\xfd\xde$d\xae\xefu\xdc\xb5Xo\x99{\xc9\x83\xae[ \x06\x93\x04\xdde\xcb]o)'a\xc9\"~\xf0\xcdR\xdf\x9d{\xea\xd6b@\xcb\xb8\x90G\xfdO\x1b\xc8s\xc91\x9bx\xf4\xd7.G\x1b\xd7*\x06g\xe2\xa1s\xfd\xfc\xe9vr\x13#\xe7\xf0\x98\xa5\x1f\x1a^\xe3\xf0\x88\xfd@\x9a\xfd\xbdu\x7f\xf7\xa6\x1aW\xf0E\x7f\xcdv\xb41\xad\xa2w&\x9e\\\x7f\xf7\xb6\xd3\xa3\xd7A\xec,\xda]\xc3\xed\x19N\"\x00w:\xfd\x83-g\xde\xd9\x05T\xd7\xee\x8b\xd3\xc47\x04\xf0j\x97\xd6\x13\xa0\x15\xa0K\xff\xbc\xfb\xc4\xb2\x92\xc2\x13Z\x8a\xaf\xe0\xd9\xee\x04q\xa2\x8dS\xfd\xd3\xf6\x8e\xaf\x9a$\xb8e<\xd8|\xab\xe0GF7\xb8W\xf4\x15\xa7\x7f\xf5J,/s\xa5\x90~\xf2\x9d\x87\xc2\xcf\n\xe0\xa7\xd6\x11Nk\xea\x9f\xed\x9c\x8c\xc4w\xed\xa9O\x1f\xabc\xd8\xba5\x83\x81&\xa3\x85\xbfsR\xb7\x06^\xbdqG\x7f\x1dg\xa4)7\xc5\xecL<\xfa\xc7\xaf\xf7S\xf0a\"h\x1c\x8a\xcb\x08\xe84\xb6\xf9\x83\xeb\xc5:V\xe0b+\xef\xc4\x1cx\x0f^\xcc\x8f\x8cx\x93c\x9f\xf9a\x00\x81\xb0\xc9\xa5\x9dQ\x0eK\x8b\xe2 V#{LRi9O\xa9s\x8a\xe5\xcd\x1e,p\xe6\xd0\xde\x02\xb6\xe0\xc5@\xa0\xe8\xbf\x98m\\\xdf>\x8f::m\x03\xb7\xe6z\x18\x01\x97\x89\xd5\x1f\xfd\xc2\x0d\xafLl\x92L\xb0\xb6\x9e-\xf8\xa0U\x12y\xb5\xec~Z\x8c\xe6\xf7\xb6%uK\\,\xd0$|e\xf2f\xcf\x0bR\xa9\x84x\xdf\xf1\xbf<\xb61\x07N*g\n_\x89\x84L\xbaG\x0e\x80\xec^\xbd\xfe\xf0\x97\xd2\x99\xe3\x94`\xea\xee\xc4\xbe\xb7\x0d \xe7\x87\x86\xa3\x84\xec\xa8~u\xae\xa5\xc9\x98\x83\x17\xb3p\xd6/\xcf5]\x81\x95\xfe\xf3\xfe\xd4\xd82RZ\xcd&\x1c\xfd\xb5\xca\x91f\x1c\x8a\xd6\xe9\xb82\xff\xe9}N\x86\x9d\x80\x10\xd8'O\x1e\xbf<\x98\x01\xe0q\xb0\xff\x83\xafe\xd6c(\x11\xbe\xd2\xed\x0dt\xe0\n\xabO\xbd\xfc\xed\xd92\x1b\x86}mW}\xcb\x86\x1a\xee\xa0X\xc6\xcb\x90\xff\xdb\x93\x1a\xd7\xc7\xbc\x83\x0b25\x8c6a\xbb\xde\x9b\x86\xfb\xc5\xf9\xb7^\x966yH7\xe7\xac\xd3!\x93\x12\xd2`?PO\xff\xcc\xbf\x83\x832\xccslB\x8d\x82\x9f\xda'\x81\xf6\xa7\xfe\x96}\xb5\xaa\x95\x7fhs\xff1\xb8$S\x88Z\x1f\xe9\xf4\x9f\x1e\x15,P\xc8X\xa3\x88a\xff1~\xb6\xfe\xd6\xe6\xa8\xd4\x03\x06T*g\x82\xd8!\x85LMH\x83\xe6\"}\xff\x8bS%\x89\xd9\xb9\xeeGzV\xe5\xaa/\xbe\x84\xc0e\x7f\xdf\x83\x94+\xf6\xf7\xcb\xe0\x8eh9GF\x178\x0b\xcfG\x1aO\xff\xe8a\x99\x0dc^\xf8\xfd6\xe7o\x01\x1d<\x05L\xa08\xeb\xbf\xf7&nSo7[H\x87H\xba\xe3\x16\x86\x83\xbej\xff\xf6\x9b\xae_;%`\xde\xce\xecg\xbcr\xa7>6}\xe3\xb5\xbf\xf9\x14>i\xf5\xa2\xf3\xac\xe1\xcd\xbad\xc9-\x02\xbf\x9a\x883v\xde<:x*\x925W\x9d\x08`)f\x7f\xfb\x08\xb0\x8a\x9e\x89J\xc1\xea\x07\xab\xb9+\xd2\x86\x1b\xbfXR\x8d\x17\x8aN\xfa\x19\xa8\xa5c\xc2\xcd\xd2g}n\xb0?xT\x1c\x8d\xa8\xc4\xfb\xe2\xc7\x84D\xfb\xdb\xcc~\x0c\xeeAi\xbf9Mf\xfa\x12\xab\xea\\\xde\xb5\xcb\xf4\x8cH\xae\xe0(r\x16\xa2\xfcf\xe3\xc1\x99\xa53v\xdcf*\xbbi\xc3\x989\x1e/\x91\xa2\xff\xc1T\xd9\xdd\x1b\x9d\x9e\xb5\xe6\xf8\xfc\xf0X\xa5\xc0\x17\x18\xf7\xef[\x94\xa3\x0d\x13\xbd\x89X\x7f\x1dr\xb4\xd1\xc1er&n\xff\xc3woy\xe7\xee\xca\xe3Jl\xedS3\x03c\x19\x80\xc9X\xe3\x1f^\x88\xf3\x93\x8b\xf4\\\xe9\xcb8\xda\xf4\xe12:\x13\xd7\xfe\xd9;\xcdu|W\xc5+\xbe6~\x93\x91\xa6\xf2~{\x14\xaf\xb8 \xd6q\xb7\x8e$h\x95H>\xa0n\xe2\xfb\xf0\xcf\x9e\xfes_\xfc\x19S\xeax[\x1b\xd6\xe0\x1e\xdbo\x96\xb1ee&\xddh\xe2\x87\xeb\xf5\xe5\x89\x05\x1a.\xe0\x03\xe6\xf6\x97c\x9c\xac\xb0\xeeQ\xb8t\x97~\xc6[\xbf|tN&\x94\x7f8FKP\x91`\xaf\xb8\x8b\xbb\x18\xb6v\xcd\xb1@\xc6X\xe2\xbf\xf7\x0e\x15A\xbd}\xb9\x8f\x9dO\xc4\xf2C\"\x95p\xfa\x87\x0b\xce4\xda3\x1en(s\xc6\xcad\xcf*C\xff\xfe?\x1d3q\x84D\xd7\x16Xw7\xaf\xe4B\x8e7\xde\xb7\x7f\xdf\x92\xc92`\xcdy.U0m\x9c\xf8\xe0\x1d\xfb\xdb[\x7ft?{\xb6\x904Z;P\xc7\xbd\x94\"\xe8\xfa\x8dH l\xff\xfc;\xd7\xc9t\xc8\x81\x81M\x9d\xd9\xeb\xb7\x00\xb4q\xc0\x07d\xf5\x0f\x8eU%\xb6\xcdJ#yk\xc2\x82\x9a\x13\xe2f\xe9\x9d_\x1e\x87\xe5\xd3\x0b\xd8\x81\xe5Z?\x0d+\x18\xbf\xd8\xff\xc3\x85\x1d\xff*\x9eJ\x9f\xe5\xed\xe4E1\x0f\xb6\xfb\xa0\x1al\xb26z\xbd\x890,\xf8\x1db\x82J\x06\xec'\xcd\xccP\xdf\xa1W\x0f\xb8D\x10\xb8\x99\x06\xd8\xf9\xb8\x07_}\xa1\xdb0\xdbJ;\x08TI\xe6)L\xacM\xb9\"\xcd\xf4\x1c\xdeV\xed\xca\x93\xf3v,,\x00\xfd\xcd\xac\xed\xa5\x8f\xdd/'\xc8V\x04\x12\x989p}\xf9v*`\xd7K\"\xcf\x95V\xcfO\xf8hIqee~\x15\xd6\xef\xdd\x8d5\xaf\xd8\xee\xbc13\x9e3\xd4M\xab\xe7\xc1\xb5f\xc1#\x8e\xca\x8f\xe4=H\x1d\xd2\xbd\xea\x91\xc1IN[*\\`'9\xe7\x1e\xadIcL 1\xba\xdd\xaf\xe6\x9bgt\xdb\xba\x802\xc8G}\x96@y\x985\x15\xbe\xab{\xbaWV\xed\x07k\xf19\x92\xa5\x17\xf5&\xbeO\xf8\xde@/\x9e\x9e\xd6\xa7~dt\xbd\xc5\x1f\xaf/P\xac\xb24\x84n\xb4\x1bK\xef\x07\xdf\xed\xea\x977QB \xa3\xd2\xda)\x9dE5\x03{\x06\xfc\xba\xa0+\xe6'\xc3Ax\xde\xa6|\xb1\xa8!`\xc3=ZX\xb22\xa17p#q\xcd\x1c\xeb&\xa8\xbf\x9c'\x84t\x86\x99u\xdb\xbd+*<\xea\xe9\x83\x05\xfdN4\xe0\xd5\xec\xde\x11\xc6\x81\xca\x16\xc1\xeaw/\xfav\xb2\xca\x14\xd2\xd5\xc5\x01\x9c\x10&\x84:S\x00\xdb/\x9f\xc8\xe9{\x13\xd0\xe7g\xdex\xfdI \xd3@\xd0/\xbf\x80\x0b\x11\xfa;\xa4\x0bZ\xc3T\xba\x18\xde\x04+\x08\x89F\xd38\x97WX?{\xe0\xd5\xde3\xf3\xdd\xbd\xf9/\x96g\xab\xcc\x88\x94\xf6\x83\x92\xc5d\xe1\x9cM\x87\x182\x16\xeb\x9dY\x7f\xc7\xa1\xd5\xd4##\xfd\xe2[`\x8f\xd3\xbb!\xf6#z\xba\xd893\xb6\xec\xad\xf1\xb6\xd9X\x17S\xf2\xa7\xa5\xe4\x1e\x81\xbe+S\xce\xd1\xe9Ur\xa3i\x98]g\xe4B\xbd\xa9\xac\x08\x97\xed\xd8:\x12\xec\xa3\xce\x1f\xa8\x96-m\xff\xe6:\xc5K\xc9\x83\x92\xf1sv\xdfu \x18\xba\xc4y\x8f\xb7\xd3\xa1\xb96OC\xca)\x11\xf3\x0e\xdb\x89#w\xaa&q\xb8\"\xecs\x7fs\xdd\xfc\xe3\xaf+?k\xb1~\x03\x00\x18\x00\x1c\xcf\xa6}\x90d\xc8S\x83\xc9U\xa3\x913\xd6\xae\xa6>\xb7\x80y\xe9\xe2!P\xba\x1e\xd1{ \x03\xcb\xac\x0f\x05a\xdfh\xf4\xab\x9d%\xae\xb0\xc7\x95hyD\x92E\xdd\x92\x8e\x8cF<\xd2\x88\x81\xd2\x14C\x7f\x97\x86\x0f\xce/\xc7'M\xe8\x9az\xa2\x10\xbfu\xef:\x00\xfdO\x1b'\xf5f\x9d\xed\xa74\xec\x0c{\xb4W\xe0w\x1d\xba\xbb\x1a\x9af\xbfZk5Z0\x87\x17H\xf2\x1d\xa6\xefw\x92z`\xea\x7f\xb5jp\x94a\x14$e^x\xc0K\xfd\x1d\x8a[\xa8t\x97b'[\x8d\xa5\xc6\xf9\xbc\xb8\xd8\xa7\xd7\xc2x\xd9Q>p?\xbe\x92C\xdb\xde\xcc\n{zP\x9e\xd5\xe0\x0ebJ\xad\x93\xa5\xc7\xa2\xd0\xaa\x06\xc0>(\xfa\xfd>?\x02k\xe1\xfdlu\x8e\xb3\x1cVd\xb2\x83\xd1\xb2!^\xf5\xbe+\xeb\xc4\xfd\xa9\x07\xae\x92\xc8\x074[\x89\xec}@\x94\x08\x8824w\xfc\xfb\xb7'\xe4\xfd\x83\x80>D\x8bW\xa3\xc4\xa1\xd4p\x8b\xaf\xa5\xbcU~\xfc\xb5~\xb3\\\xc0\xb1<\xfa\x8a\x84\x11\x19\x8a\xdf\x9d\x94\xeec?\xef\xce\xd9\xcd\xbb98\xfd\xc4t\xf9rp\x9fZ\x18\x19 \x80d\x13\xbdm\xc1$\x12i]\xfc\xae\x0dg\xff\xc3\xcc\x98\x97-\x9f\xdd\xf2=r\x9a\x10r+\xbd\xcf\xdeL\xaazU~\xe2\xaa.\xd9[\x00s\x89|nG`}g\x08\x19\xc7\xa9\xd1\x84\xf7\x04\xe1\xbcf\xa1W\xab\xce\x97EH<\xabB8xL\x18 _4}\x92I\x03\x7f\xef\x10\xa8K\x04u+x\xceq\xfbl\x1e\x8d\xe8\xa1+'\xf2\x04\x07\x96\xf5\x0f\xbf\xdb\x16L&P\xd8\xe2=\xa9\xd7P\xa3#\xef\xa7[\xf6%\x84\xfe\x88\xc0\x8d\xc2_\x89\x16\x97\xd1\xb5\x89\xc1\xef\xdf\xc4l\n\x95\x98\x9e\x89K\xce\xc5\xcee\x80\xe11{\xc3\xfe\xfc\xd6\xe7\xf1P\x13\xeaU\xf40<\x15\xbbf\x81\x9f\x08\xb4\x11!\xde\x12\xd1\xaaM\x16\x0f<\x96\xd3\x03\xebv{\xd5{\x94\xe2\xfa\x1f[>\x1a\xa7\xb8\x06\xe7z\xb9\xc2\xe6\x9a\xc1{\xf7T\x1d\x94\xacsp{\x114'\xe5_\xca\x92\xb8\x9f\x89\xde\xf3i\xf9\xbd\x89\xf2\xaa\xa9\xbb\x03\xbf\xcd\xb9D\xec{\xb2\x0b\x8b\\\xd71\x03%\x9cTmo\x9fN.\xafN]\xf8\xc5\xb7\x1b\xe7\xe5\xd4\xf9\xbaU|\x07\x9b\xa0@\xb6irqjtWz=\xce\x0d\x98\x16,w\xc7\xb4\xf9\xdbs_y\"\xcfxq\xf6\xdd2G9\xb6H\x91\x07]\xbb\x91\xae\xbb\xaf\xce\xc4]7\xdf\xaf\xf7f\x90\xc4\x96X\xdfY\x81H^\x0f\x14\xa2\xcd\xba:X\xe0\x03.\xf7o{\x94\xe7\x85eUU\x06\x06\x183D\x1f\xb1o\x18\x91fZ\x04\x7f4\xe4k\xcfw\x12>kuN\xb5~\nL?L4eJ\x0f\xb5\xdf.a\xa08\xf9\x81_?\x1fQ\x9e\x1aK\xd6\xd0\xde\xbeE\xb0E\x1f\xe5\xce\x8dK<)\xa5\xa4>r7\xffz(\x1d\xcc\x15=\xfa\xe9\xcc\xf2\x8e\xe6\x8a\x06_\xbd:\x97\xaa\x1a\xec\xc5\xb2\x90\x93g \x80\xdfxx\xcc\x86\x1a#\xf2\xf9iT\x8b\xfe\xbdI\x18\x85\xe5F\xd65x{\x17\x18\x0c\x08\x88\x05\x15xM\x11\\\xc1[\x8e;\x89\xef\x15\xf5\xf8\xce\x15\xba\xaf\xa7\xc1\xd9\xb0K\xe8.\x8f\xd5K<\xab\xc9\x95k\xb1\xf3\x1b.\x1eW\xf2'\xbe\xc7\xbc\xa3\x97\xa3\x9d\xbe\xb5\x888\xc5\x17\xcbq|g2\x0c<\"%\x8e\xdd,\xfc4#\xa6\xc9\xbf\xf7\x9chn\xb7\\\x8d\x97q{M\x99i\xbd\x99\xf0\x110\xe2#`\xd6\xfdn\xa4\xb6\xcf\xed\xe8\x8e\x1b\xdaU\xd2\xcd\x1daQ!\xaf\xd1\xda\x89L'\xf0`\x19\xfb[\xb2\x93\xf1\x8e\xd5\x9b\x16b\x94\x9a\xeeQ\xb1\xe5_\x87o\xea^u\x17\xda\xf8\xf7E\xdf1(\xbbr\x07\xd4\x0f\xce\xde\xafB(\x91\xd7\xe8Z\xdd\xc3:\xe6~\xc2\xc4\xba\xa0@\x80Q\x06fP\x9aA\xe2j}\xa0\x93\xb7a\xaa\xf8\xce\xf4(-\x08-\xe0%>\xb3\xe1W\x03\xa3\x01e,\xa9x\xbc?\xf09\xd8]&\xba\xe2f\x9c\xd3\x8df\xfc Bx'\xba\x05M\xe7;o\x16\x88o\xacgs\xa4\xccjb\xb2?\xc7\xb01\xc7^j3\x0d\x1f\x07b\x16\x161\x84\xbc6\xb6\xb7,\xac\x07\x96\x85$\xbf\xc4\x06\xc3\xbf\xd6Y\xf1U8S\x9f\x185\"\x06\xf7\x93 \x97\x11\x0f?\xf08\x9e\xf6\x0b\xc1\x83\xfd\x00\x1e-?\xb0&\xa7\xe8\x1dG\xa5\x05\x1e^pP\xaf\xab\xc1o\xce\xed\xec\xc1\xda\x08\x06 7\x9f\xd6\x82{.\xda\xd7\xc7]]\xbb.0f\xc7\x13A!&\xa8\xe2\x05F\x9e\xa8\xbc\xf4\x8a\xaf\xe2\xdaH\xe2\xa9@\xe2EoS\xc6\xca`t\xb0o\x19Al\xa6A\xe2\xee\xbd\xac\xc4\xbbQ\xe1\xf7G\x8b\xde\xebW\xf6\xa1\x02\x97\xc6d\xf6\xbc\xb1\x1f\x88\xa8\xcd\x89^\x84\xa2\xeb\x93\x99\xb3\xb8\xfdx\x9f\x08f\xd2\x95\xb0\x9e\x06i\x1dK|y\x08==J\xfa0\xdfL+VH\xfd\xe0\xf4\x0d \x8cM\xcfj\xbc|\x03\x03I\xb8}M#>Y\xc2\xcbCX\xf5\x83\x85\x1bwb\x0b\xef\x92(\x15.\x9e\xd5 \xb4\x0c\xc3\xeb\x1a\x11}\xc7\xb3r\xc4>\x08Q=0|\xee)\xad\xc9)\xad\xdd)\xd3\x9dH@\x80\xe3%a@L3\x0e\x89H\xf0N\x91M{UK\x99\x05\x1f)\xb5uJks\xdc\xed\xef\xe6\x83\xdaw\xff^\xe1%\x08\xab\x9c\xa5\x16\x1eV\x94\x1bgH\x18<\x95\xbcF\xa5G\x1d\x1f,\x15\xa4\xfc\xfd5\\\x97\x9dVO\xedP'M6\x8e\xf3X\xa7\xcax!4O\xc4\xc2\xfdX$]V\xfaPo\xa7\x82\xf4\xa6\x93.\x98\x11\x0e}o\xde\xc4R>\x0d\xb3\x17\xb7\xd8]\xe2\\\xc2\x0b\x93&\n\xb3\xc16\x83\xe79\x0bf\xbc\x81G\xe2\xe3\xdc\x06\xd6\x8b=\xb9xm\xbe\xcd)h\xc1\x05\x19\x10\xd7I\x1f\xed)\x1c\x01\xbeWH\xf4`\xdbX`[<\xdcs\x1c\xeb\xfd Q\x9f\x9b9\x0d\x94f\x18ud\x98L\xb4\xe9v\xd2\x86\xe2\xf9\xb9 \xb7\x05\xd3f>\xb3\xfd\xdeY\xc5\xf3\xae\xe6\x84\x9f\xd5.\xad @\xd5\x00\x8f;>\xe4\xf3\x1bW<\xe1\xf2\xe0\x83\xd5\x82<%\x11*$\xa2\xc8N\xd3\x19\xbb\x01v\xc4y\xd6\x84<\xab\xe3W\xef\xdb_\xbb\xda\xcb\xa7\xd8\xdc\xc7\xd3q\xc2\xe7\xed$\x1f\xf5%\x9b\xd5\xc3~\xc1\x17J\xbc\xa2|\xf9d\xe6^N\xe1\x9c\x1e,\xef\xf8@\x13\xadP\xeaJ\x93\xe56V\xd0\x89e'\x04\xe4S\xb2\x984\xf3\x99\xb5B\x95Vz\xf7\xf9\x1e_ii\xad\xd5\x9b\xe2\xaam\xc6T\xfc\x13\xdco\xb2\x8eO\xeb\x85 \xc7u\x13\x0f\x82\x92\xce\xbb\xe1]1Sg:-\xe2I\xedF\xba\xb6GX\xe7\xa3\xf19g\xda\xfb\x19yqggD`\x97e\xb8 \x8f\xaa\xa1\xcd\xfa\xce!\xc4*\x08\xb1Yz\xd6C\x8c\xeaV\xa4\xf0\xbe\xb9\x8a\xb0Lx\xe9C\x897\x12\xbe\xfb\xde6\xd5\x10\xc6\xefc\xd7\x11Vz\xee\xbc\xda#}3)\xc8#\x8fKW\xfa\xea\xc5\xcd\xf4HU2\xf4\xcd\xb8P\x0f\xd8\xef\xb7\xc3\x90\x02e\xdd\xb1U\xea3\xbd\xec\xa3`T\xad\xacd\xee\xfe\xed\x12\xe4T\x1e\x85\x1e\xde\x1f\x1d$\x96\x94\x10-\xcc\xd6\x11}\x80B\x88\xf0\xd6zzI n8\xf1\xf8\xae\xbb\x13fu\xabf\xadh\x94@U\xc8\xf1\x9c\xd2\x10{\x14bDRBq\xc2\xe8\xb8K\xa7\x80\xdd\x83s\xc0??\xfdk\xd3\xa2\xa5Sj\x14\xbeF\xc6\xa0\x80Y\xb7\xaaRR\x86Q\xc7\xc6-\xe4\xb69~&\xbb\xabx\x93\xfcFD@Jh\xbd ,.\xb2\xed\x94\xb7\xef\xeadu|\xe9{?SC<^\xcb\x8a2\x1f>[H{\xe3\xb7n!\xb6\x8f;j\xaa\xe5~\x8bI\xfe\x95)n\xa6\x87o\x9c\x1f\xc3 }\xf0\xed\xf8\xa6g\x12\x8f\xdb\x95\xb7\x1e\xe8\x03j\x8f\x16\x1e}\xad\xd0%\x0f\xe6l\xaa7\x9f\x0eo=\x94\xee\xb8\x8bV\xe6\x08:\xbe\x0ena\xd9\x10!\x1b\xcd\x984\xbf2\xcb}Q\x9a\x1f\xe3\xe1g\xda\x1d\xf4\xe5fJ\x8e\xafeN~L\xff\x0c\xe5\xab\xf6\xe1\x93\xf0\xe1\xfd\x890\x9a\xb3.\xd8\x98\x90P)\x10\xe6\x86d\xfa3\xf6\xc6\xe6\x8a\x00Z\"\xeaqe\x18\x95\xd5\x013\xdc\xf7\x8c\xbf\xd9\x942\xba\xa3\xe9;<\x92g\x97\x9fQ\xcb\x1e9UpVo\x90\xe1\x89\x1cm\xac\xf9\n\\\x99\x10\xe4\x94\xbe\xbf\xd9\x0d\x96Dj|\x1e\x14D>\x9eE\n\x9d\xc4\\\xf5\xbbt\xc3(2l\x8e\xba\x810\xc7\xdd\xe3.\xc7\xaf\x9b\xc3\xe2%2?\x8c\xe1\x9c\x013\x98V\x89 ~\x18\xbd\x10\xdab\xd92\x96\xc6\x84\xdf\x96\xf3\xc5\xe7'\xe6\xf9U\xf3..4\xe0\xa7\\\x0c\xf8\xb6\xd7\xcawe\xbd\x10)\x85\xd4\xb6\xf8\x0fQ=\xfck\xa0\x19\x9d\xdcj\xfe8\xb5\x12\xae5\x97\n\xa0Y\x84\x9dM\xd3X\x89c\xc7\xff\xac \x1e=U\\\x9d?\x919:\x01?\xaf\xc3\x87\x9bYi2\x11\xc7\xca\xcas\xd9\x8c\x8f\x8d\xd5\xa9\x9d{}\xa6*l\x0d\xefK\x8ecyB\xe3\xf0K3Uu7\x10\xd3\xc2\x8b\xe9\xb68]\xd4*\xe7\x881\x8f\x0f\xa7\xedL@+ijc\x05\x81\xaa\xefO\x0c\xb97\x02\x99\xd0\xec\xd3\x0b\xa3\x91\\t\xc1;\xbc\x89\xe3\x03W\xc6\x11V}\x9f\x04\xbepc\xc7\xe7\xb3\x12\x8a\xeb='\x08s\xa67\x80\xdc\x89<\xca0\xb7\xcf\xde5\x89\x95\xecJ\xfe\xf9.\xc4f\x85\xa2\x94\xa2?Ke\xaf\xf53\x84\xf7\x02\xcc\xfb\xce{\xc7l\x99\x0b\xb5\xde\x8frlx\x8d\xfbD\xecsg\x10k\x192\xcc\xd4\xab\x9b\x96\"'/'\xd8\x0b\x0b\xebK\x9dt\x82$\x92\xe1`_O\xca\xd2k\x18=9B\x1bR\x7fs\xfc\xaa1\xb3\xa9 \xc4re\xab\x87\x99G\x14n\xcc\xb1\xa7P(\x05J\xf2\x0e\x1f\xcc1\x19\xf3J\x9c\x8f\xfa\xfaP\xe6\xe75,\x05I\x91\x1f\xfb\x98\xe5\\\xa2S^\x98\xb5\x86\nB~/\x99\x17V\xbfL4yf\x9f\x01\xa3\"'\xd8\x8du\xa5\xd8\xf7\x1bb\xe18tq*9F\xbb\xd2,qQ7\xf1\x86G\xcac\x1bL\xf8@\xb2D\xee7^\x08\xd4\x89C\x90\xb35nO.\xa50\xd7\x7f\xfb%\xad\xde \x8ceS\xe5\xc3\x8dpA\xf5\xea\xa9\xbf\x1a'x\xd4\x82\xf2\xd4\xb0\x85~\x1b\xf8\x03\xdbs+\x17\xaac2\xf8\xf3\xb8\x8b\x86;\xe2JY\xda\xa9\xf0\xb0wuYo\x83\x0b!\xab\xceY\x13o{\xdeSF\x1c\xc2ud\x88\xe5H4\xcdw\xfcY7Gn\x8e\xc1=\xacKF\x17\xb8\x16\x82G\xe5`n\xfb \x0c9\x1b\xf67\x8b\xbe\xe7\x10i>\x1aS\x07\xd4\x0b}2\xe5\x07#n\xc2\xc4\xb4aY\xb5#\x1c.\x84\xad^\xa5\xd8\x0d\x0b\x17{\xef\xeaa \xac\x1e\xde$9\xf7&\x9c*\xbf\xfa/l\xab\xd9\xa6(,\xa3U\x8a\x92\xeds\x9f>\xf9\x87\xe53\xe2\xf6r\x88`A\xeeG\x0d\x18\x1arltq\xfe\x89,\xaf\xb2?\xfc\x93TC\xdc,\xcbZ=\xde\x0d\x13\xfa m,xARoz8gc\x9e\x9f\x8b\x05\xadO\xf8$\xfc\xdais\xd7\x06n\x89\x08%y\x07X>\x0d\xd8\xc3k\x03\xb1e\x87\x97\xb4\xe7\x89c\x17\"I\x85hx>\xd5~\xdbDa\x8b,%n\xe8W!\x11P\xc5\x03\xe8\xa2\x86}5\x94\x1a\x15Y\xf0\xb6?\xc6\x89\x18F,\xa6ZQ\xf3\xb7\x97\x17DZK\x04>{\xa7\xf435\x10\xae\x88\xcc\xeb\x08|U\xa3J\xfe\x88T\x1f!\x92o^\xd6v\xfe<\xd8\x9b\x8b\x89}\xd3\xd7\xce'g\x0b\xb6.\x11Q!_\xd1u\xc6b\xa7=Z\xc6\xf7,\xe3\xa6\xd2y\x1a\xf4w5\">/\xee\xe6\xa6\\E\xb1e\xb4\x11w\x8dy_xk\x9c\xb3<\xef\xb8\xfb\xc1W\xe2&\x08\x9e\x86~\x06\xfd\x011\x04Q\xf2\xcb\xf7\xc9\x88\n\xae\xf7\xc2<\x8e\x17\x95\xd6\x04\xfe\x92>x>!\xb5\xde\xc7q\xb6\xebO\xdc\x1f\x87\x16\xb3\x1e.\x9f9e@,H\xb0pJ$[8\xd7\xf5\xbdq\xaejN\xab\xf0]\xee\x10\x01\x8e\xdc\x0f\x1a0$\xb4\xb0\x06\x0f:\xa9\x1fn\xbcI\x8e#&\x06=_;AY&\xf8H\x07\x98|\xce[\xe2\x06\xba\xe9\xc77\xcdxDEx\x05\xfc\xb7\x9f\xaa.\x9e\xf6\xc9H\x94\xcb\x18\xf3\x08\x83e\x94\xf2F\x8e\x03\xd8\x87\xe1\xde\x82\xae\x9ak\xef.?\x88\xa7X\xf0\x9a\\\xb8.\xaa\x14_\x0c\x1c\xe5\xebb\xcd\xbd\x19\\\x1bQYr\xe1\xb2\xfe\xa5\xc15\xa3t\xfas?\xc2SV\x95\x06\xe1L\x88\xbe\x10\xce\xdb\xe7\xdd)\x8f\x1cM\xe6D!\x9fe\xd8\x1c\x1e\xb3\xd0\xe2X<\x1e\xb5\xcd\x8c\xe7\xcb[\xfc\x0f\xfa\xbe \x9bn\x87\xaa\xf34\xd9\xce\x1a\x8dn\xb4\xdf\xa7\xab\xe2H\x9agJ\x8fr,\n\xc5\x1d\xc5-\x07\x1b\x93\x0daF\x91\xac\xbdc\xa8\x08cS\x07\x8b}2\x13\xadNYX\xae\xae#\xde\x11N\xf0\xcf\xc9\x0cap\x0f\xcf^U\x96\xef]^\x88\xd1*\xa1Bf\x08B7\xd4\x8d\xbbo\xf3J\x90\xb7\x07I\xdb\x1d\xbb<\x12\x96\xa4\x90\xfdm\xb4u\xe9SK\x08\xdf\xaf\x1bC\x87z\xe38cH\xf4\x9b\x94\xe0YJ\xd6\xa6\xeax\x1e\xcc-\xf9\x8f\xa6\x19\xfb\x07\x89\x865.(/4\xb8\x870o\xec-v\xafU\xd1Z\x91\xe1\xae\x02\x9b\xb6\xc0\xc5s2\xe0\x07\xca\x08\xc2\xa8\x1b{,\x93\x9f{\x86]\xfe\x168\xde@\xeeX\xae\xb1\xc4\xb8{\x0c\x18>\x15\xae7\x923\xbe\xfb\xe6b2\x12\x17\x95\xd7 \xa6\xd3:n\xb6\xaf\x15\x17\x11(s\xf9\xd5\xa2\xb1t\x86e\x82\xbfYj\x18\x91wx|\x12\x8a\x92\x17X{\xa5F!l_\xde\xdc\x0b\xf6\xcf<\x06\xc5\xda2\x1bQ\xf0\x9b\x96\xbbm\xaf\x14H\xe1\x8d\x9a\x98\x13\xaa\x124\x81\xcam\xac\xd4\xe6M\xfb\x8an\xac\x92\x15x\xfc\xf8h{\x87\x8d:\xbc\x9cW\xbb\x942\x8e\x8f\x04\xfe\xfc\xce\xac\xd2\xda}\xbaw\x16s \x8f.\x9a\x11_\x82\x97\x1c\x04!j\xe9\xd3\xe5\x1e\xf3G&\x17\xee\x10}\xf5]\xcf\x01\x97\xf4\xd98\xc2bl\xf1\xbdo\x96\x1b\x9d\x1a\x15\xa2#\xc2\x9c\xbaK\x0f\x8f[G=\xee\xbc\\\xbf\x92\x96}\xa5\x96U4\xcc\x8b9\xb0\xfe*\xe9G\x8fc\x1ez4\xe9\xe4\xaf\x17(\xc5\xdc\xa7\x18\x97\xa5bGYf\xb5<\x06p\x93\x94\x12\x16\x12\xbf\xc5\x8e\x92h]c\x98\xd4\xf8\xa8NK*\x83 \xde=5\x8a\x17(\xa7\xb4\xae2e\xef\x97\xc7\x92\xe9d\xd5\x0c\xc19K\xeb\xb6\x92\xd4B\xe2\xcf\xcf\x86\x92\xf7\xbak\xe3\xd5\xc6\xad\xfe\x15\xbcJ<\x1bE\xbc\xe9}\xc1mEH\xaa6\x110X\x92\x06\xcft\xf2\xd5\xc8\x05\xefU\x00\xbd\x90=\x90md\x9f\xd0W\xf9M\xe1M\xfc\xe8\x9b\xa5hM\x1b\x9e\xdb\x8f\xa9\x86F@(\xf8\x10\xfdX\xe5=*#J\x96/\xa9w\xdfKqh\xa2\xe4`\xf6\x8c\xca\x84\xbd;\xda\xed\x10\xe3\x1e<\xea\xb7t\x84\xfe\x87\xeb\xe1\x85\x0cg\xaf\xad\xcd\x12\x95\x0c\xb5s\x97\x10v\xb1k& \xde\xfd\x8cz\x1c\xbf>\xa3\xcc\x89Z\xdep\x9d\xb3\xbc\xb5\xc7\xcbG\x85Z\xf0\x9e\x0d\xaf\xb1v\x19B\xa0\x9a\xa7\xcf\x8b4\xfa\xb9gh\xf3\x94\xe6\xd8\x1b\xfc\xf3\xe4\xd7\x8b\xd0\xe4h\xa9\xdf\xc3\x07\xd7'\xe4\xec\xa5\xa5#|\x15\xd7\xe5\xf2DU^+\xa6\xa1\x10bMU\xbck(\xab\xe8!\xe6\xfe\xf7\x8e\xce\xea\xaa\x81U\xfb\xc1;\xcf\xc5\x0c\xaf\xba=\xb9'\xec3\x0bb\xb5\x8f\x9e%\xc5\xcc\xd1\xde$\xbe\xa7OH\xc9`\xbax\xf6\xea\xf3u\x9b\xd6g9l\xcb\xa38n\xf3\x9dT\x97\xdd\x9a\x96\xedu\\\x18\x97d\x12\x8c\xc4\xfa!8\x83\xd97\x17\x97|N*@Q\x9c\x001\x8eg}\xa4\xec\xb7\xa2\x04\xac\xf0\xb0suI\xe0\x81\x10H\x93\x926J\xda\x08\xcb:\xf4\x9cz[P\xfb\xd2\xc4g6\xb6{d8\xe7\x95\x86\xbb\x84\x1d>\xf3\x8b(\xe7\xcfEj\x9b\xa7>\xc2\xff\x9b\xa8\xabH\x8f\x9eg\xb6\x0b\xf2\xc0LC33{ff\xa6v\xaf\xfe>I\xde\xef\xfe\xd3\xb4S\x92JE\x92\x8fOA\x8e\x14\x83hq\x8c!xn\x00\xff\x1e\x88\xb2\x8e\xe5L!1\x9f\xbb\xb9\x18\xd4\x07\x8c\xd9\xdb\xe3\x0d\xf9\xf2\x12]\x8aQ\xe9\x98x\xc7f\xe6\xfdU\xb6!7R\xb4>\x14V\x96\xc1*\xac\xfa\x14\x97D\x88\xb6\xd6\xfa\xbeS3\x1f\xb4\xa6WF/\xb5\x90\xa3p\x8c8\x15\xe6\xcbG\x89\xabq\xd1\xc1\xcct\xd2\xd8\xba\xc8\x9bt\x9d\xab\xf5\xaeZC\xbf\x8b\x13\x18tQ\xfa\xd9\x11\xb1\xb8\x8e\x17\xd7\xce\x01\x92\x04b\xd7\xa8\x8a=\"\x8d\x9f\xf2\xd1b\x18\x03\x08>\x85r9\x18\xf5$\x91\xf2c\xce\xa5`dnK\x10\xb6\xdd\xf6)k\xde\x1bp\\5\x0e\xc8m\xbe)C\xb18/\x11s\xc7l\xf3J \x85_\xaa\xa0\xa7\xcbz\xabh0\xf1\x87t\x81\xf6\xf6\x91h\xe8\xb5;\xc7\x82\xc7w\x1b\x834\xe5p\x87N\xbc4\xd0;y\xe6\xf5\x1ba\x84N\xbd\x81hH\xfb\x8e\xf9\xe32\xaav\x99\xfb|\xefDY\x90\x91\x15;\x1a\xf3G\xd4= &2^3\xefn\x8b\x86\xafy\xd1\xf0\x05\x11p \x19\x98G:t\x12zh\xff\x90\xe2\x8a\xd3\xaa\x9ay\xe8\xf4\xfd0{G*\\\xbc\xad\xb7A\xa5\x83F\x87$T\xae=\x96{HX\xbbO]PZ\x99x\xf3\xb6O\x14\xfe\x1dG\x0e7?-\x96\xc2\x15\x88\x88P\x8bjW\x1e\xe3\xe6\xfbAB\x8e\xd8\xee\\?vP\xb7\xa4n\x04\xa4\xaa\xe9`0\x8cM\xa848\x93\xf5Z\xaf\xa7\x1f\xcbxk18\xd5\xfc\x9bb\xda\x82\x10\xca\x9a\xf9\x06BZ{L2\xce\xd6:\x93\xed\xc8v\x9f \xe3j`g\xdc0v\xcc\x9ezZ\xde\xca\x8b\xad\xe0\xbe>\x19NJdRfA\xc4\xedy\xbe\x0f\xcd\xb8rDy]\"Ve\xca(\x99e\xb9\xdf\x17w\xc9\x17Z\xbf\xd9\xc8]\xa8\x086\x94\xee\xc7\xb2\x1c\x83&\x89km\x9a\x81\xac\x1d\xd6R0\xea\xb1u\xee-\xbd\x9c\xfdV=\x99M\xa53K\x07\xa0\x0e\xc1H\xf0\xdd\xc7x-\xc9\xe7\xdb\xf2\x9b\xa1\xe5\xb6\x1bT\xb7\x7fE\xc3\xbe\xa09\x92&\xc5\x9a\xca<\x8c\xd5\xe6\xea\xb9\xc0d\x07}\xce.u\xf7\x86~^V\x92p*E^\xe3\xf6\xa8\x01tD\xaa\x99\xba=\xfa\xcdY\xdf\x197\xdf\xf5rG,#\x11X\x05\xd1Z\x8e#N%\xad~\x7f\x81\xba\x8c\xe8\xed\x93\xb0sY\x0b\xc19~\xb1\x8f:\xf7\xd7\x02\xcc\xfd\x15\xc4\xfdg\n[\xed\xdd>(\xcc\xefU\x84:\xb0\x03\xb6V\"1\xf1\xfd\xe6\xe3\xe7\xd6F\xca\xe4\xcc#\xf5\x03\x03\xb7\xea\xb6\x9b\xfb\x84\x18\x8f*^\x82\xaf\nU\x1e4\xd0\x05\x08\x86@x\x10u\x05\xd6u\x9d\xeate\xbf\x15\x10'\x8e\xbe'Y\xee\xed\xce\xd5\x7f\x9bw\x13Z\x04\xe0\xd7\x0c\xfc\xd1\x8d\x8d\xc6g\xa8\xab\xc2I\x93\xdbw\xb3\xd6\xe5q?\x18\xb6\xe3\x89\xd6\x9f\x91n\x1b\x86U\x861\xed\xa7 q\x0b\xf4\xbb\xd1\x96\x05\xe3q\x1bs\xa8\xbec\x17\x9el|R\xc6\xf9$\xde\xaf\xf1c+\x1ea\xbc\xb4\xdc\xc4\xf5\xe4\xac\xf8\xd1\xf14%y\x9f\\\xfc\x19G\x8fosz\xbe\xda\x19`\xe4\xbc\x84N\xeb\xc7g\x94\xf6T\xc8=#]\x10\xafZ\xf3\x8f\x9e\x8b\x81\xd9\x7f09\xf7~m\x1a\x9d\xe7MI\x1b\xd0\xc2s\xad\xbd\xaf\xab\xef\xa2\x01=n\xdfw\xc5U\xaf\xc0\x8dT\xceR,T\xeb\x81\xb5\xaa7Hu\x11Q\xdc\x00\xf7)\xe2\x94\x9c\xbau4\xd4q\xe84\xacD\xd6_\x14\x1f\x08\xd9\xab\xccN\xcbft\xed!\xfd\xd7>Ge\xa2\xa3W2\x04xa\xd0\xfcR\xb9{t\x87R\xae\xa7\xf43\xf2\x94/c5~ \xda\n\xaf;\xa2\x1b\x1fJI3\x0f\x98rc\xcfE\x81\x00\xe2\x96$z\x8a\xda\xb2o1\xedst\x96\xe4@\xe1\x13\xa7\x17|;\xe7o\xe9\x0d\xa8\xda\x13\xd9\xfc\x86\xe6\xbb\x02V97\x18\x86\xd9\xa6\xe1\xe0\x11,\xb0\xf8\xc4\xc9\x1f\x83`\xa5\xf7\xdeQF\x1bt\xe7\x19K\x12\x82\x08\x0d\xf3\xc8\xd2V`-\xac(\x83\xf8H\x15\xd8!\x91\xa6\xc1\xc7M\xa2\x01\x88\x8f\x80\x0f!u\xa4#\x1cq\xbfy\x85C\x95%\xab\x91\xb0k\xab^Bw\x81iIV\xcf\x01\xd4\xe2\xd4\xdd\xd0G\xe2\x076lK\x0fu\xdc\x9fP;\x87*\x02'l\xef\x8f\xfc\xec\xbb2\xc5i\x0dO\x9ck\x03u\x99\x92V\x89\xa0\xd6\xea\x84\xc3\xa6\xa5\xeb\x91\xc3\xe9K\xf7\x93\xfc\xa4\xb7R\xfe=;\x9fB\x1a\x810\xb6\x8d\xd7\xe0'%aD\xda\x02S\xb3\x1b-\xb7\xae\xd7\xc8\x15\x06_$Sr\xc7\xd1\xceZB]Z\xf7\xec\xf8S \x89\xcc\xe0\x18\xbdI\xb9\x8aMe\xf3c[\xbf\xb1\xfc\xda@)\xb5\xde\n6\x05\xe2H\xf3k\xc4\xe76\xe6e\x7f\xc7&\xbc\xc8\xfb\x92*\xbc`\x86(\xeb\x9b\x15\x1e\xde\x8c\x1c\x92\xc9jfz\x06\xe2\x7f\xf0\xc3\xf0i\xac*\xd7-\x9c*\xe3#\x87\xaa\x03\xe6\xc0H\x88\x83\x12\xbe\x97\"\xfeb0\x84m\xeb\xf1Xw\xde\xd9\x18\xa6Z\xb2\xd86\xa2\xa0\x0fe\xca\x8fu\\\xfe\x1a\xe4\x92\x10\xf2`\xff\xa1\x1c/\xb82*\x01\xa0\xfb\xd6\x06gm\xc6\x9c\xb9\xae[N\xf57\x19\xf4\xf0\xc9\xb9\x8c\xa0G9Y\xe6\xe9=\xf7\xda\xa5\"$\xe9\xc7\xdf\xbb\xc6l#gc\xce|\xf7\x88\x11Rl\x97\x1c\x03\xc6U\xf8\xa46\x84&\xd5\x01\xdd;\x0f\xf3\x17kz\xfd\x02\x83\x96\x9a9\xc4tr\x9ffOZi9\x942\x8e\x8d\xcf\x94)\xe9\xf0\xe1\xdc\xdc\xec\x89h\x00\xc6\x99\xc8\xce\xde\xf0\x8f-5)\xc8\xdbGH\x89=b\x8be\x13q\x0d\x08I\xfd\xe7\x88\xdcV7\x8b\xaa\xc8|\xf6N\xbbg\x84\xc3*\x02O\x18\x06R\xeav\x86\x89\xcdN\x19 \x08\xa7\xd2\x97\xb16}\x94\x92\xcc\x10P\xcb\xccw\xfa\x16\xbdEU\xb7\xc7#\xd0\xb7\xdajK\xb0\x16g\xe6\xa4@C\xa3\xf7\x10\x9e\xd3&\xed\x11^\xf1\x00\xd1/^\x05\xda0\xba\xe0\x13=\xbf\xd1>\xfb\x84\xf3\xb6\x12\xb5,'\x92\xda\xbd\x17\x0d\x9fu\xa1\xd54]f\x05G\xec\xc7\xdc\xeep8A\xe6\x85\xa8\xdb\x98\xf7*'\x03~\xec\x95\xd0\xfbTv\x16D\x13\xda\xbe\x04\x92/q;\xc6\xd7\x81\xd2*\x9b]\xa5u\xa1\x8f\x15\xb09f\x8f\xbe\x9d\xef7\xa1~?\xdc&\x88\x0b.\xa8bT\x91\xa3HBv\x0dR\x1b\x176\x84\x14\x81\xe3\xec\x11\xb79\x7f`\xddSg/\xf3DJ\x82\x15k\x0f\x1bk'1\xcf\x83&\xf3$X\xb1y\x04}\xc9\xb5f\xccb\xa3\xc9\xbb\xf7\xb1\xab\xb6\x98r\x1d\xf6\xe9\xf4\xf8\xb0\x17\x1a\x8c\xce\xbb\x7f\"~\xd0\x063\x8f\xb6\xc9\x1e\xd2\x80\xcd\x8e\x88\xc9n}yG\xe9\xb0\xd8K\xd7\x1b<\x9d>\xad\xea\xac\x11\x81\x02\xaf\xc31\xa6$8\x87\x10\xc5\x857\xf3\xe2\x01\xd8j\xe6O\x91\xdd\xbe\xba)$\x1d\xf8\x18\x1agft\x05~\x9ey\xfa\xb4\xa6\x8bu\x9fZ\x10Fm\xcaUa\xe2\x95\x04M\x9b\xbefw\x17\x9e\xd3\xea\xdd\xe0\x10]\xb5\x08\xd6\xa3\xd9\xadH1\xac \x02:\xc7\xe4Da\xe0\xd5\xd4\xcc\x91\x0e\xf0\xd3\xc9\xda\xd4\x97\x9b\x80Y+\x07\xd8;\xdb\x8az\xf5\x13k\xc2\xdd\xdd\x02s\xdbl\xb8\xcc\"\xe2\xae:\x14\xab\xff\x94\xe8X\xb9c\xde\xa2\xa1\xb6\xa8\xe3\x8d\xbet\x87r4\xaey\x86\x10\x16\xfd\xfe=\xff\xdeU\xf7\x9e\xf1ck\xe3O\xae\xafX\xa8\xdc\xf3cU\xee\xd8\xc5oVR\xe2/\xbd\x04\xca\x9a\xc3x.\x0b\xa7\xf2-\xa5\xed\xa2\xac\x13\x98\xad\xf1\xcc\xc3\xce\xb0\xbed\x0c\xcf\xdd$8\xf8\xf1\x06\x98C4\\dJ\xddCq\xe3\x99\xc7\xdb]u-mlZ\xb8?q\x04F\xf8\xf0\xdd\xbe\xd0]\xf5\xd4\x14$\xb7<\xfa\x927\xc52\xf3.\xa4\xf8\\+\xf1I\xe8q9\x147\xce\x7f\xcef?\xba\xce\xf1\xa5\xa5\x8dF\xf5\xaam\xfe\xa9!\x84\x05\xf9\x14Sp(~(W\xcf]u\x04J\xa0\xc2\xe81\xf9w\x95\x02-\xee\xb9\x0d\x1d\xe7S\x8e\xda\xd9\x85\\\\\xf7\xb4\x05\xb5\xd1Z\x1b\xa6\xe8BD\x0e\xc8\x19\xec\xd9\xec\xa4\x9e\xd0\xc4\x1fy\xfd\x9c8\x90\x07 \xe0\xa7^\x94$\xf2s\xfd\xec\x1d\n6\xe7.\xed\xec\xd7\xf8\x829\x00Z\x0f\x00m\x04y\x83\xf7\xc7\x9e\x82\xdc\xb1d\xd7\xcd\xbbOv:xtFz\x1cb#{\xcaTA\x80\xd9\x8b\x94^\x9f\x03\xbb\x8f\x04\xe1ynyhm\x1a\x1fY\x87\xc2\x89\xce\xd9\n\x82\xc0q\x9c\xcaO\x9c\xcc$\xcd\xe28C\xc7\xa8*\xe7T>\xa9\xbe\xe9\x08\xd4\xc4\x13zE\xaf\x02)\xde\x92$2\xd1\xc0E|\xd7\xc8\xa9\xc5\xc4CH\xd4\xbe{p\xbf\xcf\x92\xf60\x1aM\x18\xa9\xef\xb2\x9a\xd6\xef\xef,\x85\xa2F,\xc8ls\xa6\xe6i\xe1\xcb\xf1\x9f\x88c\xa8Ty\xbb\x10i\xadz\x9ca\xd5\xaf\xc3\xfc\x8b-^0\xa3\xe7\xe9\x17\x14\xe8\x8f\xae\xb7*P7\xd8\xcd\xe1E=[~\xfd\xdfo\x12:'\xc4\x95\xf9\x898\x11jG\xee\x0f\xcb\xd9\x19{kAQ\xf502\x1b\xfd\xe1P\x83\x19*\x10\x89\xf8\xe0\xa8W\xc8\x7f\xdf\xa6\x0dj\xbf\x0eV\x8f\x81\xbf\x18aa4K\xa5\xf9\xb6\xea/N4\xf0\xd9\x94\xfb\xc3b/\x0bG\x08\xbf\xd8[3\xf5\xc4\xdf\xef\x05R%#\x96\xd9o\x1c\xab\xfb\xc5\xbat\xdeZ6D\xc2_O\xbcz\x7f\x18\xd63\xb7\xef\x92\x7f\x83\xf8\x1f.\x9b\xb0\xf8\xf5\xe1q\xd7\xfb\xfb\x9e \xb0\xc0\xd3`\xc1\xcc\x0e\xfe~\x1f\x90s\xbc\xad\x99m\xc6?\xf9\x03\\\xe0\xac\xdeN\x7f\xf8d)\xcf\x10\xc4\x98\x7f\xf1\xad\xda\x94\xf2;\xe3\xfc\xca \x95\xaf\xec3%\xc2\x9f\xda\xef\\SuK?\xa0\xad\xfc[_\xda\xaf\x8f\xb5\xb3\xf7\xffd\x92\x00\xd9+\xdb?\xac<\x04\x83\xce\xf2\xf7M\xd3\xb4\xa9H\xa1\xfc\xe2\xe0\xb5)\xa5o#u\x86_\x9dl\xeb\x0e\x97F\xb7\xfe\xae\x89\x8f\x82v\xfc\xfb~I\xa2&\x96\xf8\x87U\x9f\x18\"\xe1\x01(\xf8\xc5Jy\xa1~\x92\xd6\xe4\x05\x7f\xdfJm\x1as\xb5\xff\xf0\xe5\xc1<\x8aL0C\x06mX\x92\x99\xb3\x1f=\xfa\xe6\xdcx\xa0O\xd1(\xb4\x04\xb0X$'$\xc6\x1c'\x0d\xb0\x87UV\x85\xc5\xb4\x85\xcd\xf9I \xd2\x1f\x10\xff\xae\xd9\xbe xG\x83}u\xbe4f\x831\x9a\xee\x08\x98\xb2\xf2}\xb0\xf1}3\xb45=$&?\x87\x042NA\x0bu\x0ee\xf1\x1d>F\xfb\xd0\xe7^_\x1cI\x161\x9b\xd3=\x96H\xc7^q\xe0}\xb0\xe8}L9Z\xd1\xf42\x03\xcf7\x01\xfb\xb8\xd4\x1co=\xbbW\x08\x0e\x14\xca\x13^\xa4\x10>uH\xf6\xe5\xb2O\xc2tG\xf4\x90[\x18\xd5R\xde\xf3(\xdav\x05%\xa5\xe4[\xca\xfdf\x00\xec\xdaR\xaa?7\x92,7\xb8]K+t\x96n\xbe\xe197\xdc\xd7\x0b\x83\xe8\xfb)g2\xb1b>r\x85BV\xbaK>!\x00\xa0,\x7f^3\x9a\\A\x82\xb6\xbe2\x8a\xe2\x11\xdd\x92 \x8d\xf1K\xb6\x8dh\xbb\xd4\xed\xe0DO\xc9HG\xc5\xb7$\xe8\xd15\xab\x1du\x1b\xc0\xfb\x81_\x8c\xf0\x0d\xcfhL\xb4\x19\xf4r$\xaa\x99\xe0\x01\xcd\xfa~\xcb\x87\xd4n\">\x85\x1a\xd3\x06c7\x1c\xaf\x0d\x10cU\xcc\xda\xa2u\xac\xf89CJ\xf4am.\xa1m\xaaD?\xd2\x86\x97S\x0c\x9a\x17z\xcf(\x7fcfe\xa5_,\x9d\xed\xe6K/OnU$\xf2j\xd5T5\xf2'/\x86\x1c\x92\xe5u\xd1;\x00\x10\xbf\xee\xd5mov\xdd\x0f\x10\xd9iK\x93Q\x9f\x9d\xdaS\xd8\xb7\xf9\x00:\x14?\xb2Y\xb3;H\x03\x84\x0dJ\xa1\x82\xe6b\xc3\xd34\xc4q\x00i\xc47\xad\xe3S}w\x10\x96I\xc5xm\xd2\xa7\x98P\xd4\"\xa5\xde\xa6%uR\x1e\x86Q\x18Vu\x051\xb8+ym)\xa9\xfdb1\x0f6\x8dU##\xc2\xc0\xa2W\x06\x0f ,\xbd\x8ar\xa77\xbc\xee:\x8a\xcc\x9d\x87\x8dY\xc2\x98IS\xaf\x04D#\xca\xee\xb4\x7f\x94\x05P\x98\x9d\x8e\xd9\\\xfc$7\xc8\xab$\xf2\xb5\x1a-\x8b\x94*r84\xc6\x07\xb3i\x01,\x03\xb5o}\xc2/\xc4\xda-\x0fcZ\x0d\xb6oe\x8a;\xa6p\xfc\xf2^\x03\xe5\x1eU3O\xe8\xa3~\xf6\xe3s\xb4\xde\xa7\x94B\xd0\xafr\x10\xbf\xca\xd9\x1e\xd8\x0c\xd4\xd0\xe6$\xc96,\x97\x08\xdfNB\x13\xa4\x89\xd8\xdb\x90i9D\xfe\xc0\x1d!G/ #H:2\x00\xe7bU\xa7Qww\xa2\xd4\xa5a\xc1Y\xb1\x14\x8d\xf9\xab\x17\xb9w\xed\xd8\xe5Hbv\xb2\x1f@T\x87\xbeH[\xfdw\xe6\xec\xae\xb71\xa3\x8f\x9bB\xb6\xdf\x89p\xce=\xc4\x18\xbe(=\xb4(\xc20b\xed\x03q\xc7*\xf8\xa0\x98\xfc\xdcf\xcdy4\xae\xe7\xdf'\xcc\xb0FK41Pd\x18\xc20 \x99\x1c\xfd\x90\x80 \x94\xcd\x94S\x8e\xcf\xc5A9(\xe2\xa0}|\xf4\x0d\x0e\xb8\x12(\xd2/&\xc6w\x1bV\xf4\x90`\x183\xba\xd1\x80\xa0\x89\x1f\x1bw\xd3]\xf7\xc3T\xb5\xd7j#\x0dBv\xc5\xe3;\xc6\xc67\x13V\x00W\xa7x\x8bz\x91\x9a\x17#\x89\x029\x89 \xe6\x06\xd8\xd0\x15\xa1 $?P\x0f\xc8!\x89\x8d\x15\xf5a\xeeHhC\x89\xa7O\xcd\xb2%q\x90-\xde\xf7\xf3qP*\xe4\x86\x8d\xb5\x85\xc5\xf3\xf38y|1\x03(\xcc\xf3\xcdv\x18\xc0\xc1 \x007\x8f~\x127\x99c\xb5\xee\x1f\xf8\xe4`\x99\xb0\xc4\x01$\xdb\xae\x0c\xe0\x16\xfaLsM\xdej\x88\x98\xbd\x97\x88\x05\xb3\x7f\x8f\xaeb\x89w_\xbfT\xde\xcf\xcb-\xdb\xc3\x94>\x08\xf9\x0d\xb4\xa5QB\xc7p\xce6\x7f\xdfbx\x10\x8e$\x9b\x17y\xa3KsHRA\xfb\x13 \xd5q-\xad\xc9\x8d\xe6\x10\xae\x99\x07\xb5\xb5=gy\n\x10\xa0\x9d\x98\xbe\xf6]q\nL\x199\xda\xd0v \x8d\xf0\x82\xc0\x15\x0fW5\x03W\xd5\\ \x96I\x85\xac\x8f\xb9\xf1\xfd1+\xea\xc5\xb0\x97\x8b\xc3\xf8g\xdd\x06\xcbmj'\x1e\xfaQ\xdd\xecq\xf9\x16WI\x849\xdc5\x1a\x1d\x00\x0f\xd6\x9c\x93\xcb\xe2aL\x88\x89I\x12AH\x1c \x04q*x\xa3iNOrW}L\xcd\x84I\xc3{\xba\x9a\x13\xc0x\x10hv\x17\x8f\x14_)\xcf,\x9a>>3o\xa2_\xc6}\x16\xe2g\x9d\x8f\xa5\xae\xee\x87\xfaP]\xff\x9c\\\xb7\xe2\xbb\xe2\x94G\xd5U\x80L \xc0\xcf\xd8\xeap|\xbf=\x0f0g\x1e\xf7\xed\x0c\xa5jXB\xe7\x8d)\xba?}\x10!~)\xb2\x88\x9f\xbc\xa6P\x04gU\xba\x8ck\x16\xaf\xcd\x86\xbb\xad\xdd\x02{&\xb5>_\x90|R\x00\x90L\x10/\xcfN2\xd7\x03\xe76\x83\xef\xb2\xa0\xa8\x8d\\Q,\xde\xd5\xb6}8Z\x15\x81\x13\x075@\x96,(\xe5$r\xd6\xf7\xf5\xa4\x02E\x93\xa4\xb7\xea\xeb$t\xac7h\xcd#%h\x94\xc77$\xb4\xfc\x1e<\xa4\xad@\xdb=tP\x0eO_{\x99\xbe\xa88\xa9\xa0Ax\xd2\x1d\xa4\xdc\x14\xabb%\x90\xd6\xf4\xef\x96\xfb\xecY\xad~\x14q\xaf\xc0\x8d\x8d\"\xe6\x86S\x1e\xf9\x13\xc8 \nXJ\xfd\x94\x89\xa4?W\xd6Y\xb3\x8f\x05`\xc5D =I\x15\x0e\x17\x92\x04\xc7\xfcu\x02\xd2\x14#\x19\x9f\x1c\x81e\xb1}E5\xe0C\xec\xf4\x1b\x88\x8f\xccS/{\x90\x18\xdb\x01\xa9\xe4E(JK5_})\xf3\x8b\xe2\x9f\xd1\xf4\xaf\x88i\xc2\x88\xff\x9e\x04gJxc\xdb\xfd\xaanzs\xb70\x0fA\"D\xd2\xc9\x9c5g\x97_\x18W\x8e\x0c\xa6\xf4q[\x8ca\x98\xc7\xf1\xc3\xcf\xb5q\x8dEj\xc3\x15\x05\xc878\x14\xa0\x9d}\x97\xcd\xd76\x9d\xb2\xbf\xf7Q\xc5rdi\x901%\xf4\x02Uf\x9cc\x19\x05\x90\xbd\xee\xbd9\xe3h;\xfb \xa7(\xf7\xc6\xc3\xc6-3\xc2\xe1\x13=\xc7\x90\x13J\x95\xda\x18\x9b\xa6\xdft\xc7i\xf6\xaaJi\xc7b\x14d\x97\x82R\x83m\xd3\xc5\x84f\xb6\x92\x96\xaa\xbc\x14\xba Db\xe3\xaeLC\xc6\x12\xa8\xfe\xca\xc4\x95\xed=\xc9\xf6=\xad\x91\xfc\x04y\xdd\xfar\xa2\xdd\xd6%\xad\xde\xc7\x01\xd9m\xca\xb1\x11\x96\xd1\xbb\xebb\x9f\x82'\x9f\xce\xdb6\\W<\xff@\x1c`\xfe\x99\xb5\xfcqG\xd3\x15d\x99yj\x8b\xfb\"\xfe$i{\x91\xeb\x8b\xf7\xbdO\xf2\x98]\x8b\xc4J\x9e\xc7<\xb3n\xb2\x1a?\x84j\xe5\xa3\x97\x9fA\x18-WO\xb0\xae+\xcc1\x19\x05\xb9\xfb8` \x10\xc5\x9f\xfd\\?\xd6\xce\x9c\xde0e\x93q\xda-\x01\xd2s\x14=\xd27\xbd\x1b\xd6\x00y\xdf\x02\x98\xf3B\xdci\x08\x93\xe2\x98,{H\x00\x93\xba#&#\x93Z\xa0,;\xbb\xb1z\xff.\x84\xa7Q7O\x17\xd6\x97\xd4\x13\xbb,nHD\xe2\xb3\xa1\xf2g\xd1\xa2\xa1\x00\xb6\x82\x9f\x08+XmyE\x1e\xbe\x06\xfc\x9e\"\xc5\xe3!4$\xda\xf7\x1d\xc1A.\xbcI\x11\x1a)\xb4\xabjn\xa4!\x91\xc8R?\x08m\xf7nB\x0b\x1c\xd9\xf8\x06;\xd8\x8dv\x18\"\xe3\xf99s@L\x1dZ\xf0\x02T\xa4\x8e\xf0A\x99\xea\x9b|\x8f\xc1/\xc6\x89#\xe4@I\xa8\xa3\x91\x0c\x10\xd3'\xee\xce\xfd\xa3\xc9\x9e\x00\x9dGs\x14\x9d\xfb\xabcJ\x7fS\xcf.b\x99Z\x06+\x91\xc5i\xb6x!\x0f\x95jY\xdeN\xa2\xa7oRd\x1f$V\xdd\xb2\x04\x1bG\xce\x84\xaf7\xd5\x14\x08NP\xebC\xbeS\x13\x0b\xee\x0dG\x16\xc5i\\l\xe1\x17\xf2\xd42\\\xa3o\xcds)\xa8\xf1}\x1b\x1bI&\x1fH!\xfa\xe0t\xe7\x9c1\xd2e\xee\xb5\xe5d\n\x11-\x89QMkw/A\xe5\xac\xb1u\\\x91\xca\xdd\x12\x1f\x1a\xc1>\xf8:\xdc\xdb\xcc\xe0W7j~ \x00\xc1J V\x9c\xbb\xe1\x962\xce\x05L\x12RK\xf8b\x08\xdb>\x80\x1b\xfa\xd85 \xc3_\x1cz\xbb5\xbf\xf6|\xb0Q\x10s\x17\xdd+\xa8\xb3v8\x00\xd8\xebTJ\x8c\xed\xbb\xa9\xe4A\xcf\xafZ\x97\xa2\x17L\xf6\x81\n\x04\xc6\xd9 \xd4y\x06o\xd8k\x8cE)\nV\x0e\x99\xab\x8a\x8e\x85w\xed}sX\xf0\xcb\x13\x11\xcc\xda\xb2\xef9\x1d\xb6\x0e\x90[R\xee\xf8\xc9\x07\x94\xe1\xda\x02 \xaf9\xca\x05\xb8\xb3\xb8\xfaU^[0\xdb\xa9\x8a\xd6\xcc \xd4=~\xcf\xb0T\xf4\xb2V\x11\x01\xcb\x12kL]\xbf\x0b\xe1\x12dM\xe6\x98\xde\xd8O\xbe\x84A\xa8\xfaG\xad\xb7\xa4DP\x17\xf8\x86\xdf\x97\x06y\x1e\xc4o\xa6jJ\xf8$\xb4\xf8K\xca$\xc4\x86~\x9a\x03\x00O\xceTg\xdd\xa9\x00\xe97\xea7 \xecz\xa7\xda\xb3\xf7\xf6]\xc3\xf1JE\xb5z?\x04\x93\x93\x19\x9d\xd1\xd4\xe9}j\x0e\xfe\x82\x1d\xde\x8bcy\x19\xb7bO\x86Gt$\x9e\xa5\xf5\xb3P\xc0\x84\xc0\xdbr+\xa9\xb4\xb8\xfe\x0d\xb4f\x84L\x859<\xb2m\x8c\xba\xb4\xd5\xc0\xbd=\xc6w?Fo[\x17\x0dO\x07 D0\x00Qg=\x84\x14\x10D\xdd\\\x9a\xa2\xf7B\x11\xed\x95\xf1S\x8b\x1e\x88\xc0p\x93\xbe\xc3\xe2lRDTr)\x11\xbew\x93\xc6\xb3\x0b\x8dk\x91\xe7\xc4\x96\xbcP\xdf\x9e\x08\xbe\xd03\x92\xa4\xbbB\xc0\x1a\xc0\xe5.|h\x16\x12\x92R\xf9b\xe6\xb0m\xbaEP\xec@@\xa2\x9c\x1bfUNja\xcf\x9f\xedlS\xc6\xb7l\x16\xbb\xa6\x8f0\xaeA\x9e\xdb,\x9c\x88D4\xac\xed\x91\xb5\x16\x0d\n-AY\xd0\xb6\xe5fv56\x88O\x06\x15\xf8g\xac\xb5/\xc2\x87~1Q\xa0\xfbBx[j\x1c\x13`b\xe0\xf5\xb8\x15rH\x04\x91\xb07W\x8d\x9f\x9f:~\x05\xdf\xf8\x8b\xdd\x01\x9cE\xf33\x07\xdf\x05\xf6\xbeq\xad\xf8)U\xef\xd9\xdc(\xfe\xbd\x19\x06I\xf7\x92Kj\xe5T\x96w\xd7j\xdb\xb2Fz\x12\xf8\xf6\x15\xe0\xc3\xa8^h\xed\x0c\xa9\xd3\xd8+^\x02ym\x12\x96-\xd6\xb1\xa7\x06%RT\xf3'\x04\xc9j\xaf&@\xa6d\xc8Y\xc3p\xae?\xdb\xf7\xa1%@\x1d\x0e\x18\"\xe7\xba\xb9{W\xdb\x8a%\xfa.\xd2\xf7\xfeL\xe3j\xee\xf9\xa89\x86\x7f\x80\xe0\x83D\xbdpO\xd6r\xd4\x0cr\x85n0\x06\xe8\xc5!\xb9ZN\x94\x12,\xc8K/!e\x98\xbd-{$\x97&\xf4 !\xd9\x9a\xa2\xa5\xd9\\\x97\xc5\x99\xda\xe6\x10\x97\xdd\x94S\xfcy\xc7U\\s\x96\xe4hA_\x8f\x90Q\x81\"W\xc8\x81\x8fUb\x8aq\xb57.\xde\xc9^?r-`\xf9\xca\xc5\xd7U\xabn6\xac\xee\xd4\xcc\xa2~?5\x07\xce`I:\xabUPa\x98\\=\xabyy\x04\xb3-\xb6\xb72Im\xa0|y\x80\xd4\xc9P\xb0\xc2\x05D\x9b\x88C\xea\xcf:\x81\x0dS]\xdc\xa9m\x11i\x81~rL.0\x12\x13\xfd0\x02 \x98t\x9f\x89o\x18\xaa \x9cc\x9a\x0b6\x98x\x06\xa1\xb6\xa9Q\xa1\xac\x15\x82\xe4\xc6\x82\x0e\xb1\x94\xc6\x9cY\x16\x9cB\xa16\xc3R\xf57\xc7t%\x0d\x82\x156\xf9\xce\xf9\xa6\x8em\xce\x1f\xa66$U\xbc\xac)\xba\xb3&E\xbd\xed\x88\x93\xad\xd5n\x99\x136\xb8\x04\xd7\xb8\x8e\x88\xe7u2\xd4\x8cO\xe6\x96\x02\x7f\xb6\x15<\xc7\x1a\x08\xc9\x15\xf9X\xe0`\xbav\x00\x81\x9f\x15\x92\xddxvP\x14e\xbbq5\xd7\x94M\xa8\xf0Y\xc3\x9e\xd5\xc2\xcc{\x01>B\xb1p\x0d]\xd4\xfb\x00\x0cEb\xf5Z\xed\xeb\xae\x81\xfc4T\xfdh\xed\xd7\xbb\x82\xdc\xcdd\x95O\xf75\xfe,nZ\x00\xe6|\xefb\xce\x94\xd5\x16\x88\x88\xb68\xfb\xa7i\xb5\xb3\x8cP&& \xda\xeb\xc6uma\xb5\xfbl\x88(\x04\x05R\xf3\xa4ru\xa3\xba6)\xe3N\xb5\x16\xe2.@\x1a\xa0 !O\xeaAy\x17S\xb7!|\xf1h\x1b\xf0\x8a\xf3\x02?.\xac\x9a\xe2%:\x154?\x16)\x9e+\xe8+\x9ed}x \x95:G\x1e\xec\x1b\x14/\xd5`\x89{\xde\xb1\x99\n\xb1\xb7G~\x8d\xdceg\x94\xc6\xc5l\xef\xd6\xec2_\xfd(\xba\xa9\x86[\x01\x13\xb7G\xdb\xf2\x8c\x9f\x96a\x85\\\xf1\xf3\x8dg\xb7\x1bV\x8ab\xcb\xc2\xaa\xc3 [\xb3}\xa5\xd4\xf7S\x8a\x9a7~\xdf\x1a\xe4\xf0;t\xb7q\xb7lJ\x1e\xa1v\xab\x87J>hO\x0fa\x8dB\xc5\x12\xf9\x08fJqO\xb0\"p\xec\xce\x85\x01 nUD*h\xb6X\"a\x95R\xbb\xef\xbc\x1a5L\x17\xd2d\xa6\xcd\x10\xa3\xe1\x05N\xdf\xef\xb6\xcf\xe7E\xb1\x8d\x06\x97\xf9K\xfa`z\xb8\x0c`\x0b\xab\xb3-H\xc8\xa3\x07s\xbe\xf9\x85\xd5w\x0b\x1fW\x17\xf2aQ\xc1\x04\xc2\x8b\\\xd6q\xb7\xbd\x1f4\xbeWU\x1d\xa8Tn[[\xc9\xd1\x1f\xd4\xb1c\x88\xc0\xac\xb9\xec^\xc1\x83\x12\xd5\xdb\xc3\x0f\x95\xd0\x85\xba\xf9*P\x04\xf6\xf6\x05\x14\xd9|\xa3\xdb\xa9\x86\xae\xda\xef\x06:\x01a\x8b5\x92\x92\xc8\x83\x1e\xaa,\xd3'\x14\xdf\xca\xd8\xfb\x86\xbd\x12:\xdf\\\x9f\x82\xb4\xa5\x8b\xd4\xf3\xdc\xbd>\x98\xbc\xef\xdf\xae\x0d\xf3\xbe\xacp6\xdf\xa6\xfd\xbb\xa7SB\x9ab\x9d\xea\x10\xa0\n\xa7~U\x81i\x9a\xb5\xbf\xc3\x99@\x8a\x87..\x8f7F{\xdf\xf1R!\x9b~\x14\x7f\x93\xc6\xc3\xfd\xe0\x0d.\x18\xbc\xb1=F\x9f2\x9e?\xd6\xf8N7\xae\xac\xed7O=\xaf\xbc\xc0j\"U\x99\xd3\x9cL\x8a# \x92\n%\x0c\xce\xdc<$\xd8 \xac\xc0\xd43\xb1 \xb5[[\xd7\xef\xee_zv\xad\x13\xe8\xbby5~\xc4\x91B\x95ry\x83uS-\xe9\xfd\xa8\xa4\x968\xd6`-\xd1\xbeO\xa8\xf5\xbd\xce\xde\x0dG\x1c\xcb\xd4b[\xb7\x9b\xbe\xc6\xe2\xfa9\x8f\xf9:a\x06@\xf4)\x08,\xed\x88\xe5\x93\xd7M\xbc\xa3\xaaY\xd3\xb9\xbc\x0f\xa70\xa4\xae\xf5\x94\xa7\x87\x85\xa2\xd0+(\x07\xe3\x0f\xb19@Z0\xc8\xb1\x9bm\x9b\\-\x13\xa1\xac4\xae\xb6\xb4b\xbb\xee\x12H\xce9B8\x9bcp=\x90\x9d\xe6\x07\xec\xf1\xd1G\x85\x8e\xca\x92\xcd\xcf\xa7m\xf9\"\x12\x12\xb8\xa0\x00\xf3\x90\xd7uTu)\xfd\xf1e\xba\xa3\xbd\x8d\xc4\xab\xd4s>\x13\xe8\xde9\xbb\xe4\xab\xb3\xf5\xb8\xe4\xee,\xab\xcd\xb1^~\xad\xf7\xebh\x1b6\x87\x99\x145m\x98\xd1\x05!\x89\x99\x1c\xc7%P\xa6\xb8\x88\xecI\x98\xdf\x1fqT\x95i\x1d\xb6]\xbf\xf2\x92\xd7\x8e\xca\xa9\xb6\xa4\xf4\xeeV\xef\x8b%\xb8\xe3\xf3\xd4-\xa6\x0d9\xf8\x8c\x89\xf0\xa2\xb6\x95\xa2\x93\xab\xfd\xce\xb1\x9b\x8d\xefe\x85\x1e\xa2\xffT\xf3\x83?\xc0\x98\x16\xbd\xf7\x1b\xdb ,z\xdb\xbd5x\x1co\x8d\xa4+\xee\xd6\xae\xc7Me\x8dZ\x16\xa5)\xfa\xb3\x7ft;\xe8\x8f\xa1\x0e~2\xac\x0e\xb3@\x1b\xc9\xfas\xed\xc5-J\xf0W\x87\\s#\xd4`\xd4\xd6>\x1f\x07X\x85\xa5\xd0=\xd0\xf8\xa3\x8c\xab1\xa5\x05\x82\xe2)\xd4G{\xe2\xe3'\x14\xacY\xac^@\x18\x05\x9a\x89\x9f!\xec\xa3\x13\xf3\x86\x08\xc8<\xabZ\x8aZ6\x07\xf2\xb9\x7f\xec\x0f^s,\xcdl\x8b\xdc\xeb2\xb6uv\xbd(\xb6,\xed\xc7\xd0\xbc\xd8%\xe6n\x17)\x91\xa6\xa1l\xcd|\xb5\x02\xd9\xcb|?\xdeZ\xa1\x01\xf0\x93\xfb\x84Y[06\x17\xb4\xfe\xcd;\x10'\x15d\xcbi\xd2<\xa4\xd0\x1f\xb9]\x9a\x86\xea\x8b=\xd2\x90\xef\xfb\xd9u\xad;\xf3\xd7U,i\x81\xfa\xc1;\xec\xa8\xb52\xfb\xe6\xc1ZD\xd6\x8d\xde\xe3T\xcbJ\x85\x1a\xc6\xd2>RJ\xcf\x11Z`\xf2!\xdf\xa0\xbc\xcd\x87\xd2&\xc9e%\xbc\xd1\xb0\x85\xe7\xe3\x92\xe9\xc7\xfb\xcc\xb8<27*\x8f\xf0\xa8\xb2Z\x96VW\xfa\x8a\x01\xe97N\xa0\x01\x01\x1dv\xbe\x95c2\xcc\xd8\xbc\x03D\x94Vj [\xe1\xfa\x82;P\xe9\xdcW\xa3cf\x10,\xdb\x1c\x0b\xe1\xb3D=\xa8\xae\x81\x14\x05\xe5\xaa\x9d\x00\xb9/@\x85g\x9bo\xef$*\xc2\xc1\x1d\xda\x92\x84\xb2\xdf\x94\xbc\xc8M^\xfb\x8a\xed/\xfd\x12M\xc1\x9b\x9e\xf7\xbb\x11\x90\xb3\xb7`fS\xd3\xe8\xa8\x0c\x08?7f\xb6t\xd0\xd7\xec\xdc?{\xd7\x87\x11h^\x85\xcf\x1d\xe8:\x92 \x98\x1ca:\x17u\x8c\x04\x03\xbf\xcb\xce\xd6h\xc8\x16\xef}\x98(8\x06\xbe\x19\xac\x8c\xba\xfe\xf8lSu\xa3\xe9\xe0iy\xab\x87\xf4\x05\xe53\xce\xf1\x06}?b\xa4+\xb8w\x87RD\x13Z\x96\x96\x12\x1d\x04\xca\xd6\x87\x02\x89^\x98\xb6x\xf4\x19\x168\xcf/i8\xe8\x8a\xe1\xb4H\xb0q\xed\x18\xa9\xc8'\xf7\x8e\x83z\xddQ\x8cx19\xa8>\x94\"\xc3\x1a\xd5\xa7\x1d9\x18\x8b\xd8\xc4\xf5f=#\xa8\xe3\x13\xfaf\x80\xe51\xba\xea8\xee\x1fqh \x9fW\x95\xbe\xdb$r\x06\xe6\x8c\x97Y\xcc~\xf1\xf2\xaa\xdb9\x9b:F:7\x03\xe4\xcdij\xce\x8e\x01\xeey\xd7d\xba\\\x90\x98\xfa:FC\xf8\x8e\xab\xb2$t~\xc3d\xb3\xb7\xb5\xc1\xcdG\xe8\xa4\x0c\x88<\xc5Z\xd0\x03\xe1WZ\xbc\xa2_\xa8\xd0\xc0\xfb\x0es)\xc4\xc04nQ\x82\x9f\xa8;\x9a\xb9\xb6\x9dL\xa06{xQ\x06\xdc;\x1f\xc5\xea\xc1\x14\x0f\xdc\x85\xba\x8a\xb9\x14\xc5\xeav[B\x15Jp>Fe\x83N\x07\x8c\xf4\x85\xf6\xd0:Z\x96O\x12f\xe6\xc8\xff\xe8\x07eL\xfcC\xdf\"9%\n\x93~\xa9p\n0A\xe4\xdd\xae#\x04\xb7\x06ih\xb3\xf4epQ\xc0\xc5\x9d!M@\\\x81\xd7\xb1\xc4/\x99\xc0\xb2\xed\xc3\x13\xae\x9al\x0f&1\xdd\x98C\xbc \xbd9\xb6-\x89\x10\x01,\x9d\xdd\xefB\x80\x83\xb2\xbc\x07\x03G\xf6g\x1bWA?\xcb]\xbdwA\xc5\xe0O\x07\xaax\xa4\xb5!+F0\xf9\x90B\xef\xd6$\x00\xdd\x06\xf7\xe5\x94\x9b\xba\x88\xf8\x94\x95k\xc1\xe5<'\xc3\xe7\xdd\xc65\xc1`\x08\x17\xa3\xef\xd9]Z\xc4!h\xc5\xd8p\xbe\xac~\x10GW\xe4&\xf3\xa5\xd5\xfa=\xee\xe9W\xd74o\xa2=\x0f\xaag\xe6a;P\xc7ciZ\x14\xd4\xc09\xa9%\xd51\x83\xc2G\xd0\x94W\xb3u\xb20\x85\x1c\x19\x1a&\x03\xe1j\xb7\x95\x8c\xb1\xc8\x1c\x8d\xc0\xebl\x99IslL\xd6\x84m1:\xf6\xd2\xbd~ir\xe1\xc7~\xd8!\xb0\xda\x1dZ\x97^\x7f\xca\xac\xf1&\xfcD/X2\xcd\xc0P\n\xa9~\x00Xo\xe1\x0d:\xf2m\xaaN\xcd\xea\xd8\xc6\x14\xc1\x1c\xf5\xfa>\xbd\x1b \xe9\xf3\xa9\xaf\xea\x1c\x93C&\xddC\xc8Q7\x9f\xed\xcb}[\x04\x03S\xeb\x91\xdaP%\x0f\x83@\xdf\xfa\x04\xde\x7fu\xcf\xe2N\xe4\xfapt\xfe\x9c\xf9W\x05\x0d\xeb\x80\x80\xa9\xac}\x87\xf0\xe9/\x0e\xc5\x0b\xedDGzTY\"\x01-I3\x85\xb2vb\xfa.\xf5^\xacc\xfa\xd2:0\xa47w\x87\xac\x10Q\xbbR\xef6Ao\xc7\x90\x88gd4\xb6n3D&\x08\xc2\xa0\xda\xdf\xeen\xe9[\xbb:Z\x05\x90e3+\xd0d\xf0~\xbf\x97\xe2\xf80\x93\x96]\xac\x1a\x99\xe3\xaa)\xb8$\xa6\xa9\xc8\x87~H\xfb\xb5\xf6\x85+\xc1/EwI[\x02H\x165\x8ekLaeF\x9b\x02y\xc0\xbd\xcf\xf9\x01\x8ctiY\xbd\x81\xb9\xa1\x15\x8b\x9e;\x8e\xae\xdf\xc8\x9dA\xdd\xd0\x89\xdc\xfc\x91\x81>\x15\xb9lD\xbb\xb9\xb1=Ez^\x0c\x99\x05\x13\x8b\xd8\xcc\xe9x\x07\x16\xb9l@\xcf;\x15\xbb\nKP6\x19W\x13K4\x8b\x83 \xebm\xde\xc9\xc5\x0caU\xec\xb2r\x9d\xb6\x07\x94Ps\xcf\xb9E#\x06\x9d}W\n?%{\xf9\xe4\xe4M\x87\xf0\xe9\x82e\x99\xcd\xf7+\x08\xab\xd7>_\xc8\xc5\xe6\x8bR\x87p\x0c\x02\x17\xff0\x11\x9d\x13\xfe\xaa\xac\xca\x02\xb1 \xa7Z\x01^\xf0\x9e\xc6\x15\xe1\xa7\n_\xad9\xeb\x0e\xd6o \xc7\xfd\xc9y\x08\x8f\xc0\xdf(]\xd1\xcb\x97\xc4\xd6g\xd1\xe0\xe39\xdd\xa5\x97\x89\x1f\x96Bn\xbc\xd0\xd4\x15{\x98\xfbyl\x1a\xcb\xac\xa4!V\xe4\xf9+\x15\xb2\x13\x0c^\x11?\x97\x87\x84m\x01|\xbd\x9f\x9c\xaf\xdd|\xe44\x7f\x1co1)\xc1\x95,EO\xeb?\n\x0c\xfd\xbd\x1f\x9e\xa9\xb6\xedg|\xe3{mqU\xaf\xa5\x9f\x10\xf7\xfc\x7f\xdcK\x17\xd9\xb9c\xccUp\xbf\x1d\x0e>\x11\x16\xf3\xef\xfd\xf6\xb3\xc0\xfb\xe5\xb5\xc6\xcer\x16\xf0\x00\xe1\xdf\xf3\xe1\x84\x9a\xf0\xa9,\xf1\xf3\xe9\x9a\xe6\xf7\xfd\xb1\xb7\x17\x97~\xe7.\xb3\xb7\xb5\xc4\x9a\xe2\xbfw\xd7b\x94\xd0Q\\\xe4#*\xc4\xbf\xf1\\\x16\xaa\xfc\x97\x7f\xcfU\xb5\xc37\xab\xff~;\x9f3\x08\xfep\x00\xa1\xda~\xf4O%vn\xcde\x84\xc6\xfc\xbd?\x1f\x1e\x18\xcaX9@ \xc1\xc4\x94\\9\xb9_\xee\xac\xcd\xab$\x82\xcb\x0d\xcc\xc7\x99:\\G\xf5\x97\xb3z\xa0\xcb\xf7\xc4\xbe\x88S\xef\x87*\x16Z\xf1B\xc9?\xdd\xbcW\xdfhv\xfaJ\xbf\xdc\x95\xab\xbc%\x85X\xe5>'Qr\xdbi\xce\xbfu\xcf\xed\xd0\x11\xc8\xe2\x1b\x97\xc8M\x9a{0\x12a\x17\xff\xfd\xb6\x0f_/\x1c\xea\xd6\xc5\xefg \x1e\x13\x90V\xef\x0f\x8b\xe0\xc1\xd0\x17\x03\x02\xe9\x11\xfe\xf8A<9x\xb7\x05B\x10A\xc4t^(\xda\x7f\xef\xda\xe3\xde\xe7Y\x06\x98\xd0 vZ_\xd4#F.e+\xf8'\x83F\xcaU{-g\xb3\xd2\x90\x93\x8d\xd8\xc5D\xf5O~YBA\x80\xa8\xc8*\x1a\xba\xbe,\x7f\x9cl[uhZ\xe2\xc6\x0c\x08\xbb\xde?\x1c\x84\xe9\x98F\xb1\x94\xee$(\xad/j\x08c\x96\xe2\xff\xe4\xbf\xc5*\xbd\x86\xb3\x1f_\"\xd0\x92\x82\x9e\x96\x7f\xfb:\x87\xad\x93\xbc\xb0\xa3/\xee\xfd\xcb\xdb\xec\x85\xeaG_ .\xc1\xc7M\xc9\x9f2b\xa3\x7fs\x19\xca\xf3C$r\x12K\xc6\x16r\x93\xe6\x18\xd8\xfb\xb6\xff\xec\xa9\xed:w4\x98\xcdL\x83M4\xac\xf2\xff\xf1\x19\x15lfz\xb3\x95Z\xe2[\xff\xe9\x88\x84!\x8f\xf5T__\\\xf5\x9d\xd4&^\xff\xd9\xa5\x1c\x1b7\xe7\x8e\x81\xebi\xbe>8xGh\xff\xd9e\x7f\x8d\n\x0b\x9c\x81\xe2? 7t\xbfvc]9\xa7\xf1L5{\x9b`>\xec\xbe\xac\x7f\xfa\xc9\x8a=\xfaY\xffR\xcb\x8b\xc7\x89F\xb0\xe4\xcb\xc3X\xe6\x9f\xfd\xf8\x8e\x1a\x0f\xf2Dj\x96h\xa8\x85Kg\xcf\x1f\xd6C\x97`]\xbe\xe0b\xe4*f\x84\xd6-\xfc\xe52\x19\x86<\x84\xca(\x95\xbdK\xf0\xca\x0d/\xb3\xd7\xfb\xe39\x95\xcbA\xae\xee\xfej\x13\xa5\xf8\xc0\xa9V\xe4\xbf{]j\x8b5\xef\x9cC\x14zR\xd4\xd11l\xbf\xcf\x97\xa7\xec~\xcf\xd8u\xd6n\xf82F\xe4\xf6\x7f\\\x87\xd0\xe2\x9c_\xfe\x8c?\xa8\x07 V:\xb9\x8d\xf8\xef\xef.|K'\xbc|\xb8Jz\xfe8\xe5<\xd7\x8e\xa8\x8c\x0c\xfb@\xc1$\xb4\x19\xb8_\xec\xc7\xe4}.\xc8\xc5\xb4d1E\xa1\xd41W}\x9b\xfe\xa1\xdef\xfe\xfb\x9f\x0d\xa5p-\xc0\xbc\x06\n\\\xe8n\xf5\xc9\xf2\x91\xbf\xb5\x05\x8b \xaf\x91 o\x1f\xb6b\xdf\xd7\xfe\xcf\x17 fo\x90\xae\x81\xa4\x10Z\x7fjr\x81\x85\x00C\x94~\xc7\x92\xa6uBw\x81\xd8\xbbK4\xcc*\xd4\x02\xf8\x8f\x0bn\xed\xae2;/\xf1P\xf6&\x0f\xff\xd9\xa5\x06E\xc8\xad^c\x18\x97\x1a\xe4\xa8\xdd\xc0_\xd2'\xf8\xdb\x87\xbc\x03\xf5O^\x06q\xccM\xd2\x95\xc1V\xfe\xc7=\xea0q\x05\x07\xa8G\x08\xe3\xa3\xfeoO\xddr\x7f\xf95\x84Q\x0f\x16\xb8dE@\xce\xa9\xfe\xd6\x9f\xf5\xb6\xfd\xfag\x00\xc7\x1e\"\\\xbe\xd57\xbfX\x1fw\x15\x91Rh\xb2ys=\x89\x92\xe6\x06\xfaO_\xf5\x05\xbbGG\x86a\x08\xdd\xad=\xb0]\x0f\x98\xff\xf9z\xfc\xbd\xc8\x08\xab]\x92\xe8\xf7\xd6\xe7c:\x1b\xad_=f\x9b\x0b\x11&\xa3\x82\xde\xf03\xbe\xf9\xd8\xdf\x05\xff\xe3\x07\xec\xea\xfb\xcb\x9f!l{\x93p\xa5\x18\x14\x0b\x7fX\x9d\x8b\x1d\xddE4\x89\xc8ig\x863\xff\xe9D\xc9r\xc5\xa9\xfc-\x87w\xf6\xa7f\xa0\x98\x83\xb0\x8a\x7f\xd8\x9b\x84\xe4\xdc1q\xfdmT\xb1\xf09\xbf\xe0\x7f\xf6\x90\xed\xac\xbf@\xccL\xe7\x8b37\xf0\xd1\x07\xffx+\x056'j\xc9\xad}\xe8\xfc\xd9\xabhb\xa7\xbf\x98\xa8\x0d\xec\xbe4$\xf4\xd0\x10mr\x93u\xaf\xa2\xd6\xfc\xce7,\\{\x19\xb8Y\x0c\x05E\x7f\xa2\xc8\xed\xfe\x8d\xb1\xb2\xe3#\x85\xeef\x9aD\xdct\xfe\xc8I\x85\xfa\x0f\xa3$\xa7H\xb62\x1fi \xc8\xbd\xf2d\x03t{[U\x9d_y\xaf\xbe\xbb=a:\xe6\xc7\xf5~r \x80\x89\xfb\x7f\xba1\x0b\x16\xf6\x8a\x9d\xd2L\xc7l]\x9fC\x19\xe0\xdf\xfe8\xf0\xa3\x00\x9d\xa3\x17A\xe4\xf46[\xa6\xf2\x7f\x18\xa7\xc3A\x99/\xa1:\xe7\xc7\x8d~\xe4\xd9\x17\x0fi\\\xf9;G3N t\x814#\x82\x87U\xef\xe8\xb8\\\xce\xb8\xe1\x8d.\xfe\xd3G(\x1a\xb7/\xeaW7\xe8ep6\x86\x12\xf0\x80\x0d~\x89\xff\xfd\xbfK\x0fQ\xe0p\x1d!\\\xae\xd55\xffxC!et\x17\xf3\xd6\x02\xa6\xb7\x990\x15\xff\x9b\xcb\x10\x06\xc1\xa5\xceF\xb9\x04\xf1\xd3y\xe3\x8c)V\xf2O'\xcd\xfaz%!rb\x88)\xc5[\xb0\x0f,\xfe\xf2\x83\x0f\xd3\xdaL\xda\xc3\x8b\x19\x16\xb4>\xabFN[\x88\xd7\x9f\x0foNr\xf9\xb0\x12\xb9\x9aXiB\xd0~\xd9\x18p\xb4\xbf\xdf\xe8\x80]\xaf\x01H\xb9K\xb8\x1b\xa5\xea\x87?;\x0e\x11\xc3f\xdaPZBh\xf5\x7f\xf4\xe1x\x9cZ\xfc\xc3\xa7%\xc1\\\xd5\xc1\xd6\x9aJ\xf0\x94\xaf\xf6\xa8\xce\x1f\x06,h\xc2s |\xdd\xcd\xc4\xe1o\x0e\xb1\xd1\xc9\xfft$\x08_\xea\xc0}i\x0b\xb6V\x9fA&\xc8\xba\xff\xc6\xfa\xda\xd5o\x8b\xb7\xfd\xa7\x9e\x8d-v#\xb4?\xdb\x14c%\x0cfm\x0e\xa5\x05\x86\xd6\x98\x93\xed\xbao\xfe\xc9\xe3dPx\"-0S\xae\xe2\xa4\x00#X\xe9\x0f\xe7\xb6ul\xea/\x9b2\x94c\xae8j7\xf3\x8f\\u\xf3\xbf\xb1\x1e\xb9~\xfb\xd1 V\xef\x15\xae\xd0b\xca\xf0\x9f\xfe\x86\xf5\x90\xc3 \xd5\xb2\xd8\x13\x0feH]\xfby\xfe\x8bg^\x8c<\xe47\x1fEu\xe5\x10\xf9\xba(\xb6\xf9\xab=\xb4Ah\x97\x81\xf8zcX\xad?\xf9\xe9`\x0f\xc2\xf8OO\xceT\x8fs\x96A\xde\x08)\x05U\xf7N\x1d\xfd\xce}\x9b\"a7\xae \xba\x06=I\xd5\xd7DY\xf7?\xff\x11\xf6\x01\xf3\xf2a\xe7\xda\xe8\xa4\x7f\xf4\x0b?\xc1\xaf\x9e6\xc7\xdb\x02O\xde\x82\x9f\\\xae]\x0c\xf1_\xad\xa0\x06L_\x0cZYJ\x8b\xaf-.'\x1ba\xa6\xb6\xbf\x1c\xbf\xd1F\xbd\xb3\x17km\xcc\xc5\x0f\xfb]p\xe6_\xbd\xd4\\\x85$\x04\xdark\xa2\xa1\x0ci\xe2hf\xf4\x17S\xfb\xd8-\xd0\x11\xda\x16_\x13\x0d\xb9\x98F\xfb(\xf8?\xde_3\xcc\xc7/\xcc\x9d\xe1\x8f=0\x15\xbf\x07\x01\xf1\xd7/\xe0\xe6\xcc[7\x03w\x0b\xb4\xa4\"\xe4\xc7T\x96\x7f\xf9\x9b>Y\x07\xb3\x9c-\xf4\xab@KR\xed\x15\xeb6\xfbo\xadr\xbf\\\xe4\xbb\x85\xc1>r\x93lE\x7f|\xcbj\xaak\x16w`\xa6\x03\x05Z\xb2J\x0f\xdb/\xf4\xfb/N\xf3\x1f\xa0(\xd7X\xd9\"\xa7\xfd\xaa\x8fd\xff\x17G\x88M\x95\x1b\xcf\xd1\xc60\x1c9D\xae\x1e\x1e\x89\xff\xe4i\xee=\x92!\x12HK\xc1\xc9\x86\xea\xb7\xba\xf6W\xeb%/&\xf8\xcb\xc8\xa5a\xbe8\xf8\x80\x16\xc53\xfc\xd6ob&{?\xe3S\x81\x96X\x98tL\xc1\xf5[C\xec\xc4\xdb`\xbb\xc5\x07\x8a\xc9M|\xfd\xeeP\x82\xff\xdaG\xb55\xfb\xeb\xacu(-$\xb7\xd6\x9cl\xcc\xccr\xfdg\xdf\xf0\xc3i/?\xaa\xf8\xe9u\x82\x17, e\x0f\xcb?\xfe\xd0\x922\"\xaa\x81\xddJw\xd6\x96\xec\xdd&o\xff8GWnJX\xfc\xc9\xdal\xeb\xcc%x\xaa@\xfd\xd5\xff\xb4miUT\xcb\x1c.\xd1s\xbe\xa0\x83\xc2\x08\x88\x0b\xbf\xf6\xd9 \xd2\x9b\x8f\xa2~z\x88\xe0\x15+\xfd\x08\xa3\xeb\xff\xab\x7f\nQ\xaf\xf4h[\xcf%x\xe8'l\x9c\xcf\xbf\xf5\x8b\xe2\xa1XGp\x86\xf1\xfeS\xbf\xec\x0cg\xf5\xe8\x9f\xef\x9b\xca\xdeS\x10\xeeFdp\xb5\xfax3\xc1\x7f\xba\xf6OL\x92^}\x14\xf7\xd3\x03~t]\x9b%\xd4\xfd\xf2\x1f\x87z,\xab&\xda\x85\xdb^{\xb21;d!+\x7f1\x90\xcb\x1bqb%\x91\xd8\x18\xf7g]\x92#\x00MR\x87\xbf>\xe4\xee9gs\xea-\xd8A\xdc\x19\x9a\x12p^\xd1\x98O\xf9\xaf~\x84\xa5vV\xdf9v \x89\xc8\x84\xa7\xfd\xcaPF\xec\x94\x15\xa9\xbfu\xd9@\xab\"\xdc\x1e\xe9\x12\xfe\xd4\x84m\xc2\xc7\xd8\xf9g\xcb\xed\xbef\xe88g\xcaG\x12\x0b\xbd\x801A\xfe\xf3Omp\xe7\xc9\xd9\xb9\x03\xf2.\xe3?\x9f\x19\xfe|F\x0f4\x154.H\xeb}\xf6H\xb3\xc2\x9f\xac\xfc\\N\xb0\x11)\xb5\xfc\xd3i\xa8\x9f\xa0\xb7\xaaUd\x04\xdbfK_\x97\xbf0\xd6d\xea\x7fz\x0d\xa5\x9b~xZ\\\xf2u\xcb\x7f\xe6ta\xf2\xdd\xc6\x7fve\xc6\xd9 \xaa\x17$t\xa6\x9exx\x82\x89\xf2_-\xa4\x0d\xd1\xbc ;k@\xe1f\xe8?s\xea\x92\xac4\xde\x9f\xbd\xf7W\xf8K\x94%\xa6K\xd9\xfc\xe3\x94\x90\x1a\xb3\x88\xf8O\x9e\x06Gn\xb9\x98BvQ\xf7\xd2\x9f\xcb\xc97\xf5\xc5\xd8\x99\xfa\xc7\xbb\xael\xfb\x87\xc6\x8aT}\xf3\x8fwXH\xa14\x9e;\xca3[\xfc\xadW\x0d8\xaa\xcc\xd9\xde\x88\x9e\xa3\xa4\xc4\xb4\xa9[\xef_~\x9a\xbf\x8d\x06K\x8b\xf6\x13\xc7=w\xd4@\xc6n\xa4s\xf9\xe5\xd0\x93\x97\x8c\xf1\x89\xa8\x07\x11\xb1\x8d\x99\xd9+\x96#\x11\xb2\xe0\x8f\xa7\xdeU\x0d\\\x0b4Bu\x06\xb8QJ0X\x139\xf8\xab\x0fGg\xdd\xa8Y\x02\xce\x8dmk\xf63\xac^X\xf1\xd9\xefy#\xe4\xab\xfa-j\x02Y$\xb1\x90\xbd\x193'\xe17\xe7\x8dp\xc1\x80\x0f\xc6\xf5\x91\x8b\x7f\xf8\xcb\xddo\xb1\xc0\xe4\x9c\x8a>\xbf\x18\xf1\xadX\xa8\x02e\x8co\xcb_\xeeMp@\xa4\xfd\xcc\xc3'S\x10a\x18&\x1a\x87Qp\xc2\xdfym1\xe9\x18\xe4J\x88\x85\xf4\x95\x19\xb2\x94\xfe\xd5\x03c\xc9\xdf\xe9$\x12d\xe2 \x85\x83+/'?\x82\xa4t\xef\xbf\xbc52v\xeb\xd8[\x1e\xe7c\xa30\xd0\xac\xc9\x05\x1b\xff\xd5B\xda\x10\xdc\xe3f\xafy,q\xaf\x80\xa1\xc6Q\x88\xc5\x7fk\xd5J\\217z\x04\x05\xe7\x87]1\x01\x8e\xc1P\xef\xa3\x0e\x9d\x17\xa2\x1c\xff<\xf1c\xec\x18'\x16\xea\xeb\x8d\xe2\xc5\xe6\x90\xf3\x17\xef\x92\x98 \xd1\xef\xb1\xcf?gP\xd2\x101\x16\x0f\x82_\x9e`O\xa9\x12\x16\xfcD\"\xcd6:\xe68\x83\x16^,\xff\x88|\x10\xfe\xf1 \xfa\x0f\xe2\x92\xdeF\x98\xce\xbe\x19n\xceq\xc1\xea\xe5\x8dgu\xff|\xbb\xbav\xac\xd6\xde\x8b\xcb\x19\xc7?\xb0\xf8e\x08\xfc\x17W>z\x94\x85\xf1\xb6\xfb\xcagv\xee\xca+t\x01\xe4\xf5\x99^c\x8e\xa7\x88\xf4B\xfc\xadw?\x07\xed\xe6]\xf5\xf2\x0f-\x1bkK\x10po\x98\x15\xbb\x10\xde\xbf\xfd?\xdd\x10D\x84t\xe6\x1f\x1d+}\x8aG\xd9Q\xfcwn\x14\xc3\xca\xeb\x8b\x01\xf6<,\x9d3\x15\xe9 \x8b\xb50\x91_\xb6?\xd9\xfd8\xd87\xd7\xaa\x91\xeb\x88g|\xff\xc8v\x87]I\x00\xb9\xfbO\xb6+\x93\x85\xe1\xaf\xd0\xb7eQ/\xbf\x85/\xa6\xc2\x7f~Yj\xc1\x9c^C\xbfC\xe4\xe3\xce\xdc\xf7\x1e\x96\x83{\xfea\xf37/\x0d\x18\x92\x9bFJW\x9cr\xd8\xbc\x83=1\x9b\x17\xc2?\xce\xf7\xd4xY\xfd\x01e\xf4\xda\x99\xf7\x15\xe4\xd4\x1b\xbe\x8c\xf6\xff\xf1P\xbdb\xac6\xde\x93\xdf\x05\xa7<\xc9\xb9a\xff\xc5\xc3\xcdQ\xafD\xa7\xbe+q\x90\x92\xab\x89v\xa6\xae\xf1\xc4\x1b\xfe\xd8\xa5\x99\x07\x99G-\xc2\xb2j\xe3\xb7\xddY\x149\x18\xfa\x9f\xedm\x97|+\x9f\x83\xdc\x18\xe7l{\xc0\xddg\x9aRs\xe5\xfd\xeb 4\x98'k\x92k\x81Yt\xf2\xca\xc7\xf2\x13gn\xce\xfd\xab\xd1\x1d\x18\x16\xea\xd7\xc8M\xe2#\xe8I\x02\xcd\x1aR\xb0\xe8\x9f\x0f\xe9\x81a\x82\xe6\x87\xda7\xc59[\xa3\xc6\xc4\xe9_|[\x95,\xf1\xfdT\n\x17\x00\x7f\x91\x96\xfd5\x98\x08\x13\xe7\xf63\xfe\xc6!v\xcdY\xf7uW\xee\xb5\x9ak\xa1\xd2\xa7\xd1\x87\x1dl\xd0\x872\xdcp\xfc\xfd6d]2\x86\x87\x1b\xa9C\x8cV\x179\x8f\xea\xee\x86\x82E\xebg\xce\xdb6\xdb\xea;\xc5.'\xc2=\x16=\x95Qp8\xe4\xfc\xde\xeflQn)\xee\xa1o\x10\x038p\xc3\x91n\"3|\xc1\xe9X\xf7\xaf\x07\x12Z\xb0\xf5\xe73\xec\n\xcem\x1b\xa9+\xce\x08E\xe4\x07\xa0x\xf3Q\xad\xee\xb7w\xc1\xe8\xb6\x19\xc6\xc5\xaa7\xe8\x0b\xc1\x11\xdf7\xea\xd5T\x02\x95\x92\xd0'\xea\xf3\xdb\xeb\xe9^2\x86\x86\x17\xe9\xa5L.\xe2\xd4\x9f\xe90\xe9\xbfZ!\x14\xa5\xfa-*Jk\xa6\xb8WS\xe7\xa2\x02\x03\xd3\x80\xfe\xb7\xd6\x1e\x9d6}\xbd5\xa1\xdf\xb7H\xb2gV0)_\xfe\xee\xd3\x82!.\xd8\xfbC\x8b\xa2~[\x81\x99\x04\x17\x14\xf9Oy\xb1)\x96\xfd\xf6\xe5\xdc\x1c/z&J\x15F\xdcb\xb6\x8d\xc6\x9fV\xd7f\x8a\xaf\x8dh\xe1@\xed\xf7\xee\xc4\x8bC\x96\xfc\xa6\xc6\xd8V\xe2\xa1x\x1e\xac^L\x8f\x19\x96\x02\xed?6\xb8\xb5\x03k\xaf\x9a\x9d\x85\xa1'\x1e\x9a\xe7\xc1\xba\xc5\xdc\xd8\xf7\x1d\xfezHQ\xe40\xe0\xc5\xb3\xac\x92\x9ar\xda\xddj\x14\xbf\xfe\xd9\xd1\xb0u\xa5\xc5&\x84\xe5tW5\x19m\xec\xe6\xbb\x80\x16l\xfc| \xf17vj\xa7z`f\xa8\xbe{\xb2l\x96\x9ar\xdc5\xa0\x95\xb2>\x0c\xca$\xa1\x18\xfd\xdd;\xb2\x1c\xa6\x00\xfe\xa8\x86n`\xc5\xcdp\n\xda[\xd2 \xf9\xf0\x91\x0b\xff\xed\xfd\x87N\xf8\x9c,\x8cp\xb9\xc4C\xd2\xbcQ\xbf\x15o\x13}\xea'\x1ey\x9b\x9e\x17\x0cI\xed\xd2\xa6\x1d.\x17 \xa2\xfav\xdf\xc6A\x9b\xe27\x07.\x0b\xca\xcc\xcf\"\x13\xd6\x96t\xaf \xa6\xd103X!\x00\x7f}4\xf4\xfe\x98d\xfc\xda\x9a\xf3\x13\xac\x97\x9e\xe91\xc6\x80\x82\xf5\x17\xa7\xf6\xbdi9\x7fL`Q\xc1\xab\xc0H\xea\x98\x16P\x96\xfdw\x9fJ\x90\x8c\xf6\x1eY\xb3}\xd9\x99\x93\xa6\x0eEX a\xdd'\xfd\xb77\xd6\xc5\x0c\x986\xcck\x87)\x9b\xf9\x9c\xad\x1f\xb7\xd2\xe2\xfd\xf2&\x0fL\xcdh=^-,^\x19\xf0\xe0\x03\xed\xfc\xf8\x80\x91\x05\xbfw\x82\xc4#\xa0\x93\x93\xee\x0c\xf5\xe3d\x83\xe6\\\x8c\xf9X\xf9_\xecV '\xbdX\x13({\xff\x8c\x846g\xa7\xe1'5\xe8u\xf3\xfc\x9e\x9b\xe6m\x96P&\x02\xb5\xcf:\xed\x823\xb6<\x90I\x0d\xf9H\xd2_|V\x02\x89\xd1+\x8c\x92\xbft\xe4\xb4\xbb6\x0c\xa9\x97?B\xc1\x96\xcd\xcf\x9a{7U(V\xa6vi\xcc\x8e\x96\x8b$S}\x07\x80\xf1\xa1\xe07\xa7e~\x01\x8c \xb5\x86\xa1\x11=\xeb\xaa\x07;&\xd6\xfc\xbfX\x97\x80_<~\x8e\xcd\xdd\xbf\xb2\xa1I?I\xc7\xbe\xb9\xcf\xbf\xd8\xc1\xdaP\xeb\x81\x13\x15\x04w\x80;tS\x80OW\xc8\xcb_?\xa6J\xab\xfc\xdeEC\xc6\xc0\x1cs\xe8\xc8OJ2V\xc1\xfe\xb7\xe6\x8c\x88\xbfM\x1c\xcc\x9a\xc3\xba\x81\x1d6\x8aD\xe4e2\xd1\x8dzs\x93\xf6\xdb\xbf\xd1\x95\x00/~\xce\xce\x87m\xeb\x98\x0e\x97A\x02\xfd\x16\xef\x83\x11\x1f\xeb\xea\xf7?n\xe3\xd6\xb8\xb8\xd3+\xb6H\xd3Z\xe2\xe7\x99P\xbfE\xf0`\xc5G\xba\xb8\xdf\xde]\xd7~j\x17s\x0f\xb8\x07hZ\xff\xfbL\xa4\xdf\"S0\xe3\xa3]\x7f\xf1`\xdaW\xeb\xe2L\xaf\xd8\xa7\x1f9\xc5Z\xbb\xecq\xd7\x80L\xa9_\x85\xf8\xd7\xd3\x14MS\xde\xe2\xc7C\x90\n,uN\xf1\xa0\x98\xbc)\xb2\x7f\xb9\n\x0e\x14\xed\xe6p5r)1\x8c\xa8\xc8id'\xbfE!a\xf3\xc7\x85\xff|c\x8c\x13\xb9\x10=\xef\xe8\x13m\xbb\xf1\xc2\xe8\x16\x86\x9a(e\x7fk\x92\xfd9\xcfm.q5&\xd6 \xa1\x83\xc0\x83BG\xa7\xfav{S\x16\xfc\xf9WGLa\xf1\xbdS\xe3\x94\xc2 \xe4\xcd\xc4\x93\x03\x7f\xd5\x02\xb8`\xf7&\xfc\xa7\x93n\xef\xc3]y/~\xd1\xb6q8Zs\x15\xef\xc5o\xca\x82\xf9O\xc6x\xa2\x10?\xf9\xa1\x1b\x18p\xaf\x94\xde2\xac.\x9c\x1aT\x10\xb7\xf4o\xfc\x0e\xc5\x05\x1d\xd4\x98-C\xd1\xf9FN\x0bK\xe4\x88|8P\xc8\x9b\xad\x13\xb6\xdf\x1e\xd7{\x93\x03\xa8f\x8c&\x9b\xe8K\x91\x05\xab\xf4t\x16\xf9\x05\xc2\x7fk]ka\xc78\xf0=\xd2\x17\x8a>)\xd7\xa6Z`_\xdc\xf90\xa1\xfb{.I\"R\x90\xdb\xdd^2\xff39-\xac7\x83V\xa3\x8c\x85\xc9\xfe?\x1b\xd1\x8a7\x7fBpN|gM9>\xbc\xbcba(Fn\x80\x7fc\xd8q\xe1Q\x8aH}\xb9\xcc|I\xcf\x1dRaQ\x00\xa4C+M\x7fdZ\xb2\xfe\xfa\xe7\n&\xc6\xda\xea;Xd\x1f\xb4\xe2\xa0\x9a\xd1~\x8b*\xc6\xde\xcc\xf9/\x1f\xec\xfbt@\xb3v\x84\xa2\"-\x88\x18\x88\xb6\x97\xdf\x12\xfa(\x00cg\xdao\x0f\x0d\xeb\xffX\xfa\x92\xe6uyh\xe9\xef\xf2nY\xa0\x12\x14\xab\xde{\xab\x12& \xc8\x14\x19w\x80\x8caFD\xfd\xf4\xb7\xf8\xfd\x9f\xfd\xa9\xe4D\xba\xfbt\xbb9\xdd\xa01\xf7\x8c\xf2\x993\xe8\xd6\xc9\xaa|\xf48v\x97\x8f\xb9\xc2%\xc2\xc2\xf0\xb7+U\xbbDh\xdeXR\xb4\xb1\x82\x1fjT+\x9e{q\xd3\x1b\x0c\xef\x08\x9e\xf5\x7f\xde\x7f\"\x8fLJ)\xff0\x863\xf4\x16W\x9c\xa2\xeb\xf0\n\xe9x\xba,\xdc\xe3?Nw\xf1\xa3\xdf\xf8\xfa\xd1\xb6u94Q\xaex\x88\xf3\xd3\xb7\xbc\x00d\x94\xa7\xff\xb4V\xe64V\xd0#\x1a\x07\xb2\xd7\xdeS#\xdb\x1a\xdf\xf3z\x1d\np.\xe3\xff\xb0\xbd\xa4/\xbc\x8a~K\x95c7\xf8\xce-\xce\xe9\x0c\x89\xa5\xb5\x0b\xa3\xd3\x8e\x8cz\xc7\xcbR9\xddN&\xbe\x05^\xe5+\x19\xd5C\x0e\x9e\x80L\xbft\"X\xed\xb8Gm\xa4\x8e\x1e\xbdE:=\xc0\xc3\x92\xcf\xf3x\xaa\x05A\x0c\x05G\xba\x88>\xa6K<#\xbb~c\xcb7<_L\xc4r\xad\xf2\xc9x\x82\x95\xd5.\xbd\xf4R<\xa7%\xb1\x9e\xa4%\x04\x16\xedy\xe2\x12o\\Fq\xc2\xfc\xf8\xe2J)\x93\xd2\xad\x12\xcby\xd7\x0d\xcfZ\xd1\xf3\x9b\x8d\xed!F\x93{_*k\x1a\x9f\xc3\xc2\xe2\xdb\xb21\xef\xbc\xfe\xb7\x17\xfd.\x90[\xaa\x02\xe9\xe8z\xd6\xe0\x99\xbc\xef>\x98\xb0\x00\n\xb0B\xf4\x0f\xc3\xea\xea\xa8\xc0\n\x02\xa7\x08\x92\xca\x87\xd7\xf6L\x16\xa8\x00\xe3\xf7_~\x90\x1e\xa2tQj\xac\xf8\x8asn\x1ccp&w\xb4\x1d\xa9\xd8L\xa1\xe9\xb6\xd0\xd8}\x8c\x1e\xc5\xbb\xd7`\xbd\x03c\x8e\xf8\xfc\xeb2\xcdO\xabS\xcdfp\xdc\xa4\xcb\x9f\x97\x99Hr\x82X\xd0e\xca\xeb\xdb\xa8s\x81S\xf9bw\x08.\xdb\xddB,\xf8\x91\xfd]\xd8\xcb\"AL\x0fG\x92\x0eg\xd1\x9bs>VHKoW\xc9F:0\xb2Q\xff\xcbv\x16\x07i\x1c\xa36\n\x14O\x0f\xdcQ\xdc\xd4\xb0\x0c29\xf8\xdb\xe73\x9d\xe1\xafl\x8b.r\xbf\x83\xd2\x82\xef\xd4\x9a\xc3\xcb.\xbd\x0c1\x9b\xfb7\xa3\xe8\xb8\x8av\xcda\xcbK=_\x9aLg\xad\xc8\xf4~\x82w\x08\x83L\xfc\x87-\x1f\xe3\xd9\xb9\xe5\xdd\xd9\xcd\x942h\xb5\xb6\xd4\xfc`\xde\xe5L\xfc\x95f\xae\xfe\xed\xb2\xc2z\\^\xb6\xa6v\xdb\xc8%^\xbdj\xbfJ\x9c\x8e\xd8\xf2\x10\xc0!\xfc\x9dwN\xb4\xa4\x8e?\xd2u\xfe\x96\xb1/\xb6q\xadxg\xe2\x8d\x1d\x908x\xcf\xe0vP\xb2}\xd6\x93\xbbI#>\xe6\xf8\xd3=\x9a\x9env\x9fF=I\x9f\x00^\xa9\x15\xa6\xc2\xbf\xbe\xfbq1\x0b\x91\xc1VHt\xb1\xf6\xab\xc8w\xda\xa7\xb9f\xa4\xd9J1\x97w\x9e>u\xf9\xe7\x14\x8c\xe6u\xb1\xe2xm\x13]\x0dw\xf2\xaco\xc3\x94!\xadO\\\x11\x9c4\x91\xdfgJ\xaf^\xdb\xfe\x0c\x96\xa5<\xe2\xde\xf2\xee\xc3\xd3\xeb.\x1fW\x80\x98\xd7\xae\xf1\xb7\xc2\xb4N{}\x15\x1b\x92\x8dW\xcf\x97\xc8Gj%\xfd\xe6cvQ\x8e\x8a\x0d\x99H\xa5N\xfbu\xb1u|\xe9\xd7\xaa=\xb7\xaa\xef\x9c+\xbe\x17u/O\x8c\x0cP\xeb#\x8c\xb2 \xe6\xdb\xf3\xf37\x9f\xd0{3r\xc9 \xd9\xd4\xed\xfd'\xf5W\xf6J\xe6\x18|6\xb5@O\x10\xf1\xc4\xc7z\x87\x8cRf\xfa\xe9\x91\xdd6\xaf}F\x89\xe2\x89#\\\x05?-UA\xac\x0e\x7f~0\x89\xc4\xdb6\x91G\xcb\x8a\xe50\xa5\xf7\xa5R0:\xd5\xdcI;\xbeD\xa6baA\x95\x8cN\xce\xf9Tb\x01\x15UGg\xad\x15\xe9{\xb2\xe1Z\xf9\xc6\xbfH=o\xb7\xf7\xc7\xb3_\xd8\xeb\xcd;\xd4\xf7\\\x9b\xd2Y\x03{\xdd\xad\\+\x1f\x19/\xa5\x16\xfa\x1c4\x0c\xbfk\xd3\xe4\xe8\xddv\x144\xda\xc57\xc7k\x9f1{{\xd0\xb2\xa5\xa1\xb0\xbdK\x0c\xf0\x05\x96\xb5\xbc\x12_\xf2\x8c\xd2\xce\xe0|\x81w\xb2\x86\x95\xa4+\x9e\xb3\x1e\x82|\xb3Yt\xdb\x02K$\x1a\xe1\xb1\x17\xaf+46\xbbx\xf8\xfa\xc9\x0d\x14\xfc\x0e\xbc\xaa\x95\xa7\x85\xcb\x0d\xbcY94G\xbe\xd0\xe5nj;\x0e~3\xa9\xa7\xbc\xeb{~E\xeed\xff\xddB\xca\x7f\xb2\\\xbal\xd7\xddG\xf8\xd0\xe8a|\xb5\xbc\x8aA\xf4>[N]\xf9\xc4x+4x\xa4\xd9G\xf0w\xa9\xd2\x17\xb8\x00\xe9*\xb8\xad8I\xfb\xfb\xe4\xdbK\x99\x84[S\xfa\xb9\xday-\xc9'\xa4HeGR\xba\x88t\x98\x14.\x8b[2\x0c\xac\x00\xaf\xb4\xfb\xdc\x0e\xfd*\xad\xa2\x8b\xb9P{\x0b\xe2\xa5\x8c\xe3\x18M\xf1\x94i\xb13\xcd\xafc\xfd`\xa4\xeb\x86r\xe8\x00\x0b`\xb9{.\xa8\x01\xf6\x0d%\xb4\xd1\xa2X\x0c\xfcN\xf3\x9di\xe8\x85I\x1bY\xa8\x01\xd4W\xb3\x8c\xbd.i\x90O\x7f\x17\xbd\xe8\xf4\xc7\xc1=)\x98\x0f\xb2\xaaU\xa7\x8e\x0b0\x0bt\x1b\x8e@\xedQ\xa8\xec\x98m\xac\x02\x1d\x97Z\x07\x963\x1aS \x8c\xc1w\x1f\x177\xbd\x08~\xf9a\xef\x87\xd2\xa0=I\x10h-6\x1a\x88o\x9c\x87Y\xa4\xe7YvH\x13\x84\x8a`5\xdfh\xae\xd2?\xe6\x1f\x91\xd6C/\xeb\xcf\x8fL\x89\xbc\xd6\x8cV\xc53\xf1\xfa\xf2\x17AfK \xa8\xb7R\xdcu\xa6uV\x15\xc0\x02\xbe\xae\xd8\xabb%\xf2z3\x16UOQ'\xce\x82\x0d\xd0ldo\xaa\x82B\x8c\xbd\x19\x86\xf0 \x94\x07\x1d\x89\xb9\xe3r9R\x0dG\xc7t\x15\xfc\x03\x10\x19\xc4nY\xa6dNK\xd2\xc3Qd\xcb\x93\xa0-4~\x94:\xf9\xe0H\x14}\xd3\xfb\x9b\xd9\n\x8b^\xe0vAo\x19{\xfdsq=\x00\xd9\xeaD\x1b\xad\x17\xe9\x9b\x80\xfdL\xef\x88W\xc1\x7f\x94a\xca\\\x1f/\x14b\xc3S#\x01\x8a1\xa4:Y\xebE|\xbc\x9a\xc1w<\x9a\x1f\x02\xe6\x83\x9f\xe3\xa5r\xc1-\x04\x17\xd9\xa7/w\xd4\x04\xd4\xc6r\xb8\x95\xb5\xdb\xde\xef\x95\xe1-\x95\xa8\xeb}\xb3\x8b\x80\xc6/\x1fVz\x97\xdf\xc0\xea\xb1\xd7!?C\xf6W\x8d$e\xb7|\xf1\xe0\x88g\x95\xce]\xc7\x9d\xf6\x97^\xbb\x05\x90?\x0e\x8c\xf15\x7f\xfc\x9c$\xef\x93\x7f\x98\xed\xca\xcd\x18\x12\x92\x7f\xa5\xbcbH\x13\xe3\x86\xe4 \xa9\xf0p|\xd9/\xda\xdf\xeb\x00\x10\xedL\xc3\xfd\xfb\xe4\xd3\xfc\x8c\x1a\xb6\xbc\x05\x0f\x83D\x828\x0eW\xbe$\x0f\x9f\xfbI1ue\x16\x86\xe7|T\xb7\xd8\xfa\xf2\xb8\x0f\xeeU\xab\x90\xe89\xbczX *[E\xc0\xd4*\xc3{\x1d\x16\xf4>\x87\x17(\xf1\xe8lm\xf8\x16H\x95\x8f\x08(4\xe9\x02\x84\xba\xfb\xf9\x02\xbaHE\x87\x9e\x9a\xd7\xfb/\x18\xf2\x96Y-\xe0\xbb\xd9\x14\xbb\xa1\xe9\xd4\xf5\xe8\x9b\xc3\xab/E\xa1:o\xd9\xbb\xfa\xda3\x8f\xbc\x82\xd8054\xc2\x98w\x1a\x17\\\x94y\xfdts\xd6j4\xf1\xf4b\xcb\xebB\x8f\x03Wf\x82\x01\xf6\x1e\xfa;~.%\xbfl\x94\x8f\xe4\xc1\x90[eAH\x9f\x06\xf7T\x7f2T\x1c\x0e\xa7\x9ci~\xd5h\xe8I\xd9nJ\x8f\xce\xb4\xc7\xbd\x82\x13:\xb4T\xc3\xbe\xaf\xb3\xf3\xaf\xd2\x85\xb6\x93\x9e\x82i\xab\xfd\xa2\x7f\xc9x\xbeF0\xde\xcc\x1e\xbe\n>\xd4E\xaa\xef\xfc\x9d\xa6\xe59\xac\xd7R\x12z\x1d\xc4oT\x82\x98\xd9F|\x1e\x9b\xe3\x06C\xf8\x03\xc8\xa0#A\x9ax\xc5c\xe0T\xad\xe2\x18\x7fT\xd5\x85\x1bWv\x82\x92\xad\xd5x\xe7S\xc4ov\x0f\xcd\xac\x9d\x1e\x07\xc4\xb5Xo\x0e\xc6\x90<\x92$-\xa2\x8e\xd9\xa2\xfa\xb2\xa7%+\xb7\xde\x91Og7\xd5\x81\x183\xcf\xcc'\xd9t\xda\xcfn\x03\xadj\x15w\xb6~\x9f\x1fc\xa4\xc2\xf9\xd86\xe1W\xc16\xac3\xf7\x18\x893\x9b\xc7\x8e\xdc\x1e\xe3Z\xf5\x8eb\xb3\xfb\xfe\x1b7b\xf6\xed\x92\xc8\xde\xcf\xac\xc6R5j\xe5\x82{(\xf2\xba\xb7\x02K\xc0f\xa0\xee\xdf.\xba\xf8\xa9\xad\x1d\x97;?p\xb4;Z\x19#E\xfe\xa1\x9e\xa8\xc7\xc11\x83\xef\xd2Y\x1f\xad\xe5\xa3p\xc4\xd3\xd7\xd3\x06R\xfc\xcekf\x860\x14\x10+\xfa\x1bcV!\xd1\xa72\xcf$e\x93}\xfa9\xd8\xc0\xd6E\xfa\x99\xef\x0eyi\xc3\xa9>2\nWI\xec\xdb;\x03\xd86a-\x8e\x8d\x19I\xedf\x850\xbd\xea^\x05\x92\x1ds\xbf\x1ds\xba\x0bW!\xc8\xb7\xfb[k\xc7\x80Q\x9a\x92\x9cn\xf6\xbd\xfe:~\xe4\x8a@Lk1\x95\xfa\xe1\xe1\xf5:0\xeb\x90(\xfa/p\xca6\x89\x8c\xc4p\x80\x1cR3\x90Z\xc1\xb0\x11\x13\x99\xaf\xe8H\xe7\xb1FF\x9d\xce\x10\xe5\xd0\xff>Gu\xcb\x98\x0f\xc6\x87\x01,\x15\xd6\x0en~\x08\xde\x87\xdb\x89\xb5\x94\xb9\x94\x04%,\x1f\xcb\xfd\x19\x1di\x1d\xb7\xa2Q>V\x98\x80z\xdd\xf8\xcd\xf4\x9b\xb0V\xb0:Z\x8a\x87\xb5\xf3lrud\xe8\"#\x16p\x02r\xb0\x98y\xa4\x1ch\xf2sD\x07\xb6\x99t\xe45\x7f\x83\xc7&\xfcb\xdc\x95\xa51\x10\xf7\x18\xa4o\x05f\x92\xf1\x0d\";\xe4S\x96\xc5\xf0c\xf0z\x92\xb8\x87M\xbd\xd4q\x8a\xe2\xed9\xea\xdf<\xff\x18Xn\x1f\x11Q\xbd\x11\xf1\xf3\x8b\xaf\xd4\xe7\xf4S\xae\xbd\x01>\x02,\x00\x8d\x8e\xc9\x18#\x80.\xa5[\x81\xb9,,\xa2\xc0\xac\xa3/WR(\xc6\xfa\xa0\x08\xca\xac(~%\xda?\xe3\xca\xe4\xc2\xd7\x18\xd51&s$\x9d\xe5#E\x0ft\xbcR\x86\xd4]V\xb5:!\xc9\\\x80G.j\xac\xb5\xb4Lt\xb5o\xec\xbd\x9e\xdc-G\x1dP\xd2\xd7\x9b\x89x\xfd\x9bZ\x7f=\xfd\xf1\xcc\x1b\x82C\xf0\xfb\xc6)*\x1e\xf6\x86\xf3\xcef\x85<\xad\xc6&\x1a>\xf0\xbe\xb5'\xb6\xfdI=\xbcejN\x96n\xbeO_\x17\x8f\x81\xbc\xdf\xa5'\x97\"\x12\x7f\xf5\xfd\"\xfdd\x9e\xd7\xae\x0d[\n@\xea!\xd7\x99\x99>p\xa1\xd9A&\x13\xd9x\x0dY\x8e6\x1c\xfb\xe4\x18ro\xa4\xa0\x8au\x9a\xedxj\xb1\xf9\xf2\xdf\x8b\xf8\xf8\xa63\xda\x98\xe6\xbc\x0d\xb7\xf1\xc2\x9e\xde|\x13\xeasw.\xed\x151\x89\xfb+~O\xca2`\xb3\xb4\x9e\x14>\xd5bBQ7q\x0c\xe2\xca+k\xbd7V\x7f_\n\xf6E\xdd\xe6\xf8*y\x00\x95z\xdb\xaeO1RU\",U\xa4\x1c&r^\x9e\xa2.\xf7 )\xce\x19x'$\x17\x9b\xd8m\x92\x1b\\\xd8{q\xe2+\xc3x\x1ec\xbc\x9e\x0d\xa8\x05\xfc\xefZ<\x94\x0bS\x18\xbcMg\xa7\x11\xcf2M\xbc?LR\x1d4vd\xe5_Fz\x94/ \xf6\x90\xb2(\xfbx\x97\xd4E\x91\x98l\xb0-o\xc6)\xed\x0f\x86#\x07\xf8\xdb\xa5\xcf\xf7\xd2\x13l\x1c,\x14\x8b\xc4\xc7\xe1N\xe6*+t\x10\x08\xd7\xcb\xfa\xb4\xb5\xf85r\xf6m\x1e\xcc\x1b;\x9asB\xa4$}1vHf\xfd\xfb:\xd9\x9f`\xeb\x16\xa2\xe0\xe0\xb2\xa66%\xeex\xa8\xbf2\x9d\\\x92\x18ET\xf2\x07\x03T&\xc7\xd8J\x19)\xcc\xf7\xd0\x97\xce\x82\xae[d_\x9a\xf7\x02\x99\x18\xbd\xdb\x0bd\xac\xae\x84\x10B\x84]\x8f\x97g\x8a\xcb\xb2\xfc\x9f\xff\xf9\x7f\xec\xff\xfe\x7fvy\x97\xff\xfb\x7f\x01\x00\x00\xff\xffPK\x07\x08\xff9\xbd(rt\x00\x00\x12\xa0\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00#\x00 \x00img/supervised_user_circle-24px.svgUT\x05\x00\x01\x80Cm8D\x92\xdd\x8e\x9c0\x0c\x85_\xc5\xca\xbd\x0f\x8e\xf3G\xaae/z\xd5\x9b>D\xc5N\x87\x91\xe6gU\x10\xacx\xfa* 3+\xa1\xe4\xe3\x9c\xc4\x18\xdbo\xf3z\xa6\xaf\xdb\xf5>\x0ffZ\x96\xcf\x1f]\xb7m\x1b6\x87\xc7\xbfs\xa7\"\xd2\xcd\xeb\xd9\xd0v\xf9X\xa6\xc1\xa874\x9d.\xe7ii\xbc^N\xdb\xcf\xc7\xd7`\x84\x84\xd4\x93z\xf3\xfe\xf6\xf9g\x99\xe8c0\xbf\xadE\xce\xa4#\x07\x04%a+\xe4\xe1\xfb\xb2[\x99\x0bR\xc5\xf6\xf0!\xf0\x81\xdc\xd0\xca~s\x88\x96\"\x9c\x1f-$\x91\x90Ev\xe8c\xdd\xdbR4I\xfc\x14\xf9\xe5p\xbbR\x85b\xf3\xcbf\x88\xad\xeeS\xfd\xbe\xb9\xdf\xb8H\xa1\x1f-Jl\x85+q%6\xaaK\xf9b\x8d\xde\xde\xf9\xe5\xcc\x15\xab\xc3/g,\x198[\x82\x84\xef\xa3\x95\xf6\x9bP\x86u\xabC\n#+<#\x05\xf6p\xac\x88\x1c`={\xe4\xd8\xeeZX%\x87\x98\xd8\"f\xaan!\x84V\x04\x85\xf4\xe5G\xa0Zt\x8f\xbe\x9c\xcc\xa4\x10= \xf6\xfb\xb3722\xb4\x94\x07\xa1\xd5\x03)3\xc4\xaf\xec!\xa9&\xed\x95\x14\xd9\xb3\xc2\xba\xd2\xbf\x06G#\x14Y\xe129\xf4\x9e,l\xcd/\x159\x95\x08\x91\x02$s\x82\x0f\x95v\xd3\x1d\xf3\xf1\xf7r\xbd\x0e\xe6\xfe\xb8\x9fL\x9d\x15!\x99\xd4\xaf\xea\x7fI=T\xc6\xee\xfd\x7f\x00\x00\x00\xff\xffPK\x07\x08uq\x02\xd2d\x01\x00\x00\x9e\x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x08\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00 \x00style/main.cssUT\x05\x00\x01\x80Cm8\x94X[s\xdb\xb8\x15~\xc7\xaf\xc08\xd3\x19\xdb\x0bJ\x14%Z25\xb3\x0f\xdd\xe9^\x1e\xda\x87n\xfb\x03@\x12$\xd1\x80\x00\x03\x80\xb2\x9c\x8e\xff{\x07\x17\xde)\xc5\x8d\x13G\"\x81s\xfd\xcew\x0e\xb0}v\x7f\xe0oL\xa4\x98A\xffu\x0b@*\xf2w\x04rzA g\x08\xe4\x1a\x81u\x89\x8e\x16<\xb1\x89\x8d\x8bS\xbcw\xb5<\x14\xde\xe1p\x18G+4?\x9b\x13\xa9'p\xea\xa3\x16n\"'\xd4G\xa6{\xbek\xaeP Fs\xf8\x85\x10gQ\xcb6\x0d\xc3\x94\xdf\xa0\xc4\x01 \x9d\x0e\xa5\xb1\xd4S\x18\x07\x86\x1a;,\xe3 a\xbc\x90\xc3\x9e\x9c\xce\xf7\xe8\x18'\x95I\xead\xdb>\xdaGqn\xe5\xf5\xdd\xf2O\x8du\xab\xb6\xbfI\xdcT\xf0\x17\xb3P\x8dZ\xe7F\xd9\xd7A\xdb\xc0\xee\xa3\xa65\x99J%Yq\xf2\x88\x1c\x96/\xeaneY.\xde\xf8m\xb9EA\x8eY\xba\xdc\xb0\x90L\xa2\xf85\x0e\xa7n\xfd\xc2\x08\x96\x05\xbd\x8e}\xc9\xfc\xb3Qk\xb8PES\xca\xa8~\x1f#\x7fN;\x13h\x85\xe7IK\x81\x0f\xf6\xbb\x11\x9d\xc0T\xe8\xca|\xad<\x93:\xa3\x9e\xa1e\xa2^\xbf\xd5\xfc]X\xe8\x9c\xc1\x07\xdc>\xc3?\xfe\xf6\x02\x9f\xb7\xe09)\xa8T:\xc8*\xcar\xf8\xd3g\xf6\x1d\xcd\xbe\xc1\xef\xdf-\xb1\x8e\xbdvT;+\xad\xb0\xb9:G:K\x0f\xa1+\xefF(\xea\x80$ \xc3\x9a^|\xc6\xbc\x14\xd5`~\x03\x89\xe3\xea{q\xc2L\xcb\x0b:\x0d\xfb\xdd\\\x03N\x95`\xad\xb6\xf5\xe0\xb0\x1e;3:\x85\x94\xbb \xa8`\x02\xebnT\x18\xca\xf5h\x98\xa5[\xef\x10B\xd4r\x83y\xcbD)\xa6\x1d\x85rk]\x9f\xe15\xc7\xa78k%{\xdcn\x1aQ\x13I\xdbz\x8b\x95\"Zmi]n\x8d\xf4\x80 ^n\xd4\xa5|\x82\\\x04\x924\x04[c;f~\xd9;\xf7\xbbpD>FY+\x95\x89d#(\xd7D\x0e\xe6\x8e\xeaW48\xb3\x10\x0d7\xc7\x19\xcc\x1d\x0e\x87|o\x18\x96%q\xc1X\xce6\xebN~\x0f(\xcf\xc9\xd5t\xef3\x98\xb4Q\xb8\xf7VN)\xe9d{\x81\xc9\x04\xe5}~wq\xcf\xd7c\x1b6\x9ajFV\xbb\xf9 V\x8b&\x81\x87\x97q\xef\x1a\xd85\xf4\xcaF\x00\x8b^}\xf0\x96\xc46U>\xe7\x96\xbb\x95\xdd5\xcfN\xea\xe9\xf4z\xc2x\xad\x138S\x8d\xb6\x0ckR\n9\x1eF\xbc7\x1d\x92gLKV\xe8\xb5C\xed\x88d6\xc7\xaeE{\x17\xd26M}\x1c=\xa4\x0e\x87)\xa2\xba\xef\xf7\n,\xf2k\xac\x89q\xe4[z\x0f\xf2`\xd8\x9b\x11\x07\xc7\xc9k\x07\xebd\x8a\xf0\xd9\x9c\x10\xfb \xd0%>x\x93\xb8i<\x8eo\x16_\x9f\xc7\xfd\xfe|\x1bV\xb7\x1a\xc5\xeb\xeb\xeb4\xd2}R\x86\xb2\x98\xe4i}\x8a\xc8\xe9\xa5_\x16\x8cXs>;\xc5\xf3\xdc\x07\x03\xc4;\x93\xe2(.\x8e\xc5\x1c_\xf1\xb4\x98\xa4\xf70\\\x08\xa4\xd9\x8d\x01\xf8V \xdb|\xfatz\xf2\xb3\xd2G\x0c\x14\x1dg\x04\x14\xcf\xb3\x7f\x8f\xe2\xfe\xf3\xa6\x1d\xb9\x99 \x1f\x86c\x04\xccCg\xe6\xe5e\x93\xee\xc6\xee1\xbfDvz|\xf1\xf5=\x99\xaa,\xd3,g\xcf\xf1\n\xeb\xe0t\xc9,\xde{\xff\xacoV\xe91{\xdd{\xac\xc0_\xedY\xc4\xb4\xcf\x9c^\xbe\xb8\x93\x89\xb5{\xfb<\xb6\xdc\x8f\xad\xf6g\x13\xc6O\xe7\xe7\xed|d<\x8f\x9d:\xd8\xde\n\xef\xf4\xd3\x15#]\x0c;#Z6n\xd7\x9et;\x98\x8c\xd6\xf9#\xf7\xac\xac\xd6 \x16/\xf6N\x07\xca\x81\xean\x0e\x94\xe3\xbd\xf7g\xcb\x89\x85\x1b\x86\x95\x9ew\xa2\xe9\xa2\xe6\x86)\xebD6\xa9\x1a\x8f\xfc\x11\xd9\xc2\x00\xfe\x0b\xa7\xcc\xd0\xec\x16h\xf3 j{\xce\xd3\x12\xfa\xeb\x17\x0f\xa3e\xad\xfa\x17~T\xb7#\xfdy\xd1B\xbb<\x9b!\xc7O:\x1f^\xd1\x88\x9c\xbb\x8b\x8aA\x17\xc3\x8d2RI\x83%v\xaet\xfaL{\xf7\xc7\xd6\xf9\xd1\xcd\x8bN\xb8\xd0\x8f\xe3\xe1\xf0i\xd1p\xa2pl\xca`P'\xcf\xda\x1b\xc2\x93\x9b\xfc\xfau\x86\xe8ll\xaa\xa1\x07u\x17\x01q\x18\xae\xa2\xf5\xe6ADK\xccU!d\x9d\xc0\xd6\xb0~\x86\x159\xaf^\xf8L\xa6\x0cg\xd54\x96c\xc3\x9ay{\xec+\xfb\xae\xd6\xf1u\xc0l\x18\xed\nb\x04\x104EK\x0e\x7f\x86\xcf\x0b\xbd\x9e\x88&\xb2\"\x8f\xc4\xf9\xa5\x8f\x16\xcdy>\xe3XK\xba\xc3\xb6\xed\x8d\xe6\xf0\xff\xfeV\x11\xe9\x9a\xd0g\x10+\xcb\xf41\x8a\x8e\x08F\xfb\xc8\xfc:=\xdd\x01\xef\x1a^]\x87\xf5H=\x85\x8bP8\xcd\x93\xb3\xc8\xc8\n\xcb\xcc\x1d\xcco\xed5U\xbf\xdc\xea(\xfb\xde\xde\x89\xd2\x9fg\xfek\xd1\xfcH\xf1x\xb9\xef\x13\xff\x97\xba[N\x1b\xd5\x93\x96\xf4Iq\xebq0\xd2\xa6\xedk]\xdch\xf7=\xe3\xd6Z\xe6\xe7\x04\xae\x9b\xb7\xda`\xd7\x05r]\xb9\xfd\x8f\x11\x87?\xc1\xddS\x9f\x83\x1bwn\xb3\x1bE\xbcq\x9f\x96{\x06j\x99^9E\xcd\xd5\xde)\x85\xb7\xaf\x9cv\xee`\xd8-\x99\xdf9\xdd\xba\xda\xeaO\xaa\xdd \xb5<\xd1\xf6w\x13\xde\xa1u\xc2\x1cQ\xdb\xce\xcbZ\x1c\xf3 \x14\xad6<2\xdc \xdd\x1c\x8fo\xf4\xe4%\xfd\xf5\xcf\xcd#\xdf;\x87\xe8\xc1]\x1c\xd6\n\x12\xacH@y Z;\xbc\xfd/\x00\x00\xff\xffPK\x07\x08\xdeH\xe5\x9b\xcc\x07\x00\x008\x19\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(B> \xec\xd2\x01\x00\x00\xfd\x03\x00\x00\x12\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x00html/error.go.htmlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x16\x19\xf5V\xd2\x00\x00\x00H\x01\x00\x00\x13\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x1b\x02\x00\x00html/header.go.htmlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x05\xd0\x7f\x19\xab\x05\x00\x00\x98\x19\x00\x00\x12\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x817\x03\x00\x00html/userInfo.htmlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x83\xba\x83\xe4\xf5\x00\x00\x00|\x01\x00\x00\x1b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81+ \x00\x00img/account_circle-24px.svgUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xfc\xc6x\x8f\xb7\x00\x00\x00\xf9\x00\x00\x00\x12\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81r\n\x00\x00img/error-24px.svgUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xd2\x86\x862\x9f\x02\x00\x00\x92 \x00\x00\x0b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81r\x0b\x00\x00img/jwt.svgUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xfa\xc3(\xcbm\x06\x00\x00\x8e\x10\x00\x00\x11\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81S\x0e\x00\x00img/logo-long.svgUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\x060\xc7a\n\x01\x00\x00\x00\x02\x00\x00\x11\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x08\x15\x00\x00img/logo-only.svgUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(K\xfe\x8b#M\x03\x00\x00d\x08\x00\x00\x10\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81Z\x16\x00\x00img/pomerium.svgUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xff9\xbd(rt\x00\x00\x12\xa0\x00\x00\x1a\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xee\x19\x00\x00img/pomerium_circle_96.svgUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(uq\x02\xd2d\x01\x00\x00\x9e\x02\x00\x00#\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xb1\x8e\x00\x00img/supervised_user_circle-24px.svgUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x08\x00\x00\x00!(\xdeH\xe5\x9b\xcc\x07\x00\x008\x19\x00\x00\x0e\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81o\x90\x00\x00style/main.cssUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x0c\x00\x0c\x00\x80\x03\x00\x00\x80\x98\x00\x00\x00\x00" - fs.RegisterWithNamespace("web", data) -} diff --git a/internal/frontend/templates.go b/internal/frontend/templates.go index 8b5281b95..0f6719075 100644 --- a/internal/frontend/templates.go +++ b/internal/frontend/templates.go @@ -2,56 +2,49 @@ // html templates. package frontend -//go:generate go run github.com/rakyll/statik -m -src=./assets -include=*.svg,*.html,*.css,*.js -ns web -//go:generate go fmt statik/statik.go - import ( + "embed" "encoding/base64" "fmt" "html/template" - "io/ioutil" + "io/fs" "mime" "net/http" "os" "path" "strings" "time" - - "github.com/rakyll/statik/fs" - - _ "github.com/pomerium/pomerium/internal/frontend/statik" // load static assets ) -const statikNamespace = "web" +// FS is the frontend assets file system. +//go:embed assets +var FS embed.FS // NewTemplates loads pomerium's templates. Panics on failure. func NewTemplates() (*template.Template, error) { - statikFS, err := fs.NewWithNamespace(statikNamespace) + assetsFS, err := fs.Sub(FS, "assets") if err != nil { - return nil, fmt.Errorf("internal/frontend: error creating new file system: %w", err) + return nil, err } dataURLs := map[string]template.URL{} + err = fs.WalkDir(assetsFS, ".", func(p string, d fs.DirEntry, err error) error { + if err != nil { + return err + } - err = fs.Walk(statikFS, "/", func(filePath string, fileInfo os.FileInfo, _ error) error { - if fileInfo.IsDir() { + if d.IsDir() { return nil } - file, err := statikFS.Open(filePath) + bs, err := fs.ReadFile(assetsFS, p) if err != nil { - return fmt.Errorf("internal/frontend: error opening %s: %w", filePath, err) - } - defer file.Close() - - bs, err := ioutil.ReadAll(file) - if err != nil { - return fmt.Errorf("internal/frontend: error reading %s: %w", filePath, err) + return fmt.Errorf("internal/frontend: error reading %s: %w", p, err) } encoded := base64.StdEncoding.EncodeToString(bs) - dataURLs[filePath] = template.URL(fmt.Sprintf( - "data:%s;base64,%s", mime.TypeByExtension(path.Ext(filePath)), encoded)) + dataURLs[p] = template.URL(fmt.Sprintf( + "data:%s;base64,%s", mime.TypeByExtension(path.Ext(p)), encoded)) return nil }) @@ -70,27 +63,27 @@ func NewTemplates() (*template.Template, error) { return template.HTMLAttr(fmt.Sprint(arg)) }, "dataURL": func(p string) template.URL { - return dataURLs[strings.TrimPrefix(p, "/.pomerium/assets")] + return dataURLs[strings.TrimPrefix(p, "/.pomerium/assets/")] }, "formatTime": func(tm time.Time) string { return tm.Format("2006-01-02 15:04:05 MST") }, }) - err = fs.Walk(statikFS, "/html", func(filePath string, fileInfo os.FileInfo, err error) error { - if !fileInfo.IsDir() { - file, err := statikFS.Open(filePath) + err = fs.WalkDir(assetsFS, "html", func(p string, d os.DirEntry, err error) error { + if err != nil { + return err + } + + if !d.IsDir() { + bs, err := fs.ReadFile(assetsFS, p) if err != nil { - return fmt.Errorf("internal/frontend: error opening %s: %w", filePath, err) + return fmt.Errorf("internal/frontend: error reading %s: %w", p, err) } - buf, err := ioutil.ReadAll(file) + _, err = t.Parse(string(bs)) if err != nil { - return fmt.Errorf("internal/frontend: error reading %s: %w", filePath, err) - } - _, err = t.Parse(string(buf)) - if err != nil { - return fmt.Errorf("internal/frontend: error parsing template %s: %w", filePath, err) + return fmt.Errorf("internal/frontend: error parsing template %s: %w", p, err) } } return nil @@ -105,9 +98,9 @@ func NewTemplates() (*template.Template, error) { // MustAssetHandler wraps a call to the embedded static file system and panics // if the error is non-nil. It is intended for use in variable initializations func MustAssetHandler() http.Handler { - statikFS, err := fs.NewWithNamespace(statikNamespace) + assetsFS, err := fs.Sub(FS, "assets") if err != nil { panic(err) } - return http.FileServer(statikFS) + return http.FileServer(http.FS(assetsFS)) } diff --git a/internal/frontend/templates_test.go b/internal/frontend/templates_test.go new file mode 100644 index 000000000..9608c9122 --- /dev/null +++ b/internal/frontend/templates_test.go @@ -0,0 +1,24 @@ +package frontend + +import ( + "bytes" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestNewTemplates(t *testing.T) { + tpl, err := NewTemplates() + require.NoError(t, err) + + var buf bytes.Buffer + err = tpl.ExecuteTemplate(&buf, "header.html", nil) + require.NoError(t, err) + + assert.Equal(t, ` + + + +`, buf.String()) +}