From 1a9cc2626eb2717950c21b125e2998e2cc4b131c Mon Sep 17 00:00:00 2001 From: "diamondburned (Forefront)" Date: Fri, 19 Jun 2020 15:40:06 -0700 Subject: [PATCH] Fixed nonce bug; improved message content --- go.mod | 6 +- go.sum | 10 +- internal/ui/messages/container/cozy/cozy.go | 2 +- .../messages/container/cozy/message_full.go | 4 +- internal/ui/messages/input/send.go | 15 +- internal/ui/messages/input/username.go | 2 +- internal/ui/messages/message/message.go | 26 +- internal/ui/messages/message/sending.go | 5 +- internal/ui/rich/parser/markup.go | 161 +++++++++++ internal/ui/rich/parser/parser.go | 269 +++++++++--------- internal/ui/service/session/server/server.go | 2 +- internal/ui/style.css | 6 + pkged.go | 2 +- 13 files changed, 352 insertions(+), 158 deletions(-) create mode 100644 internal/ui/rich/parser/markup.go diff --git a/go.mod b/go.mod index 5a28901..790e345 100644 --- a/go.mod +++ b/go.mod @@ -2,12 +2,12 @@ module github.com/diamondburned/cchat-gtk go 1.14 -replace github.com/gotk3/gotk3 => github.com/diamondburned/gotk3 v0.0.0-20200612012846-9df87fea4f6d +replace github.com/gotk3/gotk3 => github.com/diamondburned/gotk3 v0.0.0-20200619213419-0533bcce0dd6 require ( github.com/Xuanwo/go-locale v0.2.0 github.com/diamondburned/cchat v0.0.31 - github.com/diamondburned/cchat-discord v0.0.0-20200619080941-dac771656ebf + github.com/diamondburned/cchat-discord v0.0.0-20200619222738-e5babcbb42e3 github.com/diamondburned/cchat-mock v0.0.0-20200615015702-8cac8b16378d github.com/diamondburned/imgutil v0.0.0-20200611215339-650ac7cfaf64 github.com/goodsign/monday v1.0.0 @@ -18,5 +18,7 @@ require ( github.com/markbates/pkger v0.17.0 github.com/peterbourgon/diskv v2.0.1+incompatible github.com/pkg/errors v0.9.1 + github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 + github.com/twmb/murmur3 v1.1.3 github.com/zalando/go-keyring v0.0.0-20200121091418-667557018717 ) diff --git a/go.sum b/go.sum index 1a426cc..ec121f7 100644 --- a/go.sum +++ b/go.sum @@ -13,12 +13,12 @@ github.com/diamondburned/cchat v0.0.28 h1:+1VnltW0rl8/NZTUP+x89jVhi3YTTR+e6iLprZ github.com/diamondburned/cchat v0.0.28/go.mod h1:+zXktogE45A0om4fT6B/z6Ii7FXNafjxsNspI0rlhbU= github.com/diamondburned/cchat v0.0.31 h1:yUgrh5xbGX0R55glyxYtVewIDL2eXLJ+okIEfVaVoFk= github.com/diamondburned/cchat v0.0.31/go.mod h1:+zXktogE45A0om4fT6B/z6Ii7FXNafjxsNspI0rlhbU= -github.com/diamondburned/cchat-discord v0.0.0-20200619080941-dac771656ebf h1:61qusonLp8kVZGxZc6joldPnp90dfLQvywWr5mh6i3U= -github.com/diamondburned/cchat-discord v0.0.0-20200619080941-dac771656ebf/go.mod h1:hTzJBvDRH984m9cOjH+pfQtcZOOVZLKsDxGwlg5HRtw= +github.com/diamondburned/cchat-discord v0.0.0-20200619222738-e5babcbb42e3 h1:8RCcaY3gtA+8NG2mwkcC/PIFK+eS8XnGyeVaUbCXbF0= +github.com/diamondburned/cchat-discord v0.0.0-20200619222738-e5babcbb42e3/go.mod h1:4q0jHEl1gJEzkS92oacwcSf9+3fFcNPukOpURDJpV/A= github.com/diamondburned/cchat-mock v0.0.0-20200615015702-8cac8b16378d h1:LkzARyvdGRvAsaKEPTV3XcqMHENH6J+KRAI+3sq41Qs= github.com/diamondburned/cchat-mock v0.0.0-20200615015702-8cac8b16378d/go.mod h1:SVTt5je4G+re8aSVJAFk/x8vvbRzXdpKgSKmVGoM1tg= -github.com/diamondburned/gotk3 v0.0.0-20200612012846-9df87fea4f6d h1:NFTuwBU+CNZDB1iaGC3gDuBRf9FTd1h2WnIh6NF7elg= -github.com/diamondburned/gotk3 v0.0.0-20200612012846-9df87fea4f6d/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q= +github.com/diamondburned/gotk3 v0.0.0-20200619213419-0533bcce0dd6 h1:ZzLrfQqszhzWI7zqwltzQIWtppfcL7m2aIEpB4kuqx0= +github.com/diamondburned/gotk3 v0.0.0-20200619213419-0533bcce0dd6/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q= github.com/diamondburned/imgutil v0.0.0-20200611215339-650ac7cfaf64 h1:/ykUYHuYyj+NN/aaqe6lfaCZQc3EMZs93wAGVJTh5j0= github.com/diamondburned/imgutil v0.0.0-20200611215339-650ac7cfaf64/go.mod h1:kBQKaukR/LyCfhED99/T4/XxUMDNEEzf1Fx6vreD3RQ= github.com/diamondburned/ningen v0.1.0 h1:cTnRNrN0g2Wr/kgjLLpa3pqlbEd6JPNa1yGDer8uV4U= @@ -62,6 +62,8 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= +github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= diff --git a/internal/ui/messages/container/cozy/cozy.go b/internal/ui/messages/container/cozy/cozy.go index f7444d5..0cd7148 100644 --- a/internal/ui/messages/container/cozy/cozy.go +++ b/internal/ui/messages/container/cozy/cozy.go @@ -50,7 +50,7 @@ func NewContainer(ctrl container.Controller) *Container { c := &Container{} c.GridContainer = container.NewGridContainer(c, ctrl) // A not-so-generous row padding, as we will rely on margins per widget. - c.GridContainer.Grid.SetRowSpacing(2) + c.GridContainer.Grid.SetRowSpacing(0) primitives.AddClass(c, "cozy-container") return c diff --git a/internal/ui/messages/container/cozy/message_full.go b/internal/ui/messages/container/cozy/message_full.go index ab13970..f49117e 100644 --- a/internal/ui/messages/container/cozy/message_full.go +++ b/internal/ui/messages/container/cozy/message_full.go @@ -17,7 +17,7 @@ import ( ) // TopFullMargin is the margin on top of every full message. -const TopFullMargin = 12 +const TopFullMargin = 8 type FullMessage struct { *message.GenericContainer @@ -87,7 +87,7 @@ func WrapFullMessage(gc *message.GenericContainer) *FullMessage { } } -func (c *FullMessage) Collapsed() bool { return false } +func (m *FullMessage) Collapsed() bool { return false } func (m *FullMessage) Unwrap(grid *gtk.Grid) *message.GenericContainer { // Remove GenericContainer's widgets from the containers. diff --git a/internal/ui/messages/input/send.go b/internal/ui/messages/input/send.go index da1831f..67a06ac 100644 --- a/internal/ui/messages/input/send.go +++ b/internal/ui/messages/input/send.go @@ -1,6 +1,8 @@ package input import ( + "encoding/base64" + "encoding/binary" "fmt" "sync/atomic" "time" @@ -10,16 +12,25 @@ import ( "github.com/diamondburned/cchat-gtk/internal/log" "github.com/diamondburned/cchat/text" "github.com/pkg/errors" + "github.com/twmb/murmur3" ) var globalID uint64 -// generateNonce creates a nonce that should prevent collision +// generateNonce creates a nonce that should prevent collision. This function +// will always return a 24-byte long string. func (f *Field) generateNonce() string { - return fmt.Sprintf( + raw := fmt.Sprintf( "cchat-gtk/%s/%X/%X", f.UserID, time.Now().UnixNano(), atomic.AddUint64(&globalID, 1), ) + + h1, h2 := murmur3.StringSum128(raw) + nonce := make([]byte, 8*2) + binary.LittleEndian.PutUint64(nonce[0:8], h1) + binary.LittleEndian.PutUint64(nonce[8:16], h2) + + return base64.RawURLEncoding.EncodeToString(nonce) } func (f *Field) sendInput() { diff --git a/internal/ui/messages/input/username.go b/internal/ui/messages/input/username.go index 3cfab05..e5e5463 100644 --- a/internal/ui/messages/input/username.go +++ b/internal/ui/messages/input/username.go @@ -9,7 +9,7 @@ import ( "github.com/gotk3/gotk3/gtk" ) -const AvatarSize = 20 +const AvatarSize = 24 type usernameContainer struct { *gtk.Revealer diff --git a/internal/ui/messages/message/message.go b/internal/ui/messages/message/message.go index ed566f6..aa6c579 100644 --- a/internal/ui/messages/message/message.go +++ b/internal/ui/messages/message/message.go @@ -53,7 +53,8 @@ type GenericContainer struct { Timestamp *gtk.Label Username *gtk.Label - Content *gtk.Label + Content *gtk.TextView + CBuffer *gtk.TextBuffer MenuItems []menu.Item } @@ -92,15 +93,15 @@ func NewEmptyContainer() *GenericContainer { user.SetSelectable(true) user.Show() - content, _ := gtk.LabelNew("") + content, _ := gtk.TextViewNew() content.SetHExpand(true) - content.SetXAlign(0) // left-align with size filled - content.SetVAlign(gtk.ALIGN_START) - content.SetLineWrap(true) - content.SetLineWrapMode(pango.WRAP_WORD_CHAR) - content.SetSelectable(true) + content.SetWrapMode(gtk.WRAP_WORD_CHAR) + content.SetCursorVisible(false) + content.SetEditable(false) content.Show() + cbuffer, _ := content.GetBuffer() + // Add CSS classes. primitives.AddClass(ts, "message-time") primitives.AddClass(user, "message-author") @@ -110,6 +111,7 @@ func NewEmptyContainer() *GenericContainer { Timestamp: ts, Username: user, Content: content, + CBuffer: cbuffer, } gc.Content.Connect("populate-popup", func(l *gtk.Label, m *gtk.Menu) { @@ -166,12 +168,12 @@ func (m *GenericContainer) UpdateAuthorName(name text.Rich) { } func (m *GenericContainer) UpdateContent(content text.Rich, edited bool) { - var markup = parser.RenderMarkup(content) - if edited { - markup += " " + rich.Small("(edited)") - } + // Render the content. + parser.RenderTextBuffer(m.CBuffer, content) - m.Content.SetMarkup(markup) + if edited { + parser.AppendEditBadge(m.CBuffer, m.Time()) + } } // AttachMenu connects signal handlers to handle a list of menu items from diff --git a/internal/ui/messages/message/sending.go b/internal/ui/messages/message/sending.go index 04db773..65e82f7 100644 --- a/internal/ui/messages/message/sending.go +++ b/internal/ui/messages/message/sending.go @@ -48,16 +48,17 @@ func (m *GenericPresendContainer) SetDone(id string) { m.id = id m.SetSensitive(true) m.sendString = "" + m.Content.SetTooltipText("") } func (m *GenericPresendContainer) SetLoading() { m.SetSensitive(false) - m.Content.SetText(m.sendString) + m.CBuffer.SetText(m.sendString) m.Content.SetTooltipText("") } func (m *GenericPresendContainer) SetSentError(err error) { m.SetSensitive(true) // allow events incl right clicks - m.Content.SetMarkup(`` + html.EscapeString(m.sendString) + ``) + m.CBuffer.SetText(`` + html.EscapeString(m.sendString) + ``) m.Content.SetTooltipText(err.Error()) } diff --git a/internal/ui/rich/parser/markup.go b/internal/ui/rich/parser/markup.go new file mode 100644 index 0000000..3d7a493 --- /dev/null +++ b/internal/ui/rich/parser/markup.go @@ -0,0 +1,161 @@ +package parser + +import ( + "bytes" + "fmt" + "html" + "sort" + "strings" + + "github.com/diamondburned/cchat/text" +) + +type attrAppendMap struct { + appended map[int]string + indices []int +} + +func newAttrAppendedMap() attrAppendMap { + return attrAppendMap{ + appended: make(map[int]string), + indices: []int{}, + } +} + +func (a *attrAppendMap) span(start, end int, attr string) { + a.add(start, ``) + a.add(end, "") +} + +func (a *attrAppendMap) pair(start, end int, open, close string) { + a.add(start, open) + a.add(end, close) +} + +func (a *attrAppendMap) addf(ind int, f string, argv ...interface{}) { + a.add(ind, fmt.Sprintf(f, argv...)) +} + +func (a *attrAppendMap) pad(ind int) { + a.add(ind, "\n") +} + +func (a *attrAppendMap) add(ind int, attr string) { + if _, ok := a.appended[ind]; ok { + a.appended[ind] += attr + return + } + + a.appended[ind] = attr + a.indices = append(a.indices, ind) +} + +func (a attrAppendMap) get(ind int) string { + return a.appended[ind] +} + +func (a *attrAppendMap) finalize(strlen int) []int { + // make sure there's always a closing tag at the end so the entire string + // gets flushed. + a.add(strlen, "") + sort.Ints(a.indices) + return a.indices +} + +func markupAttr(attr text.Attribute) string { + // meme fast path + if attr == 0 { + return "" + } + + var attrs = make([]string, 0, 1) + if attr.Has(text.AttrBold) { + attrs = append(attrs, `weight="bold"`) + } + if attr.Has(text.AttrItalics) { + attrs = append(attrs, `style="italic"`) + } + if attr.Has(text.AttrUnderline) { + attrs = append(attrs, `underline="single"`) + } + if attr.Has(text.AttrStrikethrough) { + attrs = append(attrs, `strikethrough="true"`) + } + if attr.Has(text.AttrSpoiler) { + attrs = append(attrs, `foreground="#808080"`) // no fancy click here + } + if attr.Has(text.AttrMonospace) { + attrs = append(attrs, `font_family="monospace"`) + } + return strings.Join(attrs, " ") +} + +func RenderMarkup(content text.Rich) string { + // Fast path. + if len(content.Segments) == 0 { + return html.EscapeString(content.Content) + } + + buf := bytes.Buffer{} + buf.Grow(len(content.Content)) + + // // Sort so that all starting points are sorted incrementally. + // sort.Slice(content.Segments, func(i, j int) bool { + // i, _ = content.Segments[i].Bounds() + // j, _ = content.Segments[j].Bounds() + // return i < j + // }) + + // map to append strings to indices + var appended = newAttrAppendedMap() + + // Parse all segments. + for _, segment := range content.Segments { + start, end := segment.Bounds() + + switch segment := segment.(type) { + case text.Linker: + appended.addf(start, ``, html.EscapeString(segment.Link())) + appended.add(end, "") + + case text.Imager: + // Ends don't matter with images. + appended.addf(start, + `%s`, + html.EscapeString(segment.Image()), html.EscapeString(segment.ImageText()), + ) + + case text.Colorer: + appended.span(start, end, fmt.Sprintf(`color="#%06X"`, segment.Color())) + + case text.Attributor: + appended.span(start, end, markupAttr(segment.Attribute())) + + case text.Codeblocker: + // Treat codeblocks the same as a monospace tag. + // TODO: add highlighting + appended.span(start, end, `font_family="monospace"`) + + case text.Quoteblocker: + // TODO: pls. + appended.span(start, end, `color="#789922"`) + } + } + + var lastIndex = 0 + + for _, index := range appended.finalize(len(content.Content)) { + // Write the content. + buf.WriteString(html.EscapeString(content.Content[lastIndex:index])) + // Write the tags. + buf.WriteString(appended.get(index)) + // Set the last index. + lastIndex = index + } + + return buf.String() +} + +func span(key, value string) string { + return "" +} diff --git a/internal/ui/rich/parser/parser.go b/internal/ui/rich/parser/parser.go index 3d7a493..6b60026 100644 --- a/internal/ui/rich/parser/parser.go +++ b/internal/ui/rich/parser/parser.go @@ -1,161 +1,170 @@ package parser import ( - "bytes" "fmt" - "html" "sort" - "strings" + "time" + "github.com/diamondburned/cchat-gtk/internal/log" + "github.com/diamondburned/cchat-gtk/internal/ui/primitives" "github.com/diamondburned/cchat/text" + "github.com/gotk3/gotk3/gdk" + "github.com/gotk3/gotk3/gtk" + "github.com/gotk3/gotk3/pango" + "github.com/pkg/errors" + "github.com/skratchdot/open-golang/open" ) -type attrAppendMap struct { - appended map[int]string - indices []int +func AppendEditBadge(b *gtk.TextBuffer, editedAt time.Time) { + r := newRenderCtx(b) + + t := r.createTag(map[string]interface{}{ + "scale": 0.84, + "scale-set": true, + "foreground": "#808080", // blue-ish URL color + }) + + bindClicker(t, func(_ *gtk.TextView, ev *gdk.Event) { + switch ev := gdk.EventMotionNewFromEvent(ev); ev.Type() { + case gdk.EVENT_PROXIMITY_IN: + log.Println("Proximity in") + case gdk.EVENT_PROXIMITY_OUT: + log.Println("Proximity out") + } + }) + + b.InsertWithTag(b.GetEndIter(), " (edited)", t) } -func newAttrAppendedMap() attrAppendMap { - return attrAppendMap{ - appended: make(map[int]string), - indices: []int{}, - } -} +func RenderTextBuffer(b *gtk.TextBuffer, content text.Rich) { + r := newRenderCtx(b) + b.SetText(content.Content) -func (a *attrAppendMap) span(start, end int, attr string) { - a.add(start, ``) - a.add(end, "") -} + // Sort so that all starting points are sorted incrementally. + sort.Slice(content.Segments, func(i, j int) bool { + i, _ = content.Segments[i].Bounds() + j, _ = content.Segments[j].Bounds() + return i < j + }) -func (a *attrAppendMap) pair(start, end int, open, close string) { - a.add(start, open) - a.add(end, close) -} - -func (a *attrAppendMap) addf(ind int, f string, argv ...interface{}) { - a.add(ind, fmt.Sprintf(f, argv...)) -} - -func (a *attrAppendMap) pad(ind int) { - a.add(ind, "\n") -} - -func (a *attrAppendMap) add(ind int, attr string) { - if _, ok := a.appended[ind]; ok { - a.appended[ind] += attr - return - } - - a.appended[ind] = attr - a.indices = append(a.indices, ind) -} - -func (a attrAppendMap) get(ind int) string { - return a.appended[ind] -} - -func (a *attrAppendMap) finalize(strlen int) []int { - // make sure there's always a closing tag at the end so the entire string - // gets flushed. - a.add(strlen, "") - sort.Ints(a.indices) - return a.indices -} - -func markupAttr(attr text.Attribute) string { - // meme fast path - if attr == 0 { - return "" - } - - var attrs = make([]string, 0, 1) - if attr.Has(text.AttrBold) { - attrs = append(attrs, `weight="bold"`) - } - if attr.Has(text.AttrItalics) { - attrs = append(attrs, `style="italic"`) - } - if attr.Has(text.AttrUnderline) { - attrs = append(attrs, `underline="single"`) - } - if attr.Has(text.AttrStrikethrough) { - attrs = append(attrs, `strikethrough="true"`) - } - if attr.Has(text.AttrSpoiler) { - attrs = append(attrs, `foreground="#808080"`) // no fancy click here - } - if attr.Has(text.AttrMonospace) { - attrs = append(attrs, `font_family="monospace"`) - } - return strings.Join(attrs, " ") -} - -func RenderMarkup(content text.Rich) string { - // Fast path. - if len(content.Segments) == 0 { - return html.EscapeString(content.Content) - } - - buf := bytes.Buffer{} - buf.Grow(len(content.Content)) - - // // Sort so that all starting points are sorted incrementally. - // sort.Slice(content.Segments, func(i, j int) bool { - // i, _ = content.Segments[i].Bounds() - // j, _ = content.Segments[j].Bounds() - // return i < j - // }) - - // map to append strings to indices - var appended = newAttrAppendedMap() - - // Parse all segments. for _, segment := range content.Segments { start, end := segment.Bounds() switch segment := segment.(type) { - case text.Linker: - appended.addf(start, ``, html.EscapeString(segment.Link())) - appended.add(end, "") - - case text.Imager: - // Ends don't matter with images. - appended.addf(start, - `%s`, - html.EscapeString(segment.Image()), html.EscapeString(segment.ImageText()), - ) + case text.Attributor: + r.tagAttr(start, end, segment.Attribute()) case text.Colorer: - appended.span(start, end, fmt.Sprintf(`color="#%06X"`, segment.Color())) - - case text.Attributor: - appended.span(start, end, markupAttr(segment.Attribute())) + color := fmt.Sprintf("#%06X", segment.Color()) + r.applyProps(start, end, map[string]interface{}{ + "foreground": color, + }) case text.Codeblocker: - // Treat codeblocks the same as a monospace tag. - // TODO: add highlighting - appended.span(start, end, `font_family="monospace"`) + r.applyProps(start, end, map[string]interface{}{ + "family": "Monospace", + }) + } + } +} - case text.Quoteblocker: - // TODO: pls. - appended.span(start, end, `color="#789922"`) +type renderCtx struct { + b *gtk.TextBuffer + t *gtk.TextTagTable +} + +func newRenderCtx(b *gtk.TextBuffer) *renderCtx { + t, _ := b.GetTagTable() + return &renderCtx{b, t} +} + +type OnClicker func(tv *gtk.TextView, ev *gdk.Event) + +func bindClicker(v primitives.Connector, fn OnClicker) { + v.Connect("event", func(_ *gtk.TextTag, tv *gtk.TextView, ev *gdk.Event) { + evButton := gdk.EventButtonNewFromEvent(ev) + if evButton.Type() != gdk.EVENT_BUTTON_RELEASE || evButton.Button() != gdk.BUTTON_PRIMARY { + return + } + + fn(tv, ev) + }) +} + +func (r *renderCtx) applyHyperlink(start, end int, url string) { + t := r.createTag(map[string]interface{}{ + "underline": pango.UNDERLINE_SINGLE, + "foreground": "#3F7CE0", // blue-ish URL color + }) + + bindClicker(t, func(*gtk.TextView, *gdk.Event) { + if err := open.Start(url); err != nil { + log.Error(errors.Wrap(err, "Failed to open image URL")) + } + }) +} + +func (r *renderCtx) applyProps(start, end int, props map[string]interface{}) { + tag := r.createTag(props) + r.applyTag(start, end, tag) +} + +func (r *renderCtx) applyTag(start, end int, tag *gtk.TextTag) { + istart, iend := r.iters(start, end) + r.b.ApplyTag(tag, istart, iend) +} + +func (r *renderCtx) createTag(props map[string]interface{}) *gtk.TextTag { + t, _ := gtk.TextTagNew("") + r.t.Add(t) + + if props != nil { + for k, v := range props { + t.SetProperty(k, v) } } - var lastIndex = 0 + return t +} - for _, index := range appended.finalize(len(content.Content)) { - // Write the content. - buf.WriteString(html.EscapeString(content.Content[lastIndex:index])) - // Write the tags. - buf.WriteString(appended.get(index)) - // Set the last index. - lastIndex = index +func (r *renderCtx) iters(start, end int) (is, ie *gtk.TextIter) { + return r.b.GetIterAtOffset(start), r.b.GetIterAtOffset(end) +} + +func (r *renderCtx) tagAttr(start, end int, attr text.Attribute) { + var props = tagAttrMap(attr) + if props == nil { + return } - return buf.String() + r.applyTag(start, end, r.createTag(props)) } -func span(key, value string) string { - return "" +func tagAttrMap(attr text.Attribute) map[string]interface{} { + if attr == 0 { + return nil + } + + var props = make(map[string]interface{}, 1) + + if attr.Has(text.AttrBold) { + props["weight"] = pango.WEIGHT_BOLD + } + if attr.Has(text.AttrItalics) { + props["style"] = pango.STYLE_ITALIC + } + if attr.Has(text.AttrUnderline) { + props["underline"] = pango.UNDERLINE_SINGLE + } + if attr.Has(text.AttrStrikethrough) { + props["strikethrough"] = true + } + if attr.Has(text.AttrSpoiler) { + props["foreground"] = "#808080" + } + if attr.Has(text.AttrMonospace) { + props["family"] = "Monospace" + } + + return props } diff --git a/internal/ui/service/session/server/server.go b/internal/ui/service/session/server/server.go index 840b95e..00d524c 100644 --- a/internal/ui/service/session/server/server.go +++ b/internal/ui/service/session/server/server.go @@ -16,7 +16,7 @@ import ( ) const ChildrenMargin = 24 -const IconSize = 18 +const IconSize = 20 type Controller interface { RowSelected(*ServerRow, cchat.ServerMessage) diff --git a/internal/ui/style.css b/internal/ui/style.css index b5a9b92..6de1104 100644 --- a/internal/ui/style.css +++ b/internal/ui/style.css @@ -1,3 +1,9 @@ headerbar { padding: 0; } .services button { border-radius: 0; } + +.message-content, .message-content text { + background: none; + box-shadow: none; + border: none; +} diff --git a/pkged.go b/pkged.go index b435d78..ea63e36 100644 --- a/pkged.go +++ b/pkged.go @@ -9,4 +9,4 @@ import ( "github.com/markbates/pkger/pkging/mem" ) -var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffecfa67afdcca8e2f0e7f9583f5569ea39cfc4e522bb6b25aa92f0607ca522be73038dffdc15ab6f7f6ce61ee83fbc76000bb55247f55aaa2481659b5feebadeaf27e7efbfc5f6f45b5946bfccfa46fc1b48adabe4be375eab2144c92325afea358ea77d4ad9ade3ebf8165df66df60a0934cd5b0cc5f80dfc13fbdc9edd04f8b192de5dbe73ff3824f6f7ad4666f9fdfdaa8eade3ebdddfae4edf3dbdba7b7473415d9f28b37ffb3e8c1b8ea7e3282ddf7bf04fef614b56849cab7cfffe7ed9f6ffff9e9cd59a2267bfbbc4c6bf695b0b368eebbb7cf6ff33bf58f341bb22ecdbae4fcfc8f3f5e1058754b3675510316cbfcf6e94dec85aac9e6f7d7bdaff09f45fff6e96da88b2c7d6ffee737857d00fefae87fa547d3177fb1c75afd7187b64fea3f448173366d5592fd6cca6d34d571b46433f8ae90e97785efbf5557806dd6be6bed960d1f2a8bd7bc7ad7687c2e1fa3277d3b4cd93c8379132dd9f78ce2aa86efe9e6dabf27afa68a3fe86e89aa2e9bc0a69a97af8cecf8684de7b0f43f34c0e8cb0bbf104935941f2bf84aa7df0bd339fa91c8929f922982e330fd0bc68f5f214bf7684ae79fc39aa61a962af99153b6d177d40fdda7a84bd7a56a7e4534aff1d2643f0ada14ff9178eff71d9560df11df2f602e23f8271482133fa17118f98efed92b97e63b3d1d3844ff940287ba3ade3ebd655dd2a755577cd704a3b983bfa7e368ce08ec279caa8ba6f37b4ed1c7df9365f6fde0e0ebddedbfa387ac7d27a7a99fde6799b7cb4f4dd48c9aa6ead26c028bfe3fdef5d5b769b4443f05056bd4edfd3ba2e993e863edbfef2c7fd24993befbab11e0afc78c6299c1725986af06f457ba966b1b75d5f5c7ebfd69b73a3ba72f1ffaff7d6cfb598777ccdf7911d866f31c153f8f7e7fa52718ad4b3f2753dffcd5cff0fd203f04b7ff1b6380497f9dff8d81aa6e58ffacadff667ff03d7e37d9527d38eedf1dea6be3bf31c21ca57994fc8d1186a96aaba5dafe8e714c5552febd5ee0104df3df3183affbf8dfeef86ec77f63cedf7ac75316a5c9b4b6f1df1f63cee6f96f99cbcf06f8a0ff8c0eff5486f48102e7ac68b3ee4f44e9df48a87e0df9357bf903d47b809fc17968aadf05576df1475bc15708985453f2cbdd6e7ed7683145ef1e0b566d54fc22d6177dbce679d4f460994dd9cf6569bccee0fbcfcf057d3a574507be4f243a7f212c9a0c8c9729fbc5784b8d7efd4da26aea7f5b5ca4f5ef08bf248fbf255d7ea7eb1075c5cf5f3b65c5abefb22f5b6f1225e5cfa7fd4bc0bb6aeb5f81fea514fb970aff39e2077f68a3e1f793f91fa14b54677d07fe2ab4cc86e8ffd230605e354b36fdc1acbe54117faad2c8da384bff744df26770f392f63f9bdf902dd914f7eb54f4ddc737dc7e26af0bf08704f43bfe1535eff9e67b5af9ab19d32fe5e09c2553b6fcebbb10de375157fcb39f0af0f8f0c50c8cdbe1d70549522dcbaf8b962acf7f5bf2b5cefa89f43d247d97bb455db17edd7eff18f5b1e347c92fe6f253f41215bf0af8ee5d6534975f1f609436d98422dfc8644abe104bfb1eea3e16f3ed09267dd34f3fa5c0216ab265f911934ed1fe035154f90fed1f26f8417e0da55f44af212b7e20868feff903fabdba8d9a9fb09261fd9eccdb65eea7e57b56972dcbf42529f981d7cf1fc6f43d6bf892537e572ffeb4cb94e54d962c4db5fc843d575dd164795315e54fde3a9f7312350d981d599275dbaf89d6eea3a6fbf16365f3f225affe28e5ab1eacfaafaaf9c26ea38fa4e1fd01c655f163f363a7fc687fad56dbaacdbe3ec0766d966a883e94f2c118d77ec9d261aaba258a3fb6a62e5bbefc7e04d2ef9a1f3fdfb4f713e6d789fdc0fbb68aafbc772b1ba6fee39ce09d5ea777c987d7f7f38752beb4d62fe9d7f06565ef8ff7f8957da5bfeafca35564c7f043039ccf6e89deb537adddf265b15f5b60f2b18f7ca37ed06eb4f4edc731c12f245fd5fa0bfe7cbe4ff7ab39cdcb94f41fdf715edec3c887e8ec92af8f1f87fffa75df3ebd7d78da9c44dd974ae3eb34d7ae4afaf4bb16b82e394cfc94a63ec839cadf715bd6a5fd7b6dfd9d177f3b6e29a3a48c10e8cfa186be396114c2ff00fdf17877b53f8bfb7604f17be075dab26f4737bf832beb34ff7dc42f4f6d7e07fc072b7eb7ccb49bdfffff58fbfc16f007d32fd60f7ffb43dc30f5c7f90740042c87e8232ffe2d549576d16f88e773fe1aff7e4dfac5fcb2649d3230aed26a5a7f535b1fd0658aba39efa7f6f740df6cf47dc03f83ebdec7fbcf4f6f8f6c5e7e3802eed6a6f9c2fae1d0f70b4bebd3f7497efeafb7bf7270ae4555f7ede0faaf1dd28bbdd6a77f160f16fd3fdb3efde8e665d347f1f4f90dfe278cbdfdfbdffffef4967f59dc9fb94ef8fce5d8ea2b638ba62aea16e45f084efcf37dc7fbfce56ee2fd99664b54351fc3765fee077ea3cfa7b7b9bab2b7cf184dd1f4a7b7f63dc47cc610e8a3f9af8fd8f3f90d8110e83f20e23f60e401139f31f43382ff13c32004432804f90f88fc0cbd47926afe57faaec63c6ae6ec23a07d5c7f64dbdb67824021f2d39bdcf56f9f6104c5209ac03fbde94dd5d56f9fe18f0f98bd7d465198a23ebdb955faf6198620e8d39bf8b5f9e92df8d7bf862885de3e439fdeecf47d4ce8d39bf3fdd4d9a6feba148826dec93ea9e7f7ded8a73766a9daf7c93859f2f619c66904827094863ebde9f33b07c55008a3099afef7a737ed57a018847f83feb0ec7f7f7ae3fe3c34f8d7bfd66e9db3f4edf3ff813e419fa0fffcf8f66536fdc52ba21f0e2effe245d10ffdbe5e177d237f795ff4ffc70ba1ae5ffe5175f312354d96fe235e977f445b5435efd9c43faaee1ff15a35e93fbe5561dfddfc7c4cf697f73ddf2e2dfe6cc9f9cb62ee3d3ffaefdd86fcef75c7ffe0eb8effe6fdc6ef1fc5fcedb391ff7767127fa1faff56ab7f5f267eab0bffb72efbff565df6776ab0ff9995d7ff965aff5b6afd6fa9f53fb3d4fa1ab3de675e177ff18fab7ebfeefaf7a7b78fbf5bf8fc5679ac61efd05d2c7a866118dd714bde2d1886b1de499ee199f0bda1619dd5bc37d856516dc8628afdd630b74a5697eda32317b0b21f680cc3a0c1fb38f02e707765c118862918bee12dcfc690f5a4615c8b6132ccd0b5d23a4dabc39bd29d221fd5b63538a3caf591f5480d4cc16395c6b82917f06c0a4c7c0a24f2285094c624739bf229cd005c59e7b14a79c716344396347ca78abdbda1ca3cf0f18b26391a4d18519ffa7867f661f4120f7665d3ea738f00171f11e767c7131d04d475aa0b8200c310e4fa81848b165005966da7e9071f8718e27e57d569eafb7e5e8d42fa5106c31033723fc8d6b5e02df6471964b5cc8fb2aae277f64799eb768cfaa3ac8230e63b59d059b71f6527463029fb832c082cae97bfc90882606ce647d9c3e642e647d95d7e30c28f32db49981f6577f551b03fcaec2c658cdf903d93bca4197029f5d67f3e1b3fbcf71e377a4eef16d1e44593174fa0396b6c6fb2a1ce78ce878ea4260b1bdfc0c8280e9fa528876525ddf1802382d452f7e210b09e10b982dd12837aad4dfd6dcdaf33679a9b0cde82a82a5750b8352c9e709652a7ab2cec2f809808e2cb37814a5c103be9551edb002682c0e84c3c60df7443a6fc2e3f9f81c551ca29287ceb284cc3d595add4ab15d3aeee592654c2bc1b0431b1c54b6d42071944237c385cc21c2759142f7a0b7587f5bfaee788b9870241d04d7e8a980902bc0d471e513d008958502279705fecc864c517d90923997907a3ba899832aa35d8c756a9e083a404fa51a4d817bde62fc67f2538ee30c296a24366f6c2cc81e65973c0ec3d788f5d9074b6367ada206bda8ded367de8e8b5e78f638487eb5515e69c2d9653ba905c0c7bc14c8b37aaf4785adb24ac5900132741b2eed85c840e9a2759c07bcb7dd865bd74c5bdf72a4964263406299be72a71dec4522c82e3f40826c6d6dda316f796df1d1e9b36d3f9b07db3059898f6572c26833b550a7ce23682ec103df0e2b32c33770fb3ac17936479ddd83d6b3a009708a7cd0a5f7c8cc4d66e026d60c957af92551f96d5080520175228900f5e067bbf057220bb84ea7219916d2b0865525ec21ffe79cd36c44c1021ce8d35de10da6d2476c0723e280df6ce06bb4e4dbb904728b254fd33b0bef92ecb3329e3dd481a21588f6845cbd8d0eeda6d43e4b9445719f46cf7084401ec0c79a3fce2e3795bf0bdb031241e32bbece1513fb3c685e6029ec81dcbb0041b63c6ee2593b73a24079790a0b1df7c395b379c46469541b1c61a79585ed8e13024ac4a9883c7d86c8ac16d7113b3c8090c1dc180fdeae7180b983841c3dc85d218da835977dc5fe1422cf175948ecb1c7b40f945cd70cb8ec95a464f70ca334146452310dcb6eac32d6e1864dd0d386096c1286c9496cc3e429a2d01d0813683113656117f9f839edf6ca7e0dc42c0144c771d46f5f9be49784ba6e40fbd2d74f020e9f882e9496dc0418f1fc1aa022f1fb7645ae943fa3e61d4adb60a032368d0270c9e9a42c170f5f65e08ac64895563c98545ecc6fabe365018ef8590dfbc723d8e5dc657d757acc9ef5f4c3d757d1e13d19db20935ba7a31e42851be6df0c4d8647acfe924ba072fbbda15d81a45557df58c09803971c5dd44c797470fdccee78b6e0ee8909b935efb456795108228a16e8945f41cdb28942ddbe3dd234b0450e859d1f210545c6196e18089d62286f433104c1754e5bfc46a4c305e841e74131ded5a2a30c2cd944e572474fa48cb800607edc5145c175d3e035d50cd882348890e1b10b0f4da65fab655305fdce1314cb3e58cfd6f7ec387f41aed1c71cbfdd7ce10e8c8a212f30057ddc11a48846beb36db903c3dc446630e184dd1b3dbef3b4f3ce21494c0015d6c91c7a05e2058827cb76baa351443b2622665eee0bda04b9c1b9e1a7dd83cb7449ccb1d241d599ccb1292076ff050f56c80410e64009244c26e282f6ca8484d0e6f1f31ffdd76dc301536f8b5eb546764265fa89858b93c21841325ce740c3ed0570bc016abb1f27b3ce55baee66ca51eed0c07278f5c298fbaebcc443aa07fde0bddf20b86c4beea5435e482c19891f10141623c542dd61704a237851fb256584d74f4f69909eea0c7dc0954b66ebd488e2acf1e811e005d218331d6174c2ec1c9c746fbb15f2244b53bfd95bb1313030e4e80f52e4e3028062e991d24cc6aac74271f48c1a6f753ea17a6b44620db84f55536ad08d9d6cbb5194663074309ad8a0beddde8aa44ae26f519df220ebb5513ec5b9cca1cc04487d603d0614fc54832c64d80441721a73d1a45cf8074816081d201bc77fb63734bc074a504bc142c18c5411f215a3096fb23769d4bc769299a6f4f70c39f797cf71662c65370088cabb9019eb9e504f844291d98f0d7ae97f33387630c9082f3a6c8c2b934f2d05268c7454a7465de698472dfd0e6100efcfb3e5ccd9e323cac72e72d46a6c4571f2010cfc8e914bde608eb6c39ceb6021d139e50341dc8cc0c26b6caac02c6c6843cf69d02dc52056aa7c690d50288c4d29299e2a53d19cc3cf0a2659f33da106dc5f6ed6a5279c722cf972e8f1b436577c8077a2c30784c4c168bcbe28c1fa4b483806d2353dfdefcf2e811425ac17884d189069f301020c0562267bde7cb6137a0cf8d889e4e337dad060002ecb5d83d4334835ef783c018396ef2a21c8e0d94f08cd5847da1729853722cdfefb3ca2a92490258f61e755c6e849582ed211bb8eb642117bafcc40a26031ba28376d4ce68906ce41b4b0416d125b8f108d1089e8e88b1e9a00bc10b537c465a90cd661e638e01152a128fca61e666120f884894bd7d41000a9efc7e8376ca2cc261d2c908cf078ae1d0ae3ba56ee90ebaa3c903dadca0cc7609a7281d9de28bc8bc4c1d37d2275138bbbc6d12e4db70c71b30c6496f2ad238270fb774a5245be58275ba72d4f3d2548a301677c7bea8fcd5a1b4c12b9d76cc7125d7827b9fdb5a561d83d16e41c2cc2f6e2da7545e4813c140a05b3187f156af171cde7f74ed66835cc22a7a1edbdcb6f7f27d16f2c98b69d32cd2a3129f56c7452f98a4176b285e5cccee4f803a56aee72a5fb221c162820cbd6086a6e33a7a2199807b45c404617df2860264e646549e3ce7b13dc6017327fd99ca246a11ac653bc05505fa155d460b6cc68bb0e8507f4a7c338152898b463d8b6980035b2abefc1176e4b01c17efc88233931f465c600a08b60eeb8c7e6e7acdbbc14793a74d8d5db03e071e77ffd8ed9d158db86f19b7b0b9324207d5922c62aba7328fbc644bfa5ed5671c7298a1d0d815878a580daf274a1e1ca61686b22d47811658a825dba4742ad4308c2bc96333e8835572f53879bebcbffbd7a83f796642353c91d6525eec511b58f6d92fd9960fb971e00f503a6e988a4866107410b8b8dc369248db1779f572d62ccfefe94d85f1ac6d32cae73a13d3c489e4a56df336a79f421e43fbe216998fec66381841cbabed09b9ee99200dc7c1ed36f80a53576311deecb849585e744271deebfb23bd2d98ee8ed318954a51ded9f012231054e402dba4068f41aa74d8fbe0167597111ac3335cff74ad5e5892295115db9221be67b32cc7a304ec7b8a9b59331f50d45c86b662b0b855aa50668a588d0f2a06691fbb17d113035377528c9d65d4bde0dd6855b0155b2dcf1ad7f444d143e147db51637fb76cb54e5e67f6600571794e46c3d782ec8e7c51f58c7cd7e150799a1671deb21bed75602ca915ad125e9a7512f5a477a37dc0c3b8a51d858a6c252a4ccbf5afca188a960b9ddd7f8fd55d912bd168da84bde7ece50533a9f196c7439275728f63d5cf52749dd173fda6af2adeae12d0dcc01e2b92a9d3af18a1e9c262d8606f98e2064eafb08138c8266ebb93f03b6f89ab998fbeb51d32bbaba84846e950bc98e88143f7d27a715109c500048295c3ca752b707d165de30e344d32f3b2db35d462742cc7cb0038e739b45b47a61ad7ccb356585672cffb1d51a5de120cb70c7101bfdd4eda67b13091770d9c00818000e235793eb05a444a87aa6df88ea7bcc7e112335f9ca65444066ee499c8231d6c3990a4c5c80ecd0bbe8645ca165c19174f56cabdae6aab92402a0765b9d49e1d444b422891fcc8337cc2ac35a48c9aaff3a7c6a0764c8e1e2a0e7474d998080ab65020317f60a6603e36220021d91234772f78a9b215a5d242b9175ae340412093a53b3e447ef7804446da65206e9011ea066f092d4638a43ecdd18da660067c5517fe00128c3661625b60947410554bec82c78f1e46a6a08f0ee45119b270ae732c3ec550de5b185903908a0606a3a4edf026e12924c11acbe2fd788528082e94220f798cf6a1cdd8d71e9d2ee7371a87daa124bd66d665b7b32400af5cf15ecd8607b30dbe8f4d2760ef4631dd6215beb009a43cef7d9d99e4f9833c36b10b1725c74f110c827cc6f1b2d328111352db500d56e8524c54e8b0a3689215136bebf58f02b7e8023b26356e87c75661e26a224613ce61ce4c5c02b2cd28c21b9087353fde6e33882614a975c906e10f869f1874e9fc906395a26330bbce4960ef38cc2e1250cac157c5f4d5a88ac776ebe4b02ff480c556f501a120165b4ffb4e05c53884187367f9dbf2703983b93358dd76f75068899c9f993b0433036400348f3018fb5e8b1797112ba707d25cf7a2642dcf73a561186cb83f03d19655f5d93c831c0cb1c21903fd726d4ecab869ca0617d9c211267420c82af51956a419110f6d75681fe9d2acc7d0ce7cd0b9a389ea311ca0cadb8ce1e394decb453399c109d9ef755362618d7acb66d82aaac61b72949e5f9cc0cf824906e029cb2f24ad711d0433e40686e158805bd98b2bc721177452e392f3c983b51e139d8398399a0207ec558f66779137448432216cd31d829c809b6f71a999bd2436bfd2db06945168b0f899b48f01e20ec7d9b662727784edf39a1d754f48fcd39063e989034106ca58791af625320fea4ea945f25ae2ea35e831d80949d71ce44e9b03cc1bf086e627db9cb19c7a062c716dc0ce07a0622e033ea3e91af379a99f6186c041dbd23930aa85bd6eca312ac4f0c4243a833cb088c808cdc9edb8d61ca6432d9d9614a46f25c76e201cbbb71dd35281026f97491100e094ac8183b7bdd813be76ab7972a079d11256628981cdf1b5726fdd757529b2673004bb5cd4cfc2e25afc8d89ad62c83b069372b08c67fde84b93d837f269d40ee3f0c00696126db11bac6c51e4958296785cc20c45739f4e0f8b9f2324ae410b1a85496d5ad863fb3964231b3c81db01a02283e838b51125cf4839686010a64ff4fa386c72731d0838c8c3dffc7106b78ce4b91e3ad7850f85b5a29cd274edbca7661acbd2c87170345158ad285e0c0a52b4159749819920f0006ecf30013a74876f4cc4f070349d6010bfef334aab2131f29e0bbe5a0ae95f4cfcba2cab65bdee70a9f584977d6c5f50762c6e281aadcf0126549f815842a603ed2e63e93788f0c745715ff05c744053cf82a5ce690582f2b678e3b1aa0391e84c0648222e2e073044904399c90a1326b28df5b529508c2d11d82327831c06279089d84b3ecf8869ef86f7624b9f37237fc51c443fce23188ec15c178f1894e7484f7dbcd15b3ff2548ed007d4700a3a7afeb6ecb6765b126ed34d4b476a115a7caca35f5cca8e2b6268780f9ae8c625ca983e26104329dea68483f61d4ee153894bd49230d6b8ab22d9178f854cc4db63137bd08b27ea2ead16488d9ccb75eb93ceca3082d292e127b8f59f1624969d88a35d2d8d0cad8bfbd58727ae0ca9fa1870c5bddfcfd5eca0bbda649d34810e50630d33b2ae2295541fd08b345d27e8795da1ba1151632f5641c734cb037ef7d6e05e78f43100db0b662171b2109aa69f216de691d36b14407be8d8b046197189add8cfb8ae457c7a90f8957b72c0a4ecddd45de76eda54c330399ddf3cbb8e60d449f74dee787a8b39a6e6c3971f5fe0edec99b884b85090da8ad5947183d12067b54dc2338f7995dd743a3db72d8d98c16b7bf8db0ce92648b782cca0d9133046ca93f93622d76d222e2de4e47b55f689d20f41d7516010cd41856592241d06af88fe358bc383f44a65c8dcc4af34ae73b007c95e8cb1f93d1c341aa4b0a31e9f34bd71c675e80f6abec5227a4f76d765fdb02e309996021fe1909285266c131a0933a72ba361676d044d506c7cafc77893dd3b0839edc23b58d78bfba97b0c079348d907612da77ccf101d9d0bcc2a24435d684323e3866172893adc18a71d2829c7c43d10995a7ecf59c24e2401b097e541c34dfd4a48e6cc17e39e43db936c77c56a0fd50a5edea8099c8b0624a14b5587843be032cfdbe44503695c6e340477742181bc5d192fdb8ef7fd766547362edbcd6f6f4e3c32a446ed35e2d535a3a2a6361c880395041e8930bd54917c39bdeca38b9b2ccc6b9bb3c5c6b308334c0d7c44eed1d2afc9ea99876ea8f4204dcac80e175a6054b68c4b40a26be5b9ab250c70ae5b77da98685bbce9377321fb73ca2d2525d106d80b7e49a99e4f6ecfdd25e1097781a76ada84c6b356fa5ad42547f4aa304ade62b6399d95a27a41fefdd95677f9218745a819c5a317f23829f3887068fcac19d2910a74b41898bdb3c706b9b62714fa02e214180879a7a0a0372e5e690ab11967a6cd4885311f703001a82d734b543393056594a1d57018424da09e866cdccde5b5dcfcea92fd17d575e1eb41cf6cb1c4559bc56e09abbd67b5e19ee536d1a0f8b6f25a1a999d62cf441c5a4c0c727016aa295c3c8a8900908a2146ef2a69af50a8462e46fe60616074668f1eefd460518018d15109296e75e7a83577f9826b3064a325435c9b6327626cd71681340612151dab06dddbacca85d8b8a3c7f19a57991db849b5185e5e38110cf8c8140a7fada6d1ed69cabe485ae01c6d798410515a5293105742a999bcabd69dba6d1d53843726ba1dbe8cd4a7cd8acc91c5286a4be8d14d4e28d795733fb3870f6f3cb7d15376e130926b72cc4f7e96772b03af5379eee15d2014613b523a0036d3f5ac17af95312d55aef4b2e1da52284e0d60009f360fd96e370bde2814162ba2dc7befe562f70d069547f6da150f00bcd2190572b19c3323510ef471727355d82696ac4f36a3316d354e8a0ca5db850ed01b01072f0288e5c7a9b3ae135948a5b899b43d38f3d1e74ea0c0332d2dbbcd44de624ef224c4b730518aea71fafb2a680c5013cd714652fe389839baeecfcbb2edfbea9d33abcfcbd501c1e2f2123bb384e0aea459c94522149a52beff0b154484c5e284fd176a32270c406b133d9eaa43f8ce996715e842f70236153bdb6126c28c199c853e462bcfbc6549895112a5c5e8fd68da8e17c55d0691d4bd81d3f4a0ec1695a7dcf346309bfd726ea5fbedd5603c029608601710028b2f6c6b6353e2dcc8e9c3d82e5f117f6cf03d0a90bb734fbab9b63bfe49472eb1f4d22811834f54ec8392bcc6f4d755f73ad899e07ce960a0f14b2009e68e80831e1c9bb4d76c920a544de272efd63d486582a5aa2ad5d8dee01b19649dcdeb4bfc6c9c6a706b2e52acd3701d2e654c6568e76e97d57c80eae8f255f6e984ccae303ccb4a301f72af62eb0d82520c23ac2cd5e3fb60e11899c9b55b8c5b3e46e59ea029ed0c3bc9d0ee7199e1566a11a40c2cd1cc538c53e839d3c7cf2070e31ced158b521547de0d7dbecd3ecaa26314b7708fe5644b840006461038e1ae7c97bdbe09995c8f1fdefd551881614b822691eda98baf304cb61a345e71d8b2f78a3d08d77719ca02c1dce018c6d8055edf475f6e377fdf02b22a58a4134815d0555ca4a311efbdd70b20e7ae1920db89ca20da5c65396802d95838392dc6beecc366554f3a763b928f65f7f21ee8487c1bc749cd2a28522f8f768080c3bc8ab719066232b12f42515ca9ec116a57e1fa5c1745f7458e89e641e699af15eb943328502ba939a1c704588a46c53745ae9d8c65a7016c3d62f3a2c1bbebccb0ea0481ce4bef6fd040338ac5480094708ce045765ddc06ceb3c0a3873c73aa6ffbeac9402b748c2866596941da7ca1769f739019ed2a89ecf0152d67b5ed3a8822cc2e8a45a4c856588e2aa39578e1f1a50317276ed656ab536eb5b260a34d7b85dd08c8afc2fbeda1dd3119b2e5a056d1865a0b30572dc864f2bae0317175e53b234a359461f2fc803c16ca2860f19ee69c6e931f708f675b328840533051a244a7ad0ca40cb23e530611c2599fd2f9032e957a7c2a50cb144ed873d359df89d280f408c9ec869f85597c3a835ceb4fe2a827941d8eaa346b9e2eba5ea0ad16dd401e86b9d4ed00892e22fa000ad3b46b7c583c6a2938ec71184b4c5cd8cd2f37e56ebb413d3ea84ec8a6c6ed6ba6dd65a220182d714586a251bc60a72b8351b16d40f2e5329d1b6a6bc5f38b3d62467c7f967daf48d0625fa2532463ad6f5177d1b76d13ee85019882b71b109dc75737ed0fec158136cabd46243232be98b079e60500916eb7f8d564e90100b92632907fa8bc7f4c7aae2676a41e9786478f307e79cf29c0c1e765eafe48d1dd12cbf375ada9572d02155f4238798ec0a3d7a635bcfb78e8891bbe34fd2a0caebef38cd39bd9cdf0b809cf39acab46cf5187d460403d183d67ea9b626da0b1f239b2a328af5abd7d1e9a3be772986abde481d3bc4aef1648612ac17a9dc0daf4bd77df9ae475646aa9f3ef794acfeb9c5379fb36ba8e26317bb3bfd07d2f3c5d3f2dfece89d23a3c287038244ee803f214a663d8509a623664b8b52851d9ac2c606d44478b158f626ac557b5521978e65b472b5abdabfc62a7d3661ea096c074821a6d8f24f875c3723fba9c635ae221d1cb45f7cf1d69298f739d4ba5e0707262793ef141c3742d6191a2a1d89b2db015e3f392fc6465c571c6c0213c8e795c7013f6b5e78c8d3bd67535fa8ecc3a6ae3f64047753545dcc32b7a3a45c38c8aad4836261755914808bd0ad608fb6a99a98dd5177c3bc16353f1002cd2d106452f872bbad7495da8ba4a3d94ece6627cdc894f95fc8cf534869107b3b9010cd5268cce79fe000c4eb7f2ee7494f035a420818b1b232eb88bb50b0a52b784eceb5d20a60c7c6ce3a1eaeb9d29e9385737c61425052eee3482a05db74171e19d2410eda89631666c0c8fe8665ecb2db02ff76911c5beeb9a35ed766bbce447f4dc85387bc0fc4c80c6f3c1e35d0ed2aa7ad5893e6c927649258577fa6dce2df776932924bae06bc638f996c655aa54ad1cf68754936cd57a8566bd4e3a1e092a8e6c682e28fd9684db2d948561f2a2e5dd6f9da7dc339db67232d33f55b399ab1b8f811b590cac4102e44aaecf93ca5f4456398eb3a28b198cee431e2a75caf0bb55e98540f58b8e73fb8980f1eb01d5dc4d963dd24d0c99ca550b9b245467624cec25d808c6ba7fe00da3afbd07b340ef810c0c7346ef810a50753251624f4de997e629daedb1ba67bb1b6c6d8b600724743711802b57ede547e4165126a34efaf3c55a020fc5af8c09a3742864be858422425e43405654b54179211f579d3cda8c9e160fbcadc363f3106b10473850a23a9a3c87b76c46d2d52179b58f2af19014db04dfb8f644a44d9ec18cb48b2ac855ca38439f33ec8cdebcb4eed9309ae8d0d6e6a93c3ba1e76eb17c9f8b1c73d7c43bcbf350283ee551e1eb6ecf0d461ec65d9afca5c475f7468635735b5e36e8f68368b234ecf48535239e11a21bdc9057daa818f27059e216f2900f1bb6b1e550c0c4bad0e9dabd5f6162757b581b85f5f4fd9b75cb09b36054e0291aec39667dc5e6951521ab290543327282b820d1b5bbac2df49b829b3c5f5ce9baead0ea9dccae1dda1df18f95a65f61fbd0b41de511ff640b4d61ea13ee67c660d859cd1f46dc15fc919d53f38c9be4c9f44555498f2a2daf5e4870cb65438e7bfa335c8dca50ef9dc58780f40c617145e1fa109563759fe2d8f8a67238443ac2e124c466b7a14b0ce887e5564dda3d7d6f51879e3085230fe0ecb6275b8792c4bd744edff63d54c3a3fb8ba5434b1469982b764c37dc5e6b57fa02a08a25b57a7838a9cb81950e006ef44a233c535d9e1fd3402975c5af76a0a3bc6a86603320d19182dba5c08ceed1235acbef4070b118f0b285e479d984295a0a0f3f04ee75ca45e5b0bc8027f7abb8278ed7cf124d94f943f7289536a1fd6eb9955b7290a5396ae8be9c70e4fb1e179afc4188733a2f4d5f2b35d2ec1a5bb876945ecff68978253336699a6540963a77db326e5782784d781a19ba5c09b24cf90584be4092847a58cc711a399b02f9f50afa86df8d7d831986863b7fa49eaef7405df8d05523f019e645c82cf7f26cad148a089e58d1e16069f21886dc1bfb048e2d652f2fcf3d589870aac9e0bdefb1070b542ba30c1647bc2cae07ae2da2982ca5c70c38efdb8393a513a70712ec645b167aad62b6b4bf3a82ae046070647a484f3a568af8f650c69643fc63449f97c4fb275d85703a05faa59e47b9dc2c0447731010b823d992e15270e9aebf64c6da52c8285412078b7bceb1a39476d97b29e9f70faaa95a66a3745698bdd15b401f07bd5157c436c220566eefb1cd31774caa6e318701a6224bb93ccca9c00d4d10b97d7de391166a9dbedafd996ed6dbeeb403a6b3231d4cddb3c2f205dd3afca0000079f5d0d512c6eb394399896d62dae51baa5fe1d90637ac3ac12a09187f2e844d371efb62ef78c16285b80ecbc548aa91e2a2d5dfae24755a6ab9c9bc4562ae45e574661f59e1c6b950cf129b68dd6be91672495c580fa61d3311e42c21f3013927682f5a532f16a6d78ead4397c503756c6e31e6549cc56adac233aa1b2ecfbedf979d86eee9e8d9f6b4f8832770aeb2ddb10d2ef4e231c8da7e3133475aa254e8183ab3173b8c41e1c0d483d822417780c2e3a03de14e5d442ecdba54bfda1191d2c3c9d31f21a2f927f0ea01a900546c0c5412a4a81937cc923262e4d2ae287854d86a4a587e6b922942e6fede4989495b89f3380eb610965e416e23a3f7a62f188c5dc4d63396773de4ae03a978ee9568a3a093a84af4629d17306382899b5b015eb8d61df4153456b33b6b3235efaa0f7bc8cd8737a9b4375cafb104db7ecaf08005779e7195e97a34c12c800a8fcc22b844995990fbd30580c45f616bd6675d9f1617d68c83ba31885ec6318668998ad26096bffbfe7d2e8f6ed9295db4762619d69776c974d4f9d2087b0a3f7bd5ec8d8b274f42c0632eebf0d9e38c54db1564c58c512b2bd24d26252b0e81865ada91f62aed397b76cc2dde2c75a1c381deaa61cd398783d8de0a5fc0a4b27cb5e3732847be6f5e6ee43f9fcde4458f2a7aeaca90a9185cf918b2232f2c7f3db8a88380b5b9df4d1b8b6fb1e54f5c58088f032d328879f69430770aff7222c3c2ca497a967d9e92b3c4dee18cb3c2ecb581e08cb856d55d344cac088a03e96b8e90c540f3163f0c054e7dd37cf5d4a4bbf5e8dd643ce4d8f23df35939bd6c760495187a316686e118c6716dd6d3d942c79e586f93b26ef90bedbd168a5e922105fa80a8a417ad4dd51e8c3c7ae9d4a9bd66525b1b2abd80ed011387f6f0da79376e1e4c3bc37b5eacb09c22ca77b9d8f7907268c73a4f0faf0bcb2965971bcd87fcd4a6e6c145b6c3c52a1eec40934ee9e43d1cc2b7cef64482846cdcfb903c0e572e1b6aeb46dae32c9be567af5f04a6171c4bc673b7e586284c7050c2c087add7c57173addb7c0f87c6792a4d96e2fd20b68fd3df11b1ecc468f2c24c21aa171fa98acd167ebca57197e18eaef4ecbd5e5fadfeb43866a85673e42c044a5eb7934b954211ebdde7f69940194cd2cd872aae687751a0e68bd7c3c58d076f55407eadf1aba440143b81fc31d46732dd89c001cdf3a1803c06c9f4bc34629e4c9d08ec91221e235bccf923d3bc663d6d65e6a262c608512b857ef3cf5d074c2f74cf979badf114e78820451b0c7a287adc7ad6a93952c17b584c3c82f627213b10b4105432b500c9bcbd04db89fa342a73b03086270b2658999f99be9159fbb23dd3b2ee9a88f8d16dd7e8e3b99972a569f68dc78d6d330de2fe92209a06a94c9e2692992f7a5b7687915b5ebbc9854e6f4972b3581c7307c51d6d4745fc7368345894df73727f1f9718a197215614568e452c9388c082d6e9ee3ccae45e26aa2f6c2c66db525030351af39d5fc087c1ebb1dfdc4755dc253dbcb343410945c85611feaa32e928767184fd0ea1c7b3ede116470dcc1737183910a33759cc178d99de48604fa4e83934971f490c111aee1d117b9fb38afc89c5b768a36967d069ece38e15cb445520d1ac7e0a41d075a7c24e29aa1e7486606bed952998b3378b29ef8a5515bd5ec1db563822df87581f7472982222acb384e939007a565efad2bb0e7f392af5a4d80d3edbf8b5dec53201d2441d69f4b946307c865d1c3f8b449c46e4bd9695605ad31427c7933801d51d2416cf8d0e775cbc73f5587980d626bbed0e92d6762996508aa62f19a74053bfb2576df16190a2f90389272fba10b7aa5d86c3b37bd06c66e92f9182656a054cd33392dc288bd8de7294b18d621a4c7476d6cb5e628b509abce80565e046802699a564c7edb668c39d8f0732066cf350ad5a78b43d2c72d55d115bc20815a69edce8e1192e925c1798c33e013c6adc789024be68bbcfeca25ccbfbd45c4f0acc369cd6ccae3b71adbd9e1f7e705139b78b9557bfb4908d53a16e14e6a1e7ae6ec915d39910533346522c3edd7b19c52d8ec6452b4c85c089b9f91abb172835b406ae99caf027c6993a66d928c40ca8f7f2087422486f35c0001329789b89cce40be649b1330dae7154e8b1e0add56978c7d164d75347c825ed4d3614d9e77a41a12905a34e524a994f84357ed804ec3d31b4a5d1b5b25a6b7ee6527485b122dc4eef0efbf7d53f65c5beafde5ecf53163cf8e8e5408bd951cf0a00575302c065f0d403300fea5eb8277296c5ee2004cae041796fe1dd7d91f7a7bd67de883f74530847715f937a3f7c19dbd44ed174a137f8dd42e895916f077d6eda479e856407742b2eedda26fabd26d72f88d6dbf05c53a4840cabb6938e67b87dab77c8f0198185ce6b4a846a09561003c4756bdd7d85815b81c4fa9a9e2544a42a0d609974526b9ee7319638e1e3b6008410d6103fa51abb0585cc097d1e907dea3dc623c46e79e7e05d2a85a390eb050f385e3b179874c3722559b73ccf10e5f5301e4f044bd469a20de8f06584c5b4e2c1108074ec6934946532a6eebd0c2fd163e685f4bd33bbe6e98eadea183fc46331bb03cb9a79954a609b10e7ec81e11984f1c3578e9d85f4710a66083299aaef9b628548ab275778896faca6172bcaf2bce5c32b234b172a251a5f9cda4b1f36cf78f1879176c1f30acd9be5df205a4b70d0c0833b6f55ec114e7e716799b8ba27431d2e0db38b63dab2450e829df988a2b2cf49c0c1d3734d8d4e39d30d85b07adb50640f8d46f1a404654ec972c6312f5d01e274c870888cb93d2205ed303eb6378dbf173aabb38135a2f589ac47adabacc14af5ae609a4bb9cf2e9e1c6474c73d328ae3566c64629fca922f7b4a01a13090698d664784a1e2fca294459b1e30b51ef02a59444e824ad32174fd94d473cbd32c9b9b352537e918f18ccd313abb0118dc234b6b08cf02f11022b0d6062ae7b8c256bbba93eb4ee56a8565d24aaef966ea9027c2fe08b75a5bf6bc038b5183e7288d5d04eadc5b3636279bc4c47e8beea5efabb6732291dbbcaad96d86c86fdafb516066f37c0e597065319a91170e802985965c1f2d418925e96b2280f6d93dfd6708bfc7634b638b5e6c45267615fa19b4327b9b537d5af20d84689e06c2978c7796767b52585d63c6ed49d1009d0619ba5d540702d4c69df736b9dae7669e0b18e935c2b24a5478914a18a39ad4fc294369688bb5c412cf38372ff5a2d306c82f34074076d902955e75754acd05c093dd66a1d352cc85eec9d5df15b89264eb85e7b7333b017489fd9dca874356390acc2687ea34609b125457ec3bec4f5e747fb9c1c3ef6ff97269b711b1f9c923ca6c7898b138be679ccd08bbfa2b0dbce63ed8a2722588dbf0755d47cad078f013cbbb81c896a99997f5bdd52967ace10ddb47c62b31c2fe6c835786eda2cd0c8c53f740a670dd3d36226c7b1131993f8633697230196aae8849e04a5097e8702009049fcc1dc20100c05872fd4aa7c5bb0f811c0d56508196fbd042f986d85d4784c0227a71555a646914d040abba852ced048112fff0a51e353714c74e8fde181698abec3e96d7983a230a1b68822140e71a433cbd22099078bbd09e89a8925d16e9ac65af95a5195ab64d96769b13ec8e615d62de6adc04f185d26e3b65bcfa9302b7496f89db3d0f8a1018f3b3a0e730261adf8e05eb149d13094a2a044ca506517a8a906d43c9536165dc305f0401175ac7e9d1718f3d8b9bd96d917725764b230a8cf02a39481d65b7b47173c8d4c3c6804b8c59bdc43b3fd6f1a768c37096c422bad1b47fb3480b139f48b2054088b5143a4976cfcd162746de797be0b2b6839a7f521c035f3391ad6814a3f86b09463a440cb50237f2c2719a9a9b20385de7a4161048b62c58f50313fa65c77ba117c0334d4238ad2593df65d09ff68e383ca5adf7b5a1b527279c24bd91648d6b2b0cbe30d2b8f49660e382a6f3074d97a187d39890b8dceeb195965e6bc062691ed83df282885423531ca3efc783c3f20687b4469f3a986948a4ac1d67e11da7e155d3f7eecf684b1458bbef5d70574275d3a9f9518020581e4a612036944092d5eb370a348d630fd46127f54b281717d75e329eadf5e3e18d9b4d98067bca234595286542e8cdb3d295a6e62d20af104692f36691089d22a4806de9d6a12839c1249edfaf27b24c949937658df6c52c218b8bf65a13241723372bddabe50ee5c49265ccab1c6e20181ebb08aeb21243181a4fa73ff42616c3724eadf4ea28cc458fbb562c227fe7b6f354f6087954f96d16f70293a2dce8028454417a017233bb0e00a42e0d41805bd4211243780faaabf468f2dcfb109c80678f4f241d888c2d226043481f00d1748b91bc8320ccb8d9f34d621e60921613b659931ff97051baf3f3ce36eb9a4655a0919d7ee51790a2a90251887e194f47b417328d16328399509c46e5a29e92e59620b205bb3ac116c3baedbcc1b0c659097ed9919a93a09dac257fbf661204d200008f4c416e3b0e5073b792b3218134082ea4553b91e79832a62291120beccba6289735a1beef5cc2108f2aecb627c616d916041b08464ba0da11681e0e91ce705168dbb92b3205cbc0e455abe7566d7e0189799bd5f2c080179464e606366d5c11810f23747ed010a0d8817516b6331c59fa185d8278c05c871a904b8811039917b654867ac24d024ae12aed7013129d3b0ad62859c8303db22cb893c63540703c1dbcd5a746edd876ab4b467af649aad4d5a1d665a4228f9d42f51c3dca7926d008a420ac6ff842bb992525a1887b0617823cf23c162f46b7bd7e64e97469d2476dc6aaaf7a382d4c9b07cc5121e2fba067572af55da30bbdce8ebabf267684a3d1403c18438e63d490bd85f03efe263c7f1077b9a82ee0e905c44619055e55abca145561d92f029817861cd278f0822176b2b97f6e936012880c2c8216adf37e5f082c6273bcddf71389a75cc7bb9b763116a75d5aa06ea70482375144081446b71116960d7ad8429107d8e46b7ee38e65cde3925cdc7613c4b1c86f567205017221688f1bd3a0d92993796ca5b61ad63d59fe7f349d35d2b65c12401744805b88bb3e7886bb3bab9f7abfbf26256ca8dbe7d072cfa036b7009779af5ad75252188b6049d4099b20695bf18c36de3984155e7a0340c315f6a17378ad04022cb5cd7e6ff29d41b31768f1f588103fa3b30e3e3fd4e66ec2edcb00f05dc93f561dc7386eefb0e78c4cd6ddb4ca90d750650b2ff839fcbdbf35f025c55d7c46b0031f726f503ad56b092a0fa2cb8bbf31a9260000388f0a049e29d96cd9f8d81bf09479b11c2c8cab81eda6606d7fc14b0cbecd62964bd855555541f0d0c0a98320125620c5d05f0e04afad131f83ecc52c92ac5e385ba8dd12edccc3a8a3e10a11f2ad35b02af308b71615a041fd52d84ba10b33a79cfa0f3add9f26395f997d21bc1b3119a61ec70431ff23228d8f581f42cbbdadafb91ca31fd1e511ef900f552dc008d8332d0bcc2a4e094a83d18f08da3d7c91206f91d717349e660e36bc2355982b11ce6f58244004cb7e0795770d564d6fae886d38ef4491c20fabfabde0ffdef045ab4b989d3ae036669b425b4696c7952e2d4cc657660dd637b7b616c1033c62e196bc17701837e51c8662555feb812a6867a1f71b865979ff6d72b8d39b5c6136c862ec5fc4fde62d9eab832408c435e72bc552362215da84cf8902af0b4d8ed8e221221913142491e503e07044903b97f58192bb87e75faca971ea5db5c19f91f18f1777d2de08e8d0ed0fa01f9a3e7484be2a94659f3deb87df36f8cb1d2ee92fce63d61e5727779238bdb140feadc23524ba63fa9614e8abaa0dc025ff709d696497087ec6367e1480a0bddfc2e13a2ad881951f7e99b3e41f944d642d892b7deb24cd69ece29a7fa2ae27954eb8426a3c63f155118c166812f67e3b164fd3f78109d674ac13eccf540d3dbf1812d48b4a6e4f80b2fe3823daa6179d4e10e4221d196feb019c9ed4ae8ae0a01f2b3652f036fd0ec83771ae74495fd98482c00782141296c967ebef15eda405f15f2ecf8309b32bcc5d3e0595554c06445318d3169c70adb98260ba8866f82e034fb66bcbb7c12a8b385938508dc352c0c52f54e271c6a5b0c8babdd86979de5a4b99dff11eb9b967363de03c675120cf65258532b12bca48806f15e95e38fb02fbb75c5695d1675922c6c6bf1d48ccf82d2f7af331589adf3869f64218f6cda96b0b99cf017e5cec6f81b7461c54656eb83950585660fcc2d11de5d61dd04d248663d89e3f11273738a5e64c5663d12d4283664d83f0b239021b4f1ca10bdccc8d4c5cd98b04c00b04a52e959a359d16a2aa2a103f4123394c75ab485a9aee5c91abb5ca79acdac89fe44e387d5c36485379253f1808d21700e66fe8be6716c233614a37f61040c3df732c4abc679e4032bc8b66e022bdaced93f1ef4ffe3d173ad300273f9b83ead24cdb5958463fa3e95bd7fdacaaa3123f70fc76ea300239a60465aa4717f633fd7c6282ef83234856b67f0c774bdf7799d34e63a664c6a54c541e421f777e49d4ecd818984312cc5f61775bf45b6670b45d1f851356c7dcc675555e18a2e067de4f67ccc25a1d6d1c0204c6a9b8e9e4dd805de25cc824f02d300816257df9140816e82577d0ef09ee539c6d1d0a38fa6e44555644818bd1dfdefbd06292f99c71f474ca107741e524128d7faf01a755e9b7460727957f7e16ae54d422c716066de2699afb43cacfe2770b8bf838fb680b82f3f5cdb66297119ed5849163330119e92987df52ebdb9f9622d7409dd978fb02c23dc7effe8942975b372e897c17ecc35d5afad1370c5805b0c5306ccc360c636d9b243002c3724c256213c3510e1332f1e870b1a7c11ea3fa9ac2f06aa2d13f465a32c6b2f42098f92b7b45d2b3d392ac19c01603984219fbe31d14053bb76330d3f361bab22a1058225ba220abf93aecd3bb612dea1a68d43de9d4475248ebd9b308fd9edb29f41f75e917781577afc15a3f8a4cdb12f75c217e4c19b4cf3b0461415d73d31efceaa1eeba4248e8e98be8554711efcdc0a0b009b3599653f5a0feef0e3154743d2e418b06033ac337d8796b81c0d352d9c12a9e00a7d74dc4ce19fb79645451f05f7c3182f512fbbedb490238b6f451fc55723c4b7dc18ba5307be0e37ad45c67e2f04ac7a389c4c1aa905df022f4e1c5f2d28a2ec25da6b3c2af8ec44981b3e49b05b7203e934f7f008b3cc18b2c4e9ca6a833071f44474914c4b06a2166a2b4a1f7cc1b0cd0254b6893aeab9fad7cc99eb820b1177fb3c32e7025cb9ee42cd20c0bf3246b789067a33fc83c8629c2b8c1e17d0e5e67914e7a9cbdfce9e6d042bac7deb6e1279efa44dae8bf1f0c5cfa4a9c4effb376049678a6ad192c70e69ee17b305d6edd5f6a7e8dbeb3e04d03605a4ebb7e31134e525fdc5ecdc286a02939912711b885d779543457507ebc7928807712bd79177e8464cddc8848da63372dc33edb307081e00ac712fbe693fa467f3840d3d399632b1a40a24634a97adb0ecb0d7dcbf43d7a9004706e2b4e03c029c958c597e8585659086c0cfae404ebcb005ff39dbb707468165810973c743b260351ac3c1a1a76ffcc02b32d4d11bb235d825de091713e4bc0c4b16bf63159b77edd8001fc30f0b76cb49cad5e19829f1908026004ffd620f6b4708553a9196092207cfa425b57ed3a23bdc3570c67a8968c6436d55e6249b4dc3339416289052b18ab24832f8fec2e6821dc6c9670307dc9e59ad2491422b7b3f139f606af77db40b2156f1e0323124ff77508e960dd827877575376a94b47e813cd4070bb5092483d023caba9e7bcdf9cd64235bc3ac7f8d96749030cccbf739cd90ff32590ddb89c9f7e7663f1ded9986a95ac7735c1f6e1ccd19b6e3af1bbe03be79721ba6558f00da2b522227246e7e11e8407010cca2b3bc2f65f12691242fb5a4b46787e4ede86c2e2d4121293e4696cb1187a03278852658c91158a43b4755e3f22b82e184eea98e0647398ed124bbae297b3b23207215f27df404d802fbb37bfb63e47e77ea9de795ff8e46955c65a80a6c32ceadcda78a5671dfd3d27504d0b9183d66057e0e24112e397f6f7de9287a1f07a84c637c49bf4affd20a140805a72db3ebaaca5a2138d6dfd95393cc05ff669420f4b327d759085eaeefb7e9e69c70723468cb0a5a3b598010b39e171a7a79d268f3ce611faa6a497978c17a820fff1d871a706a16f9ec9988525bb1f0f85e604ad6957673356e733c7d79b9f10bbbdb03f7d0b395a137c27c1b5c17b06bf3543e884d78a6e2f2b7b87fb750854a17621e0a79e616afff2ee976371023ec028f3e2ebbeba39c9288e95528bd26068762bb15b2ad2cd48657f3ba9054ad9f24c6a61e828dfc00503395fe67a0d333157f5adc1786799180400fc65344bee1eec3caf3f4e178de8b3594ab97537ab2a8a133888b0cdaf88822e46f507266e1a04acf7f3cfe9ce2583d7cb84a79d95aefa8568fcdd5d7d48cddd27cef6e1b179ea35ba653d92c5a82218b8289bcd430285800132e6cf4cba84b4253e3e8c9c5fcf029f5a07efd66409d734da1b640e7a01653a360f1b4e7b42d515954374e246d096603717da56954d7439a5f45e476b12a49809133a072f458e2d79c3844d45ac0488c3ba504e10687f2bcbe702a8f6aa78c47b630a38a703cd69b395dc6b23be9dc2f9b6fa90389316b5d33df730cc66b72d10b59ec752f11ae5d85dc67e66b7c50393dd1270e5edf35178c694bb80297ecdacf55a9094b1db57f864cd7369c806a0120d17320c9aec3dc770283344d79786c4766f0911853d55dba0d3347623df68e97fdcd433eace771b5cedf12038f1261f641a0e4dec83a0255cd5d7633f2e9bf02b4343a0a8fd929573829a7b28af2af1b144075d240ca941fc52713b206c35bf4e1ab6168a424dcfc752ddc0654d7668ded3c7fe390f9ab2d5fa8dbf940764b7ce77e1b1a2c1b2d0f50a630433d9750f321d2e81b85b7f8e1233afa5e19e3e2b09683f80552795acfddad86b09e46872db25ec0cb9a23fdff2db761e048ae6caa785539619d153537f03cb416ced38a9420bf09121348e5a58292d6b644fb7c2b4e3925dbc61dcbcf4f52c7b5db705880da3af0b35f4664dd9d3876e94739b514652f0b08380332aaaeda1376109e9ef8a5f4871e8abe2b13814bf1cb56d10882a70822054c1c5e32add59a888c63f178c2696ae6e91e24b84b5886263ec91f045a70f26e9f58b5232949cdee4ef94576113bc689c22dcc21c776aeae944e95f4c6b9cc61d0c9e3530927fdc9e72a75f9264903fbfe32c1ade5947a8d62ce3adde6c57fbeb908bb3aba9c91e344223087686f237100d9d96d055584c095438514795728fcb2b18684de0baf69e9b0a486609b53a3f8321acd90f34407b82f9985e2a6ca180454c88b6c5a7c2bf1644112591d60dedb95055b951c32911f671e377d3877e70dd6d718640c6394bb81223c2fa6a4750fcae6805c3e81c81d3b7e5d586b5064397c0ca82641854b466576706c308cf9f8385539f815bce557502999245a62b3283e7572d02b39c63eac7e426544c6534e065085edfc47f18732b34014a2b2b7f916331543591d754c6d903200852c7624dd91b3cff24fb01ca6c9ac8458d892fb43f206619e6ca7d0e63a170d07d8936e2100a5b9fe375d2dd0db3a41f5676143e38e7cc8b8d70653d71af3fded0986ba250691fd20dfafa179b7498fe0bd1bdd1605a586856bb6deafe5c28df34d4fca0b243e80b25a5e75a0aee96243a863a701079afb5424de0834bc2d149c37da3e9b9dac7f842ac67694cd955dcc7a2ade10a9e7fead2a4e672d2e079c0237fe34971a1db8374a5b507db4117acd7d352c0b006ddfc9b07c93b003cf41fdc6437c09eac4ca1cf4c71f60b4cddd0da6d2d92d617d93966f14e6fd84db150640166fbab74a6d9c588d12924876d11701d6a3f8a333236c2ed4232c3b5ec531bea642bcc7293618416f1c44c68ee3e621d868528f908823c964a553818641bae7985dd199fad7ef640ed6836bcd4a997d19bbe7b6318b64c243ffef97b84eeada50355e7681b524ee5ec67ec11e41acc1d5caf358c92586da8765480d30f0886427a943c552daa2333fc6d134adedb26133908571e602f9065b0b66a1b39a87e82b4e7c02657aa2929afb9f0d81d86d2c4907bc24754efe73f549164b1041d04c746287d127e3b06fb31763319c24716daf6b5d53588d2aea5b3ccf3dd377ddf5f677960f2210fb6873fb8df79c174bdb532cdeea68c4b4710c2eaec81ae50ccd737f2e3f636f5ee4fb8639e7544c3ba33e95a9b40594317607627482a9d11b77863628bfd71d93b454c76311f6373cbc584637e0f7335619e429441ad97133d7877b0a7c93a767e7a87ddec53d720b92b9e4beef29e4e2c7dcba3aae6bf5ec801f74b9baf29d404c0320a1a65216c5785e87a4303e8709cf3883512dd61311e59b8a810ffb29212a7fdb5e2a93e5560d54cf4fed4a46685ff58b9f2b5cc4eb0bb171c358014421012ed893d2eeda0bfac9842d7057edef491e426fe34d7501b48e726abf8d914d83cebc3de2eab1546c83dbb74d790095e85bd50c30b80b4a9f78b0901862720c509a55eb0efee6adbecf7106dafc92c195d1c537c80c4df07e706daca728b580b25750c825dce81b5f0efcac6dd283120047a7f9c81a9a3bc3f7dca057da7c47e3f68cafc8e7a03f83c937534dc9e168576e6f4ec69fe5df6e442b1c5d3f6b2a4c10d5864e15aba35c5a14847818b9aa7fe041cd704f8b58af90c855ba5652a30f012d0a0e417db7164615d698b8a42a365c1e82fc36a5c40a3656e120ffc21e701e1a8236bd98f6a5d08cca21da82ab4fc9e68ab1dee0ed90aa5429d246fde9af04cb7431a70e4bba6637ac48f2c846900a864198b983ebf2e841cb10ed3ec8dde7cce86579f63900f769650388edd814cba0a01caf098db626b2dca2e0419772a2323022ced4eb099ccba29a804991a15dfa31e1f5aaf2b4b7b3613076d3c955d327cf817083b88d01ae7b5cacef718da507bbf91b4c717eaf105feb0d2d5969ccd69544b14b695f007b2da53c1665a5e12b62d4d7cccbd0543a51d1e0ffa584d773ec4158c482f4e332fadf4c76dc384401147610ded93b33aa7e1517493d1b88e6036759dfa46ef2e8f6f8f2f996ff01ec9be92aa24f2b81597ac500f26e9f3bc0a340ec58e2452291cfc768ce24ff01551b6f9181266859971d235d5ed2a70d4209c104b51151c651e256c4f69e8ea98129aa620e080cf3895d5b76249a50851d85a70594b3e5376c9134351f42388b4acc47a214be4d82c8b97dd447760a798dfba9d822fce4615ae7770a036124588f5ec66844491cc9cbee3c598604bf99ae0e2cec74e8803dab59ef89703fc45eaf3a1f777787045c6652d7e5ec5d37e1259254fd8d554555753ddf57f6deabdd18f088475cac9a1dd035d4d743df9ad41eaa5f92725e3ec275e916db2630a6846bab17e633cebf571f79053516c57f14d62b9d1e849571af500e6dd080a9479ea3319943cf74fb8428f010575e8c586d01de6623298751e70b4f58f055e5b641e578f1b3cf3f5586b78257a5e5b74bda937a1146092251ca47fa2a128db439dd8aaf501a8ad22467ea5f685ff6af15a47ac4ab637b5aca145ed107a4de872eaa9462296cbac5fa8cf513cacb0695754b0e2329aff5c3352da04117365f520d20d798118ae94f1586eaf5d5596ae04fdca0294758ec1ef7d6e303451afe5d660b9ccce5089662b7292270e80b62cb9ad7dcf8408887273df1a05c5143b1a781f2f2b68e3ee5cc90f0de238fae1347c5e283de2d7028f631cf7771feab1de354a8aa3db79056da08ab285c79b987b6b891eb8adba92dac5a8f0f47127c3f41f77da6a687dc98ebaa9c89d41c2aa98b96882d8dbcd72bbe14a0eb9320ab7a89cb82c888ea8d7bf2f46429e497f26fba7db451c6984caa557803bb3b0ac056d6f57413c503226f53d8637322174cb2cbf9f95c077d2ab9d99c92c236f18803e004877f1fb8220b514c849e51ef72f0ef7aed300411725f88c7a86d034c580fb86f13702a8e80dec676908e87799c7b1674dee4096d73f86179b4afdf3e75fc7380cefc8e648c9287cd328e6b56085b631766bec984cfaf0d2d532f677312427796b4cf4783a1e28cbf841186011a485e600f0be41380c386d75f5cc878dcbf426d77da61be6d81517d98c8a582979020e5cd7859234b2051bfcbea12f353566a9628d8983e6ac122d0baa7070c83aa8ea825de27f352cd0c6b314a5c1ff6601be1cbe019bbb7db1c938acfc90603d42e92d7febe0173ee5f48babe1917ae3de21d6bfd3fca55e12df0ca330acea0aa2bfb54b1dc6361b9f02d67546aabeb9cc2210b2a2c19ec9cc2de86cdccc150d9ec3324c3ea1275913276a2f29eb8b943f805bd8db6f5cd6673dfd3ca01102b9fb43abee59faafdac044661ee22a68ba403de871abaa8a2ab0da466adf34b023d2dad711aea8bb4023ad24c98152761fc89a5169fe49728c38423f89b8c85b35ac711253e028195a8484da2099d9d0e563acc9e526ed7a0c7deb5848411ca1dc8cc69693a9db72517376d50204c8d0111953e14b0878851f47d9cdf1250f5f663ca3818f145aefd1cd575a77538ae72f3f6d09944da3c0f2f22022cf241904b0dde453873bf0e4a2ed2a6c60cd1949db656f6b2c2600dca487aaa4ecc029e2453a28cc36023f53a6b195dbaefc86fe6ad155453f7d7ce81c0c75b113344229c0ea66cae6d59e8ac499b0f99b1cf154747cd713ca07f3a13c43abc1b9edeae80795e1e0b17502ae7db32f4f5a0f276fdbac4bd9ed0dd518df143990f2656ff0fa8af3232bc8e4448eb03a7eae6cf3cb10a8df8d1b15c71ca62bd05b06cb770d088abb99d5ba99b43e9204af7ff3527365d3401821f4f551284840741c1ada3bcf71dca27771cb62b65136afeb2488a2e7af87cae62dbd9765f8670b0daa6e9740fb93dc31ff00708fa5cba26e38146e9e79f24bee0ee462ee071e0fb1de67aa31c5b35038569fb7c177dba48cd49e3ed10ec34adbeeda3f1f2667a6cabc56f853e383bc0a9da429dc9f679169f2abbb49002048dd3a20e484eb8c678de2f3a67c17609d4dba3d7c9004292e12907957529f3c0c86c20bb328a899270a077f0d39e9d5849026348d583c88147ea21d85e931ec7bdebef5c5df58b1a4364320ec5dbaad1969797ee9e27ee2396175f20cf286677c367fe35cccd3581f6a463327cf899cf22b98d53c753f539d0f719e54140156b848e0f3a0f12464ebb083e813fec348ca582cbc088f062b1946bf96630b4a07605753e4fd9b9152eebaa29028ac483f24e8f15577b6cd1e2c8668a582768f9a5b61ba8db873795745cf784439b97fd074666825ea6a596f35fb306c6adc364daf5ff081fe0c4658f47858eea2572c8060b283299925b1da16c5b60acd0582c6e85515cb9d3fac7860cb7523ad1e386593d083d4deb39a709ca6010d5be1701dfb228360fdf8d97a07f8e9234a6eadb1264de592db27923be27969d134c4ce55c438ce5c53b4cb3baad0731add8b8ecbb67b190d5382d05774a1e4f12568811660a5eb6084d65ba98e2cc1096e3e7d24ea59764acc7d59b1907b9a6be101e08592a3f3c5cfa8862b9d930669115657634625af2b52598ca0def46f110de793ad049e0955fa738a0e2ad193f80e1a3856780251239353fc32491c882dfec87c99c7d3c8c027fea683c071383e9776d8d04636091104bcc8274ff643e01b9838b461fd8d5b11b27522b9af30ff6cc7f9b5e0fa7e48d840257a90161ea4110e64355866cb825a443925617c8984734b0f95d409d4dc28b083faddbaaf2537d4a55bdf8966138a2027d39d9ae94ca8ac008bdffc4e42e4d8d966319987e80ca5e9e5b8bc9e262f37bfbefda5a81b37250ca24834d3f1bb8816c3869ab6d5e20ebb38a594fbbc4151c86ff907a3ca4abfe35ff6a151ae73b4305b1271dc989b16482794448be1f083af02700c3b12fedac433a78ba437731afd1b2981ca820edded8b81c2f30d034ced07a3174c1c9e4f6a9f6bf17c9d8b2fa5317454f705eb67617ae7ec23cfa02a321f4217086579f6f7c254da55285d5c17df50533f437926e16736e45b18744fa92baacff892b398c7616ed68e78f707d1e0957763111084d10508f5ca125b1b1062336ff7ab149ce9e79963f7cc850a949cbbf6ede77dd87b26362a33163895510867823c6d96fbe0a126418e1c0ee2edb15976a9545f684603c1e17bb89667a58ba12737022b6f71ba929f1a33d6002272bc5b13735985c6d2150ea8b936d490f0770d94a5bf280d20e881e0a2724d14d16ec61b6e30604a9276d58da15a5e8dd9d7e5e5805ccf624d9717087e9369c04fb05eb28f5359c30940cca72b1c2a4fefd55427c491888045381c59048210448443bc893e7220e2199a714bf03ef540d138f824ce84b44e76569c35e123d5f0798cf9e7a79d8783234501e5136a7a0b0c504483c2631e5743d9f49f2f050400504e6687ef63e1608b45cc2d9504c29ff55f1eee66581bf481f8428763e249c5cee13ec5825f0366bc743696462d5edb4d4ca53d6876733b0b5510ea33c38bf4434c0636c4fd1894449e7028356fc9bcd95ef56a4bdd4ef2a3bf644a908c7925d00a37962436bfed430a1c8478042f2835c802208b158ef5c6bfa5cb07e607033f431696455e69a51f7f853e4acd8193249099145014db664e0b515ce8eaccdd68c42d110237c2d1db4dbf34789150d97a2a74e8134a956df4c1708190237efe06838ab8ad0def7eeb6a3ce090ac796302ee1651a2d7012c146184c7bf78d2007d926bfadd17878d0a36090d66f3c5357500b89722f4ed98c593202cfeb99c7bcb4a5739dae1aeac20ba49678a48099d3011e877c96419ddec0b049260667d833f23e17b8ffdcb7ed14b78aa513e9b895a061f67cfd7e76c6deb7debd92f0a95d21aa462ecb679b86f7dd690050ad3b92bcf3bf852f5510ec2316b920231b3688352b70bd8a0f0e1a4d348070cdbad604ff3e0dbf781412331c0ac3d643f4816c146ebb544e3b545e71e5c399683edeb3bbb3959932c916044c8caf3238a19ea395ffb31b234dba0d91b8b1ca3ea9b85708f5b2acbef6febcc0b6665db98081743caa2f9ff6ffe119c57728ef2020125321938a55286f5cb0e16b15374daf43bb3113fb383c4297c9a10f820cb87a2ea6936b9463d2555d872ee3afaf0f35b573e7fc1a720128f80cb10ea61aa321377e7b2f6b6652532db52f02f702481d1cd6f6e47d787af815e6c972dde2f40d5335335fcb23ae0e6379e9c279f18774eda05d845585d44e8932256bdb35bc2eb9eb53a50272728e3be753860f365f4e3eecb466f657b69b5ecdec9a3402b6c9f71a7af83ba21ab5f9ddcadab4a81a6606deb5158cfadc52e945c839ff69eb64c1929eb3eec0d87c94a0b5bdfbaeaf2193e700e7646135469ca873d1d487a6ea3171bec66ec3299e99be9123bddd621068a423c894f0680db0680d585fa5b8f8f590926c65a18f53a9418dba36b4e77870f1deb834e3c715b368fc13e6e5b70d8269edee41a54d62058d83480859c627dc713eaee6a82203c5c1ef41567aefefb8f5f5a77196dd4e6fa5e9ddda3da484ac9cf3b87f8259de2799c6de808876de36b752eb7f98f2e9f3dabc0a75b320d9314589a011e85ac3c44ef25961da7529f1f1a82f093b7c420d7f2ec3b5b5dba8227da5d5026dd5c6314f2aa927e4289c4cc822e12e92829716fe5e4c5c2068f4bd439fcd6a0e2b13084c10ac9862f41304b92a5bcf653567e21ce9981c9f21cd27005e5b2a79190ead9e41b8c2ee7abea45575101735b2891dd96f42b7d4171d76282e9341c4010578deb9a1b49c006b97b39e7b6a3e6379ac5112d2399992420667638f78ccde1f369c9cfdcff369fe584527ee0236031fafcb6eda6ac7c1b1cc2d0c482060bb40a08879017a228aae4693b28bc4ba9d675c190564e1e7085c6ee170aab590cdc3de9ec843464169715e25c3d15b4ff80da965112b0b2ce3adc259ef7f4d5ffeda95f607cff6e43f01f9e6bcb1ab8fcbbca236e1f7a5b27be9d0441ca928b13e546765d228a271a2532f3de05fd15dc5abbe157f959089a8650f47bd0ef34f0124d5eea4ccc7e7413c19c250308d7206bb539588fa03f874c4e501ae4ef6f410fd2a700a0dab613ad743c418a1b32a191e52cdf5252e3370d801a8c55e76562f48bf99fbbec1dc6da24ec5e342fd95d4b0bb34b8127597c3ecc2226065842dd43e358916f0e5a9139c694b9ca2e8802295eb19fcf571de8c4d1304bd76f0b21f19891bd6917cd7ff1406b7d07b848cef16492248b2c1461ba371a9a66e50d3cd0d5c2cb12a5039739988421dbb11e9a766eef3b77e987516fe6f298b546f7cf07bf5d8d0f8ec07cfac335965e6190b2ce12b097eba0a5317a81f243b0528a262c99d42a9feb8c48555131f595aa2cb004270cb84847e07fccf9287d06ce9a942c276b3f0d74fef0426aee5c7246711b4010c8a9a41903536d268c788da26f7f1a11396781f23765c9def2ee5b0592df00d3a3714d14d2aca7e1dc90cc77f6261afc16baca20cde4c0df58c943cd6d89e969ac92443c87c63a88f95014a015e03bc65d5fa2075549c79611401b8fba0815b21ce38cc2fe885295c6d225f6e82e6b3d2abec67098cdb6e64058878ac752efe722055d45031e5bfc82d1237eeaee7e0daea482328cd952ccd168674efa804396f18c077d1d72d3ce3a3073c19d1975fc89c39247e246d2c7f0580b623c4bc280e770bb2cf899e5115515604b47b87b024c5e48664dde2c24ec15313a0db8e9e0fb1c16f4f904d32578855b891efc4762d47eca3c710509af654d0405be8e728c079c3e8ea71d0c1ee5542546c2cba8a05e9789bf778509943d48c92dd7612deba627b512434c10a6dd1748fdbd1014253ccf3d4d5dbf2143e7103c52f3b3f155cf7f330fd378aface29d306b391de41e25d04b727442169d75f4df4660f0c9a877bdc1f27ff59f0845e0634b69dd9f9e52ef0d3a95f172b63f9df5eac0e0254ee03f4a4b2445a9048743200d9e08f9b10510aa1546c20247a35a0683986d7bcf081983daf828c7156ac450ad8aece06fcc3e4ae723eb333ec31109c81e283a3f2e9e49394d0db425bc11611832843ec902a1f1338a145f1b7919d85cf3ca8b5cef31bde9a0928b278790a308052739490649b94412af48bef0226a4837227290932c501024fef1530576fc008363be872dca0a96de571ce3cca7aa5c1f200aeb6a06cefa8267c6394c6ae5d4c0f275b3ad75d39dd507e45d9f8570262787eeaa49885d626a2e7ddead957d067843d91d134480694298dec43b991ea19b89a1f6a4deebd78264c1bb386032ad131c4908f37865b8daa6e38295f22fd1c6b92c2af4910e5fa8fbf9908e2db53a15a24a7bf66865e06c19ca673f833900f294154af2edb2a70fbf13d9f6f064acec499e2e3bdeda329e39370dcd86710460b155b8086ec0b6ed1b1040b09cbeefa1804173f36d68855b01327f9e3ec00c423aca892185938b603a88addd5a06ae600c5a865b084cf6858932ccd9573a96e36197e5f048936fcc90cba85be903aceabb20cbdb1145de81135dae2e68f3bcd4d3d86628e6f8751d44ccd736d406655eb391187dc574d72755fab75a3577d619a0640abeeea8d5aa2acbc2a3ae962176e7838ac1e9e5f009f69bd9921314473f24c758d10bced1008056a6ba1d1177184b8528fb73fb1d1d69f3b86a4c0bf45ad8189f9384d01f35d7d29f218948fab1d4df1880325db4c1af875ae2928ea16180a724ab705e4579ebbaf488fe73ee3e973e23c6b8fba3f4963b8af03718534fe1b2829aafa752975e815f17c014cc7414040b6b81791bfc993f29e94e93e106919579790d7fd89c4bbe04aecadc327dffbcd17b0f9c310fd642d970d0573087a1bda17c9ee50d38d079f648c1e741ed016fa886ae3cd62f51fa213f07bf7d91735b21932fa2cd4d756adbcee81c03385fdf68053332524c7e20c8e294b910019ecd8838ea232ad0fe34c1c1556d29bc35464cb284ae8bfe52603faaebea5ae8673020cfff1a57d516bffdf99b3487b556b37c8395374772645c56f4b9071852e684cfd933f5fba4a445c226b2343c458b49c5dd5aca862bd34927302c928c13a9f204de993750c2e0ec05d58307311874c16a9b2ec4b66a9f099c18f56c0583351b1e7470c4237006e81d051559074787139815470bdb636e2377612187e942ee272ed6e4bad696405313c07e28bb990963f210b69369afc68aa47a1f49851b2225edc1f61c9f3311c2e8b221f7c67c2eece1ad52f387889d14739ce2ac62ec714914347104d33100da7cb8852fe233adecc75435bcb6c0c44bca10500898c1da88dae4d20f91e137ebe634affd3446822d5da8b9216c5445b3f849cda7436eb052ba4d4fe805f82abe847f1ed758068b046051994f9dbb8f5b635d6bc3ddb0239d341afd5b629e90a0796725008036759cfabe8b2a9a5d780c476d669216c3ed2c3ea06abd1733e410eef3aaaa50b8becbdf60f43ed7763786daf6e6a140d4c85a360f438eacf515902c767bdd160675e3587b5ead8284ed06ed249355cab88641d3b35673385d546a61e5b4e6b950b0d2a1cf2af0dbf13a9a054c09836234418f8cbd59544c4736dcb03c86ea7b6cdf89f9175f8c6a0303ab7320e3b6b8bae42f4cfe58fa4dbdb7f4acefd45b28901691c1f90faa548c12f1d4400a987ccaaedea528c56b8365b002204d13e9535da079ce27165559b95c6eb17dd368b008a209c5d20e28de973ae6aea16048ef0006da98ed8ba715f7154d08ce4154b8d38e744b5098da5d4d5ee3c586ebeef97618f8eb7f5f35e8c27e12118bd95e711dcc6dd360607a8a7a94f6cdcafdba05691726bc92a326504dae27551fe2deebc7f94d133516b8e057667d094542f47716c263f20e0150f51567b5395d4e2b15df9845f096a217d8b5e8065f57238b29ff2bdcc9a6d2256fd236f47fd33a0c41bd1e37115958e4332f4b4485dc0dccc0607457fcea40f0a079c8a51bc3e63a836623e36a377566b95a09d0aa75ea128845e21fe8c798c397dd1f3d533b43152529420158d65ecd023afe426c154155fabe2a7324025366cd54521c732bd4069e36ee186c2f35e3831070386c51f2ec99935ef41a24ca3af87a43f15c801c4d1c8510f4f19d1d21036d3f6b6b2697fc5c1ba9c3403996223e746106804b2d7a2b75acac987d04b8a32666f115fafe72d222e518ac2e27869d1712361d887866fbb208257649196795e108419b766473205c6a25878f1a7236caa1b7f8ebb6d19724b76226cc2e4663d2ab0cea25b782107dff09b4c517da21de24f848fc60e7de2f4ce97b75c7a15575d55595fd25d570a56910cbb5c5a7cbcb7f3cdbb89f99160d70136aff4704afe566194ad228498ddef75151a387f0e5c13914b6d36dd2cbd600e66c07e5066f1167318afac3395fa47b4ed9285f2884688e9c750ad38ba1291ec3318cdf48cc61aa83c02ba9ec82a6bac9d3a52e7874b9c961e75342df72a2f1274c69ebb4494676c91df79959eeb5d8da7d47364c4706c0cf8d35ba0a597bc4ac06ba999b315dbd2975a4fc5cdf6b73afa576c7b01406258e69035593676ba387ad7283cb8d321e5bfe066ebc6f6ed3f97c096e659155d2baa952e7a043bfc8c7cd6f36162d01fea5e09a058e651874240d8cccb9ccbf3b553ae7c7f22768b94e869c9c225f48979732b3d1d4f520167811c0b58b6cbb6a73584350514b20b3b38ca0e9ee4cd8301d3d4085d2a04c636864d495fe53453a9df1c57594cbfedecff89cde9c76eaebf31e370427d1e12e4e6a055f84780ae01438b70dd19e8cc471a071add5f760ceadd6e0bea8b41e07e48a80f04424bf7634f19119c147863dbb4ce01594e321ca60a3c6d90ca8a09a08d38cdf991301d830e53a81fac38f99ee0006989918fac5c4594e40fa2140ea22c3f7d682e5821f9969857a4f8be804154eaee51b639ee3527929a6a79d3cc90f2782df16a46bec7c90b07c702449c8581b4df69506528ecbcead0c9eeb4c47513daa2622738a3566c1478116259897f6fa8421e9c7413d172980dc4d6b30979300b48d60a8d6a5572d60ceca8710ecb4f659bf2792306a3f96383a4a7b5053f2526c19733bc931922c6f74da1218c9048298c4760cde7c4b9262842dd70e48d7e1aaabb82d1a5e1c70014130427e3028b091f46c35b6766e2779a2190aa272f099cc15a804aa006ac946d06a960c49ff887aaa98a620881d829915d965615606f6f6b7bcd4c9a5bc0460730f30c3a0700123a660b69f0c6675cb45b57d5fbf9ca12b3cc0305e8be69287158c1d9ae1040801dc6da3bae9ee302df8956228e49e6e61868bbaa7e19ddb461dfc75119563d8d183ccc53184a6658c4cb1ca01a3e9b0a201aeeb28b62a4b9a3dbfe4daf5b6f132e91f3cb6752973ce6f25aeaa924d6830a053cfa55cd70896a7c80ebe37ec0a88b0081ec19126a5377512763194a8e5b63c78ef300c979b034eac8f992aaf6756515bd5065f6bd20f099c55569328259a422568697bf172526f833538e35e0497b68bcd0c04ff09ee5358c62a824fb2248b9fe535ca12b15d23cb3a90384cf44e7d45ab4453585db05299037ab020ae60a121cfeef22b3bf622b827e80b851a5dba3c782621636229650b0d58c44db5229b7e39caad502b1b736b8c42d84ae2c17749728b3276fe778e5887a3ef0771fd520f45806fff3d73f39baffdb627e658dfc5b4dd9423d0fd36cc45d437bfb99d39c1d2efa64c2b4126af86ccfdf78879f2657cbc9b5854f8daaacc9c50c8237eca0d4dd32c640310cf6c52d81ed332a41f48e312331f2e234f6338c1f6c43511fec85a792670b97d67015b2a34fd4c614c3dc665fd2a4afddf3a40c00441817016a80b158ca3cae29ad5f98563900e1ab5789f502103e03ea96dab61147fdd3403825ae06b8b9944182dc9df1347730cabc25ce8f2094f027d6044d72935bfb68e9086e177ce5c81d2e129e07b2c45099c5d76a6537efb5385fee705535d5e5ba78c5ae10e2a84d9b42bd42c243a7c2a64ec67e622b84fa88e02715a9bf1525bc9120bd8f49147eeb5850887739f7a1e87f2d49eb33f21ee24d7e2174de59ca58f99d2dc7166be39d5a09d9d235295223f39262384c629804f95d914910d76f30a1eb7a7e4d2ef002b2cf7d4443bd17de6a738aa618ff0b21e25f6760eb168b034455137d2c54e2a1c8777a5804d0e0bc30fd30f4246b4fc3ec6364d28264b34ec21a7df873e1f77fd3892e392c0d9e8e89cd08184d1b9fd4542386cef7f3b0f900fa2796f8fdfde29368bb6d52e47e82b1b71e20a3c2d895d7637e5a09c23602740c06887639b8655f75c47beb171560e063b2068567223207b968979bd511cfb946c0ae05f151494492b18f6d9b89a8b720f028e23cfc3f128989789985293181b05491d8dfae7428f5f01585de5b48aadd6ae81759cb268c3eeabbf4bff65d91a9e57da802704901ef891f83e84279aeeb61e55577ad5c4bb7097da8f8ff85b95f82985db5348e52c0d60324114a69808d03492715e2f59d73ea92df34fed81e4b37f4907db5fabdc4c08aacf881d278435be760cfbe9621e013d14957ad0e21d1ac4c432ebf47d22cfb068fab88b55d2aa2de2ef07d33b24e739f423c2638b3e801ee1173492c684841983896f03a1149c7017a4a1353b3254376c9b19df9d0c2639c78471ac1337308339306de9e9ebcabc0a633787eb4c1e2bf9d43e5cbd6ad8af32effc3bb7bbfb31bc7ae65ae926b4f8b7f5668332d7328c1b1c6e0b6d90169cfe9df1172c81dc4f7b4106e1401e45804e105d209ce80b21b3c256c98887ed44a76c7b3a36f9576bfd8753a26a61d640dfea65517c2def006b301c7b415e3792db534c9dc3842c76bbacc807a62858cdfc93cae2f93275f4095598f47ddec4b40b0bf57040eee6b1054bd5b9c1caae771dbfb22845f875d96c5471bddcc3f1a5618783a4bbaa4066f8875ac9e4578dc889f83b7f0e8efebc8cfd01d31401a6e6c1c6f03b7886b71b48d394797d6506db7eed22b6db94dbee2a6d47b5c1e14c4cf9e8a8fc09ea49b56064121efeafc3005bc5cd3afea0f38721acc2d885d5d4cf606c538e8dda716c3fdf6b6c0d7dcf050e411d1d48dd558c7491888da9be53ff1a0f1271eb4429d0daabf7726ed07abdbac86e92bfef92547986f976736761e0440b4516e3b3e69899dbcb656ddb55db413def5495e799c6137a9b165416be77715e3bfadbe0e9a9f0c24d60631de7d5f4080bcdf927073ea519ae9ec2230d3e32980043224b0aad44228c2667f7470233b2721a325f2d2dea4e55432099c85fc5b7f9af0dbd76d7bf796f9ef148e20ca351648bcd197656712b91622a551c40223fd44459fc7068f3d83b6ca0ac266c04afd7a685f71f11c1b4ff8c693e3cba71fc8fa5b3d6d996dba2e80551e056e26e0f4e87bb3b577ff27effe949d8c5cc9a63243b7b3d844822579c3a75ad6bb3928254759cbc9091587781f9116f86d5064cc5708cf50ef08790009680d32d61e4fd80bd58a9001ded6a9849dd1e3e23c38a98d74130df5882a6febad62cf88a237463bf892b20aee00be9e0b5cc3c8b5c4a828756d4840baf20c4c18565cc33fddd5c334a8fd39ecb168fd6f2db33e986342409fba1bd1c382292aacb2a9aa4335e0227c7a2797d8d7e0025b2f6cd7b6268fe76b309cb04771cd611a5afc42d52dddb3548b72037e7673d82b8fb68fb2aa50829a55fe2b5198f05acd29fea93b0443a7a5d66f628bf8a8ed664218c06a80b2d6550d2dcf54d70594bebc56778959677645835e8c83cacacbd9832b910b6365975178a7a285f81050b7b1843d8d215392e7c04dd901daa40aa1cb35e1a35f7b55badcabcd89f2d677a676949f2e707c700cdbbaabda1b23a7a476f098b6376f386aa18068bcc60bdcbcb45048dc8971a6e1b561bfc438abe96cd15586b144b40095b6020b34f145dd1dd05c497bfc30f8b4d2bdb7167245cf47dfbd9352bc44b2657533d856d026e1bf2556454e3adb02a9786455600b97e256756ebb67b6d3b03b2f7236f5a1681e87d4edd8576c89a4182a795688669416cc1a94a19e086d0f69de573018fe9de161f0452e803e26702e0f1240b54618035dae85b66e4eaeca4982d5be842a60e5f59476b04466046f68b53a5f9a5a1b5066bc831184f49c11602595f869fa75184e868dc4f75d9d65b6bfb4546b53a46e519882b2ad058a173ea050591a4e572bb6d683937842b49381aaab6900bf6f0cca1e06665a7c87b8fa90299a62abb71654ad595987aa24b800ab5327d68dd67b07e7834888cd2bdb0dafdd096cadac15fc3f70ae1a489b5b3a0f75fbe020c9ea15a91a9bd5dd6467d9016d3ed76cc432a998de806257559adc7e9483453012456780783b124b6853570735072f38830bb10717bf396b28587a1dd4f141c88e1bb81035c066356bfc8373155e62bd4c768ceaa289cd30f39d3f96421a68f585cb0d02d539b514ae969a7a2164f83171c87d6ce8997dc5015d80e34b3d058bda69941f87a20ece8069daa203845183945184e5e27f12b638ffb630ce1da6deb4ac32fac9776ddb4bc73354c0cddc8e4586145b725d0867db33b4b6c2a61ffbae49685ec8c96e8d229e0add812116e2bc698d72225aa6a4cf0b840e4ce99da1199f38b371a8e5d85dd9596d3da04fbe81347d148015553da61a6e68829b0cb727844c10f02d10f7c34561946e133eac8ef7508dca2e4d0ef5a2cd8a7c912c481c1798fee689958a265170ca2ad61b8d38201093db1be248f7325b7eada778007005509b879ad6786ffaa527c5c2004d2c15f69ef9ce36a117986616a46180427f0a812406391f66efb6e0d8703184c22ca24b2bb79baa64f6c0aeb2a3dc6a2f13da40ca6e01310841606f4486af241317fcdcd1277ddd72ecb2197646e86da861051d118a01466b0fb2ebc211c78b7c63085dc5f09a12fb80101d515800da24ac7d48f746f02972ccb9a2ca12f79847e277a42ca8f60bc4b611e40bc3337cfad70b416aa6e23c8dc4d5e2ded95cf3b5b5ed879ad2324bd038c5e778ec6e1f0350127135309bd8f10dd2b99bf4a8c3e6ae704726eaa738b155c3150b08c5c218e04480078f6257b5e3480937c4a52bdcabaf303582f1c331003c0dd1d0eaa9d55ae9664621757d0e4bb140966e0ef053a8c678887bc9af22b5b9c002ba458e49bcf6f2cae583a24da393318b3cb4287a72f051f19e8d38ee203d0aed97790bad610ee70337c7363fa248564aa786f1f72a2996d0984a902f06c42859abfc4e6f71020a656b4a3e8aab8115be92a04b245fc70ca22db213743e9509fff7045ba1275a041f0b4b5ab3f000f761c5301ee8fa9aa0b0b3533242f52c76d98a48d3a1def9674d03a6fa09b5719382c3798a3d1fb78c9f861c72f1bce10215a470bf1048f1a07deaa11db780975d2bc473b1038d04b06f96f2ba121390f2397f643cb13b4b30ccc64ec3e91e9336122fdea42286bc6b1fd6932abc2d77d49e8675bb1d2dbb257cd6046a030bd4b274943314a6769858fde0c3c8340f20643534137875641034997c261ee2a576af624e8dcbcf38a785dbf7cdb3a39fc685f876ce93922299c0e533c50c84b884b1efc7cc18d3799f2ec76cf8250201d7022b8f9a4abf740e2cf2beaba42aa4efeb2bcacece6a008b208a76ce843e2d1cf63c95b83c548de6bd8729a1ae7ccd37308baf20729866dd08fca493f1c091208721e5922420d4f28c0470d62497fe5c2307706e3bad76e98485a6cc898c834df2058cbb8afc6cbc2864a7480f28411112904472860dd28c5ea25c72fdbd4d35e0e3a7372ba6a3d57fa6e74b8cfa8e402ee1e221a1e10f22f84b7edf20d4e457fa5884f3328df8864f970f056862a40ca96717887254e46c0b8d301d295bffa89bd540292098a421a4d1042ccc4ea2ac5bf46795ceb722055d744c07d64a9f1e592e90e540b8b6233137de8206114e685c17b299c61f127b38fc0cecae0c1e4849195fddbe8d42920fbeb9deb36775ba0ad2c2e6feab09af2e06e3b395bbea299b3e5639abe33823eaefad992cd2cce13f66f6f8d3a4fd57b66e1c24b63d47bd252d1595b08790f6dfb9a30c561602f6b0c0e57383d8e783c839071f9bbe71cc6893bd16f07d56d5d658e7859047399b37f7a9f55e0b4312c19ad4b91cf244fe0294d6f0e2be59c610e16fcc9d5f4312c27b2870471aeaa4c5d2ecc157233f2e05e3a74052ee708ccb1f19c478d28a3cc6e0b4d2ec533c844fc756810a18ec646333f5c65ac168bae294a4a59df0867f923eeeda7efede7fb677bb28cad945f5896161d1f75ae73fc73f30a1fa13a4cd608de95d00b8fa7ed1358ca8283467bf5fd308e16fb04bcb48e276bcef63c36b4fe8ee4f132337d4a3bfcfb560fe5e7e4dc45a84ffc3e2596f147ed81fab966df2a385a4805aaa806f6b0a8cee2dd6b8915b17ad6c1690f4aa6f96013f2d8d5cc8d9b676e4962b207647ac7677f664ffce24ee421f0f4b4161edf4d56f19830fdf588ee550db51044cc5b309c408d3aec1295444a24e8d57ef4a48bfd5a94b6d99c756e17c6501d8bae46378d81ecccc479ad089c195d49c964060ea502e45d76677b19cd41fccd9fdc20f3741dd1e45646de101edc36e28c9f6e2a4c5c3185d071d08671f2d3087efc9132bd2ffbf6b58d66e6c3ddd7a3195c1e8204b56ed1b9788729dd4560a23d9eb30d451008d332272cc6885c18f8473017728b85814c06454b6b277ef6948d10677414ed035de46d6f4fcf75911a6843b89d33c630d6754a37f268d29a2a529bfe756dddf3ba5841549873eed05ede26bac8716eb0bbfb90fb06c587240bde0bfeef27d4c23cc90b11b77d2cb1f4a40f62a4bf1a5c94376f2b39dd6e53131d8ef8a2b5cc5f12c3bd8fea0dc10e54e6f999ec82d3950e6664051e0cc659f339a14146a190fe6cadb4c3cf279a10f1455976842f10e40e76ff02f187afcd6ae7f8bb3ea36eb687acfb8852c000ba4cd4e413f4b4e36bd661f2883d541967ee3a68ba1c83fc1b72aabe6799d237ab19a92b1bbd07adef55a1f75142da17245907e157da08edb0b5080cebac59fb94860e718ccaa8aca677f12bdcafb3744fd0c697b8e8abddeb0d24df3cafe10952f8e78464ae0ab34c77db0c36b57b392dbbdebcfe44354b3c893bbf070bc1a93b4af46e0982a2305deb5051477f793840ab3270de79f6a9c07538b7ca8eb14062e554b941d2fcf5709e6be375737504db72385ac34f125a20a462385d9a40db498bae1d8e17207f4d91ac38db51b835a76b7397713b77e80d4694e37323e8adbc16da4e91a4941dc5cb85da676a915504f73757134e84782936f9f594b5c36cb1695e37d94485083ad43dacbdfd94367459ba71be5a13e697581ef0b82d8564b80abbb4a19338810f6552bdca5cc6f64d94c4b7aa85da53c4e27c662311b948337382f40cde6f29c25f26ff5cad9b89850074aef58417c3d3b887314f09026e5c03c0f0614e6aea58eaf203600eb1c4e3197e8e9e64154792fa3234a30bfb22c31b37107df1af7021bebe1d4cac249a63744462ae9bada9ac3b9663f2e29c0b952c36995d84de372ad0fcc78875b81cbbe350cff3ba9ebd021b544885e80516a2332c23eae1b911781a7469f6c1f9da0cc29a85b7c3e302c304d3682984fe10e5684af09d4bb3564139f51b9606b87d4e97561c06be0b6396297b7ecf85274099c2e15297badb235fd8427ff3c7f4a24a119549a4be975185b0bb29ab814cceb1315b675a0e8acc68232a8f735a02dd3173a8ab818a21a3f578c56cd00128e506032c4ffd299a302a35553a020b62e97651ecb6d18b41260105954086829576d26ff4abc64f52e47189aa17536cef87301563be8160f0a59c825ec01d842725dbc752e0724b4c1c3aef31406be2697fd90a83146ae129260fa8ecea86b13aecedfd9a3d652fd08d42f3f5e0f811dfca6441b959df0987dd42e3ceca60404d5cdb123f4c5087de0d9a4d6ca98f62dbcf6bc66d1f810b8e65e78f4a95e810d3ed6ecf09218e096e31fd3a201d31fa86ad7fbcae90e59e7763a627055af4f5ab48026731844c874daaade10ad166bc0240804152c53e473cf49bfe82013107dc924944f87ec5658e8439798b0845a25f44fcfdaae24c9bf5d32de6d0b5a65a07f88b7b3984193e45e7334427c7c271b8bd0a94c094d78eba116eab4d43c31862dcd2f122194fe2be8ef174841984ccd8a9c758e02608fca4cd2cc0ff8a85772048059127062928c9d6272e4e3cd2c43acc9243d2fb7c74a09ab35ab58194fc016d15b79cfe7b73b7519649f5910713d98d63b8e828b60321a3143fb303219225ccd6f2a36d9a33d4c649b8fecd87ee79b5df9b4faa5bbdc5402963a730916073dbae1f012e170492c22cd7ccef5cd1291f69cdae07812ea55f68e1c9e665bc1fb38ea64ace62cabf54fe61a1aa28bb667654f5fba83b0d7f1af68ebf1da5ae411f902f3379198625f847f275be206337932a05da9d03b1a69db24ba3cc3505a5022bee861f680457ee3afd0ed332c1efef4212be236c41662ab2f962ae3131d346938f646e455a0cd1fa0c814c77a6ecd110150eabfc510c2ae6ccac5f327c1ef748c7795d25462d5c340696c4b55d9b6507c411ccf328a5c3befd84f7121431a6566f88e467aa01b1d9330e8813e887b55bda6d7471a2ba7b561f927944301f23e48f35e79a96439eff650403a4062aedc91c63859f82c4678450c1388ebfe3fa17c3165ce2ceb71f65556ea10e970f40897ca72bea315a134a16abe8e89c124c104106fc27c789b6acb52ec4ebe4dfb1fd232cb62e6f5e66961adaa55b64ac6b8b50227909e492a0b4f135e0dabc1021b7786744d117155c57b9789ca6791da3af1712c2fe75a335a89034a467ddc521e79f3f96f12d34dfd750c7487eefe196907afb927bb71daea08e56e9eae9f2a5d25530dfab249fd131784d709a11902f18b92e95b15e99b1c8bf1c83331a1d31f89972071e6d26eb4bd869a26d4d04181672beafa244968f889fd91003462de4e6879d9c2a2bce0daa46cdcb7ba23f97aaa1a912145ba9a043be992310bdf8998a1c912c08b994baa90f75328feda240066a13057f037684ee924d949af4ba9e10fb074c69c387573a151de63dee01c13b3a65dbc6d94150bf37e51769a9e373cbd0cf889e9e03752d853e501816d7bdf4507bf3131f5c1eea58e0d9ef77643531a0ccce40a6f35a3fd2d4c5706b16d98e21941bdc1347adb2b26e621cc9856104e307951d766a0a05da1ccbbc002d2a8017b145ba8d757df32b98cd2273418ae284f68ef603b1d5e265dadc4e16c3dbd84763865c8b42871ad7865c3057ca6062180bba0c8e7d9ddb79cc647473a010930bd4c7c8b8988c20886a0251706d5dfd94da4fdcf3215d2a13a784b4676299f881fabeab3c3584ff712aa5df7b87ddb99d2fcf9e345587412263de0ec361db901e91179968819a5f4116e917c657d43a4ccd333f805b75ecfa41aaaa1af675ed6f623590d1298ff09b1481f5ce00676e097003326f1a1107bf6f0637d01cb5b00d953643db8838aba6af44a01bf2f5dc9a5cd7dad38c87710ad396e41b5153c36a94f93eec30c06a5d15abbc0cf5bab4a35e3a5a89b5ac92cd42b323dacee0a5afed35842388e5b651bbd55c62c4b46d56b26d90a68c6b521452359c5a1352577ff1dc5776558981db57ea4e75abde00b74a77a75d9d98bc08191a2fbbc61dceea75e10684ac75a7fc87cd158b9729b95cd5b1b659fb81f9e3b185eb2b9999234310b4e35a8f9b068cc2a767e68ebdd0c9cde34e8a343c307678a58bf83408c0c74866afdd5f8d4f093a00e1efcd563cf1a3e347b6afdd399ce3d641506a034487eb72e809420e2f9d0d135c76dbc1d4a24fc17561f0ec4d8dce6b79f283cd5787114acc379638f937a2216f2a540cc7f482990e2c8f6a084be2599b3c031176928743d5c99343b571fe66f6a44c8c3099a3e66324a09de83c1abf095f7253eb226a58750a6e4cfa1e728fc488e88d7d9e7e383b936ee1a11797857f397a81fd38822889227006df109f3faab35dcc712749e4c3d6b7bf0038093505664edfc5cf2dabc224d5b590241bf50eb6d30bb0b3eccb66935e437f3a469b5aa0822e12fc7c33f55ac385507e81c829dcbc91b6f82b2c7c001dc37473252d1951d36d528aa24616c5e8f12728b3c8aca273a15a7e42087c4ca430441cc5f384365616c60e0d031f111b20c0a5fb22a37337a4bd75284738ad6ab4edc9fbe774c15ce1e90b8329fa54289b274ead29067f9b8ab053360f9a94667b8e0378842f899fccc5627a6ce93806c34e97a7189ff1575086a6d4edb202b259d9d99581cb61fd392ef6190a3b991e576b9aec80fcf74a680774b3cdb7b5d38cfeddab5cef334393ac81fb222974dc28f771e26a137410dd21155e4b4915fb2ed0caf5d2c8851195824a35ef10a4373d971e4782594b46d866eea1195d4f6f6ebb4a736ff0fbf67ecc9bf0736d965353f6a39be077d0c480fde2bedee03d224cbe5ba67adf32aa0edbe2355c011b472b1915115cc7325e0ea3f1043f28168c50e512c5770d5c1e56f3373554192cbfbe3f0b7d893c823a83544f0a3e0c3355f42f0bb4563cbac22a2287e67dec92c98046814bc0372ac518b08f8379222af417a248a67f3dfee9656f8b119eb083b1593cea2caa02d4af10a06500dc182294d783bb7506e73c06e49f9220066f8b3924643c8ce42d060d10e6cb518bdef5abdf6252e7afee40461c06679e63b8bb0deb8de1d8a8d6b6851a032ab1219eb1100f68de09ae5c14c01213f422196f3c71af19a306ec11477b40ee684ae261f012e71e4d782e7f3e792f9163fbeda8ac15b9b79699e8b9c76a4d1f7daac18f97323387dd35588b49757b57facd1aebb8bf40c8a571d9a972c66436b75c5cd93b0c1b8559abd72d4aa1413b86fd188cf647613ee0d4b04a5f45e6d1f78e95a24cea8a69f3fcf69c56db9bdf8678d13117522be2e988b3bde0dca39cb14d9d4f2a191ef680f7b5cde4491737fe808f6bb6c1e97a6ec4d753c4b93583b0b38bb1993bd34b2e0a972b321258c4dd069f4f9a6a78f7c159c27bca40a0090c2b18bf9fb6f8bfa7125f57a847c6e352ef8c9e0486cee13badec621ed0972702bc275f3fafe92a23654284ce8587d3bc6a48d0bca1c6e36def71901c221382971395bf721b65345c7396b10e6067d85f8225bd7cb35476334c3f4b07c3b0b4e852cc2dcfb5f3a3fcf61e66f1fbcd3f04fd31eda603decba4fee6c2accbacfde21afbf0b4938eedca895b39fe9422e95902e62bb834a87fb32bc5ab0d76ef7ea313273106e2db6276634387ca589341ba603fc6874a7cf3a725539388d35e1259a126fc66b9ca238a7d19a9afffe304c9c523112fb721d69be82d596fe4a048a3d50185d7874cb3f7ade8fd37d71065d89a04bd89369e7b4f4cc1c13e949ab4c73964c239a001eae1f6f8eb435bbe4fb1f707a9f57d219626ad9adf9ae8da9fdaafcb2b1b3c01eca18e57bac66d0aae3319a353768feec55a84977e8c7026f09e79d4a7184acfeb2f8a25efcef3b83fa92b4b7ec60ee9f7064b3e287efcc999b7961fe21e912bf69df579d1e67df0787853450ffb2bd6528b76587f78e5fd56f694d7a24b9033c4de5b8295410c093c532cdd72c33401229314f352bc27123bf3f900c68ce2d61ec4ec8ca6faa5ca30b5bdb64f176128cb699cdb1cc8f6dccc710e57c2323b4716ad0aa18dbc6f0349121f197904b2858b16637a93e0403808f9efe1eefcd96426acd30fbb5ac06ebb0ed4a9dbe029d03c2e04ccce6c1d05e015b4fe7c23be1eeff55667c7d68b8248126d452ef5d171d0ca4604012a5b1d8c6e26002a8efb3cb9eb4752045863574e09c6a4d57ea1f506018c6375698c6ad79d194aeb0b5d85df42a19d91c4b35a4e0e456438d73938445d60a0b3550d092f687562a24538449384ec19e64f6515825d84c79279ace0d6c263ee3fa9e5ef776ebb66e7eab1075b5ab584c7cd5215a3bded489665d8cfe4b31762c934f2247100f757386cb7c4ecd224eb70fbcf076556a2f64886d32e21c168ee8dae8ddd1d35e7520c824833a1b29b57eeaeacc9ab6fd5b49b5e89749a00c0980603ed1af60d9cee76269732d0fa250dd169ddfc6d7894e7a7a975d4642895c9134951118fc14181474b9cd531336bf5c2185dff5095e7f5796357d86ab079559cb67081b0b6e9ee57efc16437a1cfbcf221c31bc2e45b610c4d21a2e356a3f202f8b393b1624bc81d6af337c6a5e6c6dcb26de7c1bd8af1647c8e6474f3d29accecb464dfd8de1d5dacbeb38ee6bca5f7892f457cd742d817788137e1bc25472bf1edbc2e348b562739a41366064ecf0d32040b5197f111aaab4c9360d281300ef2f7cd50c215a2c508c273c27cfef5c60d53635ccc636721cc3f550c5dbc3aeb9fb396df39755d6359d17b46c6676044977a2021a4ea4c2b14e635de84df7e235e17cb1378b103709e8dd3428f500e9c87ed6746ca8afe7a283209da66aa27701931afc8d5015b5a657163554705deaa7ed48f55308f15eed41922917aee88df41ebd7ea0fc09d17a6af2b78a1d7495e1b015496e8ac48160c408f6f0a8d62b42fa6f38d9d32676dcdeedca0868f575f6c93a5b0732165e31c571c56c8bf35edbbdfa3a9105175542eb28107d3520dbfc63cc9ca05367b25943dbcec8d367518545aa9b83e161fc0d4e81ec515adefbe061a3851f7aea7c8357d74b43e2e3b53c26d7d97fd05011e68b3c73c79a5f6aaae21e20c597c3ebd776c0a6afd6387069a6495882d19228469a2a82c84331238e02c45f9d4f4f3e6e618a3756db60c1bc8984672b3a7c8c543b1c3d012d09e1000fa32883bcb6aa1d07b095114ade80cb1d7515f9a7168a56935cbc198dbf0048802b770bc2e8cf07893c613547e8ebf7fa578be97700b7934efe03478ddcc4860c078b0d746fcae8d1e8eafa6375d0cd17b860543a09256790d10fc26d9f36f83ef48da34721a9cead9e4372d7728fa912517e7bb9f66cb3cf76bae6fbb27d4a3760d0f08601c2d84868e21c14174120000793602a141866cee396031004198ce41512b8adf57fb724d5e8bc7e5f3d749986a37651aa82ae63138570b53e7664eb3f0306d00804b274ff5f6ea81541bdc711c27cc265677a242a7cac57dbec932e266948d4fe6f2a581808e0de9718e93c3f0eab4d988dc8cd682a6706f0d392de1775f61a222bf801086e04ed6f040d96439aea6940c0467107c3c67d869cf4b0af95d92ae398b581bd743157c5cf158c0cdfe3a05eb11e4fa02caa3531613595456a567b1520d523427bca5ffa04f8c7464ad7c0d58064d9da53d37790f7d5fddb69741b16df4bb3163f498db0669014887be51a0b9f738ab8778cf34219bebe2dd1fc2a8f4f0a92bf3a82e2ba25ce780a1f479f57acce2d91bab41762ef1aef3507348a22383dd3d7878c6dc48d42f12d0129d2509d61b3264beadd7c1f42cce7778172f4baf33f24c8a15a17593123dc9132f2f048b81ec06cf50493c76be67d4e119c9fd0e845cca36f65a0836a9eceee39f5e236c8b7b5d0e29c268cdc4fa7bcd36568ccffab5ca67dc1c12b9cd9ec147b8866e8aa40f58962d3299e6f599e3461ed8f6c35c0b4d2c4760c7c9e6b97a6d0b9ba96ffba3407000412ecf29caf87e10dd7ef25511c45cdf06c3de44c3b15a9049aac0483eabbcb5cd474003249120b373c0bbebba5a1da3e4f6031893772bb9d5ba5a8f1b0c10bd0d654f93ab1aa4379e1b45a77dfacbb5394deac469a0af0e6be716594da609cb0b45c56183e7c73233422059cc728c6f30d6779196c3a302c333dcd45db2c2968ccf930b0f8458fae319edf31d3e76523681024cdcb3db8ad51db43f8653e696a9b5e89b059b74519feaefcbe20cbe9911323d08e2dc526467967e9c437aee286a1d937a8f91501d7e45a5e3c16d55c5f25a89e424c1588ebbb2397928892c69c7d42f1afae0a9e467d7d92d386cf1712325475ecc3fb6643da2ad30950944128c8dd961ded0f0fa8089008eacb722401b6332112803347806313ba3734bbb5b20a0b2bd1d03cce7bb29c31300f96e5f409b5baf2169ae3ed12a5baafeb96f77fa591cc89988b99f3ae7db5e9fa957578a84cb880e2c347ddc6bde93fba1fa63df2934bf321a3aa770159bd102d71ae164e9fa37bfda5b17f2b66d3495b23f8631fb4a1b0a96537c89ad7f4dacb1316a22078c979186474594e46a6cf401efb894f85b2d7dcb8eccce423db763241ea4872a9f0890999ad90583b90aef97fa8bcc62b9c838c998ba6f6acaa547fc6e71652b1dcfaf09cdaacaa6de4176c858f75132ff68115767cf7554e371b4ce876823ce18d1f472d4064183ca69c2a87eaef6ed376bdb71c818ec739ac9223c03e70a72930cc351380ec7726496a3a04111bf579df16fc2bbfaec1d368e5e2abcc0db9dc5664fba445d685b624acbeca496046676544c069712d69a4f4c6474f665ec98bd659465ac3b602486d6c4187674bbc99ebca744fb7a4745508dfe6664978e162063ee56c4cff4965a26543003ff25f2c4fc9c41ac0de7099a3da54e44c3c361f115b6969b04ad6fd9a5d9b47664951ae814ba024d4d2acf348a67126fabce798155097bed120f7eeee9257425cfa79e92995ea8b1cae66b42aa49ddd8e96825d793a06b57f2d0baa8530279237db78fe0d53d56c53120ab38cf0d7cb3f98633b779a1cdf3aa83525bee60845445b9dfc70aec9cb4cbf381a89a87369cfe0d11a5a65521ef8d75f05516a6abd0ec9213e5eaf00297b58ae0660e5ca2900612a0d323bf26828e147ca22bb87360b51f434b80825f208616f479d00ab3cddc3b6a7d5a4adcb6beab34adb2c876f26930722eeb92a89685e18dc29a3582615dbb2689be162e445bafcd1396dc254809b16f38f8ec7d8ab7c5669da59215a237985fe4a8d9717613c6dcc5bab9fcb28e5e9b71d0adf42e3131429fa9d979bda5afe7baf6fe07d146aedeb3356399b4b3f0b45443a87c5383e55e9b5b321b8a88d9b8e9382939ab8d56fcb4e398f790319e059fa5916c4ad54ecd5fe8f5b5ae0f2d930f7f7e65c9771e4bcb9a003e08b6a5694dbf392b013fe8ae4bf51e67181d379e7cbf23781ccc27f0468b0a4ea700164b3edc228fd8298ab9aefb9d2a12f231561f401d77f19c119b04b2935d44ccd5fdebc60693e41bac4b93574495ef3f59cc022c9498907bb32b8a4dcc9c6184264bbcabd1455189be7d0a20e2bd913d1346cd9a85d845b2751845f419e0e6eb6b649857ed7f8cce21704f31180bb9312f70e4af6768144337d270b6b71da19b43bab4a765b1bcf89bfe26ce29ac5891584b60c43a7b6ca312317c966e5992f68caf2d3b22e82e2de788966e9c66b0fdc731468957c115a5644045cdcff4e9123d1a45fdfd64110b4555e843ab8552f501e655e8c55b1643f33704812815e3b2c62ee723d9e8f7bda84493ee5f51514077a61ffededed0684186095d0fb0223cdde9906e44bb363601ecb9964bf896fce18fd2b8e9e4c13071c9b2804dd3f450c998dc4683d3b458433095deea5082e5af3020ded8d781ae22f129f5270341b03c2f14ddaf1144f71d888694ae56ba88024f4a3ee8f33c227c90943adf7c9b0e3238d1824732b468e2487b42988e7b37498e13d6d49fa82cfeef2e9ff1017cd71b2ad7533ba010a12cd69b18313538376adc35c3217d4e5d6c103020944ea0bfca8aff6a3f460c45111fd00be4364f707b719d45d6d33d93930927af4b574e81d56f7f4a72ea88f01321fdb496a2831c082a1547f22495bc2b16c45c8fe5a60ccafe488bc256ee23c527e050998b959d419a54e515e0bb2c995f037781c80734db58570083611be908e655293c2dd920d3527635ee443e9ab3f20538325ffdf987511ccfe09677113278b33761f2c6a7d1c01349d7f54b75d9c30cca703c9b03f5aeb1cc7d72a1f497ea8c3a19f09190e42d51344d9a2308c2d7ad5274e09f3425c80cbb6778a50fefcd9127d919c965e3de87b188899af82f8e98248d126ffc313a7bf08c60f08fc5382586a2173d8b661105978e57e0cdc7721ea971d6577a13b88ea3084ca9b962422a16877aba1231325f3bf6eedc3cc6e702c533d68d9bdf6b6cd89a3110f33186c030c6c953ce2ceedacc840d156bc03850207cb18e9e21542dc8fc26e49942191abb308a729b4716fb4cc8e088f1748dfd97f7a0f87dde27fd4e747272e8bd7d9011121d8acc68258e314d9a4158077f0bd2d5bdaf07d15c956935a15e546107267ff6b4221d469a2904ffc7607a136792c9403f6fa04a7921628ec9a785aa640c9455b7cfe1499854c361188e615cffc706fc4fbdbbe5bd49f6f0d32ff8ef9e7f4d5da9b78d70af8d5107d1a61a408a52730ca73e8ac043b4e59a3c0ed056f760f8829066a7f6180548330002963e13c64fb0e46fecb4651d5bd6f05231cd117bed4a98304ae48bf8d4a02b3f3349923e061e2360ea8aec0e82a06d2086a0d8e89ccdbb291fc65f01c113d68c527ad6781d1657762058f25b7bbf751df718e1642fba7be75cb3c3edd80a24745f9fa56e188d2cdf7d3b92d544c090007b8aace9c6d5e0704d9a71f76ac8e4a9abed4dfee5debaf6652dfa39c5ef61a02c621d414824dd385f4f363f03a7ab688af37ef2d68016712f87775d37c5b15b8b6bf2d46332f09754f6175e0ad8f3765169cbb4fb4ea9addbe0bb6d85695b89c1bf889b838e020dca7e7fca6b74dd075a14697d09eb3c47137b8d34c30365f5c7b806fcef9750a73f04a8874fee1121ccbd8cbf3bafec61a895516de31e456f07cb4b9da9bdaa64e40ec77daf0564895970cc7dfc5a88a55689d8f248a1e98d560439eae4c6a84c7b471ae4401e419e3d03c10364e89722bc36e06a86cd04f77475edd2e0323cb250d45317047f713d62b0d03510cf297990848ec0188784fe6ecef73dc96159a4a08082211b028ee4b78cf18f864e695a24c7e10d266520f5302835562bf0c829116128169229bb627d262a062001c9588fe58cbf8f97cdc884222a7d39de46db2169167905cf78117f8a0a91630004245927ef9a5326e151dcd5aa49bbc308f7127115eb5a26b7bbde0d24e337d0c41ad4ff66b7d881202a0bc64d5d5f8625de5618464800153bb87a4b24cb38a7cf9e49f0915de4f2517fde4dc93576e9c667f2ce23cc14452f6fab2975dbcd987b67137ece4dadb93f5dee62d8f4d665d57887b0ba34f4b8453ba2edc54dd7c708cf03a297dece4377e9613fd26d5b892bc9b4a095d4c198036e19a5149f0c247cc9a4d8f0426b4e4972c4a51284de65199675b95f6b24783488f52e35a1e07375dae585682492f294ea13feb0d26b1d970bc672c2cbde57ba3f7e1199b28a630a7ad5a16e6ee9b4f0c4de8c1d26d048d4960429ba184ec9f2bcc4273e23ae0dae0b274af4e86e327d7e214536c543a1bdfb0825db85aea783e006eb2431c32159caec9a8eb0e53b58e19b89c85c73932f848279adf31a3c836b4eabf96dbdebf83e32bf751c73b8bc10326b368902ed28c22b759a1e8802acf7c32a6edb707d53a5bc719359ea85cef83c149d348da2450d1e77385cf148a3af7470111cd7de7de9b94f2d0af1fd6e2d1ffa9079cf6d3d01303d567cdab153a7a319b13efb43c693cb6dbdbf0d9ee7ef8b1b3d73a6545b4d5a96c9ebd8ff0582cbc5fc429472f37bc00148c725b0b6de8db16d408aa902e38f566ad4445012dfe1b70c6d3ef762c45d23b8c82b1577d7a0731026df06370c761e927d68907ff24f2c742ed715ced81e98759979f6780c3062771953a6af4733845b6664779e07aae917889e63c452afdbd262521231a0d692d885723483b0c59a35e556cc82a0640e78008262c9af41005791e07470db443f15b8716566e4e390c6d2c3bf1c46d15ac27241f6f03367973517959ffa300ec16846d631ace16115dfdc37f773b511baacaf508eeeda5580349c34c67f5f85a2942d335cfde034e6f9df0566ad396d58a448350c1888841211335e3b6732f98bb2a5cc300c2a5e5310dc9cb46718608e59f6940a49e237f154564a9f6946d8f98fbffd5a34f412f42940f3c7dfabd04023db29787132f7e4f795deb4a0f16028700ceff00a492dc3830a795481f70dbf67a4e1614653e7906e015c04dd73c7b259224d436532068a0ea1f453228e2e2b89f52c8e745f162a245398ceb4dc2dcbcdaeadebbaaa86e740a6fad3de4cece3e860614f1ad740f8bcfc77cbc97363de16ac928277081e6a4929420c2439aa8a47813fbaaaf236edabcb8daf2a635cf129cffa62d16ba451c5a42c3fb6919de32b1856647b26f365dbe0684df884f09347194d977f0cf8ff7d996b909b7108198bb203816e8de1773a403f1a5ee3cf800a6a6c1761f9027f16eec5c87a44d90115b2800d0ec708cc9a6f4ca80f194553c4a06c5d763c1888a25e248eea9367724afad7f5dc89152dbe9fe0b4384641e2fdb839745d9caae4ee21692aa6023cf7ff18dc5d031c240898c3aae40870825efb6b46d95fba0dcdd0644ba91f00c106dc159124858244962481a6bcb66d8f7f7d8c9b1eff7dbc418194eff44677e9795eda1ca4cc3fe60eb95cc20adc9bf6e4bea5c6178228cc53d6fd70a4987a6ae89e9b35041a0cca062535d85943fd70b7641ec3a280a9e3b975861c3d899995e69316e37138132c72b6a503df6fe4ed173991f185589328352fc69b8891bf8d79e2331b0100e441de34f1c928018acd24b0bb2a630b5e8cca74d2fe29fbeaaef27d3b397326ef09024bc4e82789450c84d43543f173ef265aeb7b450f0d8b0805f75972540ca3104309ccc3a45f59ec52fa5d5b751e23b3df2fc8dd7c0a6298c4ecd07511671c0693b45f1f8260b8b7c20839f437c1ef34085812cbdc9c46edf3b6289076fef2b8f951958d1e61df79c7efa35e5e84aea122299c382230b8e1cce3a8bc3563d0095738f50788f2a0c740cdb893bc31b9f464bf8615ae261cb616dfea9c39939e527c021985fda10945fccee532c01c8b2175a538589bf052d61102df6d05c4e59a9e7354662f077f46cd06644f4c5f8e1e6ea81c2e2418375135eefc8cb355646969272593630a0af881a6890227e3198a0bc5ff346858828ca48f4b7c4a003028142ef2f3cdb2a45dae1d8194d4f1e6b96f97e8a4102ea5a3f5699501ea4633496467ef3dfed55125203b66a6e1e561770e4e0100489f3ad27ba7656e839aa0459c11b3ab27fe5de4e3ca752035bb4dcbe3dc9abc0fa770408f571801afe7aa46230641f2c22b9d282f5eb2dc977123dadab6a27c10783d52e4e83efc9da4052ec1d3f3de672bd103a2951c64ed6e5d71e9f73c6477b2c6a42c126ec518590db76fe6f023d4939b2f75c0b6be348eaf6c44857903bf908650c86cbd1354bed10278d882def751b11209df26b7a0f4d602fd24cfaa72921bf76702cc319231af0cd05fc556e5c9e54df510bf5f97ea8a7508dfd63d4d01cbdea3bf3f7f9eba64ccb38d30938f5c3c90de220add1384608efb42d7ad4240f68b0547bd0c7072656ec70488139873316b0a007391706881e355e374225c084e3dacf8000e5d74baec63bd029d243120a7584bc2e754fee360ef81fc525d20b37c2097c3d10148ce54b6716ff0ad4eb6c9e4b8892604412d4ae932ed1f3ba35e08123426e06ac8491996d96623be846dc0fff8234bf425d95198ae74bc448f3b978ecddf867b0e7996948c2c747a71b1fa1bcbbd36688c612ca62418c3ddf9a902df587ede282314074ea37816249001e8c32cb2cc41e98d59c9f9ec6141bab9ff7b8b353d7cc8fc12a4f88c04221fa208e1a328fc3b18b2103eb228f34eefce0e5542dbf00eabc2a3b74fc552d0211e3b603dd7dd7c1c28dce3196b64b690390e847da0ab503672688361120461022c2ddbc31f0c8cfc1c5b4c25373fc3e3edef8ea407b11de8c3292caff45e47a985d3121ccbd5ab1acd44465f06d6a72884ee0a7d41266391cd73bef6d9ff39afef367b4692e06549c746550dcf7f9385e394cd7f2060197c9ff00f4071bc2c7ba7e4869827002dfe23ac982098b98bcd0b397b89ea8867ba5dbaaa2cd0e7f17dbc99d3b43d315e11e48a61b570769d31cb932c7100ec268618d78536205432eceb97e2f30ea1ba401e9e7a26a9c0f0dad7909bac1e23998155b351d95452702fdd1563be1ea3f022633ba33fe1a0f7bb90a0e79daa1f46cee4585e2fe0a43387e53c316f206fb88f11420254ec0081e438837703410039af3cb867519984b8fb6c0a2a2d41f959493d1b3cd3728af1995755b7b5a653b456b629dbc1c0705c5146eecbf7fe92b6996f2a4833388a1b69eef7122da2fc7827416d0ab4987e74e5a5319921850c1374e9b9be300f94ddb4f120380de3b6a1f30aa78ccfa93807a629e411738ba2e23bbf3af3f19ff36a11243abe79bcafa7f2b21b28a9a1ed91538772bd0f18ca8b084a862b1c1e01fc524bff9e41fa65316aa2161e1f1272907fa74850dd3d33b420ad847da750f0ece94a2142c1715cb6d31829e054f6cc32da6b889905d697dcdd965d886590384ffc95cad0a6669203b47a04d308a01ab12c0b916327aae2f9b2e00862cfacaab2ac943e29aa61f5a2882a7b53b8812700feecdd5acf0cffb7a3122483ed7965fca573c046afacba681a3a87250d4240f0b3805c781941b0901378e9e01c021246566083bd780fdfe007bacbe437d3bb48c7f2f677531ccba92aabca1db93e402936c10f4a99a62e8733887989c524c92e2ce5f2968a1dc694c81ef4b00e4690a69a5dcdfcd3363881af806110735ce02841183dfde3ec2088f9ffb174de4ad3f24a10be2002bc0b85f76681c5647816efddd59f7abff36714a9343dfd947aa49dfe5ef606cb2b5a9e11c8e79e35de99643ccfc0e74565b1fa97c4eb77b25bf4d4948fdfdfe00782600f6f33bc012a1282f8086d72f6b8f0c34b3f7660d8757901bfd449825e604cf0c8a6369a125a76219a2557c2b160fc40417c5b4bf417ed19f6c631b186942cdb4308b6ab0a6e84b63783308fddcbbe36b766f078464d7e52ebd7a4200618ca5319eb4a1dcb7a9c5404c314fa2d8bf22c68e0ca272de5a96880948104c4bc38e9097db793f387ca3e7d1632c26cd961516ee130b09f5bd4d420f73aa717cdc607d8922edeadc89ea62e56125c790377cede63674c26e411dfc88cc9b136aed45ea375f86d27cfc8eb7936d1303843494043f197add5eef4e9e862e5af461c182688fbc21deed104403e0ab70ef78ab7a5c5eaf3d7d0c8cfa3680efc012abf752f1421df3e858ebafdf3e59ebb2842699e1539642544906ed4b2c557349b4bba3e7528cb0e806ec87af3fbc6a9dd9f1118be1d5ccf350963a12587ed9ca669aaf2fb07a669885371a43ce32f8188bc10210875141c0afae9941634e7b6becfbbe13def208ca089154dce75859f0d8b13c23f86ba7d28b3b32c3e2ec34f62ab1b373c54a235331365d5eed5c1cc86eaa7c7ea8b45d32395716df8e1409f36abc933e58ff36abb9f4773519f24b2dccf5e704c3bea64d427e565621aad4d99036397cd9fee24d16aae2867ed5e06726393829106fa72ce2b3fd6f5c8826fbe09fe862d8eac342bd3681c18e95ec27401dbf816ba9a0631ee6e11f8600f643f3bdd61ff985caacbdc5194160bbfe17716aa12313e14ee0b65751e6d8bbd591ed2656643dc3665c4c6377bd8c9b723b4b052b46ae50333930e819bdf1149fddb51f9e34078f95cd93289a92ddfe5daa3d8fbd5af703bbd18656388f3cd7746c81bb7dbe98a6dc7f152dd7f99ddcb8ccd963ff1efd9fc3e589ad8daf06cb8b7c8c0175bf1bf20417aff209432a18fc2bb0ef80c4f5d95bd44ea61f874cc57eb5ec529df91e91f1b5c97657ff850fe64f1aa685e2cb4370295956359ed6e23771e72202f4896c5bf68ccc0ec40f50fa523616488719da945d5ee145fea8972dd6c3bb99cee57654120d61b8392a35a7a79716b69f22da7322d60cbef27dbd2d4d9ebf0d3d6cf69cadc54c10c0ccb214795a370d1d2b8996afb352794f36bc1d0e7ef81038120e79d824b4daa1535699927dd4ac07a8484cdd62434231117df98826253133992002678e60ad138d72f7814b13d3517c33a2cdfba9f2a3694914fc3667ab484645155aa042e23de3db68061f87893b7b725898595bce415e156e795f72544f14b8eac4ba7d534f4fb9514f8fee14d8e3ef87a5d0c0c5b00c9aad3d3bc6b9b5a140bfaca1c8e6c2cf0dae16f8e60c37444695c3e32bd94a80ddd76f846be347aea2f242c4f0268bfb90960bbc20d11dbe77d71259f02c747a8c266aafb7d91ded3800e2adf28128101cfab59b5a4cd55852fdffca488fa3496fd9bfb04f66dc5dff17b913dc394a6c559a44c091896a5833eeea43dcfe425c147e6d0dd971b545109a3410a19c8c9d036240b4721b058dadd4d89ab9daa0cd196b86e06484df1218f9176ad5873796524ee2f3f258cf37ab5387a11178e53c257306b12862621e7ba85a98e00cc0a8faf2ec9c5003443a3ca1e868712884fe12dbe350293caafa286db933dc85fbafeeb2125beb32c211cca959cd18ef343ffc211b4c29660a6725ee77cbe3f2f21e4120380b1e63444cad95ef33877e9a988fc66ad03c4d1e1e092f04ca4dfe2e7e2977e721d64e7365164f294ccc3919dd5596d1b61008682d8bebb74d011c6f5a84377d8bb6e350be434f7a754481425329903e27d77150cdf6f1495b9ffd224dd9ecae5c549eb2e99ceade9667c8605dedec944da716fdbb242b04d37ce162d9f6e87ec1f7f0b2f464fa843415b98db02402dbf564da12168f6f47dc5a9e2981a83da357396a9db50a6e493b19fdb4c44cfda0e494930c5ae18288f24ff65d1d18efa64e3e484807da7a2b5323319bb38a0ea449dead22fc33cbd22af48bc646c657ca132e62b187c5af2ca6d4b2a52c073a8d3ba88093b0c730118c63bc46e458eb1c388bff6f374a30bfd96d23521192da5cc6adf58b850ccdc395e92152508825335fbe743bfddeff71d570bfedc58815e8e797e2f5370e04ebbec76226d37cb2e3eb73fa6fd3208a708b89e278deff64c6bfe6c6adcd8ea04ed850425894b3004561e6d0ad8239876f627d049167f688b91307039a2b1b5405816510ca5282559d29b29bc9790cb9f77645d21793c6a8b804095f4fcddace2bbff9836916c0fc729e3d2b560fbbd06749855845f9fda761e28113faecb114cd733763cfe2e35e115be32c4dbfeebdd8e73aecb42a9aa291090fd1d4e9b211505c79f5fd8f1b8f1e39679c42cb9ae09e1ebe0d3b6cc02c29e24b2b3f02cb1c9d15ee5d4e0d4527fbe620052e333216555715a9d0c09056daed68ee7717cc1a4d41570fdf1f0a422edbe7d7824af01be0f5439d172df0cfdd67935c8690f66c122dab473ddcb582c5146863d5f87a8389dd1b62f3efca66ca4d7020c2d9022d0f0c36ffcba1209bf7c7c80a43661905a4233442c733345f132d8b0bced12f153dbe34c9691e3d40ec19856b6b324c5631c2907e27504b07859a0e1df592440a086208b563c8f2520200f8b3620e8a879634ae5b9b58d360153b501aaed27682e681497c271cfeb156c4f5299b6863ef6283f90ba6dfc6295c6fdd97020d010e4643b0c8b303068ea39b0f4c6958381459d2b0cdcc16a805247e60a05357d212a2619eee03713487872ac45bca0ceede39b73e2e6010c2442f72f61ba2a22ca1c2db7c511cb255a5813a2945551a02c794722d8d76a2491e043e861b45904d979bc5e1b1fe717c41208b98db62445bd651b628253fb151682cb47b4a2c4f68d05c8318c9566303fe62dc1bfbc20e0916b493920ee77f1b28136d7a3f8f53e9c1499abeeae282cb408b18bc990da0a1063d9ef09c672e7daccab96a994bbe66d8529ba0de5a72de83d821ee27908b8de3c92d799a88b2fabc8581126cfc18853a9bf4314e9a5f8f69d4c04fb12bb2c75ce27a78a014d526c87e1f7b4a7e0194144c3106529153cfbb5608ddd36ce690c2a18f06b20aa0d4bf4b5421457a9b8412c274375d28a73c5b1c25db9a34c01e1bce49c868e73c54485932b456c6764a65af2a318d29cd75453e0258eb85ddd2b8b090d33d4ad158ed3e046ec18d67e9aa0525007c39c006ed35f29a4db80ff42fbbf8c9df575fa7963e1327ecd1c4d057fb3aab3eb2fe33cf195662994112ac7b6d282a2b88ca77fe8f19136bb178fa549e7c00605308189a9d0b85734968d97f2df0c1cff78744fccb6acf460fc0c9cf8236347687790f36b311229a799cc5bc29bf700836619c20d3bb683aafee7812f0a7f2d957c47ad4bba9e93a33e09e474a2ac255d80ca3066cbd74bcdbd39ecbcacbf02a8b22303cd17a0e56744935be802da86ebd520a2fdeb6563ff74eab20aecbbf9d7423673cdb20ba4c80e5109016a5db9cb4fa885578c6df29a789942479a407899cd2bdaf65c65b88a6c415daf8335da089dd3684511a1b421d6232b886d4bd0b8a189245ae7400679100b75ba95459d9c6a11effdebc32cf99138eb2d204d087aa73b8d7168fa2628166e5780ed6b8cd9a30f78086e75f4fc20698ab1e80f7613a0092a51daaa78098e73cbfff25b4a4b50965389e265f4efc39c30042ab0ffa99433bef4197d6cf72ef3e38bff0619cf9b2f8276855b330c06cbed75414a43243024c95c97c87e079539a78cbd885c44c9090d26085bdbf599b0aa4ad52fd13ab82f683f5b266310cb55c27140e77ac2047ad9780681edf1f9c5772354d8ef1b0bd1011f2f05b04793e070a578a7ab8b3659d58ecc529747a0176c2e6f708dc5eb790789bb9bbe5318a9d823637e2a872cbd101fbc6c361c1a82e8d8fa373b7b4c94cb676f7d43aaba716d8ba0a6c7a903e74af545fa834d5dd3a05d984959333019d67ad3217581e3e0efef632076ee8c0f5b9ebdb9f15f9dcc0fca5f01dba64b2225668f46d86d2e32bb6d2ea405c37913d08158ed8669a1c4df8ea01663723115d7d4a9bb59302dd58fed13766eeba2ae4f8b3f59ebfa3bc6ca1337f239bedbde23f22130501c4a2b4df090fdbc7d121ad22563fb3cb155a676fcbc0c8885d3784642188dc0af87ad67667891cb8dc3de6db54e56a753c3f0538035c9ac75b94026c3ceebe3b8620ac906b5e4f82e528cc51976fb6d488824206c61a22cc701ca452dc78c8aa603fc170bf9f4dd8070d159990d506503efda54d176fdc14a86266f093320706f20997aebb0d0de3f91f4889de07fbaa2aa9abecef8e75b1ed35c4bf6781d7222c79cd0b077f898f8e8720e43d9e398376d06c367d593154cc38c043959e61de1fba2b7335e82f65dfb5f59d13b8db22b339a57cb92e7ba41c57c56345afe2618a35770333ca523cea521023f2396931ea62838a8177947f908351eda856e3e1297e7dc62e5917421c224b50ce1b2bb0c09c3fb314709443516966d90108aad78eadb74751b27415f9a409cc6990a6a91309f84a92495b305840af272f35e24d4f76fad6e51c6224bef0a213ad0a5051e5071b4b3485b4d1870be089bde6f749a5111c178ddfc9c2d41f10d308498b47dc4faf32366abde20129e598f2d0170a61f0f3f0dc8e245b9771786688f28db971256345c4841115e7237bcab36c07db3d55119f37c7186877c6eebd9bb6df87ce09454683d9c861741f677a9e50f7f51a7321f6742555184d61703d235dab3f066cc1786b16103ffde51f4f18737b9f785c418ab4d0597b230fbb106d0688534f5662a94cf7d134269777d0296b252348c5da3086869588c250c5d748d2cd14ebb7fd62dc6b75cb2b7b81d65ce554b3b70213900a1148885d3b546c01c93ed9329f7015f3797dff9e264ae8e65a565f2989f97c0ffdd60f8e38bae0c0188152f206e574ad006b196b433100f3d5691cb9d6881ceb982aff57abc220b6178842f7e5b0f1d15b7547d38cb6293cab81de05f6ab41a260417d55c3128b3764cffe3c749e14fef9a2322c5337c1863e78409e5e4c49fdf4765889d792aee1ffdcd0a58fdaeecd927ceb98a26624060b758d87e62905ea17a6df1beec81e3ac60abc5b5bfa6ef22855c4b50c3e8734e4d9892d0305af372f450c6c29cbaaeb8ed37d3b70d2105821ffcfa846b1bc6d614d75279812398dc4b03f0dbbebc5be49cd5a6ae4c375015d96f5847f19feeeb5acef153b81bf17d8b54fab319d832a8bb2babe7983aaa571bb90bb74a06b27e7fe5f91265aee3b45211a648f8b93ec0b4ba7b7c0d186a92a0b1511747b12a3f4d6ca796852eacfdfe8e7f99ae2f5a9cb86b10a4664b4de58c20a44b83f3b01ddd2ca755906cecab0dd3866f68116862bf50960cf7047a9f4ca4b0df70856643048ef62ce616365fbe301cc2c05cfb3d0bcfb3d6e228c192b214a5dab49586486dc5b50868e8b6ecbeaa9b89197a6fce69bdee84e38dbb3415e1d273871bac77237845d830ab8a789efdd5c9600ab112a03dba27206b6e9584e0c2dd68fa4136c079469faf5eb71d2a07c270e53f7c3f273f10cc9f8f33b864d822449c73168f84367ec52a47399fa31a419ec99bec34446e3f8ef00779afc9206d1f5fa434b1d99a38fc8a46133bba299187162de39688ee0904a10798bdc808fbbd054cf3131308c7def21766947a234c566de7af4c68c5edc1b368efe87916b24f0a1eb281bf3bebe8afa658b0f00bb304a80dfc262bfc7c4b0871b9b8ad79462ec737ae52a220cf609129038ecce8309e129cc64f76d32cb4507b46c389a2fd1af4f95cc18bb1023df21eb56980f54070f96b9769d6226d9219c7f7890c74e0731135bfd881ad1c66deb923caa922001e1f84da0700ef972b5ccaf9356589ed07e68912a4bdb8d1e8837d1e3b3701664d4b7f21422c97e3575f23e02ddf7c1f30102c7db923ffcf6bb785459bfb30d43cd6c629ca64d48f24b0d2362bcd3c13f87b7fbe5c22f481d87c00af7efc7897f3f85e75e05e36f7b3ee41053166ebd3d081c7f3126d2a7c1c75bf21a45361f139444a1b525be225e763a6f4371542ae4fc26f9fba638d204c24fdc892331a5427ab0c1b96824008b3faf2024e4e05ce526e890f58a1758bfd96f5108a75921efbf6280fe4ed11e0976f46436c5e07758f6c834f32f2a1d0eca5ca6f7289b6f2997247217202e470277f37377e00d0d882c051f9f86812ce53dfee08dacfc579cbb7dd105e06dd53dc9292eecd89b8bfee5bbc5000ccb95f8a288f62d96ebf9b83863face0962648d7afc7a75c606ee823e7e0ca2de0f52dfe435ed33407e633bbabc3a75b5e72b442c22ae36fbbfffd7e2d0d809f18048952c76a8305e4e0bab1e262d206c25b17d35697cae5d72364620c3719716d434ab65dcf5cf55731107c80fd618e0c671fef8f5b20e838171abfc4cd40cf9019f5b50ea1ef02a5ae5829170547b61751bbd2c29f8c91cd953e37a16989c4358e5d952186ec6701bbeccba27cc8422e30ba9e329fa9ba1f1f897031d4c42a0ba1a6947d0eeb3b5cb00f7e612dcce6e3d3aac7203f664643a639327fb009f2a36734fa5d5da363085bd83f2b58bf9be3dc970e82db56da474515669b7f35e02e46af7f00dcb623d21876981b98abf0179bdf2ddf2f48727fd287e3ead4fbc512280555f4dd9bd4c8b81f10039c19f2616c0127cdfb4a12a96cdeba0b7e597cb98d27f0863a813ae6af142670e35efa6bd65c0ba8f038b643b9e3bbf37c6e4aba9ada45a95cf9824d9a4ed231794bc6f6f5613640326c75e274cf6fc2932fb2fbf86e0a0d99f3238901d366c1fdb86f56f1995edde105e1df3cc6428b5d140abd59a255398be7ebc1959ea81837a8b2ede021ff3e1c8079ef563482f0b756e26d3995695e8e8bf43503b1f3efa7712a08506bd2c5613bf050155e321ae7bc130cb4ce842bff1c3393f0aec719ab3bd500a880d33ea2145cc9658a0327e4b633dc074f65a939b64529d0d7895d0303196bda7fd69e27a71291c6741438355189ac18915d901151ecb454aaf934339222fad6fc1175d878c2354f587adfc6080cbb7d1d33f663b5712af8f8d13c5f47d3b22a1cb284b607faace0cc40f7162e5101185e8b506743b31e1c7b10c59f4ba51416549590a209e805540ef29d2ae4411511467abe7899d472e628087011fb9348adf47b63c37db9e792c18fbad064c543f4158c2ab1b1c23ffe686ae884a61ab9bbd4681a0d9676768caa6a9a3d5e4840ab6627aed63be8c2a0891fdf3589aabd72b2fd819f3b303cf5e17e9f939ee39e4799877271ecd2deed400aae85096d70598c990514298fc1ced368dcda7c0cb260a05285bb5d92217ded91b523b3df73b64ca17fb07dd59f0d78c881673d06b7a769fa9ad3466268a2ccbe20e576fcbc42be69952e50729d333d2363dfd2854099d0c5fa566788b2140ba18309d4ee26f08988f8bb3c5ccdd57b0caa9ce12130f7e95a17e10cfe3205e926eb172012588af28a2ffbdabe35c2b01c2f0b532a8bdccf35bb9d9bc0be5251e99ba2795c0478b5cfd2f8b4c9ec2ed31e51e58d64b534db1d2b2bbaab97dd50172fb92b56beaebeada18cde65641cf45e5540beb6d930ce8a816e2c7c79874af568c720cf23710ad53a06b3818dcf253e321f03429373c05b98a6adf2b7b5d3cdc993834eb8ef3e388763c880c18850d701c39f4645f00e9ced0f239042cd73720ddc8f7b9de13baef4006722c2b3527e50fcba91bf415a4bab6322fb178a6a430c43bdd490749e48d810090341f8616c0255b6bfdcafadfc50842be66b515421a70d825fdb9a8c23d4b1505ba61f84ed524f97e545c6363d816e42349b63de0734156e40995d30ea962c09f74d314f70dcd48634d5777e468d0842f4f4d371845c223812b1c51bc3767c1d02b408f73545f6763fd3b0478bd05554123ad170420bee18ec0f46c8dfdf23e1c214ccfb080e622137aa3aade4957e573f2529cf3483f1513c3a7bee9074fae5e079d313e673a07f24d00d0f616518e666c12022adff24f1a85d8a3d7eb6b23a9ba696dda74b7e5541be1f2468bab8d6eaf4370572738b973e2ca11ccfdef7577afe8da8cd29da18a388dc7a06cad1121735cd4778062ea5399c245f3e7ffd1629bfb7c41a82873c0d91db8c3bd7770c6ab3ceec1ff2c64dd236ceaaef2f5e02358931cde4bc40b7e9591b606d8d4237adfae28de4633fad33df5c0849d921a945cb77a14be40b4eab35123f58189ffa7a8ccb47b82e3507f482baaebe8fa83470c74f0457ed5d6ebd22f6b0c3c2f955cccbb0c6db74c6372a072bfcb417f141a4cf71c42f9de76793ebc3d2bb7328a00f13ea1d982d3332d078518c126b16f820f323fef2ad3151764c0bee25024248a5a913eb89f47fcf907e1afa43f075ead7f697b5af1a252652d28f8f26faf60a7fb6a71c1e23bb7ff52578054b29b1a991be31489a6f9091ce0a3d987a71fdea5bfeef7af8c9e55c63b1c6e821a3850e52d7406d4918f6581e9671a266644aa1d3ad64e6e40a2ec7743aabce332774210a30184279bfc4e9eff8432339befdda753bfb186f2489f4b366f1aab783e8c3169f2ff87e8be88be61c728cdfafcbdb213a72b4d3be24f62513f00141a8df87df01df3d949b8981da485f3f0d72ed9ebfbdec7a2ab74a795e7e783b211ad38cbb272795c9a86dd5e76702514bfff80c5b2e7aa603f4584687610ca94be8cd8ed00c2d5ad8e09227899fd028c16c9d8c3fa255197365fc880da0e9dcd3e553e332403dbb72f9e02831c03f61424fa288ad575af5cd44df10ec20a19b96f0fc7c2dbbc73fb5b3e62f03262ed7718c15167f5304d355d04aa830d4cec31767d94e00a73b5112257c0c25e7c172b9203fdc9d309536211b08c63c231ff19d2f94805e634f6bdbb48d9891a31fa4fd9552062b4e307b4bec0bf1278e1e2ccacffe1ab0ea3735dc5e65a2e872d24748ec61199138fe241b954ff881e749e7ba86e009d3b0608f676598a54b19165a953d8eef2a19adad8ce4dac291ed5245ba201725634f5a87ea0b28dc4502e8e07f68146d174899eb0c29e29abea1479d519fb89c86ed23377ff6475d6cf3974adc6636f7603e4aab8ab4bf2ef71ac9eb4ed44f2315639835a20a11049aae7821dee93afc1c5c3c0edc46277e8558c7886466df840f19339bd740dbe85ab9720ac6d55a18dca1ac446705a6024ffe8de31db73a70dc942a3418aaeeb3dcc45229080e82cf348eb255e0d901d8b6ca7ed20d92301681955435e74c493ce946f994a7cf6992a4f4eee38d11fd4ff5e659f4f038b2797034bedd817c2673e64544f5e0ea55a062613badcd3fbeaa61bf7d0927f9b9d78292a32c2530cd87be947cf6a31d1add2ffb794c95841a0a633f329efa82421afd0791547de5a1d0cdf8687ce1710f07afd0643b20669325f1355dbf15642568f334397406f7d74e10c702f30c91f124b716f990457521a4a65054843533c3281464ff449173d3bccfdd8f28e679b59144d60c1953561e6bd602edc5801d20957e2e01c17abbac56256ee619228a2983f72c5a61149b95c7e03e772ac71546f24cf150219edf818107a28d5ee3af40e18d9d21da8335d6b4a793729c67382c5b475e6c9085b403f9cbe8378a9e6d80ce2fc3eee3779518b18af6e9b3cdf4e845e32a3d5ff23c45b070a252d7b5cab98f879129199f8cd1fc5045f2ca88175aedcb6c47d96d0e85b3fcbe288ddde6029de448b5cce6c34d78a6b1f90c4537c3f0504f834b674bd5bc2ca6a294669f9d9651ae36df10ce452448888882227246d95e21e24e70e185596b1b571ca55871d0954cdf943aea8d4eda2432f18a25745f58a22a937eb7e0f7d43debe129517a6960385ef9bcee66e942b11a9b1f4f4a2653a64ee59a722c75b867dab006b1c08ef74e555e5b46906fdab44989dccbbf9af8142016b3f6e8d951130026fd7eca5418383692ea84910ae53b19fa386cebb3df066cabc994bf08dffce9b7d53c40a17cab2dce1eafcb8c794ad36d1dc6980e69db1b5b9e8c715a086e451e677691adadfa04f4d36ea6bbda6454406bf11e9f9076e614758293835c935ff38e8aea9b4fa014d083e3da27c4409513426c459eb5abc416f22b71481ec8ef8e93b3897ea9cfbecd060963f4abe63060219a63f5e4171afdb10a3d4ab139c2dc9c79737515d067f3725e55a3f07e3d7584f74b1fc3f6cb22a7cab8368802999768df8391b46a577a64037df003ff2acf57155f8070828d7340e4008fb42bb7af663cf734c2d55669fe74c1f708f3f14eba22aebc04f66d85a950b5bd06ed705e79273038e332abcce1332714b11522a2bd5a7b5caa9b8f16af719fd4ba88da31fa6d6902afb047f2249b89fa11355427c17c7b0c61c1c36fcb41c7dd2c3286030a0e53c90f3ea1fe308cfe775e55f124012e155b758406bbeef6b53204d81d27c6759e650833ad7e707de354b9ea1efc767b28f43cdeacec67edd5b9367b0d569f40f2cb72c3827f19774aee52e0f806e1e486683f0a501ea85c71acbac88572d083867334befbcb8016af8ff00c1ad1912bf79d120e45362e2b76ce1c60f062953f82b4092632201d4fe126be44c1b820a7af46defc359c13f710eec1a726aaa7cb86c950e9de822600697a62732533232928a2c7e7c5fe74ed035f260bc3445113f8c03ef09bcad815a205b38bba80bfb81227e215882e60d8efa7f522e1dd93ca005a7ec4d553599e6fa42f32f52514e9c5a40009a7b14ec6a8851a0be1d0c7ab910fc4f3fd1f43618c35def94417acf75b221be320d631abf9bb88f2aaa2b58e69db4c05e4526f291306d6538f3316d5591e620a61c20d247ca58b2b1d2750a6c474b257a863f18c540f36f76f06ab01ebd074ef6d544f59d151a97cb7c968763ae769aff799d4009d7d71525338f73b9c7b01d3f2e16fa39d7da5d81030bc3d86c49cbc3bfb3613468e055318505cdb6c23d49cc1559edcc5ea6a8e2ca8450485f6ad7a5081ae7225fe2ab08be9256c2637e4440306ca76cbabc230abcae9606b5c0c0c4f6f86a7b4f061dfedbb8dc5300ba64f5c517d02c4d2ef013531014d66fa68b917d5870272a2033b8fdee1d5baa88f7e830c2c063c0310713b80a3300916837164ca13db2378c8631b6424fac3c09e4536b73306efb899e8f8362160b5ed0ad016cd38636aa78f4d541a2312706616d741b115350918d9a3d89fde631180a39e726325c2ab75454f07a3180537d0ac5ae3aa921fa03ecd877070289c81e72f3891c132b58268f95af81a7a0e944c39ed5c2923dcd28a872c11edfc528f1f8229dcb9ae1a1220175f96bac1b24587dde75b956e5e0f7864c0f42bb78699da63c7d52bfe40d658e1500e6a275836e4c7465b22408db40dfb327284e3e2786e38ca844236fa8b4b2cbae2e4d964e3cc4ca136c8ccfe2e2d279843f13b146c195a5685affa76fc4216aa74200ac781f2ba5cf86c544de54351fc3e1a077d92a489c30595c975519150ff5e4e6efff12ca82fcb0d2e6d3ff75fc6763e5b706853727d93df56036b847370aecf98b58f1c4de1e3c2e6e71ac3d732f59084b3ad64797733c2547df2f83bd8201a4da11539d01169d538acf9f5a67deaa2e7833bcc4be1f66b1f281b0ed9f22de46af1179460cb94edde0c83f091fa5657204923e588af9b60cbb1a8586344340c260e7307ade7b0132672df67a6a94960083bbeffce0672ae3a737a7610a3a9d2f2644b8ffb0814ea43754170f07801403f1e4bf7f3c3e9e173a6c5b78808376a3a1df60dc6fdee1dd40c9e587e20ee1b20d1aafc6c2492e835e28563d5f0672b4bb80a180b1dc475b5dcec870339c2812ec29720116c105f4eb1ecceb1778cd93f65335930653be07c9ffe6d9bbf0dc2aedf40afb9aa72a38bceca7d1c219c6b9929a639bc8d985204695dbefa62117065e091840dd0f9442414111f08c452295302f17d5148fa7ee167558ea67fcb2169e9d10d9e12fbbaec4c90a520745440c0274ad0231ceb9caa6eed0d2bc84ab737ab5ccbb382eb82de17ad2290a4a16939700413d219111e83551633fc0ab8541cc42916c286e9d015d8ea50986f9fe029c40bf2489cb66df45054ad945b14349b5d050baba9ce7ca193aeced09f6814ad379e75e0a886dcc08e613716dbe2f8ac0ea528574c941cd7c206cc6849ac2b6d0bce5fe673569b82b52145888761bc048dfb35617bef2863b338d7dba5ba5920d514b84ab1f98d2ce529aecf61389596b96789705a91b0057b25d97bf27966124b207393e6573596a974fff5f394c9d8033672f80701b339f24b6692359097cfea5a824fe4b833511f86e11d4150206374e09acb967d1e5d1c66db3464619c429196c6e9777e21078f6b9d6f6a9ff9d6e135a8a2a2d5bebb123113f52766d383fda9309f631c1daa19dd56b5e1a956b62a84cea121bd94d80f7d9f4ce5091761f6d1f91eedde1fcb329ca2e6f67502dc5adea29ee4dd14cef3f2ba44e84350b5df6d1d6e41ef3b4b1dcb4244fda1e11e857fe78d2b4aba9b068ca4b081fe80931e5ac611190dab57e85863ea1c67b432a4a87c0420b0e5c3883762f0ae8fc3f42482b1569c962078c0bb9e8b9800a8b94340e5828def402b6217cd6d6050d9bebbfc10305b11c9104452efd1409fb7dcc627ec179cb9f3234fb67dffb238cbc20783902ce5ef454659bf4ca2309979fd527b311c3fd9f3c463d9879524822bb86da103f1298c826002cf28a53c9de7eea793a5638882d9dc5f04b6cab2fd6610bce963cb855936ad8c30813f10a976ac3da1827fbe828b370965b76f685113aae4d1f9694ea26934a667bf1401603bc60febcd33219b0cd53939b79d1495af6b9dcb6a96a5db8d63bf75e0e2c099deca1a830a47147cb8564185cf5781270dbbeb668714c54d840db6c09f5ff8785ea2436cd3e5a592076f917c839dc58e1a33d2c93951718c309d50a24f7dad7815ba5c9d627845267b4847f6ca0f784566827f1c070de31f82a540cc86b5e81c0a7e02ff3cdf398215f3001bb02dd489681c673bb7bcc49f4171120e57f2e29e2c70f98d8235bc2a1f5b83697bc1e50db5a8a73c7195870c12df0c799f70b91c91a2adae0a269a04feb270eba1ac4e4676b31386083e3da72c3d7c9636ffe10527bfe926325e041f8e3366cad7e65f47a143286ac9239039cf860307d33a37f955dcc5c763973a3059c2378f390a0cc3b7c875f2370b2bf74a85ca7d105126953d2337a37a494abe5984159e3013108aa62b5a782f1c42e55f03b3745510565e8ff8c69adf18f3a0130a9d7266c8c865490b1de9cb1aade23ec14d27f4f88428dc1961b53bd55317c1bd95a1d43bd79785c7bd679403356214c75a2eaf495803ca8b887e76a9d507d2262743e22c5921e5b47e7ebddf2b58597c1aa1c2d957d8796a400b093ab1e88c3e97e0f6061481aae08be5ad36d2b8ea6685d00397ef1a80b8551056635969dc8bb39a966a66d5923bba7758239dc63f3a0ac730fc30b11a9f3a5775cacd21cadcfe509643b35b60c0273d8d0cc369f812619581a903b7d83af1ae9c3a0b7fe30f6116b09e3a75a87dd98bec773997eb29de52a99c2b42002d9e57aff86bea28c859ebda791a27d226b46027c62ea37f4353c74ff5b14a64e9d93aad3897e7cd5a41a0138b00c22f11f381e894827b8576fb158722da1a54cfc57b3b6aa03770a21a7633cc36e9ed64be5c005c4db7953a0083c6544a1d83d2b12c5cd18eb617e83174b626d06f1e08578b33b5176574713a782199df82c4d0a83aab32c4ab148336f43c0f5b45dd3b92d451eb99b7d799355310b671c9815cf16979d9609f4bd4c8aa08f8213b122c62d2c186c3fa793af7a937cb497a700f297786035ac972df7704fd57f19483125437bc05241ca7ad20b003972b056379003919edd780f5d790e8f305538f0a96f2254efb722d62668ce16fcee713708021184f0c74d6ae15ea85abf38412530ea3d304f6fbed5414735f2aed21f414dc0d20a2000c02a8d4d9d3a62b40832be46ec30ff32582ae1b11566269215680c9c07531afa11d24475841e71939749b2efa75b6d1e1ebc3dc7ec05037a21f78371236bbafb61fde144711c119114614cffc5e48d490a60aac2e3b226bd2bef567fde88be23eb84b39bf07bba027c1238484d07b20cf8315146bb0edc27cc9913c571cc3867dcf6a035c93811cc99241501001a7dd2db817a92db68ceff559a8de128f328bea7857bdcf509800df8b366cf7ea0b5437adf79a047617c1bb98745200e80d19705e05d622e37c965948d6a5b2c3f63f9181059747b16d3b012320bbec9fcb3bb27075f68279a124e49b304cd32bcd00c2f1e7e1cd39c2d6a4254ad97dcd5ee1b350ce1ee0cd0b0dc0e34501a44d4aecb90751945cf3be9a71bb75f5703860a0f212307ff4396a169a38d7ea07055d54ad010b6f3e151bcbd143ec8f644a100916d4e6c58d3eee874e83e781580e707ef01a3f18e285b2414032649de7e81b4e2a1d9ba35657252b4aa621b085eef9b230170b7d128d051b245679d8030e25d8ae1035732f7357ca908318e788b656abe98712a92830e21914955a97505ee1290aef116cc191a84bb5a84a89e615267f9058e46a4345dd959bd402c2436da588cec028d5decd0a2463ace94febf5bc27466766e185e94aefd4b74fc937270e0328027b6cefee41427522681f744ead9fbffb80ba8f5b27e32d332f58b36aa63eb2aa63de4913c2b47c0af8554f2e79c3c7d4d966f52b4905c700cdfc10bb306a8e491b60bb7654e8f3db406e0be08a4dc0d8b2827a13f045d8507edb17410bf11d9a3d8b822fb0b3b18289048854758e48d6e977d233505b21d216bd5ca5de02cd2d79a3ca1fa4115844df40071bd9be1f31948611393f306307018800c65788575bf081e237b9711b8f9d263354466c20ce416aba0b3b3f626576162af12b072a51747861faf62f9c9d4da5b3d464b532d4d4f1bcd5a1aa6a1ddc7968b501915f0e23171d5a327ec05bb5e9623770dd53f5d9e56a814e6a752aca575482de2af29342ac7d17812463078e23e25ae41c2674ca25bbc0b746760af43162f8db4c07e6fb90c6075ac7b1dd2f57cca860e5c782ee4bf8b528c6e6abea126a8a6222e9f8dce56770a53986843dc71b39a498c2c480e0f20d781cb10256e59505bf73150b63acf7cedfa187bc88117f40ecacba45944b67ecdaa00bcd388e7a2f68a2f0179c2baa9e93d9d532e1b2f7cc4b135b665ccf7cc58f9032be5da3b0c4a2764c82104c693be6a947aaf6dde1745c71ed7b7afc197e4561eb5cb7491cde74f5cb56298257aa290e61c1f760c3c000e856d71942184ec6da8f6118a538137490336308ec94fcd3a12c73f6284a08b5682bb3605410041b5dc2929f017aa6c7524269f8bcbb575551d67235971fbc60b09837e028eeb2e5fdc5492e0a6ad3b54f7d143dae637915ac75062c2fafd3dcad8d5c71b285845ddefcfbcf3920aaa55abcbe498c6745299daca37f1283d07e453f2b3053ea260738e3e2a0190da800605ffb852ad000e961f5ae67469c587278c6e9d18dc8532afa43cd805b5b551a7ca945bfc45723dc865d80ac6675218c5b9a53bfc761c63a03df4564d129702c373dd04d1a80b12a389eb49b81ec6f142d6c51541c21080d550ec0e65916f3ba132fcf2c607e78043379951f40bba8a24452203d50e53010c28f667c5b140e6198ee1a95d624490393330f5a2d5a5bdf1e684f5c7f50707977d441ab39cc184ae13f0d76690bf96855677623a25e9a2b61f225446c05b116a16ecf65898c5e0eb328384c6979f559b96a8491e34a8e58e150c7e2af51764d39dc8feff653619660adb2aa2286634776fb71dd10ed8c97425885398fdcc60fc79c1074ab97a5713e8c9cea84137a173048acc10c1800cbc31ac1d18d2887141bade6fba71dcb5ac2397f49fbe97977130fc6e8b1f7e1dd4645d3acc1651479e4470442ae71f38c608699e0f3d955219ec2f908635ac8864097449eed5a9ceef6bea496f3d35574855470be40c5359d3f0b409445b701c0d5877b59cc6a339ad08073e2270c78c05db4d67d71e12682c7b7f1bdf1e7ca69dceeccec31715cb82faa9fab102c0b43f54167056f04bceadb509e1fa9df4f2acea4626078f04d495a3d5254974dd56ea65458c1366addf62d65055cc4d2cb632eec38e12c746725dd72393aef4197820b5e93d6ab99243d1a3ae06ce0e810c9901d2335aa401d67ed11beac371435fb52b3b0d19d777f1611ea65c3877f5699a4783f6f6bb96c63eec7cd0d2faf75f062279acfc66599ce6a545026b6ae911ca485b66c4ed3da2f0693744179ed8271c431a8fcebb5cd47cfaf568f50c7d82bdf21259584713a98c6f379987e1718d87823028d543678d91985692f740738a3e40a51e8f07ae8d8e228f1b64a6316e366df6495ad708786cb9f78e4fc71925c3c7e496a44036e1046a4930b82796db009079e69364ca2f80cfc93c89de7ec570bb5b9681fd8fd97b9a761b6142cd9e3da5f5c2dec38aae89069cbb8ec6a1191e55f6ed40b8280be64c2469acaf1bed9d632f489832b85006b23dc4393f04b4a511dc7f675fa673e08a3d6cf7d86e940fbe80a8e88c072fc6032703c2afaa3a04a278b31a7d199132f1cf2149c71c6fe6a7745b1008b1e3cdaae812a07c22fcf90f22a6ebf0e36a5f82234caa39bfc5cb71f11e1e42eab1757e86d8586f389e07d7e66ac5dc096e40b941303a6b0d106c9ba7a85ac0b46e35b263ff50422a37f586f0295a3482c0b19a25b6748b6a5c082bb93faecfa6e2e69def1ceeb6e0de74baaede1fc6f40be236b731b879e193b6f5f745a82ac0acfb8a813f70d8a9d7ed17760252ca2580c32caf379498acd8108a426eddc994dd725373619567136071098e1efd6b35ba09d92a4f19edde267daec77b1ef3844325c8c004827644f9ed448fd5668f539ad5f24ae8f0ae8915db0c259a89985c1c69339cbb2dc2554156f25b0a43b2f4d9b6f9bf39de2252376c054df1430df328dc6ffdae331d8f1f4b088fd3405ec03a38108ab79613ee3be04b3ec341b88871475b150ca62840f59929ac30e3350ec3897009ec419dfcb01c8ac9b4c80f36977cacc8d271894512ee2307ba343fbb137c7423593ef86b02e7fd4d08f4fac1458183b1a050518bcc20827c3e2e8f6b5bd90c6cc2d255562277db7c537b437833868aa090fec3c56eada8ccb0124c9c2d08380516061ea8e81a3ac5dd27d721d36e6cf0690ef874b9f1cc233fc9b6a1e2b7c6022703b754254cb09ca0a8bbc0e9727549e30c5a0c762ff1f3bdfdaa32aaf3dfe557678abcf2ee015df21a283a38e88e3a8274f760a14e87029b645c593fdddff011dc7b9ecb93de724e79fdfec644bd7a58b7675b1ba2ec988150eefdb40dca8598b2ed760dddaded613205a139af18858c6deb711505575d07242cdaadc1fda1567b75247916c357a750549ca540cb7549cadf6d664238d6a6623a900a326dbedca78d2d5ba6145956ed285b659685453b6b6c497099355751d3bc930779291b570fdc564739505372baf52dfe7a08216396b4e37dbbb9b4a732236944cb276b42ddd641655940c57346ac9cbd1dd5273c3ad36e90dacc56188eeeaa39bbb69de0f15d502cd71d4268b990672b535d8ddcdc970d36c6971b7dddc86b51aabc80ab77c081621f324c56b0e86d76177dc0db5b8d5b31d9fb7bb73451ea7cab63954b4f9ce5f4fd9d5b6361f3abb4d7bad4edaf2eeba35ea0ec4863aa2aa5ccfd53befbea5357d84e63d3eaa249b6e3fcbfc9beda69b6e036b48fbad03c5578a2d5594d8e37bd2d0f521f6d2e9bd361a35bdd41e3596d78dde60cfed3b395d56a419e91b9be87613dd6681133071251b336fda1c665dfd7035aed496c3e94e562b2ad4962aa788c343bbbb6ceb13da5eb9327352bb3d65925b21db8dbe909ae371d3296e52e3a06fd404801df4ef40d0337683b805e12c8b1330cc8a3ccaaa4c27aadc4ed06439c24b23591d54da1a29ebeb41a52fde8f6be110a4d349ac1c6259c324e8aa566e6ac46b5bc3ee0857ecfb546b4e875a4dd1805d19e05b6d6cde11a34617b48dcca8b206ed8d34596ff8229dcaf7e2f54d3ed01b0353ad87a636d74719dc759d59abbb9902ba51a99cf98376be5a18f72b2de5575799be54e6e6368941b655e7a67f3f94cd9e8ecd795d23db54d337f5b9731d1f2a329dd5e4ebdd7a2eb50eacaff7e94cec2f492057c2f9ce0fd663756c4ef686af317923eb76e86616581c0eec4a5a8e3d3c680d6eb687b6e2b50d57f2ac5d1018b9a32e7ab7902e2035d7cc8e1b991dd7e32b336e0e7c6b3ed6d26092dfbacd70e58fcca97f130da75953ca001b7ac514c9a2a6dd83f626ad07c6ca328db9aad69cd176b04b4c5e615a6bcefbab9ea1654cb39bfe96ccd86c511988f7ad084fb7cc9bdc6dd5d65eea0fbdeeac62fafefad69ffa4360651430a82e32575d64d652f6877deecc78a5dd047dac258a642c77603faec7535d1f0e0e6aaf3e343de8f813a698dd76b62b72d9de5233b4ad3f46195d03600ddb81171a0631fbf5d124c46052e33d495e4a6e9cb7c2f1bd7e6d2b71bb4e25550bc1fc0042bb91b50b5fdaed6a6ab33bdcafa7eb1a85338477f7f57e4a72cbdbaaaaaa9962a49b8b592ef7e1d2b89a852d97dd7180355af7e46e4be6436ba0874373e20f815ad993ae04a4f06ad93706f73ab13635c5a51c51c5a3ee5df77e254fee57f589a7eac53aaf8cbd794f0c305bf941b019ea23bb46d381363296de959825ede154d3f4b06b8ecd6ba6555aab05bf31bbc3c381df56a6e3a5d793c5432b6a9bbe1f0c661b35d56db5df8d761313ee8d5db40636081bedf8da334cd3f4535f9dce16ea611db8fb8555930f15c5b8ad352bd341d38d544deb870b2d8e46d22d068634204a9fecbbcd7596dbebbd9b823b860e49bd9ddfc66414acdba619e2c0d869d7bcfcd34cb7d2ad6cfa9b43d236573781776b18863986ea521bf56e4c89e126aaeb9c2452b19f7e68a9b27a3d1f99a355af372296e233604e71a1437da7f6364df5ca9e7a666564c09eaf8b859e063b6b700732a474c7bb6bc55ae6baae1b46ef5655fdfc9a401aa210f886b19a9baa6e8d7bddb9ad8de6766faacf4d1f07eaedfd4cbb0e92edb5a5ebfac8d0babe1aa0345fec67f62eca46275903f70a35f2a6a28fe4765ae874a2aaf7b351e48c526f047acc2c65397e5f32eb35b97223c94de96ea32c36edd50a9736d4504777d66d5fc994dc52fda010d0986ebb579b0ab897c56d42cd75ffaaa1699a2eaaeaa2476d652a4599daf776c7b5abb9a82fbab7854c0ec908b518b796b97258867511235def5d8f17bacdd503b20f77f020db997bd2c54ab5b4a34e4c3528d60255d53056c5b94f544d1be87a97a8c59e8a35157cc6ca1cf8ddee712da57de0e04f32749200757add9e70bd720bf9582dfee9517f1e5a99196b9a5015524851c285cebf8569e80b1d41a80a1318a362f4fb7755f0310f32fba74362e0621893c4b5339a2017384e00f95f3e0f3b00271cd1044620c380f13c423f1dc60a8938f148f1741187382a51c951f6235b5560f880844eb3591562e222a15397c572f88be392571665f12fb1f997d89a8b6247963a72fd674b5414b15697e4bfc456471485aa80d92f1753a1e3c188a1aac0f2f2753db42d44d7c456553012227424b9566b3624a92a4c229c844247aa0ae3f2b5b59ad46e57855bec0a1d4914c5aa30380dabc2f2d7af14baa2d011abc2cc2d648a55c13aafbb1b85c74dd445a504891332a1d3ae0a2ac771b10e0b3942476a2892222972b3783b2b308dbadc92a57aabf1bb2a8c9fb336a47abd5d7f603deff87755d03ecebafcf52b4b32865ca1f32fb12a56c5bf7f17c71a205aaaa7d098000212a387e305964371cad9f1801f8ff9f29485aa60c429a17c0a7920743e6024cf669f2cac1cf7887334bb39a43ee2c7f18c10fed1950955610cb913089d7f093f85bfab82c56184840ea7193a0133041949848e9010fe03278cc32842ee0f3be33fe016e208da11fa81931f768623f787039d0009556140fa3842ac901b20e822fad3274255c8f0f1b9c3894b76c5f8ef077d94bc6f6b43f8c837f5a82e9fb34fcec830881163d0475f98c910dd62077d792280190fbe3edba608ba0ecd62fbeb3218620c93e41f0b2861449fcaf1090f6b0fbfa5e95d106348431b72c4401afae5cc80c751e1e138c589cf0a3be9a1b434123bf370614476cecb7372489c52c418f022c8d125c23fe0f4128e0ebb4bf01061bb84130e7182288830e32704da97239aa79c9c07001e5f78041c9c06e5524fb07b4974197c0490f31474e54643525e201e558adc1da42e7bce164538e5d879c40431bc80ced3294cdc8ce3e81512cb6c1ea14742ec361e8162de05e4d42f80cb0db0004a4f20b9d17c023724f9027ef64a1e5de869df1095a7104843bc17aa024a1ce2e2c4bf1802c812e912b62143cdfa130c4e20cd2f313eb12fc1005d0a07f7acb4f7339ca2b8002925b458a5173ff33acb0c263b027cf257441c18bdffb97ff0637248f2599ff379ffe6730602ced3936d7c666a90c530292eeacf4d0b514e8f67f8995911f9ec8c0c173c5f9af7758fff30b3f0dc843994449fd5eaa590b31bfa4fc8000e39e4ff40104ed2ecb3f7ed8bf9a0f0b411e25fba52cea24e837f208141d7835fb999538a63ccf1f62bc641b1f385dbbc98055248d957cce03b02793b0279450e385df4ef70150e93019646f84d661cfbefb9d6130b7030755ede1eacd8924f61f1c9001c43ff85eff4899d791e8c08081045cf69ae9d3150fc3c271097613f01c54260fe82e84708d89ca217f21e233607624ade08e8dcf00de231cefa682c78494c61e23f7f2d45fe3d49d0f12a7b4838de6628541bbec2fa32ecfc33f115853fe7381b640c53f6366b1abe3cdbd77900e32e79262d451c519b64d42749b9b7ed337ae883730c73813fc008266e19bebc7a33bfa403861c8af8af0bdf422298f83f09f5c1beb45104ec387d9de03898f3d7491c7bde9f29a750fd09b5f8542f620498f8d9e95e789fabbc8aa0f3622d4fb939f45f65b878570059707a00e84688d6e407d0a1ce1138662ee5661e9ec02111a14f2190c20871fec8e352b83b033ef6cee3f3024bf0e4628ea4fb14f967202dcff3cc5d2448307a8272d2ec12f462ce08e597a804714e8fb7e5194758694c97a8f418ec5ca41c4fa750e445c8e111e64fd00c277e84bc08fbc193b7b29c39308a00da230725dbd7485952a6058f8785183f067c65368809c0e4a49a233a86e56d563c808dfdc761193797e353c213e3189d1e20ce228e53582aa5446c32c2919b529c7068972e3b41fcf85b3a988b61f9f3a0bd27c8d3c2ceb8875d9c708595a59494a9660167b4a0945f3d61a5528ea3ec1817a4c79d150fe0e1089de093cecb918ff6e97900589e7058688f66093f6ef634024ee95f1fa0b3762127719969bea09cd4fa02cff2b222793427c6a943ca737c48e0ab02cb13e7f478147f3a5da12a945f1a7360720c814fcbcc12ec10f7620432ee49cda770bb0419f40abe2d4a5c42c193aff821630fa0134059fc18574aa25caa898d77b8cb47f1a97d94ef218b7d8b39a35bf490fdbfc11784aef736c7cbc4ff0de677765c58a69bb0e2ff6350fe27c6b3e9fb59f9bdbdcb9752b2cfdf6194419042277c830bbb09fc0399e5ece4ff5ea31ecd0f391945c0c62ea6d91fb555b2720a13e6111abfc5f460a385c08ff02585bcbfabc21c317e2ea12659141d51e74ae91135266eb1c8cebf850f1793cb822f4e1e2abc9f28629745dd31713f5cf4f6c9cf98b8e5b405a26554df11a49f52bd6c8e942eebdc39f9d0c24f95ef3ff44c7e57051772287404385804ebc1225fc5fddcb862be33e887eb4194ad0fc41ff798ef99e47a944c222759a72b7971300643c9bd9a6d6ddc6d1983e1d689679183a57c75374bdde5b869f4d49671255ebfd7f139f606d0279b039f6f083cbe342e8ef2b536c0d337fff409b071f244c27fab4bc00ae8878b5294b82871f2ce8fcf97b42e9a07c50e8f2d832224763fdb31f8a705b3af1494de9f1013277c3fe73c45dc6fe7111f4a2062147fd7cfbfebe7ff13f5f3298c229cb8a8b805ff2af445e2d26d7f17d9ff7f28b27f57e5bfabf2df55f9efaafc7fb92affb108a9e4020cf9314a3ee0a5ff10507d3705be9b02ff2b4d818b42748848025e650d500aff43628087238e9e3709fe41ab02c536723f9c937c373fbe9b1fdfcd8fefe6c777f3e3bbf9f1ddfcf86e7efc1f697efcfe7f000000ffff010000ffff8d9d8fea3c5c0100`))) +var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffecfc67afdcbab2270e7f9583f556be4739f99da4566c65b5520f2e0e94a556ce6170bffb83b56cefed9dbdcf9d07f3c7e002768bc5fa154516c962555158fffbadeaf27e7efbfcbfdf8a6a29d7f89f49df826915b57d97c6ebd46529982465b4fc47b1d4efa85b35bd7d7e03cbbecdbec1402799aa6199bf00bf837f7a93dba19f16335acab7cf3ff2824f6f7ad4666f9fdfdaa8eade3ebdddfae4edf3dbdba7b7473415d9f29b37ffb3e8c1b8ea7ed182ddf7bf05fe7117b56849cab7cfffebed9f6ffff9e9cd59a2267bfbbc4c6bf695b0b368eebbb7cf6ff33bf58f341bb22ecdbae4fcfc8fbf18505acd493fa56f9fdec45ea89a6c7e7fcbfbc0fe59f46f9fde86bac8d2f7e27f7ed3d307e0871bfd6b758255b76453173560b1cc7f53a2e98bbf29b1567f2dd0f649fd972870cea6ad4ab25f75b98da63a8e966c06df3537fd29f3fdb7ea0ab0cdda77f5deb2e143b7f19a57efaa8fcfe5a3f5a46f87299b67306fa225fbbea2b8aae17bbab9f6efc9aba9e20fba5ba2aacb26b0a9e6e56b45767c94a67358fa9f0a60f4e5855f88a41aca8f117ca5d3ef99e91cfd4c64c92fc914c17198fe4dc5cfb390a57b34a5f3af614d530d4b95fc5c53b6d177d44fe253d4a5eb5235bfc39ad77869b29f196d8aff4cbccb7d4725d877c4f70398cb08fe0585e0c42f681c46bea37ff5caa5f94e4f070ed1bfa4c0a1ae8eb74f6f5997f469d515df15c168eee0efe9389a3302fb454dd545d3f97d4dd1c7df9365f67de3e0ebdd2c7c470f59fb4e4e533fbdf7326f975f2e51336a9aaa4bb3092cfaff78d757dfa6d112fd1214ac51b7f7ef88a64fa28fb1ffe16689a6aa8ef6088c863fdd79dfc1c0e9cb32ff4bec0f58996fd0225ab23d3a7f045a465ddafc7ae7fe3e74cee6b9fad0ef5f43971f1cd4fbba9ec1328ba6e56fc09765f8ba21fea6c447219daaedc746fc45f8eba2fa1b6830ebd6f66f8af4c3f283cafd22d4f653162d7dfb61407e50669fff4a6d1fc6feafcf8c1f3ef1be02c1392bdaacfbe1132fe9bbbf7b38fefde3b4587e6c29fd8e68b9b651575d7fbac47f47accecee98b0dfcbf7fecff4ae01df3efbc086cb3798e8a5f3b067f47128cd6a59f93a96ffeee347cdfc84fe7feff8936c0a4bffed47cfe45435537ac3fb08dfe5c1e7c776d9aecafccc25f34f5b5f0df68618ed23c4afe8d1686a96aaba5dafe9dc5315549f9ef49814334cdffce32f8eae2fedb82efebf8dfe8f337e978caa23499d636fe6fb4b12ecbbfb35abec9377d94fe7d03f55d036dd6adffbef40f78183fd4c007fd234be087629f0fd48f9f607f102afd1ef26b5cf217a82f67f73c34d59f82abb6f8ab93ec2b044caa29f9733fb6abba22fbd389f882f811fff12bb2fd5377e12be8c3719cc1aced5f7f7a86fd12de666dfc437df8865fffdc3bfd25fa7d5ffe1a3dbfafbe628ade8d3358b551f19b5d53f4f19ae751d383653665bfe6a5f13a83ef3fbf66f4e95c151df8de995f3bf045df174d06c6cb94fda6bda96a9a089c93326ba3dfe7ed593cf7499d2dbf662f35faf53789aaa9ff637691d67fc2fc127dff1177f913d121ea8a5fbf76ca8a57df655f1cb4244aca5f8ff8b780f759a97f07fab77214bf9dab5f237e323b6d34fc7936e467e812d559df81bf0b2db321fa3fd40c9857cd924d7fd1ab2f69981f4ad5bc6fabf487933a3f829b97b4ff55ff866cc9a6b85fa7a2ef3ee670fb15bf2ec09f22f8efeae77a8a96a44cfb05ec87acfb8fa26fa2aef828ff12b8ec6d0cb6ebd4ae13fa4bceb9561d58f44dfade5b309a973f63ff9e5bf14bc494756936fd39e6b726ff97fcdf9af02b6aa22efdc83ffc6efcf05b3e3867c9942dfffacea1f9d0cd3ffba9008f0f739581713bfc3e2349aa65f97dd652e5f91f73be26e47ec17d1fee77914cd415eb5767f4af511ffe6f94fca62fbf442f51f1bb803f7c57d566df722e6534975f1f60f47e8ca1c8373299922fc4d2becfc7c728bf3dc1a46ffae9971438444db62c3f63d229da7f228a2affa9fc53cf3fc8aff3fd85f51ab2e22762f898e89fd0f1b96451f38baa6458bf27f37699fb8f3cca4f555db62cd317dffda7ba7efed84ddf570d5f42afef328ebf1499b2bcc992a5a9965f54cf55573459de5445f98bb7cee79c444d0366479664ddf67bacb5fbc80afe3c8bd9bc7c093f3f92c1550f56fd57d57ca96ea30fdffafd01c655f173f1c323fb287fcd77b6559b7d7d80edda2cd5f025b9f45131aefd92a5c354754b147fb840ddc789d865cbc749f25df1e3e79bf67e51f9b5633fd57d1bc5d7baf7e5374cfd47a6f99d5ea777ce87d9ebe70fa57c29ad5fccc9f06564ef8f77039e7da5bfeafca35464c7f053019ccf6e89deb537adddf265b05f4b60f271907ea37ed2ee4f79a2df70beaaf537f5f3f9deddafcb695ea6a4ff98c77979b72f1facb34bbe3e7e6efeebecbe7d7afbd8827312755f02f2afdd5cbb2ae9d3ef4ae0bae430f14b9afa20e7287fc76d5997f613f88b1dfc2d615f46491921d08fa186be396114c2ff02fdf178df6a3f8afb96c4fe33f03a6dd9b7e4ff9fe0ca3acdff1cf1dbbcff9f80ff62c4ef2b33ede6f7ff3fa708fe08f8d3d22fd68ffdf697b861ea8ff32f8008580ed147fcf547a82aeda23f60cfe7fcd5fefd1ef7cbf2cb9275cac0b84aab69fd436d7d409729eae6bc9fda3f037d5ba3ef0dfe08ae7b6fef3f3fbd3db279f9e9b6b15b9be64bd54ff78b5faab43e7defe4e7fffdf677ae66b5a8eabe5d8dfebd6b60b1d7faf447f160d1ffb3edbf5c9b7ad9f411a47f7e83ff09636ffff55ffff5e92dff32b81fb9b0fefc25bbfbb5628ba62aea16e45f084efcf3fdc4fbfce5f6fbfd99664b54351fcd765f6ea0ff40e6d3db5c5dd9db678ca668fad35bfb6e623e6308f451fcd787edf9fc864008f41f10f11f30fa80a0cf18f41927ff4920288ae01482fd07447e86de2d4935ff2b7d57631e3573f661d03e2ed8b3eded3341a010f9e94deefab7cf3082623042d09fdef4a6eaeab7cff0c704666f9f5114a6a84f6f6e95be7d862108faf4267e2d7e7a0bfef5af214aa1b7cfd0a7373b7d6f13faf4e67cdf75b6a9bf0e05a28977b24feaf95d1afbf4c62c55fbde19274bde3ec3388de0304ed3e4a7377d7eaf216182c4688240ffebd39bf66b28846210fe13f4a761ffd7a737eec7a1c1bffeb576eb9ca56f9fff17f409fa04fde7c7dc97d9f4373f42f829bfff373f45f849eeeb0709dfc8df7e91f0ffc74f0eba7ef947d5cd4bd43459fa8f785dfe116d51d5bc7b13ffa8ba7fc46bd5a4fff816867ef791c147677ffb69c1b76bef1f8db97f1bcdbefb47ffbdfbf4ffb930ff7ff8c2fcbf7943fee769ac7f3b39f47f2f29f337d21fdf9215df8789dfe2c2ff89cbfebf1597fd3b31d8ff9b91d7ff845aff136afd4fa8f5ff66a8f5d566bdf7bc2efee6e7bb7f1e77fdd7a7b78f2fdf3ebf551e6bd83b74178b9e61184677dc92770b8661ac77926778267c2f68586735ef05b655541bb29862bf35ccad92d565fb10e40256f6038d611834786f07de05eeae2c18c33005c337bce5d918b29e348c6b314c8619ba565aa769757853ba53e4a3dab6066754b93eb21ea9812978acd21837e5029e4d81894f81441e058ad298646e533ea519802beb3c5629efd88266c89286ef54b1b7375499073e7ed12447a30923ea531fefcc3e8c5ee2c1ae6c5a7dee11e0e223e2fcec78a28380ba4e7541106018825c3f9070d102aac0b2ed34fda8c72186b8df55759afabe9f57a3907ee6c130c48cdc4fbc752d788bfd9907592df333afaaf89dfd99e7ba1da3feccab208cf98e1774d6ed67de89114ccafec40b028bebe56f3c8220189bf999f7b0b990f99977971f8cf033cf7612e667de5d7d14eccf3c3b4b19e30f78cf242f69065c4abdf59fcfc60fefbdc78d9ed3bb453479d1e4c51368ce1adb9b6ca8339ef3a123a9c9c2c63730328ac36729ca615949773ce08820b5d4bd3804ac2744ae60b7c4a05e6b537f1bf3ebcc99e62683b720aaca15146e0d8b279ca5d4e92a0bfb0b202682f8322750890b6227bdca631bc04410189d8907ec9b6ec894dfe5e733b0384a3905856f1d8569b8bab2957ab562dad53dcb844a9877832026b678a94de8208368840f874b98e3248be2456fa1eeb0fed7f11c31f7502008bac94f11334180b7e1c823aa0720110b4a240feecb3a3259f14576c24866dec1a86e22a68c6a0df6b1552af82029817e1429f645aff98bf15f098e3b8cb0a5e89099bd3073a079d61c307b0fde6317249dad8d9e36c89a7663bb4d1f3a7aedf9e318e1e17a558539678be5942e2417c35e30d3e28d2a3d9ed636096b16c0c44990ac3b3617a183e64916f0de721febb25ebae2de7b952432131a8394cd7395386f622916c1717a041363ebee518b7bcbef0e8f4d9be97cac7db3059898f6572c26833b550a7ce23682ec103df0e2b32c33770fb3ac17936479ddd83d6b3a009708a7cd0a5ff61889addd04dac092af5e25ab3e2cab110a402ea450201fbc0cf67e0be4407609d5e53222db5610caa4bc843ff6e735db103341843837d6784368b791d801cbf9a034d83b1bec3a35ed421ea1c852f5cfc0fab677599e4919ef46d208c17a442b5ac68676d76e1b22cf25bacaa067bb47200a6067c81be5973d9eb705df0b1b43e221b3cb1e1ef5336b5c682ee089dcb10c4bb03166ec5e3279ab43727009091afb6d2f67eb86d3c8a83228d658230fcb0b3b1c8684550973f0189b4d31b82d6e62163981a12318b05ff739c602264ed03077a13486f660d61df757b8104b7c1da5e332c71e507e5133dcb263b296d1139cf24c9051d10804b7adfad816370cb2ee061c30cb6014364a4b661f21cd9600e8409bc1081bab88bff741cf6fb653706e21600aa6bb0ea3fa7cdf24bc2553f287de163a7890747cc1f4a436e0a0c78f605581978f5b32adf4217d9f30ea565b85811134e813064f4da160b87a7b2f0456b2c4aab1e4c22276637d1f1b288cf742c86f5eb91ec72ee3abeb2bd6e4f72fa69eba3e8f89e84ed9841a5dbd18729428df3678626c32bde77412dd83975ded0a6c8da2aabe7ac604c09cb8e26ea2e3cba3076ee7f345370774c8cd49affda2b34a08419450b7c4227a8e6d14ca96edf1ee91250228f4ac6879082aae30cb70c0446b1143fa1908a60baaf25f6c3526182f420fba898e762d1518e1664aa72b123a7da465408383f6620aae8b2e9f812ea866c411a444870d08587aed327ddb2a982feef018a6d972c6feb77dc387f41aed1c71cbfdd7ce10e8c8a212f30057ddc11a48846beb36db903c3dc446630e184dd1b3dbef3b4f3ce21494c0015d6c91c7a05e2058827c5fd7546b288664c54ccadcc17b419738373c35fab0796e8938973b483ab2389725240fdee0a1ead900831cc800248984dd505ed850919a1cde3e6cfefbda71c354d8e0d7ae539d91997ca16262e5f284104e9438d331f8405f2d005bacc6caeff6946fb99ab3957ab4331c9c3c72a53ceaae3313e980fe792f74cb2f1812fbaa53d5900b066346c6070489f150b5585f1088de147ec85a6135d1d1db6726b8831e732750d9baf52239aa3c7b047a0074850cc6585f30b904271f07edc7798910d5eef457ee4e4c0c383801d6bb38c1a018b864769030abb1d29d7c20059bde4fa95f98d21a816c13d657d9b422645b2fd766188d1d0c25b42a2eb477a3ab12b99ad4677c8b38ec564db06f712a7300131d5a0f40873d1523c9183701125d849cf668143d03d20582054a07f0deed8fcd2d01d39512f052b06014077d8468c158ee8fd8752e1da7a568be3dc10d7fe6f1dd5b88194fc12130aee60678e69613e013a57460c25fbb5ececf1c8e31400ace9b220be7d2c8434ba11d1729d19579a711ca7d439b4338f0efe770357bcaf0b0ca9db71899125f7d80403c23a753f49a23acb3e538db0a744c7842d17420333398d82ab30a181b13f2d8770a704b15a89d1a43560b20124b4b668a97f66430f3c08b967dce6843b415dbb7ab49e51d8b3c5fba3c6e0c95dd211fe8b1c0e03131592c2e8b337e90d20e02b68d4c7d7bf3cba347086905e31146271a7cc24080005b899cf59e2f87dd803e37227a3acdf4b51a0008b0d762f70cd10c7add0f0263e4b8c98b72383650c2335613f685ca614ec9b17cbfcf2aab48260960d9bbd571b911560ab6876ce0ae93855ce8f2132b980c6c880eda513ba341b2916f2c11584497e0c6234423783a22c6a6832e042f4cf1196941369b798c390654a8483c2a87999b493c202251f6f605012878f2fb0dda29b308874927233c1f288643bbee94baa53be88e260f68738332db259ca274748a2f22f33275dc489f44e1ecf2b649906fc31d6fc01827bda948e39c3cdcd295926c950bd6e9ca51cf4b5329c258dc1dfba2f25787d206af74da31c7955c0bee7d6e6b59750c46bb050933bfb8b59c5279214d0403816ec51cc65bbd5e7078ffd1b59b0d7209abe8796c73dbdecbf759c8272fa64db3488f4a7c5a1d17bd60925eaca1787131bb3f01ea58b99eab7cc986048b0932f482199a8eebe8856402ee15111384f5c91b0a90991b5179f29cc7f61807cc9df4672a93a845b096ed005715e85774192db0192fc2a243fd29f1cd044a252e1af52ca6010e6ca9f8f247d891c3725cbc230bce4c7e1871812920d83aac33fab9e935ef0b3e9a3c6d6aec82f539f0b8fbc76eefac68c47dcbb885cd95113aa89664115b3d9579e4255bd2f7aa3ee390c30c85c6ae3854c46a783d51f2e030b530946d390ab4c0422dd926a553a186615c491e9b411fac92abc7c9f3e5fd7d7f8dfa93672654c313692de5c51eb581659ffd926df9901b07fe00a5e386a98864064107818bcb6d2389b47d91572f67cdf2fc9ede5418cfda26a37cae33314d9c485eda366f73fa29e431b42f6e91f9c86e868311b4bcda9e90eb9e09d2701cdc6e83af30753516e1cd8e9b84e5452714e7bdbe3fd2db82e9ee388d51a914e59d0d2f310241452eb04d6af018a44a87bd0f6e517719a1313cc3f54fd7ea8525991255b12d19e27b36cb723c4ac0bea7b89935f30145cd65682b068b5ba50a65a688d5f8a06290f6b17b113d31307527c5d85946dd0bde8d56055bb1d5f2ac714d4f143d147eb41d35f677cb56ebe475660f561097e764347c2dc8eec81755cfc8771d0e95a76911e72dbbd15e07c6925ad12ae1a55927514f7a37da073c8c5bda51a8c856a2c2b45cffaa8ca168b9d0d9fd775bdd15b9128da64dd87bce5e5e30931a6f793c245927f73856fd2c45d7193dd76ffaaae2ed2a01cd0decb122993afd8a119a2e2c860df686296ee0f40a1b88836ce2b63b09bff396b89af9e85bdb21b3bb8a8a64940ec58b891e38742fad171795500c40205839ac5cb702d767d135ee40d324332fbb5d432d46c772bc0c80739e43bb7564aa71cd3c6b856525f7bcdf1155ea2dc170cb1017f0dbeda47d160b1379d7c009100808205e93e703ab45a474a8da86ef78cabb1d2e31f3c5694a4564e0469e893cd2c19603495a8cecd0bce06b58a46cc19571f164a5dcebaab62a09a47250964bedd941b4248412c98f3cc327cc5a43caa8f93a7f6a0c6ac7e4e8a1e24047978d89a0600b0512f307660ae663230210922d4173f782972a5b512a2d947ba1350e14043259bae343e4770f4864a45d06e20619a16ef096d0628443ead31cdd680a66c05775e10f20c1681326b60546490751b5c42e78fce861640afae8401e95210be73ac7e2530ce5bd85913500a96860304ada0e6f129e4212acb12cde8f578882e04229f290c7681fda8c7dedd1e9727ea371a81d4ad26b665d763b4b02f0ca15efd56c7830dbe0fbd87402f66e14d32d56e10b9b40caf3dec799499e3fc86313bb705172fc14c120c8671c2f3b8d123121b50dd560852ec544850e3b8a265931b1b65eff28708b2eb06352e376786c1526ae266234e11ce6ccc42520db8c22bc017958f3e3ed36836842915a976c10fe60f8894197ce0f3956293a06b3eb9c04f68ec3ec2201a51c7c554c5f8daa786cb74e0efb420f586c551f100a62b1f5b4ef54508c4388317796bf2d0f9733983b83d56d770f8596c8f999b9433033400640f30883b1efb1787119b1727a20cd752f4ad6f23c571a86c186fb33106d59559fcd33c8c1102b9c31d02fd7e6a48c9ba66c70912d1c61420782ac529f61459a11f1d05687f6912ecd7a0cedcc079d3b9aa81ec301aabccd183e4ee9bd5c3493199c90fd1e372516d6a8b76c86ada26abc2147e9f9c509fc2c9864009eb2fc42d21ad74130436e60188e05b895bdb8721c724127352e399f3c58eb31d1398899a32970c05ef56876177943442813c236dd21c809b8f916979ad94b62f32bbd6d401985068b9f49fb1820ee709c6d2b267747d83eafd951f784c43f0d39969e381064a08c95a7615f22f3a0ee945a24af25ae5e831e839d9074cd41eeb439c0bc016f687eb2cd19cba967c012d706ec7c002ae632e0339aae319f97fa1966081cb42d9d03a35ad8eba61ca3420c4f4ca233c8038b888cd09cdc8e6bcd613ad4d2694941fa5672ec06c2b17bdb312d1528f076991401004ec91a3878db8b3de16bb79a27079a172d61259618d81c5f2bf7d65d5797227b0643b0cb45fd2c2caec5df98d82a86bc63302907cb78d68fbe34897d239f46ed300e0f6c6029d116bbc1ca16455e296889c725cc5034f7e9f4b0f83942e21ab4a05198d4a6853db69f4336b2c113b81d002a32888e531b51f28c9483060661fa44af8fc32637d78180833cfccd1f6770cb489eeba1735df850582bca294dd7ce7b6aa6b12c8d1c07471385d58ae2c5a020455b7199149809020fe0f60c13a04377f8c6440c0f47d30906f1fb39a3b41a1223efbee0aba590fec5c4afcbb25ad6eb0e975a4f78d9c7f60565c7e286a2d1fa1c6042f5198825643ad0ee32967e83087f5c14f705cf450734f52c58ea9c5620286f8b371eab3a1089ce648024e2e272004304399499ac306122db585f9b02c5d812813d7232c86170029988bde4f38c98f66e782fb6f47933f257cc41f4e33c82e118cc75f18841798ef4d4c71bbdf5234fe5087d400da7a0a3e76fcb6e6bb725e136ddb474a416a1c5c73afac5a5ecb8228686f7a0896e5ca28ce963023194e26d4a3868dfe1143e95b8442d09638dbb2a927df158c844bc3d36b107bd78a2eed26a81d4c8b95cb73ee9ac0c23282d197e825bff694162d98938dad5d2c8d0bab85f7d78e2ca90aa8f0157dcfbfd5ccd0ebaab4dd64913e80035d63023eb2a5249f501bd48d375829ed715aa1b1135f66215744cb33ce0776f0dee85471f03b0bd601612270ba169fa19d2661e39bd4601b4878e0d6b941197d88afd8ceb5ac4a707895fb927074ccade4ddd75eea64d350c93d3f9cdb3eb08469d74dfe48ea7b798636a3e7cf9f105dece9e894b880b05a9ad584d1937180d7256db243cf39857d94da7d373dbd28819bcb687bfcd906e82742bc80c9a3d0163a43c996f2372dd26e2d2424ebe57659f28fd10741d0506d11c54582649d261f08ae85fb3383c48af5486cc4dfc4ae33a077b90ecc5189bdfc341a3410a3beaf149d31b675c87fea0e65b2ca2f764775dd60feb02936929f0110e295968c236a1913073ba321a76d646d004c5c6f77a8c37d9bd8390d32ebc8375bdb89fbac7703089947d10d672caf70cd1d1b9c0ac4232d4853634326e182697a8c38d71da8192724cdc0391a9e5779f25ec4412007b591e34dcd4af8464ce7c31ee39b43dc97657acf650ade0e58d9ac0b9684012ba547548b8032ef3bc4d5e3490c6e5464370471712c8db95f1b2ed783f6f577664e3b2ddfcf6e6c423436ad45e235e5d332a6a6ac381385049e09108d34b15c997d3cb3ebab8c9c2bcb6395b6c3c8b30c3d4c047e41e2dfd9aac9e79e8864a0fd2a48cec70a1054665cbb80424ba569ebb5ac200e7ba75a78d89b6c59b7e3317b23fa7dc5252126d80bde09794eaf9e4f6dc5d129e701778aaa64d683c6ba5af455d7244af0aa3e42d669bd35929aa17e4df9f6d75971f7258849a513c7a218f93328f0887c6cf9a211da940478b81d93b7b6c906b7b42a12f204e818190770a0a7ae3e295a6109b7166da8c5418f301071380da32b7443533595046195a0d8721d404ea69c8c6dd5c5ecbcdaf2ed97f515d17be1ef4cc164b5cb559ec96b0da7b561bee596e130d8a6f2bafa591d929f64cc4a1c5c4200767a19ac2c5a3980800a91862f4ae92f60a856ae462e40f16064667f6e8f14e0d160588111d9590e256778e5a73972fb80643365a32c4b5397622c6766d1148632051d1b16ad0bdcdaa5c888d3b7a1caf7995d9819b548be1e58513c1808f4ca1f0d76a1add9ea6ec8ba405ced196470811a52535097125949ac9bb6adda9dbd631457863a2dbe1cb487ddaacc81c598ca2b6841edde484725d39f7337bf8f0c6731b3d65170e23b926c7fce46779b732f03a95e71ede054211b623a50360335dcf7af15a19d352e54a2f1bae2d85e2d40006f069f390ed76b3e08d4261b122cabdf75e2e76df60507964af5df100c02b9d512017cb393312e5401f273757856d62c9fa64331ad356e3a4c850ba5de800bd1170f02280587e9c3aeb3a9185548a9b49db83331f7dee040a3cd3d2b2db4ce42de6244f427c0b13a5a81ea7bfaf82c60035d11c6724e58f8399a3ebfebc2cdbbeafde39b3fabc5c1d102c2e2fb1334b08ee4a9a955c2442a129e5fbbf504144582c4ed87fa12673c200b436d1e3a93a84ef9c7956812e742f6053b1b31d6622cc98c159e863b4f2cc5b96941825515a8cde8fa6ed7851dc651049dd1b384d0fca6e5179ca3d6f04b3d92fe756badf5e0dc623608900760121b0f8c2b6363625ce8d9c3e8cedf215f1c706dfa300b93bf7a49b6bbbe39f74e4124b2f8d1231f844c53e28c96b4c7f5d75af839d09ce970e061abf049260ee0838e8c1b1497bcd26a940d5242ef76edd83542658aaaa528ded0dbe9141d6d9bcbec4cfc6a906b7e622c53a0dd7e152c6548676ee7659cd07a88e2e5f659f4ec8ec0ac3b3ac04f321f72ab6de2028c530c2ca523dbe0f168e91995cbbc5b8e56354ee099ad2ceb0930ced1e97196ea51641cac012cd3cc538859e337dfc0c0237ced15eb1285571e4ddd0e7dbeca32c3a46710bf7584eb644086060048113eeca77d9eb9b90c9f5f8e1dd5f851118b6246812d99ebaf80ac364ab41e315872d7bafd883707d97a12c10cc0d8e618c5de0f57df4e576f3f72d20ab82453a8154015dc5453a1af1de7bbd0072ee9a01b29da80ca2cd55968326908d8593d362eccb3e6c56f5a463b723f958762fef818ec4b7719cd4ac8222f5f268070838ccab789b61202613fb2214c595ca1ea17615aecf7551745fe498681e649ef95ab14e398302b5929a137a4c80a568547c53e4dac958761ac0d623362f1abcbbce0cab4e10e8bcf4fe060d34a3588c044009c7085e64d7c56de03c0b3c7ac833a7fab6af9e0cb442c78862969516a4cd176af7390799d1ae92c80e5fd17256dbae8328c2eca258448a6c85e5a8325a89171e5f3a7071e2666db53ae5562b0b36dab457d88d80fc2abcdf1eda1d93215b0e6a156da8b50073d5824c26af0b1e135757be33a254431926cf0fc863a18c0216ef69cee936f901f778b6258308340513254a74daca40ca20eb336510219cf5299d3fe052a9c7a702b54ce1843d379df59d280d488f90cc6ef85998c5a733c8b5fe248e7a42d9e1a84ab3e6e9a2eb05da6ad10de461984bdd0e90e822a20fa0304dbbc687c5a39682c31e87b1c4c485ddfc7253eeb61bd4e383ea846c6adcbe66da5d260a82d1125764281ac50b76ba321815db06245f2ed3b9a1b6563cbfd82366c4f767d9f78a042df6253a4532d6fa1675177ddb36e15e18802978bb01d1797c75d3fec05e1168a3dc6b442223e38b099b675e0010e9768b5f4d961e00906b2203f987cafbc7a4e76a6247ea716978f408e397f79c021c7c5ea6ee8f14dd2db13c5fd79a7ad52250f1258493e7083c7a6d5ac3bb8f879eb8e14bd3afc2e0ea3bcf38bd99dd0c8f9bf09cc3ba6af41c75480d06d483d173a6be29d6061a2b9f233b8af2aad5dbe7a1b9732e87a9d64b1e38cdabf46e8114a612acd709ac4ddf7bf7ad495e47a6963affeea7f4bcce3995b76fa3eb6812b337fb0bddf7c2d3f5d3e2ef9c28adc383028743e2843e204f613a860da5296643865b8b1295cdca02d64674b458f128a6567c552b958167be75b4a2d5bbca2f763a6de6016a094c27a8d1f648825f372cf7a3cb39a6251e12bd5c74ffdc9196f238d7b9540a0e272796e7131f344cd71216291a8abdd9025b313e2fc94f56561c670c1cc2e398c70537615f7bced8b8635d57a3efc8aca3366e0f74545753c43dbca2a75334cca8d88a64637251158984d0ab608db0af9699da587dc1b7133c36150fc0221d6d50f472b8a27b9dd485aaabd443c96e2ec6c79df854c9cf584f631879309b1bc0506dc2e89ce70fc0e0742bef4e47095f430a12b8b831e282bb58bba020754bc8bede0562cac0c7361eaabede99928e7375634c5152e0e24e2308da751b1417de4902d18e6a1963c6c6f0886ee6b5dc02fb729f1651ecbbae59d36eb7c64b7e44cf5d88b307cccf04683c1f3cdee520adaa579de8c3266997545278a7dfe6dc726f379942a20bbe668c936f695ca54ad5ca617f4835c956ad5768d6eba4e391a0e2c886e682d26f49b8dd425918262f5adef7adf3947ba6d3564e66faa76a367375e33170238b813548805cc9f57952f98bc82ac77156743183d17dc843a54e197eb72abd10a87ed1716e3f11307e3da09abbc9b247ba892153b96a619384ea4c8c89bd041bc158f70fbc61f4b5f76016e83d908161cee83d5001aa4e264aeca929fdd23c45bb3d56f76c7783ad6d11ec8084ee260270e5aabdfc88dc22ca64d4497fbe584be0a1f8953161940e85ccb7905044c86b08c88aaa36282fe4e3aa93479bd1d3e281b775786c1e620de208074a544793e7f096cd48ba3a24aff651251e92629be01bd79e88b4c9339891765105b94a1967e873869dd19b97d63d1b46131ddada3c956727f4dc2d96ef739163ee9a7867791e0ac5a73c2a7cddedb9c1c8c3b84b93bf94b8eedec8b0666ecbcb06dd7e104d96869dbeb066c4334274831bf24a1b15431e2e4bdc421ef261c336b61c0a9858173a5dbbf72b4cac6e0f6ba3b09ebe7fb36e3961168c0a3c45833dc7acafd8bcb2226435a56048464e101724ba7697b5857e537093e78b2b5d571d5abd93d9b543bb23feb1d2f42b6c1f9ab6a33ce29f6ca1294c7dc2fdcc180c3babf9c388bb823fb2736a9e71933c99bea82ae951a5e5d50b096eb96cc8714f7f86ab5119eabdb3f810909e212cae285c1fa272acee531c1bdf540e874847389c84d8ec36748901fdb0dcaa49bba7ef2dead013a670e4019cddf664eb5092b897cee9dbbe876a78747fb1746889220d73c58ee986db6bed4a5f0054b1a4560f0f277539b0d201c08d5e698467aacbf3631a28a5aef8d50e749457cd106c06243a5270bb1498d13d7a446bf91d082e16035eb6903c2f9b30454be1e187c0bd4eb9a81c9617f0e47e15f7c4f1fa59a289327fe81ea5d226b4df2db7724b0eb234470ddd97138e7cdfe342933f08714ee7a5e96ba5469a5d630bd78ed2ebd93e11af64c6264db30cc852e76e5bc6ed4a10af094f2343972b419629bf80d0174892500f8b394e23675320bf5e41dff0bbb16f30c3d070e78fd4d3f51ea80b1fba6a043ec3bc0899e55e9ead954211c1132b3a1c2c4d1ec3907b639fc0b1a5ece5e5b9070b134e3519bcf73df660816a6594c1e28897c5f5c0b5451493a5f49801e77d7b70b274e2f440829d6ccb42af55cc96f65747d095000c8e4c0fe949c74a11df1ecad872887f8ce8f39278ffa4ab104ea740bfd4f328979b85e0680e020277245b325c0a2eddf597cc585b0a19854ae26071cf397694d22e7b0f25fdfe413555cb6c94ce0ab3377a0be8e3a037ea8ad84618c4caed3db639e68e49d52de630c054642997873915b8a10922b7af6f3cd242add357bb3fd3cd7adb9d76c07476a483a97b5658bea05b871f140020af1eba5ac2783d672833b14d4cbb7c43f52b3cdbe0865527582501e3cf85b0e9c6635fec1d2f58ac10d761b9184935525cb4fadb95a44e4b2d3799b748ccb5a89cceec232bdc3817ea596213ad7b2ddd422e890bebc1b46326829c25643e20e704ed456beac5c2f4dab175e8b278a08ecd2dc69c8ab3584d5b784675c3e5d9f7fbb2d3d03d1d3ddb9e167ff004ce55b63bb6c1855e3c0659db2f66e6484b940a1d4367f6628731281c987a105b24e80e50781cb427dca98bc8a55997ea573b22527a3879fa234434ff045e3d2015808a8d814a821435e3865952468c5cda15058f0a5b4d09cb6f4d3245c8dcdf3b2931692b711ec7c116c2d22bc86d64f4def40583b18bd87ac6f2ae87dc752015cfbd126d14741255895eacf302664c3071732bc00bd7ba83be82c66a76674da6e65df5610fb9f9f02695f686eb35961f7f020e0f5870e7195799ae4713cc02a8f0c82c824b949905b93f5d0048fc15b6667dd6f5697161cd38a81b83e8651c638896a9280d66f9fbdebfcfe5d12d3ba58bd6ce24c3fad22e998e3a5f1a614fe167af9abd71f1e4490878cc651d3e7b9c916abb82ac98316a6545bac9a464c521d0504b3bd25ea53d67cf8eb9c59ba52e7438d05b35ac39e77010db5be10b985496af767c0ee5c8f7cdcb8dfce7b399bce851454f5d193215832b1f4376e485e5af07177510b036f7bb6963f12db6fc890b0be171a0450631cf9e12e64ee15f4e6458583949cfb2cf537296d83b9c715698bd36109c11d7aaba8b8689154171207dcd11b21868dee287a1c0a96f9aaf9e9a74b71ebd9b8c871c5bbe7b3e2ba797cd8ea012432fc6cc301cc338aecd7a3a5be8d813eb6d52d62d7fa1bdd742d14b32a4401f1095f4a2b5a9da8391472f9d3ab5d74c6a6b43a517b03d60e2d01e5e3befc6cd83696778f78b15965344f92e17fb1e520eed58e7e9e1756139a5ec72a3f9909fdad43cb8c876b858c5831d68d2299dbc8743f8d6d99e4890908d7b1f92c7e1ca65436ddd487b9c65b3fcecf58bc0f48263c978eeb6dc1085090e4a18f8b0f5ba386eae759befe1d0384fa5c952bc1fc4f671fa3b22969d184d5e982944f5e22355b1d9c28fb734ee32dcd1959ebdd7ebabd59f16c70cd56a8e9c8540c9eb7672a9522862bdfbdc3e13288349baf950c515ed2e0ad47cf17ab8b8f1e0ad0ac8af357e9514886227903f86fa4ca63b1138a0793e1490c720999e9746cc93a913813d52c463648b397f649ad7aca7adcc5c54cc18216aa5d06ffeb9eb80e985eef972b3359ee21c11a46883410f458f5bcf3a35472a780f8b8947d0fe2464078216824aa6162099b797603b519f46650e16c6f064c1042bf333d337326b5fb6675ad65d13113fbaed1a7d3c3753ae34cdbef1b8b16da641dc5f1244d32095c9d34432f3456fcbee3072cb6b37b9d0e92d496e168b63eea0b8a3eda8887f0e8d068bf2bb4feeefe31223f432c48ac2cab18865121158d03add9d4799dccb44f5858dc56c5b0a0aa64663bef30bf830783df69bfba88abba48777762828a108d92ac25f55261dc52e8eb0df21f478b63ddce2a881f9e206230762f4268bf9a231d31b09ec89143d87e6f223892142c3bd2362ef7356913fb1f8166d34ed0c3a8d7ddcb16299a80a249ad54f2108baee54d82945d583ce106cadbd320573f66631e55db1aaa2d72b78db0a47e4fb10eb834e0e5344847596303d0740cfca4b5f7ad7e12f47a59e14bbc1671bbfd6bb5826409aa8238d3ed70886cfb08be3679188d388bcc7b2124c6b9ae2e4781227a0ba83c4e2b9d1e18e8b77ae1e2b0fd0da64b7dd41d2da2ec5124ad1f425e31468ea57f6aa2d3e0c52347f20f1e44517e256b5cb7078760f9acd2cfd2552b04cad80697a46921b6511db5b8e32b6514c8389cece7ad94b6c114a9317bda00cdc08d024b394ecb8dd166db8f3f140c6806d1eaa550b8fb68745aeba2b624b18a1c2d4931b3d3cc34592eb0273d82780478d1b0f92c4176df7995d946b799f9aeb4981d986d39ad97527aeb5d7f3631f5c54ceed62e5d52f2d64e354a81b8579e8b9ab5b72c57426c4d48c91148b4ff75e46718ba371d10a532170626ebec6ee054a0dad816ba632fc8971a68e59360a3103eabd3c029d08d25b0d30c0440ade662233f9827952ec4c836b1c157a2c786b751ade7134d9f5d41172497b930d45f6b95e50684ac1a8939452e613618d1f6b02f69e18dad2e85a59ad353f7329bac258116ea77787fdfbea9fb262df576fafe7290b1e7cf472a0c5eca8670580ab2901e03278ea019807752fdc1339cb6277100265f0a0bcb7f0eebec8fbd3de336fc41fba2984a3b8af49bd1fbe8c6d6aa768bad01bfc6e21f4cac8b7833e37edc3cf42b203ba1597766d13fd1e93eb1744eb6d78ae2952428655db49c733dcbed53b64f88cc042e7352542b5042b8801e2bab5eebec2c0ad40627d4dcf1222529506b04c3aa935cff3184b9cf0715b0042086b889f528ddd8242e6843e0fc83ef51ee31162b7bc73f02e95c251c8f582071caf9d0b4cba61b992ac5b9e6788f27a188f278225ea34d10674f832c2625af16008403af6341aca321953f75e8697e831f342fade995df374c756758c1fe2b198dd8165cdbc4a25b04d8873f6c0f00cc2f8e12bc7ce42fa38053304994cd5f74db142a4d5932bbcc43756d38b156579def2e19591a50b95128d2f4eeda50f9b67bcf8c348bbe07985e6cdf26f10ad253868e0c19db72af60827bfb8b34c5cdd93a10e9786d9c5316dd92207c1ce7c4451d9e724e0e0e9b9a646a79ce9864258bd6d28b28746a378528232a76439e39897ae00713a643844c6dc1e918276181fdb9bc6df0b9dd5d9c01ad1fa44d6a3d655d660a57a5730cda5dc67174f0e32bae31e19c5712b3632b14f65c9973da5805018c8b446b323c250717e51caa24d0f985a0f78952c222741a5e910ba7e4aeab9e56996cdcd9a929b748c78c6e6189ddd000cee91a535846781780811586b0395735c61ab5dddc975a772b5c2326925d77c3375c813617f845bad2d7bde81c5a8c17394c62e0275ee2d1b9b934d6262bf45f7d2f755db3991c86d5ed5ec3643e437edfd2830b3793e872cb8b218cdc80b07c094424bae8f96a0c492f4351140fbec9efe3384dfedb1a5b1452fb62213bb0afd0c5a99bdcda93e2df90642344f03e14bc63b4bbb3d29acae31e3f6a468804e830cdd2eaa03016ae3ce7b9b5ced7333cf058cf41a6159252abc48258c514d6afe94a134b4c55a6289679c9b977ad16903e4179a0320bb6c814aafba3aa5e602e0c96eb3d06929e642f7e4eaef0a5c49b2f5c2f3db999d00bac4fe4ee5c321ab1c05669343751ab04d09aa2bf61df6272fbabfdce0e1f7b77cb9b4db88d8fce41165363ccc581cdf3dce66845dfd95065e731f6c51b912c46df8baae2365683cf889e5dd4064cbd4cccbfa5eea9433d6f086ed23e39518617fb6c12bc376d16606c6a97b2053b8ee1e1b11b6bd8898cc1fc3993439980c3557c4247025a84b74389004824fe60ee10000602cb97ea5d3e2dd87408e062ba840cb7d68a17c43ecae23426011bdb82a2db2340a68a055dd4296768240897ff8528f9a1b8a63a7476f0c0bcc55761fcb6b4c9d11850d34c110a0738d219e5e910448bc5d68cf4454c92e8b74d6b2d7cad20c2ddb264bbbcd0976c7b02e316f356e82f84269b79d325efd4981dba4b7c4ed9e0745088cf959d07318138d6fc782758ace8904251502a65283283d45c8b6a1e4a9b0326e982f82800bade3f4e8b8c79ec5cdecb6c8bb12bba511054678951ca48eb25bdab83964ea6163c025c6ac5ee29d1febf853b461384b6211dd68dabf59a485894f24d90220c45a0a9d24bbe7668b1323efbc3d7059db41cd3f298e81af99c856348a51fcb504231d22865a811b79e1384dcd4d109cae73520b08245b16acfa8109fdb2e3bdd00be09926219cd692c9ef32e84f7b471c9ed2d6fbdad0da93134e92de48b2c6b515065f18695c7a4bb07141d3f983a6cbd0c3694c485c6ef7d84a4baf3560b1340fec1e794144aa91298ed1f7e3c1617983435aa34f1dcc342452d68eb3f08ed3f0aae97bf767b4250aacddf72eb82ba1bae9d4fc2840102c0fa530101b4a20c9eaf51b059ac6b107eab093fa25948b8b6b2f19cfd6faf1f0c6cd264c833de591a24a943221f4e659e94a53f31690570823c979b348844e1152c0b674eb50949c6012cfefd7135926cacc9bb246fb629690c5457bad09928b919b95eed572877262c932e6550e37100c8f5d04575989210c8da7d31f7a138b6139a7567a7514e6a2c75d2b1691bf73db792a7b843caafc368b7b8149516e740142aa20bd00b9995d070052978620c02dea108921bc07d5557a3479ee7d084ec0b3c727920e44c61611b021a40f8068bac548de411066dcecf926310f30498b09dbacc98f7cb828ddf979679b754da32ad0c84ebff20b48d154812844bf8ca723da0b99460b99c14c284ea372514fc9724b10d9825d9d608b61dd76de6058e3ac04bfec48cd49d04ed692bf5f33090269008047a620b71d07a8b95bc9d990401a0417d2aa9dc8734c195391488905f6655394cb9a50df772e6188471576db13638b6c0b820d04a32550ed08340f874867b828b4eddc1599826560f2aad573ab36bf80c4bccd6a7960c00b4a3273039b36ae88c087113a3f680850ecc03a0bdb198e2c7d8c2e413c60ae430dc825c48881cc0b5b2a433de12601a5709576b80989ce1d056b942c64981e5916dc49e31a20389e0edeea53a3766cbbd525233dfb2455eaea50eb325291c74ea17a8e1ee53c1368045210d6377ca1ddcc929250c43d830b411e791e8b17a3db5e3fb274ba34e9a33663d5573d9c16a6cd03e6a8f8ffd174d648db7249005d10016e21eefae019eeeeac7eeafdfe9a94b0a16e9f43cb95f07b31cbaf90e76930c5d96457333c7337c5d174213cc652b20cb594e020827f3de19547684add7e401244c4455935deb6a7ced46dedb81d01ec07432e45b604d192fdca7d4eae4db40944010ed148cffdd60e024bd90a1feffb45b2ad32f189373ec6e18ccf88f4eb9541909724844061f45a61f1b820cf15eb2ac2b6d008077f6d7a0197959abf6d10c7d27038c91304c883a0036e2da2e1a66cc6bb1ae3b41c2d3fcea036b7009779af5ad75252188b6049d4099b20695bf18c36de3984155e7a0340c315f6a17378ad04022cb5cd7e6ff29d41b31768f1f588103fa3b30e3e3fd4e66ec2edcb00f05dc93f561dc7386eefb0e78c4cd6ddb4ca90d750650b2ff839fcbdbf35f025c55d7c46b0031f726f503ad56b092a0fa2cb8bbf31a9260000388f0a049e29d96cd9f8d81bf09479b11c2c8cab81eda6606d7fc14b0cbecd62964bd855555541f0d0c0a98320125620c5d05f0e04afad131f83ecc52c92ac5e385ba8dd12edccc3a8a3e10a11f2ad35b02af308b71615a041fd52d84ba10b33a79cfa0f3add9f26395f997d21bc1b3119a61ec70431ff23228d8f581f42cbbdadafb91ca31fd1e511ef900f552dc008d8332d0bcc2a4e094a83d18f08da3d7c91206f91d717349e660e36bc2355982b11ce6f58244004cb7e0795770d564d6fae886d38ef4491c20fabfabde0ffdef045ab4b989d3ae036669b425b4696c7952e2d4cc657660dd637b7b616c1033c62e196bc17701837e51c8662555feb812a6867a1f71b865979ff6d72b8d39b5c6136c862ec5fc4fde62d9eab832408c435e72bc552362215da84cf8902af0b4d8ed8e221221913142491e503e07044903b97f58192bb87e75faca971ea5db5c19f91f18f1777d2de08e8d0ed0fa01f9a3e7484be2a94659f3deb87df36f8cb1d2ee92fce63d61e5727779238bdb140feadc23524ba63fa9614e8abaa0dc025ff709d696497087ec6367e1480a0bddfc2e13a2ad881951f7e99b3e41f944d642d892b7deb24cd69ece29a7fa2ae27954eb8426a3c63f155118c166812f67e3b164fd3f78109d674ac13eccf540d3dbf1812d48b4a6e4f80b2fe3823daa6179d4e10e4221d196feb019c9ed4ae8ae0a01f2b3652f036fd0ec83771ae74495fd98482c00782141296c967ebef15eda405f15f2ecf8309b32bcc5d3e0595554c06445318d3169c70adb98260ba8866f82e034fb66bcbb7c12a8b385938508dc352c0c52f54e271c6a5b0c8babdd86979de5a4b99dff11eb9b967363de03c675120cf65258532b12bca48806f15e95e38fb02fbb75c5695d1675922c6c6bf1d48ccf82d2f7af331589adf3869f64218f6cda96b0b99cf017e5cec6f81b7461c54656eb83950585660fcc2d11de5d61dd04d248663d89e3f11273738a5e64c5663d12d4283664d83f0b239021b4f1ca10bdccc8d4c5cd98b04c00b04a52e959a359d16a2aa2a103f4123394c75ab485a9aee5c91abb5ca79acdac89fe44e387d5c36485379253f1808d21700e66fe8be6716c233614a37f61040c3df732c4abc679e4032bc8b66e022bdaced93f1ef4ffe3d173ad300273f9b83ead24cdb5958463fa3e95bd7fdacaaa3123f70fc76ea300239a60465aa4717f633fd7c6282ef83234856b67f0c774bdf7799d34e63a664c6a54c541e421f777e49d4ecd818984312cc5f61775bf45b6670b45d1f851356c7dcc675555e18a2e067de4f67ccc25a1d6d1c0204c6a9b8e9e4dd805de25cc824f02d300816257df9140816e82577d0ef09ee539c6d1d0a38fa6e44555644818bd1dfdefbd06292f99c71f474ca107741e524128d7faf01a755e9b7460727957f7e16ae54d422c716066de2699afb43cacfe2770b8bf838fb680b82f3f5cdb66297119ed5849163330119e92987df52ebdb9f9622d7409dd978fb02c23dc7effe8942975b372e897c17ecc35d5afad1370c5805b0c5306ccc360c636d9b243002c3724c256213c3510e1332f1e870b1a7c11ea3fa9ac2f06aa2d13f465a32c6b2f42098f92b7b45d2b3d392ac19c01603984219fbe31d14053bb76330d3f361bab22a1058225ba220abf93aecd3bb612dea1a68d43de9d4475248ebd9b308fd9edb29f41f75e917781577afc15a3f8a4cdb12f75c217e4c19b4cf3b0461415d73d31efceaa1eeba4248e8e98be8554711efcdc0a0b009b3599653f5a0feef0e3154743d2e418b06033ac337d8796b81c0d352d9c12a9e00a7d74dc4ce19fb79645451f05f7c3182f512fbbedb490238b6f451fc55723c4b7dc18ba5307be0e37ad45c67e2f04ac7a389c4c1aa905df022f4e1c5f2d28a2ec25da6b3c2af8ec44981b3e49b05b7203e934f7f008b3cc18b2c4e9ca6a833071f44474914c4b06a2166a2b4a1f7cc1b0cd0254b6893aeab9fad7cc99eb820b1177fb3c32e7025cb9ee42cd20c0bf3246b789067a33fc83c8629c2b8c1e17d0e5e67914e7a9cbdfce9e6d042bac7deb6e1279efa44dae8bf1f0c5cfa4a9c4effb376049678a6ad192c70e69ee17b305d6edd5f6a7e8dbeb3e04d03605a4ebb7e31134e525fdc5ecdc286a02939912711b885d779543457507ebc7928807712bd79177e8464cddc8848da63372dc33edb307081e00ac712fbe693fa467f3840d3d399632b1a40a24634a97adb0ecb0d7dcbf43d7a9004706e2b4e03c029c958c597e8585659086c0cfae404ebcb005ff39dbb707468165810973c743b260351ac3c1a1a76ffcc02b32d4d11bb235d825de091713e4bc0c4b16bf63159b77edd8001fc30f0b76cb49cad5e19829f1908026004ffd620f6b4708553a9196092207cfa425b57ed3a23bdc3570c67a8968c6436d55e6249b4dc3339416289052b18ab24832f8fec2e6821dc6c9670307dc9e59ad2491422b7b3f139f606af77db40b2156f1e0323124ff77508e960dd827877575376a94b47e813cd4070bb5092483d023caba9e7bcdf9cd64235bc3ac7f8d96749030cccbf739cd90ff32590ddb89c9f7e7663f1ded9986a95ac7735c1f6e1ccd19b6e3af1bbe03be79721ba6558f00da2b522227246e7e11e8407010cca2b3bc2f65f12691242fb5a4b46787e4ede86c2e2d4121293e4696cb1187a03278852658c91158a43b4755e3f22b82e184eea98e0647398ed124bbae297b3b23207215f27df404d802fbb37bfb63e47e77ea9de795ff8e46955c65a80a6c32ceadcda78a5671dfd3d27504d0b9183d66057e0e24112e397f6f7de9287a1f07a84c637c49bf4affd20a140805a72db3ebaaca5a2138d6dfd95393cc05ff669420f4b327d759085eaeefb7e9e69c70723468cb0a5a3b598010b39e171a7a79d268f3ce611faa6a497978c17a820fff1d871a706a16f9ec9988525bb1f0f85e604ad6957673356e733c7d79b9f10bbbdb03f7d0b395a137c27c1b5c17b06bf3543e884d78a6e2f2b7b87fb750854a17621e0a79e616afff2ee976371023ec028f3e2ebbeba39c9288e95528bd26068762bb15b2ad2cd48657f3ba9054ad9f24c6a61e828dfc00503395fe67a0d333157f5adc1786799180400fc65344bee1eec3caf3f4e178de8b3594ab97537ab2a8a133888b0cdaf88822e46f507266e1a04acf7f3cfe9ce2583d7cb84a79d95aefa8568fcdd5d7d48cddd27cef6e1b179ea35ba653d92c5a82218b8289bcd430285800132e6cf4cba84b4253e3e8c9c5fcf029f5a07efd66409d734da1b640e7a01653a360f1b4e7b42d515954374e246d096603717da56954d7439a5f45e476b12a49809133a072f458e2d79c3844d45ac0488c3ba504e10687f2bcbe702a8f6aa78c47b630a38a703cd69b395dc6b23be9dc2f9b6fa90389316b5d33df730cc66b72d10b59ec752f11ae5d85dc67e66b7c50393dd1270e5edf35178c694bb80297ecdacf55a9094b1db57f864cd7369c806a0120d17320c9aec3dc770283344d79786c4766f0911853d55dba0d3347623df68e97fdcd433eace771b5cedf12038f1261f641a0e4dec83a0255cd5d7633f2e9bf02b4343a0a8fd929573829a7b28af2af1b144075d240ca941fc52713b206c35bf4e1ab6168a424dcfc752ddc0654d7668ded3c7fe390f9ab2d5fa8dbf940764b7ce77e1b1a2c1b2d0f50a630433d9750f321d2e81b85b7f8e1233afa5e19e3e2b09683f80552795acfddad86b09e46872db25ec0cb9a23fdff2db761e048ae6caa785539619d153537f03cb416ced38a9420bf09121348e5a58292d6b644fb7c2b4e3925dbc61dcbcf4f52c7b5db705880da3af0b35f4664dd9d3876e94739b514652f0b08380332aaaeda1376109e9ef8a5f4871e8abe2b13814bf1cb56d10882a70822054c1c5e32add59a888c63f178c2696ae6e91e24b84b5886263ec91f045a70f26e9f58b5232949cdee4ef94576113bc689c22dcc21c776aeae944e95f4c6b9cc61d0c9e3530927fdc9e72a75f9264903fbfe32c1ade5947a8d62ce3adde6c57fbeb908bb3aba9c91e344223087686f237100d9d96d055584c095438514795728fcb2b18684de0baf69e9b0a486609b53a3f8321acd90f34407b82f9985e2a6ca180454c88b6c5a7c2bf1644112591d60dedb95055b951c32911f671e377d3877e70dd6d718640c6394bb81223c2fa6a4750fcae6805c3e81c81d3b7e5d586b5064397c0ca82641854b466576706c308cf9f8385539f815bce557502999245a62b3283e7572d02b39c63eac7e426544c6534e065085edfc47f18732b34014a2b2b7f916331543591d754c6d903200852c7624dd91b3cff24fb01ca6c9ac8458d892fb43f206619e6ca7d0e63a170d07d8936e2100a5b9fe375d2dd0db3a41f5676143e38e7cc8b8d70653d71af3fded0986ba250691fd20dfafa179b7498fe0bd1bdd1605a586856bb6deafe5c28df34d4fca0b243e80b25a5e75a0aee96243a863a701079afb5424de0834bc2d149c37da3e9b9dac7f842ac67694cd955dcc7a2ade10a9e7fead2a4e672d2e079c0237fe34971a1db8374a5b507db4117acd7d352c0b006ddfc9b07c93b003cf41fdc6437c09eac4ca1cf4c71f60b4cddd0da6d2d92d617d93966f14e6fd84db150640166fbab74a6d9c588d12924876d11701d6a3f8a333236c2ed4232c3b5ec531bea642bcc7293618416f1c44c68ee3e621d868528f908823c964a553818641bae7985dd199fad7ef640ed6836bcd4a997d19bbe7b6318b64c243ffef97b84eeada50355e7681b524ee5ec67ec11e41acc1d5caf358c92586da8765480d30f0886427a943c552daa2333fc6d134adedb26133908571e602f9065b0b66a1b39a87e82b4e7c02657aa2929afb9f0d81d86d2c4907bc24754efe73f549164b1041d04c746287d127e3b06fb31763319c24716daf6b5d53588d2aea5b3ccf3dd377ddf5f677960f2210fb6873fb8df79c174bdb532cdeea68c4b4710c2eaec81ae50ccd737f2e3f636f5ee4fb8639e7544c3ba33e95a9b40594317607627482a9d11b77863628bfd71d93b454c76311f6373cbc584637e0f7335619e429441ad97133d7877b0a7c93a767e7a87ddec53d720b92b9e4beef29e4e2c7dcba3aae6bf5ec801f74b9baf29d404c0320a1a65216c5785e87a4303e8709cf3883512dd61311e59b8a810ffb29212a7fdb5e2a93e5560d54cf4fed4a46685ff58b9f2b5cc4eb0bb171c358014421012ed893d2eeda0bfac9842d7057edef491e426fe34d7501b48e726abf8d914d83cebc3de2eab1546c83dbb74d790095e85bd50c30b80b4a9f78b0901862720c509a55eb0efee6adbecf7106dafc92c195d1c537c80c4df07e706daca728b580b25750c825dce81b5f0efcac6dd283120047a7f9c81a9a3bc3f7dca057da7c47e3f68cafc8e7a03f83c937534dc9e168576e6f4ec69fe5df6e442b1c5d3f6b2a4c10d5864e15aba35c5a14847818b9aa7fe041cd704f8b58af90c855ba5652a30f012d0a0e417db7164615d698b8a42a365c1e82fc36a5c40a3656e120ffc21e701e1a8236bd98f6a5d08cca21da82ab4fc9e68ab1dee0ed90aa5429d246fde9af04cb7431a70e4bba6637ac48f2c846900a864198b983ebf2e841cb10ed3ec8dde7cce86579f63900f769650388edd814cba0a01caf098db626b2dca2e0419772a2323022ced4eb099ccba29a804991a15dfa31e1f5aaf2b4b7b3613076d3c955d327cf817083b88d01ae7b5cacef718da507bbf91b4c717eaf105feb0d2d5969ccd69544b14b695f007b2da53c1665a5e12b62d4d7cccbd0543a51d1e0ffa584d773ec4158c482f4e332fadf4c76dc384401147610ded93b33aa7e1517493d1b88e6036759dfa46ef2e8f6f8f2f996ff01ec9be92aa24f2b81597ac500f26e9f3bc0a340ec58e2452291cfc768ce24ff01551b6f9181266859971d235d5ed2a70d4209c104b51151c651e256c4f69e8ea98129aa620e080cf3895d5b76249a50851d85a70594b3e5376c9134351f42388b4acc47a214be4d82c8b97dd447760a798dfba9d822fce4615ae7770a036124588f5ec66844491cc9cbee3c598604bf99ae0e2cec74e8803dab59ef89703fc45eaf3a1f777787045c6652d7e5ec5d37e1259254fd8d554555753ddf57f6deabdd18f088475cac9a1dd035d4d743df9ad41eaa5f92725e3ec275e916db2630a6846bab17e633cebf571f79053516c57f14d62b9d1e849571af500e6dd080a9479ea3319943cf74fb8428f010575e8c586d01de6623298751e70b4f58f055e5b641e578f1b3cf3f5586b78257a5e5b74bda937a1146092251ca47fa2a128db439dd8aaf501a8ad22467ea5f685ff6af15a47ac4ab637b5aca145ed107a4de872eaa9462296cbac5fa8cf513cacb0695754b0e2329aff5c3352da04117365f520d20d798118ae94f1586eaf5d5596ae04fdca0294758ec1ef7d6e303451afe5d660b9ccce5089662b7292270e80b62cb9ad7dcf8408887273df1a05c5143b1a781f2f2b68e3ee5cc90f0de238fae1347c5e283de2d7028f631cf7771feab1de354a8aa3db79056da08ab285c79b987b6b891eb8adba92dac5a8f0f47127c3f41f77da6a687dc98ebaa9c89d41c2aa98b96882d8dbcd72bbe14a0eb9320ab7a89cb82c888ea8d7bf2f46429e497f26fba7db451c6984caa557803bb3b0ac056d6f57413c503226f53d8637322174cb2cbf9f95c077d2ab9d99c92c236f18803e004877f1fb8220b514c849e51ef72f0ef7aed300411725f88c7a86d034c580fb86f13702a8e80dec676908e87799c7b1674dee4096d73f86179b4afdf3e75fc7380cefc8e648c9287cd328e6b56085b631766bec984cfaf0d2d532f677312427796b4cf4783a1e28cbf841186011a485e600f0be41380c386d75f5cc878dcbf426d77da61be6d81517d98c8a582979020e5cd7859234b2051bfcbea12f353566a9628d8983e6ac122d0baa7070c83aa8ea825de27f352cd0c6b314a5c1ff6601be1cbe019bbb7db1c938acfc90603d42e92d7febe0173ee5f48babe1917ae3de21d6bfd3fca55e12df0ca330acea0aa2bfb54b1dc6361b9f02d67546aabeb9cc2210b2a2c19ec9cc2de86cdccc150d9ec3324c3ea1275913276a2f29eb8b943f805bd8db6f5cd6673dfd3ca01102b9fb43abee59faafdac044661ee22a68ba403de871abaa8a2ab0da466adf34b023d2dad711aea8bb4023ad24c98152761fc89a5169fe49728c38423f89b8c85b35ac711253e028195a8484da2099d9d0e563acc9e526ed7a0c7deb5848411ca1dc8cc69693a9db72517376d50204c8d0111953e14b0878851f47d9cdf1250f5f663ca3818f145aefd1cd575a77538ae72f3f6d09944da3c0f2f22022cf241904b0dde453873bf0e4a2ed2a6c60cd1949db656f6b2c2600dca487aaa4ecc029e2453a28cc36023f53a6b195dbaefc86fe6ad155453f7d7ce81c0c75b113344229c0ea66cae6d59e8ac499b0f99b1cf154747cd713ca07f3a13c43abc1b9edeae80795e1e0b17502ae7db32f4f5a0f276fdbac4bd9ed0dd518df143990f2656ff0fa8af3232bc8e4448eb03a7eae6cf3cb10a8df8d1b15c71ca62bd05b06cb770d088abb99d5ba99b43e9204af7ff3527365d3401821f4f551284840741c1ada3bcf71dca27771cb62b65136afeb2488a2e7af87cae62dbd9765f8670b0daa6e9740fb93dc31ff00708fa5cba26e38146e9e79f24bee0ee462ee071e0fb1de67aa31c5b35038569fb7c177dba48cd49e3ed10ec34adbeeda3f1f2667a6cabc56f853e383bc0a9da429dc9f679169f2abbb49002048dd3a20e484eb8c678de2f3a67c17609d4dba3d7c9004292e12907957529f3c0c86c20bb328a899270a077f0d39e9d5849026348d583c88147ea21d85e931ec7bdebef5c5df58b1a4364320ec5dbaad1969797ee9e27ee2396175f20cf286677c367fe35cccd3581f6a463327cf899cf22b98d53c753f539d0f719e54140156b848e0f3a0f12464ebb083e813fec348ca582cbc088f062b1946bf96630b4a07605753e4fd9b9152eebaa29028ac483f24e8f15577b6cd1e2c8668a582768f9a5b61ba8db873795745cf784439b97fd074666825ea6a596f35fb306c6adc364daf5ff081fe0c4658f47858eea2572c8060b283299925b1da16c5b60acd0582c6e85515cb9d3fac7860cb7523ad1e386593d083d4deb39a709ca6010d5be1701dfb228360fdf8d97a07f8e9234a6eadb1264de592db27923be27969d134c4ce55c438ce5c53b4cb3baad0731add8b8ecbb67b190d5382d05774a1e4f12568811660a5eb6084d65ba98e2cc1096e3e7d24ea59764acc7d59b1907b9a6be101e08592a3f3c5cfa8862b9d930669115657634625af2b52598ca0def46f110de793ad049e0955fa738a0e2ad193f80e1a3856780251239353fc32491c882dfec87c99c7d3c8c027fea683c071383e9776d8d04636091104bcc8274ff643e01b9838b461fd8d5b11b27522b9af30ff6cc7f9b5e0fa7e48d840257a90161ea4110e64355866cb825a443925617c8984734b0f95d409d4dc28b083faddbaaf2537d4a55bdf8966138a2027d39d9ae94ca8ac008bdffc4e42e4d8d966319987e80ca5e9e5b8bc9e262f37bfbefda5a81b37250ca24834d3f1bb8816c3869ab6d5e20ebb38a594fbbc4151c86ff907a3ca4abfe35ff6a151ae73b4305b1271dc989b16482794448be1f083af02700c3b12fedac433a78ba437731afd1b2981ca820edded8b81c2f30d034ced07a3174c1c9e4f6a9f6bf17c9d8b2fa5317454f705eb67617ae7ec23cfa02a321f4217086579f6f7c254da55285d5c17df50533f437926e16736e45b18744fa92baacff892b398c7616ed68e78f707d1e0957763111084d10508f5ca125b1b1062336ff7ab149ce9e79963f7cc850a949cbbf6ede77dd87b26362a33163895510867823c6d96fbe0a126418e1c0ee2edb15976a9545f684603c1e17bb89667a58ba12737022b6f71ba929f1a33d6002272bc5b13735985c6d2150ea8b936d490f0770d94a5bf280d20e881e0a2724d14d16ec61b6e30604a9276d58da15a5e8dd9d7e5e5805ccf624d9717087e9369c04fb05eb28f5359c30940cca72b1c2a4fefd55427c491888045381c59048210448443bc893e7220e2199a714bf03ef540d138f824ce84b44e76569c35e123d5f0798cf9e7a79d8783234501e5136a7a0b0c504483c2631e5743d9f49f2f050400504e6687ef63e1608b45cc2d9504c29ff55f1eee66581bf481f8428763e249c5cee13ec5825f0366bc743696462d5edb4d4ca53d6876733b0b5510ea33c38bf4434c0636c4fd1894449e7028356fc9bcd95ef56a4bdd4ef2a3bf644a908c7925d00a37962436bfed430a1c8478042f2835c802208b158ef5c6bfa5cb07e607033f431696455e69a51f7f853e4acd8193249099145014db664e0b515ce8eaccdd68c42d110237c2d1db4dbf34789150d97a2a74e8134a956df4c1708190237efe06838ab8ad0def7eeb6a3ce090ac796302ee1651a2d7012c146184c7bf78d2007d926bfadd17878d0a36090d66f3c5357500b89722f4ed98c593202cfeb99c7bcb4a5739dae1aeac20ba49678a48099d3011e877c96419ddec0b049260667d833f23e17b8ffdcb7ed14b78aa513e9b895a061f67cfd7e76c6deb7debd92f0a95d21aa462ecb679b86f7dd690050ad3b92bcf3bf852f5510ec2316b920231b3688352b70bd8a0f0e1a4d348070cdbad604ff3e0dbf781412331c0ac3d643f4816c146ebb544e3b545e71e5c399683edeb3bbb3959932c916044c8caf3238a19ea395ffb31b234dba0d91b8b1ca3ea9b85708f5b2acbef6febcc0b6665db98081743caa2f9ff6ffe119c57728ef2020125321938a55286f5cb0e16b15374daf43bb3113fb383c4297c9a10f820cb87a2ea6936b9463d2555d872ee3afaf0f35b573e7fc1a720128f80cb10ea61aa321377e7b2f6b6652532db52f02f702481d1cd6f6e47d787af815e6c972dde2f40d5335335fcb23ae0e6379e9c279f18774eda05d845585d44e8932256bdb35bc2eb9eb53a50272728e3be753860f365f4e3eecb466f657b69b5ecdec9a3402b6c9f71a7af83ba21ab5f9ddcadab4a81a6606deb5158cfadc52e945c839ff69eb64c1929eb3eec0d87c94a0b5bdfbaeaf2193e700e7646135469ca873d1d487a6ea3171bec66ec3299e99be9123bddd621068a423c894f0680db0680d585fa5b8f8f590926c65a18f53a9418dba36b4e77870f1deb834e3c715b368fc13e6e5b70d8269edee41a54d62058d83480859c627dc713eaee6a82203c5c1ef41567aefefb8f5f5a77196dd4e6fa5e9ddda3da484ac9cf3b87f8259de2799c6de808876de36b752eb7f98f2e9f3dabc0a75b320d9314589a011e85ac3c44ef25961da7529f1f1a82f093b7c420d7f2ec3b5b5dba8227da5d5026dd5c6314f2aa927e4289c4cc822e12e92829716fe5e4c5c2068f4bd439fcd6a0e2b13084c10ac9862f41304b92a5bcf653567e21ce9981c9f21cd27005e5b2a79190ead9e41b8c2ee7abea45575101735b2891dd96f42b7d4171d76282e9341c4010578deb9a1b49c006b97b39e7b6a3e6379ac5112d2399992420667638f78ccde1f369c9cfdcff369fe584527ee0236031fafcb6eda6ac7c1b1cc2d0c482060bb40a08879017a228aae4693b28bc4ba9d675c190564e1e7085c6ee170aab590cdc3de9ec843464169715e25c3d15b4ff80da965112b0b2ce3adc259ef7f4d5ffeda95f607cff6e43f01f9e6bcb1ab8fcbbca236e1f7a5b27be9d0441ca928b13e546765d228a271a2532f3de05fd15dc5abbe157f959089a8650f47bd0ef34f0124d5eea4ccc7e7413c19c250308d7206bb539588fa03f874c4e501ae4ef6f410fd2a700a0dab613ad743c418a1b32a191e52cdf5252e3370d801a8c55e76562f48bf99fbbec1dc6da24ec5e342fd95d4b0bb34b8127597c3ecc2226065842dd43e358916f0e5a9139c694b9ca2e8802295eb19fcf571de8c4d1304bd76f0b21f19891bd6917cd7ff1406b7d07b848cef16492248b2c1461ba371a9a66e50d3cd0d5c2cb12a5039739988421dbb11e9a766eef3b77e987516fe6f298b546f7cf07bf5d8d0f8ec07cfac335965e6190b2ce12b097eba0a5317a81f243b0528a262c99d42a9feb8c48555131f595aa2cb004270cb84847e07fccf9287d06ce9a942c276b3f0d74fef0426aee5c7246711b4010c8a9a41903536d268c788da26f7f1a11396781f23765c9def2ee5b0592df00d3a3714d14d2aca7e1dc90cc77f6261afc16baca20cde4c0df58c943cd6d89e969ac92443c87c63a88f95014a015e03bc65d5fa2075549c79611401b8fba0815b21ce38cc2fe885295c6d225f6e82e6b3d2abec67098cdb6e64058878ac752efe722055d45031e5bfc82d1237eeaee7e0daea482328cd952ccd168674efa804396f18c077d1d72d3ce3a3073c19d1975fc89c39247e246d2c7f0580b623c4bc280e770bb2cf899e5115515604b47b87b024c5e48664dde2c24ec15313a0db8e9e0fb1c16f4f904d32578855b891efc4762d47eca3c710509af654d0405be8e728c079c3e8ea71d0c1ee5542546c2cba8a05e9789bf778509943d48c92dd7612deba627b512434c10a6dd1748fdbd1014253ccf3d4d5dbf2143e7103c52f3b3f155cf7f330fd378aface29d306b391de41e25d04b727442169d75f4df4660f0c9a877bdc1f27ff59f0845e0634b69dd9f9e52ef0d3a95f172b63f9df5eac0e0254ee03f4a4b2445a9048743200d9e08f9b10510aa1546c20247a35a0683986d7bcf081983daf828c7156ac450ad8aece06fcc3e4ae723eb333ec31109c81e283a3f2e9e49394d0db425bc11611832843ec902a1f1338a145f1b7919d85cf3ca8b5cef31bde9a0928b278790a308052739490649b94412af48bef0226a4837227290932c501024fef1530576fc008363be872dca0a96de571ce3cca7aa5c1f200aeb6a06cefa8267c6394c6ae5d4c0f275b3ad75d39dd507e45d9f8570262787eeaa49885d626a2e7ddead957d067843d91d134480694298dec43b991ea19b89a1f6a4deebd78264c1bb386032ad131c4908f37865b8daa6e38295f22fd1c6b92c2af4910e5fa8fbf9908e2db53a15a24a7bf66865e06c19ca673f833900f294154af2edb2a70fbf13d9f6f064acec499e2e3bdeda329e39370dcd86710460b155b8086ec0b6ed1b1040b09cbeefa1804173f36d68855b01327f9e3ec00c423aca892185938b603a88addd5a06ae600c5a865b084cf6858932ccd9573a96e36197e5f048936fcc90cba85be903aceabb20cbdb1145de81135dae2e68f3bcd4d3d86628e6f8751d44ccd736d406655eb391187dc574d72755fab75a3577d619a0640abeeea8d5aa2acbc2a3ae962176e7838ac1e9e5f009f69bd9921314473f24c758d10bced1008056a6ba1d1177184b8528fb73fb1d1d69f3b86a4c0bf45ad8189f9384d01f35d7d29f218948fab1d4df1880325db4c1af875ae2928ea16180a724ab705e4579ebbaf488fe73ee3e973e23c6b8fba3f4963b8af03718534fe1b2829aafa752975e815f17c014cc7414040b6b81791bfc993f29e94e93e106919579790d7fd89c4bbe04aecadc327dffbcd17b0f9c310fd642d970d0573087a1bda17c9ee50d38d079f648c1e741ed016fa886ae3cd62f51fa213f07bf7d91735b21932fa2cd4d756adbcee81c03385fdf68053332524c7e20c8e294b910019ecd8838ea232ad0fe34c1c1556d29bc35464cb284ae8bfe52603faaebea5ae8673020cfff1a57d516bffdf99b3487b556b37c8395374772645c56f4b9071852e684cfd933f5fba4a445c226b2343c458b49c5dd5aca862bd34927302c928c13a9f204de993750c2e0ec05d58307311874c16a9b2ec4b66a9f099c18f56c0583351b1e7470c4237006e81d051559074787139815470bdb636e2377612187e942ee272ed6e4bad696405313c07e28bb990963f210b69369afc68aa47a1f49851b2225edc1f61c9f3311c2e8b221f7c67c2eece1ad52f387889d14739ce2ac62ec714914347104d33100da7cb8852fe233adecc75435bcb6c0c44bca10500898c1da88dae4d20f91e137ebe634affd3446822d5da8b9216c5445b3f849cda7436eb052ba4d4fe805f82abe847f1ed758068b046051994f9dbb8f5b635d6bc3ddb0239d341afd5b629e90a0796725008036759cfabe8b2a9a5d780c476d669216c3ed2c3ea06abd1733e410eef3aaaa50b8becbdf60f43ed7763786daf6e6a140d4c85a360f438eacf515902c767bdd160675e3587b5ead8284ed06ed249355cab88641d3b35673385d546a61e5b4e6b950b0d2a1cf2af0dbf13a9a054c09836234418f8cbd59544c4736dcb03c86ea7b6cdf89f9175f8c6a0303ab7320e3b6b8bae42f4cfe58fa4dbdb7f4acefd45b28901691c1f90faa548c12f1d4400a987ccaaedea528c56b8365b002204d13e9535da079ce27165559b95c6eb17dd368b008a209c5d20e28de973ae6aea16048ef0006da98ed8ba715f7154d08ce4154b8d38e744b5098da5d4d5ee3c586ebeef97618f8eb7f5f35e8c27e12118bd95e711dcc6dd360607a8a7a94f6cdcafdba05691726bc92a326504dae27551fe2deebc7f94d133516b8e057667d094542f47716c263f20e0150f51567b5395d4e2b15df9845f096a217d8b5e8065f57238b29ff2bdcc9a6d2256fd236f47fd33a0c41bd1e37115958e4332f4b4485dc0dccc0607457fcea40f0a079c8a51bc3e63a836623e36a377566b95a09d0aa75ea128845e21fe8c798c397dd1f3d533b43152529420158d65ecd023afe426c154155fabe2a7324025366cd54521c732bd4069e36ee186c2f35e3831070386c51f2ec99935ef41a24ca3af87a43f15c801c4d1c8510f4f19d1d21036d3f6b6b2697fc5c1ba9c3403996223e746106804b2d7a2b75acac987d04b8a32666f115fafe72d222e518ac2e27869d1712361d887866fbb208257649196795e108419b766473205c6a25878f1a7236caa1b7f8ebb6d19724b76226cc2e4663d2ab0cea25b782107dff09b4c517da21de24f848fc60e7de2f4ce97b75c7a15575d55595fd25d570a56910cbb5c5a7cbcb7f3cdbb89f99160d70136aff4704afe566194ad228498ddef75151a387f0e5c13914b6d36dd2cbd600e66c07e5066f1167318afac3395fa47b4ed9285f2884688e9c750ad38ba1291ec3318cdf48cc61aa83c02ba9ec82a6bac9d3a52e7874b9c961e75342df72a2f1274c69ebb4494676c91df79959eeb5d8da7d47364c4706c0cf8d35ba0a597bc4ac06ba999b315dbd2975a4fc5cdf6b73afa576c7b01406258e69035593676ba387ad7283cb8d321e5bfe066ebc6f6ed3f97c096e659155d2baa952e7a043bfc8c7cd6f36162d01fea5e09a058e651874240d8cccb9ccbf3b553ae7c7f22768b94e869c9c225f48979732b3d1d4f520167811c0b58b6cbb6a73584350514b20b3b38ca0e9ee4cd8301d3d4085d2a04c636864d495fe53453a9df1c57594cbfedecff89cde9c76eaebf31e370427d1e12e4e6a055f84780ae01438b70dd19e8cc471a071add5f760ceadd6e0bea8b41e07e48a80f04424bf7634f19119c147863dbb4ce01594e321ca60a3c6d90ca8a09a08d38cdf991301d830e53a81fac38f99ee0006989918fac5c4594e40fa2140ea22c3f7d682e5821f9969857a4f8be804154eaee51b639ee3527929a6a79d3cc90f2782df16a46bec7c90b07c702449c8581b4df69506528ecbcead0c9eeb4c47513daa2622738a3566c1478116259897f6fa8421e9c7413d172980dc4d6b30979300b48d60a8d6a5572d60ceca8710ecb4f659bf2792306a3f96383a4a7b5053f2526c19733bc931922c6f74da1218c9048298c4760cde7c4b9262842dd70e48d7e1aaabb82d1a5e1c70014130427e3028b091f46c35b6766e2779a2190aa272f099cc15a804aa006ac946d06a960c49ff887aaa98a620881d829915d965615606f6f6b7bcd4c9a5bc0460730f30c3a0700123a660b69f0c6675cb45b57d5fbf9ca12b3cc0305e8be69287158c1d9ae1040801dc6da3bae9ee302df8956228e49e6e61868bbaa7e19ddb461dfc75119563d8d183ccc53184a6658c4cb1ca01a3e9b0a201aeeb28b62a4b9a3dbfe4daf5b6f132e91f3cb6752973ce6f25aeaa924d6830a053cfa55cd70896a7c80ebe37ec0a88b0081ec19126a5377512763194a8e5b63c78ef300c979b034eac8f992aaf6756515bd5065f6bd20f099c55569328259a422568697bf172526f833538e35e0497b68bcd0c04ff09ee5358c62a824fb2248b9fe535ca12b15d23cb3a90384cf44e7d45ab4453585db05299037ab020ae60a121cfeef22b3bf622b827e80b851a5dba3c782621636229650b0d58c44db5229b7e39caad502b1b736b8c42d84ae2c17749728b3276fe778e5887a3ef0771fd520f45806fff3d73f39baffdb627e658dfc5b4dd9423d0fd36cc45d437bfb99d39c1d2efa64c2b4126af86ccfdf78879f2657cbc9b5854f8daaacc9c50c8237eca0d4dd32c640310cf6c52d81ed332a41f48e312331f2e234f6338c1f6c43511fec85a792670b97d67015b2a34fd4c614c3dc665fd2a4afddf3a40c00441817016a80b158ca3cae29ad5f98563900e1ab5789f502103e03ea96dab61147fdd3403825ae06b8b9944182dc9df1347730cabc25ce8f2094f027d6044d72935bfb68e9086e177ce5c81d2e129e07b2c45099c5d76a6537efb5385fee705535d5e5ba78c5ae10e2a84d9b42bd42c243a7c2a64ec67e622b84fa88e02715a9bf1525bc9120bd8f49147eeb5850887739f7a1e87f2d49eb33f21ee24d7e2174de59ca58f99d2dc7166be39d5a09d9d235295223f39262384c629804f95d914910d76f30a1eb7a7e4d2ef002b2cf7d4443bd17de6a738aa618ff0b21e25f6760eb168b034455137d2c54e2a1c8777a5804d0e0bc30fd30f4246b4fc3ec6364d28264b34ec21a7df873e1f77fd3892e392c0d9e8e89cd08184d1b9fd4542386cef7f3b0f900fa2796f8fdfde29368bb6d52e47e82b1b71e20a3c2d895d7637e5a09c23602740c06887639b8655f75c47beb171560e063b2068567223207b968979bd511cfb946c0ae05f151494492b18f6d9b89a8b720f028e23cfc3f128989789985293181b05491d8dfae7428f5f01585de5b48aadd6ae81759cb268c3eeabbf4bff65d91a9e57da802704901ef891f83e84279aeeb61e55577ad5c4bb7097da8f8ff85b95f82985db5348e52c0d60324114a69808d03492715e2f59d73ea92df34fed81e4b37f4907db5fabdc4c08aacf881d278435be760cfbe9621e013d14957ad0e21d1ac4c432ebf47d22cfb068fab88b55d2aa2de2ef07d33b24e739f423c2638b3e801ee1173492c684841983896f03a1149c7017a4a1353b3254376c9b19df9d0c2639c78471ac1337308339306de9e9ebcabc0a633787eb4c1e2bf9d43e5cbd6ad8af32effc3bb7bbfb31bc7ae65ae926b4f8b7f5668332d7328c1b1c6e0b6d90169cfe9df1172c81dc4f7b4106e1401e45804e105d209ce80b21b3c256c98887ed44a76c7b3a36f9576bfd8753a26a61d640dfea65517c2def006b301c7b415e3792db534c9dc3842c76bbacc807a62858cdfc93cae2f93275f4095598f47ddec4b40b0bf57040eee6b1054bd5b9c1caae771dbfb22845f875d96c5471bddcc3f1a5618783a4bbaa4066f8875ac9e4578dc889f83b7f0e8efebc8cfd01d31401a6e6c1c6f03b7886b71b48d394797d6506db7eed22b6db94dbee2a6d47b5c1e14c4cf9e8a8fc09ea49b56064121efeafc3005bc5cd3afea0f38721acc2d885d5d4cf606c538e8dda716c3fdf6b6c0d7dcf050e411d1d48dd558c7491888da9be53ff1a0f1271eb4429d0daabf7726ed07abdbac86e92bfef92547986f976736761e07f2c9d35cef6ba1a450794224c6598e90da70b3373467ff5fde7f696ec62eb597b49967da285228bf15973ccccede5b2b6edaaeda09e77aacaf34ce309bd4d0b2a0bdfbb38af1dfd6df0f45478f14b60631de7d5f4080bcdf927073ea519ae9ec2230d3e32980043224b0aad44228c26e79f4b0233b2721a325f2d2dea4e55432099c85fc5b7b9db865ebbebdfbc37cf78247186d128b2c5e60c3babb8954831952a0e20911f6aa22c7e38b479ec1d365056133682d76bd3c2bb4b4430ed3f639a0f8f6e1c0f2192c815a74e5debdaaca420551d272f6424d65d607ec49b61b50153311c63bd03fc21248025e0744b18793f602f562a4047bb1a6652b787cfc8b022e67510cc3796a0a9bfae350bbee208ddd86fe20a882bf8423a782d33cf229792e0a11535e1c22b0871706119f34c7f37d78cd2e3b4e7b2c5a3b5fcf64cba210d49c27e682f078e88a4eab28a26e98c97c0c9b1685e5fa31f4089ac7df39e189abfdd6cc232c11d877544e92b718b54f7760dd22dc8cdf9598f20ee3edabe4a29424ae997786dc66301abf4a7fa242c918e5e97993dcaafa2a3355908a301ea424b199434777d135cd6d27af1195ea5e51d19560d3a320f2b6b2fa64c2e84ad4d56dd85a21eca5760c1c21ec610b674458e0b1f413764872a902ac7ac9746cd7ded56ab322ff667cb99de595a92fcf9c13140f3ae6a6fa8ac8eded15bc2e298ddbca12a86c1223358eff272114123f2a586db86d506ff90a2af657305d61ac51250c21618c8ec134557747701f1e5eff0c362d3ca76dc1909177ddf7e76cd0af192c9d5544f619b80db867c1519d5782baccaa561911540ae5fc999d5baed5edbce80ecfdc89b9645207a9f5377a11db26690e069259a615a105b70aa5206b821b47d67f95cc063bab7c5078114fa80f89900783cc9025518608d36fa9619b93a3b2966cb16ba90a9c357d6d11a81119891fde254697e6968adc11a720cc65352b08540d697e1e76914213a1af7535db6f5d6da7e9151ad8e517906e28a0a3456e89c7a41412469b9dc6e1b5ace0de14a128e86aa2de4823d3c7328b859d929f2de63aa40a6a9ca6e5c99527525a69ee812a042ad4c1f5af719ac1f1e0d22a3742fac763fb4a5b276f0d7f0bd42386962ed2ce8fd97af008367a856646a6f97b5511fa4c574bb1df3904a6623ba41495d56eb713a12cd54008915dec1602c896d610ddc1c94dc3c22cc2e44dcdebca56ce16168f713050762f86ee00097c198d52ff24d4c95f90af5319ab32a0ae7f443ce743e5988e92316172c74cbd46694527adaa9a8c5d3e005c7a1b573e225375405b603cd2c3456af696610be1e083bba41a72a084e11464e118693d749fccad8e3fe1843b876dbbad2f00beba55d372def5c0d13433732395658d16d09b461dfecce129b4ad8bf2eb965213ba325ba740a782bb64484db8a31e6b54889aa1a133c2e10b973a67644e6fce28d8663576177a5e5b436c13efac451345240d5947698a939620aecb21c1e51f08340f4031f8d558651f88c3af27b1d02b72839f4bb160bf669b204716070dea33b5a269668d90583686b18eeb46040424fac2fc9e35cc9adbaf61de0014055026e5eeb99e1bfaa141f17088174f057da3be7b85a449e61989a1106c1093caa04d058a4bddbbe5bc3e1000693883289ec6e9eaee9139bc2ba4a8fb1687c0f298329f80404a185013d929a7c50cc5f73b3c45df7b5cb72c825999ba1b62144543406288519ecbe0b6f0807dead314c21f75742e80b6e404075056083a8d231f523dd9bc025cbb2264be84b1ea1df899e90f22318ef52980710efcccd732b1cad85aadb08327793574b7be5f3ce9617765eeb0849ef00a3d79da371387c4dc0c9c45442ef2344f74ae6af12a38fda39819c9beadc6205570c142c235788230112009e7dc99e170de0249f9254afb2eefc00d60bc70cc400707787836a6795ab2599d8c51534f92e458219f87b810ee319e221afa6fcca1627c00a2916f9e6f31b8b2b960e8976ce0cc6ecb2d0e1e94bc14706fab4a3f800b46bf61da4ae35843bdc0cdfdc983e4921992adedb879c68665b0261aa003c9b50a1e62fb1f93d0488a915ed28ba2a6ec456ba0a816c113f9cb2c876c8cd503ad4e73f5c91ae441d68103c6dedea0fc0831dc75480fb63aaeac242cd0cc98bd4711b2669a34ec7bb251db4ce1be8e655060ecb0de668f43e5e327ed8f1cb86334488d6d1423cc1a3c681b76ac4365e429d34efd10e040ef49241fedb4a6848cec3c8a5fdd0f204ed2c033319bb4f64fa4c9848bfba10ca9a716c7f9accaaf0755f12fad956acf4b6ec55339811284cefd249d2508cd2595ae1a33703cf2090bcc1d054d0cda155d040d2a57098bbca959a3d093a37efbc225ed72fdfb64e0e3fdad7215b7a8e480aa7c3140f14f212e292073f5f70e34da63cbbddb3201448079c086e3ee9ea3d90f8f38abaae90aa93bf2c2f2bbb3928822cc2291bfa9078f4f358f2d6603192f71ab69ca6c639f3f41c82aefc418a611bf4a372d20f478204829c47968850c3130af0518358d25fb930cc9dc1b8eeb51b2692161b322632cd3708d632eeabf1b2b0a1121da03c6144440ac1110a58374ab17ac9f1cb36f5b49783ce9c9cae5acf95be1b1dee332ab980bb8788860784fc0be16dbb7c8353d15f29e2d30cca3722593e1cbc95a10a90b2651cde6189931130ee748074e5af7e622f95806482a2904613841033b1ba4af1af511ed7ba1c48d53511701f596a7cb964ba03d5c2a2d8cc441f3a4818857961f05e0a6758fcc9ec23b0b332783039616465ff363a750ac8fe7ae7bacddd16682b8bcb9b3aaca63cb8db4ece96af68e66cf998a6ef8ca08fab7eb664338bf384fddb5ba3ce53f59e59b8f0d218f59eb45474d61642de43dbbe264c7118d8cb1a83c3154e8f231ecf20645cfeee398771e24ef4db41755b5799235e16c15ce6ec9fde6715386d0c4b46eb52e433c913784ad39bc34a39679883057f72357d0ccb89ec21419cab2a53970b7385dc8c3cb8970e5d81cb3902736c3ce75123ca28b3db42934bf10c32117f0c0d22d4d1d868e687ab8cd562d135454929eb1be12c7fc4bdfdf4bdfd7cff6c4f96b195f20bcbd2a2e3a3ce758e7f6e5ee1235487c91ac1bb127ae1f1b47d024b5970d068afbe1fc6d1629f8097d6f164cdd99ec786d6df913c5e66a64f69877f6bf5507e4ece5d84fac4ef5362197fd41ea89f6bf6ad82a38554a08a6a600f8bea2cdebd965811ab671d9cf6a0649a0f36218f5dcddcb879e69624267b40a6777cf667f6c42fee441e024f4f6be1f1dd64158f09d35f8fe85ed5500b41c4bc05c309d4a8c32e5149a444825eed474fbad8af45699bcd59e776610cd5b1e86a74d318c8ce4c9cd78ac099d195944c66e0502a40de6577b697d11cc4dffcc90d324fd7114d6e65e40de1c16d23cef8e9a6c2c41553081d076d18273f8de0c71f29d3fbb26f5fdb68663edc7d3d9ac1e5214850eb169d8b7798d25d0426dae339db500481302d73c2628cc885817f047321b75818c86450b4b476e2674fd908714647d13ed045def6f6f45c17a9813684db39630c635da774238f26ada922b5e91f6beb9ed7c50aa2c29c7387f6f236d1458e7383dddd87dc37283e2459f05ef07f3fa116e6495e88b8ed6389a5277d1023fdd5e0a2bc795bc9e9769b9ae870c417ad65fe9218ee7d546f0876a032cfcf64179cae7430232bf06030ce9acf090d320a85f4676ba51d7e3ed184882fcab2237c812077b0fb17883f7c6d563bc7dff51975b33d64dd47940206d065a2269fa0a71d5fb30e9347eca1ca3873d741d3e518e4df9053f53dcb94be59cd485dd9e83d687daf0abd8f12d2be20c93a08bfd2466887ad45605867cddaa73474886354466535bd8b5fe17e9da57b8236bec4455fed5e6f20f9e6790d4f90c23f272473559865badb66b0a9ddcb69d9f5e6f527aa59e249dcf93d58084edd51a2774b101485e95a878a3afacbc3015a9581f3ceb34f05aec3b955768c05122ba7ca0d92e68fc379ae8dd7cdd5116ccbe1680d3f496881908ae17469026d272dba76385e80fc3545b2e26c47e1d69caecd5dc6eddca13718518ecf8da0b7f25a683b45925276142f176a9fa9455611dcdf5c4d3811e2a5d8e4d753d60eb3c5a679dd64131522e850f7b0f6f653dad065e9c6f96a4d985f6279c0e3b61492e12aecd2864ee2043e9449f52a7319db375112dfaa166a4f118bf3998d44e422cdcc09d23378bfa5087f99fc73b56e261602d0b9d6135e0c4fe31ec63c2508b8710d00c38739a9a963a9cb0f8039c4128f67f8397a92551c49eacbd08c2eec8b0c6fdc40f4c5bfc285f8fa7630b192688ed11189b96eb6a6b2ee588ec98b732e54b2d86476117adfa840f31f23d6e172ec8e433dcfeb7af60a6c502115a2175888ceb08ca887e746e069d0a5d907e76b33086b16de0e8f0b0c134ca3a510fa4394a329c1772ecd5a05e5d46f581ae0f6395d5a7118f82e8c59a6ecf93d179e00650a874b5dea6e8f7c610bfdcd1fd38b2a45542691fa5e4615c2eea6ac063239c7c66c9d69392832a38da83cce690974c7cca1ae062a868cd6e315b34107a0941b0cb03cf5a768c2a8d454e9082c88a5db45b1db462f069904145402190a56da49bfd1af1a3f4991c725aa5e4cb1bd1fc2548cf90682c197720a7a0177109e946c1f4b81cb2d3171e8bcc700ad89a7fd652b0c52a885a7983ca0b2ab1bc6eab0b7f76bf694bd40370acdd783e3477c2b9305e5667d271c760b8d3b2b830135716d4bfc30411d7a376836b1a53e8a6d3faf19b77d042e38969d3f2a55a2434cb7bb3d27843826b8c5f4eb8074c4e81bb6fef1ba42967bde8d999e1468d1d7af22099cc510321d36a9b6862b449bf10a0001064915fb1cf1d06ffa0b06c41c704b2611e1fb15973912e6e42d2214897e11f1f7ab8a336dd64fb79843d79a6a1de02feee51066f8149dcf109d1c0bc7e1f62a5002535e3bea46b8ad360d0d6388714bc78b643c89fb3ac6d31166103263a71e63819b20f09336b300ff2b16de812015449e18a4a0245b9fb838f14813eb304b0e49eff3d1816ace6ad50652f207b455dc72faefcddd465926d5471e4c64378ee1a2a3d80e848c52fccc0e844896305bcb8fb669ce501b27e1fa371fbae7d57e6f3ea96ef51603a58c9dc24482cd6dbb7e04b85c10480ab35c33bf7345a77ca435bb1e04ba947ea185279b97f17ecc3a9a2a398b29ff52f98785aaa2ec9ad951d5efa3ee34fc69d83bfe7694ba067d40becce4651896e01fc9d7f9828cdd4caa1468770ec49a76ca2e8d32d714940aacb81b7ea0115cb9ebf43b4ccb04bfbf0b49f88eb00599a9c8e68bb9c6c44c1b4d3e92b915693144eb330432dd99b247435438acf24731a89833b37ec9f079dc231de7759518b570d1185812d7766d961d104730cfa3940efbf613de4b50c4985abd21929fa906c466cf38204ea01fd66e69b7d1c589eaee597d48e611c17c8c903fd69c6b5a0e79fe97110c901aa8b427738c157e0a129f114205e338fe8eeb5f0c5b70893bdf7e9455b9853a5c3e0025f29daea8c7684d2859aca2a3734a30410419f09f1c27dab2d6ba10af937fc7f68fb0d8babc7999596a68976e91b1ae2d4289e425904b82d2c6d7806bf34284dce29d11455f54705de5e2719ae6758cbe5e4808fbd78dd6a042d2909e7517879c7ffe58c6b7d07c5f431d23f9bd875b42eaed4beedd76b8823a5aa5aba7cb974a57c17caf927c46c7e035c1694640be60e4ba54c67a65c622ff720cce6874c4e067ca1d78b499ac2f61a789b635116058c8f9be8a12593e227e66430c18b5909b1f7672aaac3837a81a352fef89fe5caa86a64a506ca5820ef9668e40f4e2672a7244b220e452eaa63ed4c93cb68b0219a84d14fc0dd811ba4b36516ad2eb7a42ec1f30a50d1f5ee9547498f7b80704efe8946d1b670741fdde945fa4a58ecf2d433f237a7a0ed4b514fa4061585cf7d243edcd4f7c7079a8638167bfdf91d5c480323b0399ce6bfd485317c3ad59643b86506e704f1cb5cacaba8971241786118c1f5476d8a9291468732cf302b4a8005ec416e936d6f5cdaf60368bcc05298a13da3bda0fc4568b9769733b590c6f631f8d19722d0a1d6a5c1b72c15c298389612ce83238f6756ee73193d1cd81424c2e501f23e362328220aa0944c1b575f5536a3f71cf8774a94c9c12d29e8965e207eafbaef2d410fec7a9947eef1d76e776be3c7bd2541d06898c793b0c876d437a445e64a2056a7e0559a45f185f51eb3035cffc006ed5b1eb07a9aa6ad8d7b5bf89d54046a73cc26f5204d63b039cb925c00dc8bc69441cfcbe19dc4073d4c23654da0c6d23e2ac9abe12816ec8d7736b725d6b4f331ec6294c5b926f444d0dab51e6fbb0c300ab7555acf232d4ebd28e7ae96825d6b24a360bcd8e683b8397beb6d7108e2096db46ed56738911d3b659c9b6419a32ae495148d5706a4d485dfdc5735fd95525066e5fa93bd5ad7a03dc2add9d767562f2226468bcec1a7738abd7851b10b2d69df21f36572c5ea6e47255c7da66ed07e68fc716aeaf64668e0c41d08e6b3d6e1a300a9f9e993bf64227378f3b29d2f0c0d8e1952ee2d320001f2399bd767f353e25e80084bf375bf1c48f8e1fd9be76e7708e5b0741a90d101daecba1270839bc74364c70d96d07538b3e05d785c1b337353aafe5c90f365f1d462831df58e2e4df8886bca950311cd30b663ab03caa212c89676df20c44d8491e0e55274f0ed5c6f99bd9933231c2648e9a8f918076a2f368fc267cc94dad8ba861d529b831e97bc83d1223a237f679fae1ec4cba85875e5c16fee5e805f6e308a2248ac0197c437cfea8ce7631c79d24910f5bdffe02e024d41498397d173fb7ac0a9354d742926cd43bd84e2fc0ceb22f9b4d7a0dfde9186d6a810aba48f0f3cdd46b0d1742f90522a770f346dae2afb0f001740cd3cd95b464444db749298a1a5914a3c79fa0cc22b38ace856af90921f03191c2107114cf13da5859183b340c7c446c800097ee8b8ccedd90f6d6a11ce1b4aad1b627ef9fd3057385a72f0ca6e853a16c9e38b5a618fc6d2ac24ed93c68529aed390ee011be247e32178be9b1a5e3180c3b5d9e627cc65f41199a52b7cb0ac866656757062e87f5e7b8d86728ec647a5cad69b203f2df2ba11dd0cd36dfd64e33fa77af72bdcf0c4db206ee8ba4d071a3dcc789ab4dd041748754782d2555ecbb402bd74b231746540a2ad5bc4390def45c7a1c09662d19619bb98766743dbdb9ed2acdbdc1efdbfb316fc2cfb5594e4dd98f6e82df411303f68bfb7a83f78830f96e99ea7dcba83a6c8bd770056c1cad645444701dcb78398cc613fca0583042954b14df35707958cddfd45065b0fcfafe2cf425f208ea0c523d29f830cc54d1bf2cd05af1e80aab881c9af7b14b26031a052e01dfa81463c03e0ee689a8d05f882299fef5f8a797bd2d4678c20ec666f1a8b3a80a50bf42809601706388505e0feed6199cf318907f4a8218bc2de69090f13092b7183440982f472d7ad7af7e8b499dbfba031971189c798ee1ee36ac378663a35adb166a0ca8c48678c6423ca07927b87251004b4cd08b64bcf1c4bd668c1ab0471ced01b9a3298987c14b9c7b34e1b9fcf9e4bd448eedb7a3b256e4de5a66a2e71eab357df4a9063f5ecacc1c76d7602d26d5ed5de9376bace3fe022197c665a7ca1993d9dc727165ef306c1466ad5eb7288506ed18f66330da1f85f98053c32a7d159947df3b568a32a92ba6cdf3db735a6d6f7e1be245c75c48ad88a723cef682738f72c636753ea96478d803ded73693275ddcf8033eaed906a7ebb9115f4f11e7d60cc2ce2ec666ee4c2fb9285caec8486011771b7c3e69aae1dd076709ef2903812630ac60fc7edae2ff9e4a7c5da11e198f4bbd337a12183a87efb4b28b79405f9e08f09e7cfdbca6ab8c9409113a171e4ef3aa2141f3861a8fb7bdc74172884c085e4e54feca6d94d170cd59c63a809d617f0996f4f2cd52d9cd30fd2c1d0cc3d2a24b31b73cd7ce8ff2db7b98c5ef37ff10f4c7b49b0e782f93fa9b0bb32eb3f68b6becc3d34e3ab62b276ee5f8538aa4670998afe0d2a0fecdae14af36d8bdfb8d4e9cc418886f8bd98d0d1d2a634d06e982fd181f2af1cd9f964c4d224e7b4964859af09be52a8f28f665a4befe8f1324178f44bcdc86586fa2b764bd9183228d5607145e1f32cddeb7a2f7df5c4394616b12f426da78ee3d310507fb506ad21ee79009e78006a887dbe3af0f6df93ec5de1fa4d6f785589ab46a7e6ba26b7f6abf2eaf6cf004b0873a5ee91ab729b8ce648c4ed93dba176b115efa31c299c07be6519f62283dafbf2896bc3bcfe3fea4ae2cf9193ba4df1b2cf9a0f8f12767de5a7e887b44aed877d6e7459bf7c1e3e14d153decaf584b2dda61fde195f75bd9535e8b2e41ce107b6f0956063124f04cb174cb0dd304884c52cc4bf19e48eccce70318338a5b7b10b3339aea972ac3d4f6da3e5d84a12ca7716e7320db7333c7395c09cbec1c59b42a8436f2be0d24497c64e411c8162e5a8ce94d8203e120e4bf87bbf3679399b04e3fec6a01bbed3a50a76e83a740f3b810303bb375148057d0faf38df87abcd75b9d1d5b2f0a2249b415b9d447c7412b1b1104a86c7530ba9900a838eef3e4ae1f4911608d5d3925189356fb85d61b04308ed5a531aa5d776628ad2f74157e0b85764612cf6a39391491e15ce7e010758181ce563524bca0d5898916e1104d12b267983f95550876111e4be6b1825b0b8fb9ffa496bfdfb9ed9a9dabc71e6c69d5121e374b558cf6b6235996613f93cf5e8825d3c893c401dc5fe1b0dd12b34b93acc3ed3f1f945989da23194ebb8404a3b937ba367677d49c4b310822cd84ca6e5eb9bbb226afbe55d36e7a25d2690200631a0cb46bd83770badb995cca40eb973444a775f3b7e1519e9fa6d65193a154264f2445453c0607051e2d7156c7ccacd50b6374fd43559ed7e78d5d61abc1e65571dac205c2daa6bb5fbd0793dd843ef3ca870c6f08936f85313485888e5b8dca0be0cf4ec68a2d2177a8cddf18979a1b73cbb69d07f72ac693f13992d1cd4b6b32b3d3927d637b7774b1face3a9af396de27be14f15d0b615fe005de84f3961cadc4b7f3bad02c5a9de4904e9819383d37c8102c445dc647a8ae324d824907c238c8df3743095788162308cf09f3f9d71b374c8d71318f9d8530ff543174f1eaac7fce5a7ee7d4758d6545ef19199f81115dea818490aa33ad5098d778137efb8d785d2c4fe0c50ec079364e0b3d4239701eb69f19292bfaeba1c824689ba99ec065c4bc2257076c6995c58d551d1578abfa513f56c13c56b853678844eab9237e07ad5fab3f00775e98beaee0855e27796d045059a2b3225930003dbe29348ad1be98ce3776ca9cb535bb73831a3e5e7db14d96c2ce85948d735c715821ffd6b4ef7e8fa64244d551b9c8061e4c4b35fc1af3242b17d8ec9550f6f0b237dad4615069a5e2fa587c0053a37b1457b4befb1a68e044ddbb9e22d7f4d1d1fab8ec4c09b7f55df6170478a0cd1ef3e495daabba86883364f1f9f4deb129a8f58f1d1a68925522b6648810a689a2b210ce48e080b314e553d3cf9b9b638cd6b5d9326c20631ac9cd9e22170fc50e434b407b4200e8cb20ee2cab8542ef254451b4a233c45e477d69c6a195a6d52c07636ec313200adcc2f1ba30c2e34d1a4f50f939fef64af17c2fe116f268dec169f0ba9991c080f160af8df85d1b3d1c5f4d6fba18a2f70c0b864025adf21a20f84db2e7df06df91b469e43438d5b3c96f5aee50f4234b2ece773fcd9679eed75cdf764fa847ed1a1e10c0385a080d1d438283e8240000f26c0442830cd9dc73c0620082309d83a25614bfaff6e59abc168fcbe7af9330d56eca345055cc6370ae16a6cecd9c66e161da0000974e9eeaedd503a936b8e3384e984dacee44854e958bfb7c9365c4cd281b9fcce54b03011d1bd2e31c2787e1d569b311b919ad054de1de1a725ac2efbec244457e01210cc19dace181b2c9725c4d291908ce20f878ceb0d39e9714f2bb245d7316b136ae872af8b8e2b1809bfd750ad623c8f5059447a72c26b2a8ac4acf62a51aa4684e784bff419f18e9c85af91ab00c9a3a4b7b6ef21efabeba6d2f8362dbe87763c6e831b70dd202900e7da34073ef71560ff19e694236d7c5bb3f8451e9e15357e6515d5644b9ce0143e9f3eaf598c5b3375683ec5ce25de7a1e690444706bb7bf0f08cb991a85f24a0253a4b12ac3764c87c5baf83e9599ceff02e5e965e67e499142b42eb26257a92275e5e081603d90d9ea19278ec7ccfa8c33392fb1d08b9946decb5106c52d9ddc73fbd46d816f7ba1c5284d19a89f5f79a6dac189ff56b95cfb83924729b3d838f700ddd14491fb02c5b6432cdeb33c78d3cb0ed87b9169a588ec08e93cd73f5da163653dff64781e000825c9e5394f1fd20bafde4ab2288b9be0d86bd898663b520935481917c56796b9b8f800648224166e78077d775b53a46c9ed073026ef5672ab75b51e3718207a1bca9e265735486f3c378a4efbf4976b739ad489d3405f1dd6ce2db29a4c1396178a8ac306cf8f65668440b298e518df60acef222d8747058667b8a9bb64852d199f27171e08b1f4c733dae73b7ceca46c020598b867b715ab3b687f0ca7cc2d536bd1370b36e9a23ed5df97c5197c3323647a10c4b9a5c8ce2cfd3887f4dc51d43a26f51e23a13afc8a4ac783dbaa8ae5b512c94982b11c776573f2501259d28ea95f34f4c153c9cfaeb35b70d8e2e3464a8ebc987f6cc97a445b612a138824181bb3c3bca1e1f50113011c596f458036c66422500668f00c627646e79676b74040657b3b0698cf7753862700f2ddbe8036b75e43d25c7da255b654fd73dfeef4b338903311733f75ceb7bd3e53afae140997111d5868fab8d7bc27f743f5c7be53687e6534744ee12a36a305ae35c2c9d2f56f7eb5b72ee46ddb682a657f0c63f69536142ca7f8125bff9a586363d4440e182f230d8f8a28c9d5d8e803de7129f1b75afa961d999d857a6ec7483c480f553e11203335b30b067315de2ff51799c5729171923175dfd4944b8ff8dde2ca563a9e5f139a55954dbd83ec90b1eea364fed122aece9eeba8c6e3689d0fd1469c31a2e9e5a80d820695d38451fd5ceddb6fd6b6e39031d8e73493457806ce15e4261986a3701c8ee5c82c474183227eaf3ae3df8477f5d93b6c1cbd547881b73b8bcd9e7489bad0b6c49496d9492d09cceca8980c2e25ac359f98c8e8eccbd8317bcb28cb5877c0480cad8931ece876933d794f89f6f58e8aa01afdcdc82e1d2d40c6dcad889fe92db54ca86006fe4be489f93983581bce13347b4a9d888687c3e22b6c2d37095adfb24bb369edc82a35d02974059a9a549e6914cf24de569df302ab12f6da251efcdcd34be84a9e4f3d2533bd506395cdd7845493bab1d3d14aae2741d7aee4a17551a704f246fa6e1fc1ab7bac8a634056719e1bf866f30d676ef3429be75507a5b6dcc108a98a72bf8f15d8396997e70351350f6d38fd1b224a4dab42de1bebe0ab2c4c57a1d92527cad5e1052e6b15c1cd1cb844210d2440a7477e4d041d29f8445770e7c06a3f86960005bf400c2de8f3a015669bb977d4fab494b86d7d57695a6591ede4d360e45cd625512d0bc31b85356b04c3ba764d127d2d5c88b65e9b272cb94b901262df70f0d9fb146f8bcd3a4b252b446f30bfc851b3e3ec268cb98b7573f9651dbd36e3a05be95d6262843e53b3f37a4b5fcf75edfd0fa28d5cbd676bc6326967e169a98650f9a606cbbd36b764361411b371d3715272561badf869c731ef21633c0b3e4b23d994aa9d9abfd0eb6b5d1f5a261ffefcca92ef3c969635017c106c4bd39a7e7356027ed05d97ea3dce303a6e3cf97e47f038984fe08d16159c4e012c967cb8451eb15314735df73b5524e463ac3e803aeee2392336096427bb8898abfbc7c60693e41bac4b93574495ef3f59cc022c9498907bb32b8a4dcc9c6184264bbcabd1455189be7d0a20e2bd913d1346cd9a85d845b2751845f419e0e6eb6b649857ed7f8cce21704f31180bb9312f70e4af6768144337d270b6b71da19b43bab4a765b1bcf89bfe26ce29ac5891584b60c43a7b6ca312317c966e5992f68caf2d3b22e82e2de788966e9c66b0fdc731468957c115a5644045cdcff4e9123d1a45fdfd64110b4555e843ab8552f501e655e8c55b1643f33704812815e3b2c62ee723d9e8f7bda84493ee5f51514077a61ffededed0684186095d0fb0223cdde9906e44bb363601ecb9964bf896fce18fd2b8e9e4c13071c9b2804dd3f450c998dc4683d3b458433095deea5082e5af3020ded8d781ae22f129f5270341b03c2f14ddaf1144f71d888694ae56ba88024f4a3ee8f33c227c90943adf7c9b0e3238d1824732b468e2487b42988e7b37498e13d6d49fa82cfeef2e9ff1017cd71b2ad7533ba010a12cd69b18313538376adc35c3217d4e5d6c103020944ea0bfca8affb01f2386a2880fe805729b27b8bdb8ce22ebe99ec9c98493d7a52ba7c0eab73f25397544f889907e5a4bd1410e04958a2379924ade150b62aec7725306657fa445612bf791e21370a8ccc5cace204daaf20af05d96ccaf81bb40e4039a6dac2b80c1b08d7404f3aa149e966c906929bb1a77221fcd59f9021c99affefcc3288e6770cbbb0819bcd99b3079e3d368e089a4ebfaa5baec610665389ecd817ad758e63eb950fa4b75469d0cf84848f296289a26cd1104e1eb56293af04f9a126486dd33bcd287f7e6c893ec8ce4b271efc358c4444dfc17474c92468937fe189d3d784630f8c7629c1243d18b9e45b388824bc72bf0e663398fd438eb2bbd095cc75104a6d45c3121158b433d5d891899af1d7b776e1ee37381e219ebc6cdef35366ccd1888f918436018e3e4296716776d66c2868a35601c2810be5847cf10aa16647e13f24ca10c8d5d1845b9cd238b7d266470c478bac6fecb7b50fc3eef937e273a3939f4de3ec808890e4566b412c79826cd20ac83bf05e9eaded78368aecab49a502faab003933f7b5a910e23cd1482ff6330bd8933c964a09f3750a5bc1031c7e4d342553206caaadbe7f0244caae1300cc730aeff6303fea7deddf2de247bf8e917fc77cfbfa6aed4db46b8d7c6a88368530d2045a93986531f45e021da724d1e0768ab7b307c4148b3537b8c02a41900014b9f09e32758f23776dab28e2d6b78a998e688bd76254c1825f2457c6ad0959f9924491f038f11307545760741d0361043506c74cee6dd940fe3af80e0096b46293d6bbc0e8b2b3b102cf9adbddfba8e7b8c70b217ddbd73aed9e1766c0512baafcf52378c4696efbe1dc96a226048803d45d674e36a70b826cdb87b3564f2d4d5f626ff726f5dfbb216fd9ce2f7305016b18e2024926e9caf279b9f81d35534c5793f796b408bb897c3bbae9be2d8adc53579ea3119f84b2afb0b2f05ec79bba8b465da7da7d4d66df0ddb6c2b4adc4e05fc4cd4147810665bf3fe535baee032d8ab4be84759ea389bd469ae181b2fa635c03fef74ba8d31f02d4c327f78810e65ec6df9d57f630d4caa8b6718fa2b783e5a5ced45e55327287e3bed702b2c42c38e63e7e2dc452ab446c79a4d0f4462b821c75726354a6bd230d72208f20cf9e81e00132f44b115e1b7035c366827bbaba766970191e5928eaa90b82bfb81e3158e81a88e7943c484247608c43427f37e7fb9ee4b02c525040c1900d0147f25bc6f84743a7342d92e3f0069332907a18941aab1578e4948830140bc9945db13e131503908064acc772c6dfc7cb6664421195be1c6fa3ed90348bbc8267bc883f4585c831000292ac9377cd2993f028ee6ad5a4dd61847b89b88a752d93db5def0692f11b68620dea7fb35bec40109505e3a6ae2fc3126f2b0c2324808a1d5cbd2592659cd367cf24f8c82e72f9a83fefa6e41abb74e33379e711668aa297b7d594baed66ccbdb3093fe7a6d6dc9f2e77316c7aebb26abc43585d1a7adca21dd1f6e2a6eb6384e701d14b6fe7a1bbf4b01fe9b6adc495645ad04aea60cc01b78c528a4f0612be64526c78a135a72439e2520942efb20ccbbadcaf35123c1ac47a979a50f0b93aedf242341249794af5097f58e9b58ecb056339e165ef2bdd5f7f1199b28a630a7ad5a16e6ee9b4f0c4de8c1d26d048d4960429ba184ec9f2bcc4273e23ae0dae0b274af4e86e327d7e214536c543a1bdfb0825db85aea783e006eb2431c32159caec9a8eb0e53b58e19b89c85c73932f848279adf31a3c836b4eabf96dbdebf83e32bf751c73b8bc10326b368902ed28c22b759a1e8802acf7c32a6edb707d53a5bc719359ea85cef83c149d348da2450d1e77385cf148a3af7470111cd7de7de9b94f2d0af1fd6e2d1ffa9079cf6d3d01303d567cdab153a7a319b13efb43c693cb6dbdbf0d9ee7ef8b1b3d73a6545b4d5a96c9ebd8ff0582cbc5fc429472f37bc00148c725b0b6de8db16d408aa902e38f566ad4445012dfe1b70c6d3ef762c45d23b8c82b1577d7a0731026df06370c761e927d68907ff24f2c742ed715ced81e98759979f6780c3062771953a6af4733845b6664779e07aae917889e63c452afdbd262521231a0d692d885723483b0c59a35e556cc82a0640e78008262c9af41005791e07470db443f15b8716566e4e390c6d2c3bf1c46d15ac27241f6f03367973517959ffa300ec16846d631ace16115dfdc37f773b511baacaf508eeeda5580349c34c67f5f85a2942d335cfde034e6f9df0566ad396d58a448350c1888841211335e3b6732f98bb2a5cc300c2a5e5310dc9cb46718608e59f6940a49e237f154564a9f6946d8f98fbffd5a34f412f42940f3c7dfabd04023db29787132f7e4f795deb4a0f16028700ceff00a492dc3830a795481f70dbf67a4e1614653e7906e015c04dd73c7b259224d436532068a0ea1f453228e2e2b89f52c8e745f162a245398ceb4dc2dcbcdaeadebbaaa86e740a6fad3de4cece3e860614f1ad740f8bcfc77cbc97363de16ac928277081e6a4929420c2439aa8a47813fbaaaf236edabcb8daf2a635cf129cffa62d16ba451c5a42c3fb6919de32b1856647b26f365dbe0684df884f09347194d977f1df0ffff65ae416ec621642cca0e04ba3586dfe900fd68788d3f032aa8b15d84e50bfc59b81723eb11650754c80236381c23306bbe31a13e64144d1183b275d9f160208a7a9138aa4f9ec929e95fd7732756b4f87e82d3e2180589f7e3e6d07571aa92bb87a4a9980af0dcffebe0ee1ae02041c01c5625478013f4da5f33cafed26d6886265b4afd000836e0ae8824291424b2240934e5b56d7bfce3316e7afcf7f1060552bed31bdda5e77969739032ff983be472092b706fda93fb961a5f08a2304f59f7c39162eaa9a17b6ed6106830281b94d460670df5c3dd92790c8b02a68ee7d61972f42466569a4f5a8cc7e14cb0c8d9960e7cbf91b75fe444c617624da2d4bc186f2246fe36e689cf6c0400900779d3c427a304283693c0eeaa8c2d78312ad349fba7ecabbbcaf7ede4cc99bc27082c11a39f2416311052d70cc5cfbd9b68adef153d342c2214dc67c951318c420c25300f937e65b14be9776dd5798ccc7ebf2077f329886112b343d7459c71184cd27e7d0882e1de0a23e4d0df04bfd32060492c73731ab5cfdba240daf9cbe3e64755367a847de71dbf8f7a7911ba868aa470e288c0e086338fa3f2d68c41275ce1d41f20ca831e0335e34ef2c6e4d293fd1a56b89a70d85a7cab73e64c7a4af1096414f6872614f13b97cb00732c86d495e2606dc24b5947087cb71510976b7ace5199bd1cfc19351b903d317d397ab8a172b89060dc44d5b8f333ce5691a5a59d944c8e2928e0079a260a9c8c67282e14ffd3a0610932923e2ef12901c0a050b8c8cf37cb9276b976045252c79be7be5da29342b8948ed6a75506a81bcd24919dbdf7f857479580ec9899869787dd39380500207dea48ef9d96b90d6a82167146ccae9ef877918f2bd781d4ec362d8f736bf23e9cc2013d5e6104bc9eab1a8d1804c90baf74a2bc78c9725fc68d686bdb8af241e0f54891a3fbf0779216b8044fcf7b9fad440f88567290b5bb75c5a5dff390ddc91a93b248b815636435dcbe99c38f504f6ebed401dbfad238beb21115e60dfc421a4221b3f54e50f9460be0610b7adf47c54a247c9bdc82d25b0bf4933cabca496edc9f0930c748c6bc32407f155b95279737d543fc7e5daa2bd6217c5bf734052c7b8ffefefc79ea9231cf36c24c3e72f1407a8b28744f108239ee0b5db70a01d92f161cf532c0c995b91d13204e60cec5ac2900cc45c2a1058e578dd389702138f5b0e2033874d1e9b28ff50a7492c4809c622d099f53f9af077b0fe497ea0299e503b91c8e0e4072a6b28d7b836f75b24d26c74d3421086a514a9769ffd819f54290a0310157434ecab0cc361bf1256c03fed73fb2445f921d85e94ac74bf4b873e9d8fc6db8e7906749c9c842a71717abbfb1dc6b83c618c6624a8231dc9d9f2af08de5e78d324271e0348a67410219803ecc22cb1c94de98959ccf1e16a49bfbbfb758d3c387cc2f418acf4820f2218a103e8ac2bf83210be1238b32eff4eeec5025b40defb02a3c7afb542c051de2b103d673ddcdc781c23d9eb146660b99e340d807ba0a652387361826411026c0d2b23dfcc1c0c8cfb1c55472f3333cdefeee487a10db813e9cc2f24aef75945a382dc1b15cbdaad14c64f465607d8a42e8aed017643216d93ce76b9ffd9ff3fa6eb36724095e96746c54d5f0fc3759384ed9fc070296c1f709ff0014c7cbb2774a6e887902d0e23fc28a098299bbd8bc90b397a88e78a6dba5abca027d1edfc79b394ddb13e31541ae18560b67d719b33cc91207c06e6288715d68034225c3be7e293eef10aa0be4e1a967920a0caf7d0db9c9ea31921958351b954d2505f7d25d31e6eb310a2f32b633fa130e7abf0b097adea9fa61e44c8ee5f5024e3a7358ce13f306f286fb18212440c50e10488e337837100490f3ca837b16954988bbcfa6a0d212949f95d4b3c1332da7189f7955755b6b3a456b659bb21d0c0cc71565e4be7cef2f699bf9a6823483a3b891e67e2fd122ca8f7712d4a6408be947575e1a931952c83041979eeb0bf340d94d1b0f82d3306e1b3aaf70caf89c8a73609a421e31b7282abef3ab331fff39af1641a2e39bc7fb7a2a2fbb81921ada1e397528d7fb80a1bc88a064b8c2e111c02fb5f4ef19a45f16a3266ae1f1212107f9778a04d5dd33430bd24ad8770a05cf9eae1422141cc7653b8d91024e65cf2ca3bd869859607dc9dd6dd985580689f3c45fa90c6d6a263940ab47308d00aa11cbb2ffb174164bd3324b10be2016b82d1b874107678733b8dbd59f78bff3ef08b65059f944677585d8be515571bf59b007b167565559566a971455bf7851c4949d295ed01d407ff46e2d4746fedb5109d3c17a3f0af9b03964e367569d2c8b1cfd9c062124fa5940cf82826144c88b82bcf30e8588032772c1563cbb6f083ddb66ca93e96da413f9ef7b313cc76b1aa7292dbddc502935c11749415397fd11c482cc11b26c17967a7a73c5f5434a6537be5b3b10e5b1e616337f3f2b9aa0670000660e331a2518d0d33f9f1d04b1b0d3c1656db0bca2e519817cee59fd9d49c675757c5e5416ab7f49bc0693d5a2a7a67cbdfe063fe0fb7b781be10d509110c4476893b3c7851f5e7ab10dc38ec30bf8a54e12f4027d824736b5d094d0b20bd14cb9128e05e3070ae2db5aa203b467d81bc7c41a52b26c0f21d8aa2ab811dadef0c33c762eebda9c9ac1e31935f849ad5f838218a02b4fa5af2b752ceb7152110c53685016e559d0c0914f5aca535107290309887171d2137a4e27e70f957dfb2c6484d9b4c2a2dcc26160bfb7a8a97eee76762f1a8d07b0255ddc5b915d4d5dccc4bff206eeecbdc7ce984cc823be911993636d5ca9bd46eb30682757cfeb7936d0d03f43494043f197add56ef7e9e860e5af466c182688fbc26deed104403e0ab70ef78ab7a5c97ee640d7c8efa36836fc052abf752f1421419f4247ddfef972d75914a134ce8a1cb2122248276ad922108de692ae6f1dcab20da01b32dffcbe716af76604866f1bffe49a84b1d092c3564ed3345579fd03d334c4a938529e714020222f4408421d0587827e3aa505cdb9adeff36e78cfdb0f2368624583731ce167c1e284f08fae6e5fcae84c938fcbf09b58eac60d0f9568cdcc4459b5bbb53fb3a1faedb1fa62d1f448655c1b7e38f84c9bd9e499f2c779b5d5cfa3b1a84f1299ce772f38a61d3f64d427e565601aad4d990d6397c59fce24d16aae2867ed5c3a72639382913afa72f62b3fe6f5c88267bc09fe862d8eac342bd368ecebe95ec274015bf8163a9a0631ce6e12f8600d643fdbdd61fd985caacbdc5694160b83309885aa44f42f857b42599d47db626f968774995910b74d19b1f1cd1e76f26d0b2dac14ad5a79c0c8a443e0e6774452efb655fe38105e3e57b64c626acb77b97629f67e3f57b89d6e8cb231c479c63b23e48d5bed74c5966dbbe9c77b99ddcdf4cd92bff1efd9bcde5f9ad8dcf06cb8b748c7174bf1029020bd77104a99d047e15e077c86e74795dd44ea61f8b48d57eb5ec52edf91e91f0b5c97697df950fe66f1aa686e2cb4370295956d9aed6e21771e72202f4896c50334666076a0fa87fa2061a48b719da945d5ee145f7e12e5bad97672b88f57950581986f0c4a8e6ae9e5c5cda5c9b79cca349f2d836fb6a5a9bdd7e1b7ad9fd390b9a982191896438e2a47e1a2a57133d436302694f36a41ffccc181038120e79d824b4daa1535699927dd4ac0ba8484cde62434231117414c41b1a1891c4900033c7385689ce3153c8a58ae9a8b611d966fdd4f151bcac8b761b34fb484645155aa042e3dde5db68061f87893b7b724898595bce415e156e795f72444f14a8eac4bbbd53434082405be7f7893a30fbe5e1703c32640b2ea7435f7daa616c5fcbe3286231b0bbcb6f99b23d8301d511a978fec534ad4866e3b7c23018d9e9f1712962701b4d7dc04b01ce18688edfbbeb8924fbeed21546131d5fdbe48ef6ae0032a4f2f128101cfab99b5a4cd55852f417e52447deacb1ee41e8105adf83b7e2fb26798d2b4388b942901c3b274d0c79db4e799bc24f8ca1cba7b72832a2aa1374821033919da8664e12804264b3bbb2171b55d9521da12d7cd00a929bee431d28e196b0eaf8cc41df053c2d8af5b8ba31b71e138257c05b306a16b1272ae5b987e108099e1117c24b91880a66b54d9c3f05002f129dcc533476050f955d4707bb207f94bd77f3da4c47796258443b99233da717ee85f388256d8148c54ceeb9ccff7e725845c6200d0d79c864839db6b1ee7ae4f2a22bf59eb00717438b8243c13e9b7f839f8f539b90eb2728b2832794ae6e1c8ceeaacb68dd00143416cdf5d1fd011faf5a8437758fbc76c16c86eee6fa990284a643207c4fbee2a18bedf282a73efa549ba3d95cb8d93d659b20fb7a69bfe1d16787b270369c7bd6dcb0ac1b68f7eb668f9743b64fdf85b78317a426d0adac2dc12006a7ab56a080d41b3a7e7297615c7d4e8d78e91b34cdd8632259f8cf5dc4622bae676484a822956c5407924792f8b8e56d4271b272704ecd915ad9599c158c50155276a57d7e7d28dd32df28ac44bc652c6172a63be82c1b725afdc32a522053c87daad8318b0cd30178061bc43ac56e4182b8cf86b3f4f27bad0a094ae09c968296556ebc6c28562e6ce7693ac2881ef9faad13f5ffaed7ebf605c4df87b63057ad9c6195c8660c39d7659ed445a4e965d7c6e7d0deb65104e11f04f9e349ed333adf1b3a87163ab13b417e297242ec1105879b429609760dad99b402799fca12d7ac2c0e588c6e6026159443194a29464496f86f05e422e7fdf917584e471a92d020255d273b09945b0ff9836912c17c729fdfa68fef67b75e830aa08bfbeb5653f50227e1d872398ae67ac78fc5d6ac22b7ca58bb7f5d7bb6dfb5c978552554320202b184e8b211505c79f5fd8f1b8fee39679c44cb9ae0921b0f1695b6601614f12d9597896d8e468af726a706aa9bf81e88354ff4e4859559c56274342419ba3b5e3791c019894ba028e371eae54a45dd08747f2ea2078a0ca8e96fb66e8b7ceab414e7b300b26d1a69de35cfa628a3232ecf93a44c5698f9675f16190b2d1a7166068811481861f7ee3d79548f8e5eb0124b5089dd4129a2162999b298a97c186e56d9788dfda1a67b28c6cbbb609c630b39d25291ee348d917afc387c5cb040dffce22017c350459b4e2792c01017958b4017e47cd1b532acfad6db40198aaf5516d3f417341a3b814b6735eaf60b992cab435f4b546f981d46de317b3d4efef86038186203bdb615884814e53cf81a537ae1c0c2c7eb842c76dac062875648e505053005131c97007bf1940c293632de205b56f0fdfec13370ea02311ba0784e1a8882873b4dc16472c9768614e8852564581b2e41d89605fab9144fc2ff109a3cd24c8cee53fb5feb57f7e2c8190db685352d45bb620c63fb55f6122b87c442b4a6c412c40b6aeaf348379316f0adee5fa3e8f5c4bca0171bf8b97f5b5b91ec5c0fd725264ac1f674561a145885d4c86d4528018cb5e4f30a633d7465eb54ca5dc356f294cd16d283f6d7eef12f410cf83cff5c691bcf6445d7c5945fa8a30790e469c4abd1da24837c5b76032102c207659eaec6f4e15039aa4d80ec3ef694dfe3382888621ca542a78f66ac11cbb6d9cd3185430e0575f541b96e86b8528ae5271fc584e86eaa415fb8a6385bb725b997cc27ec9390d6dfb8a890a27578ad8cec848b5e44731a431afa9a6c04b1c71bbba572613ea46f83157384efd1bb16258fb69824a411d0c7302b80d6fa5906e03de0bedff32766660f7f3c6c265fc1a399a0ade665667d75ffa79e22bcd52282354b665a6054571194fffd0e32b6d562f1e4b93cebe050a60000353a171af682c1b2fe5bf1938fe71e99e982d59e9c1f81d38f147c6b6d0ee20e7d76224524e3398b78437f7013acd328413766c0755fdcf05010a07a64abea3d6255dcfc9519ff8723a51e6922e406518a3e5eba5e6de1cb65fd65b015459918ee60bd0f233a2c92d74006dc1f5aa13d11eb8d9d83f9dbaac02fb6edeb590cd5cb3ec0229b24d54828f9a57eef0136ae2156319bc265e86d09106105e66738bb63d5719ae224b50d7eb60f53642e7345a5144282d8875c90a62db12344e682089d6d9904e1ec4429d4e655227a79ac47bfffa304b7e24ceba0b481382dee94e636c9abe098a85db1560fb1a63d6e8011e82db0f7a7e9134c558f4073b09d00495282d55bc04dbbee57ff92da52528d3ae44f1d2fbf7614e180215d8ff54ca1e5ffa8cbe967397f911e0bf41c6f32640d0ae706a86c160b9bd2e48698804862499eb12d9eba032e794b117918b2839a1c104616bbb3e135655a9fa255a07e705ed77cb640c62b94a380ee85c4f98402f0bcf20b03d1ebf784e840afb7d63213ae0e3a500f668121cae14f7743ea24556b52db3d4e512e8051bcbeb5f63f1baee41e2cef6d9298c54ac9131be954d966e880f6e36eb360d41746cfe9b9d3d26cae1b3b7be2155ddb8b64550c3e5d48173a4fa22bdc1a2ae69d02ecca0cc19180c6bbee9903ac0b6f1f7f7d5112bb7c7872dcfded8f8e043e607e5ad806dd3259112a34723ec361699dd3607d2fce1bc09e840cc76c3b450e26f5b508b31b9988a6bead4d94c9896eac7f2082bb73ee2e7332dde64aeebef182b57dcc8e708b6bd47e44360a03894569ae021eb79fb24d4a54bc6f67962ab4cedf879191013a7f18c84301a815f175bcf4c7723871b87bddbea0f599d760dc34f01d62433d7e502990cdbaf87e38a21241bd492e3bb48311667d8edb521219280b08489326d1b2817b51c332a1a36f05e2ce4d37703c245676536409505dc6b5345cbf10633199abc250c9fc0dd8164eaadc3426bff46d2237682f7ed8aaa6afa3ae39fa03ca6b996acf13ae4448e39a161eff031f0d1e16c86b2c6316fda0c86cfaa272b98861909b2b3cc3dc2f7456f7bbc042d58fb5f59d13b8db22b331a57cb92e7ba41c57c56345afe2618a35770333cf541ec4b43047e464c3b3d0c51b05137728ff2116a3cb48a8ff1485c9e738b9947d2850893d43284c3ee32240cefd7182510d55858b67e422896e2aa6fd3d56d9cf87d6900711a67caaf45c27812a69254ce1210cacfcbcd7d91f0b307b5ba45198b2cbd2384e84097267840c5d1f6226d35a1c3f9226c9f7ea3d38c8a08c6ede6e76c098a6f802ec4a4e521e69f1f315af50691f0cc9fd814006778f1f0d3802c5e9473776188f688b20594b0a2e1420a8af092bbee5eb50eee9bad8e4a9fe78bd35de47b9bcfde6dc3f70ba7a4427fc2697811647f975afef217752af37126541545687d31205da33d0b6fc67861181b36f06f8fa2873fbcc1bd2f24c6586d28b89485d98fd581462ba4f169a642f9de37219456d72760292b45c3d8358a809686c558c2d045d7c812edb4f367dd627ccb256b8bdb51e61cb5b47c07927d104abe58d85dabfbcc31591e99725f1038b9fcce172773752c2b2d93c7fcbcf8deef06c31f5f74650840acb83e713b52823688b9a49d8eb8e8b18a5c6e470b74ce157cadd7e3165908c3237cf1db7a7c50714bd587334d36a9f4db06dea546ab6e407051cd1583326bc7f43f7e9c14fe74af3922523cc38731b64f98504e4efc797d5486d899a7e2fefdbc5901abc1ca9e7d629fab68203a04769385ad2706e915aad716efcbeedbf60ab65a5cfb6b0a1629e45a821a468fb36bc2908486d19a97a3873216e6d471c46dbf99be6d08c9173cffd7275cdb3096a638a6ca0b1cc1e46eea83df16f04e9173669b3a32dd405564bd611dc57fbaffd1728e9fc25d8fef5ba4d29fc5c0a64edd5d593dc7d451bddac85db85532903f7720cf9728731da7958a3045c2cff100a6d5dde369405793048df5ba388a55f969623bb52c74616df03bfe65ba02b43871472748cd929aca1e4148973ae7623bba9976ab20d9d8571ba60d4168126862bd50960cf7047a8f4ca4b0df70856643048ef62ce616365f02180e6160acfd9e85e7596b71946049598a526d584a43a496e2980434745b765fd5cdc40cbd37e7b45e77c2f1fa5d1a8a707d729b1bcc77237845d830b38a789efdd5c96008b1e2a33dba27206b6e9584e0c2d968fa4136c0b97a9faf6eb71d2a07c270e5bf7c3f273fe0cfdfaf3d3864d822449c73268f84167ec52a47d9dfa31a419ec99b6c37446e3db6f00779afc1206d1f5fa434b1d99ad8fc8a46133b3a299187262de3a688ee0904a10798dd480ffbbd054cf3131308c7def21766947a234c566de7af4c68c5e9c1b368efe8ba26b24f0a1eb2beb7dbebe8ad8658b0f00bb304a875fc262bfc7c4b0871b8b8ad79462ec737ae52a2204f7f91291d8e8ce8d09f129cfa4f76d22c34516b46c389a2bd1af4f95cc18bbe824fe43e6ad300f381e0f2d72ed3ac45da2433b6e71119e8c0f7226a7eb17c4b398cbc7346945345005cde0fb52f00ee2f57b894f36aca14db2fcc1325487b71a3d107fb3e566e00cc9c96fe4284582ec7e0b346c05d827c1f30e02f7db923ffcf6bb785491bfb30d43cd6c629ca64d48f24b0d2322acd381338b8bf019708bd2f365fc0ab5f2fdee53cbed70f702e8bfb99f7a08218b33ed3d081c775136d2a3c1c758210fa5061f13d444a1b524be225fb6ba474900a21d72761d0a7ce58230813493fb2e4f406fd9055860d4b4120845105bc80935381b39453e2035668dd62bd653d84629da4c7be3dca03b97b04f825c86888cd6bbfee916df048463e149abd54f94d2ed152be536e2b444e801ceee46073e207008d2d081c958faf26e13c157487df7e2fce5d8276437819744f714b4aba3727e2fcbaa078211f1873bf14511ec5b2d5069b8d863face096c64fd7c0e553ce3736f4917370e52670fb16ff21af611803f39d9dd5e6d32d2f395a216195f1b6dd0b82c0d400f889be9f2875ac36984f0e8e132b0e266d20bc3f62da7ea472f9f50899e8c34d465cdb909265d53357fd550c041f607f9823c3d9c7fde316083ace85c62f71d3d13364c6cf5a8750b040a92356ca45c191e546d4aeb4f037636463a5cf4d685a2271f46357658821fb59c02eeb32290f32910b8c8eabcc67aaeec757221c0c35b0ca44a829659fc30c860bf6c02fac85d9783c5a7519e4c7cc68c83447e60d16417e3f198d06aba3770c6109fb77056bb0d9f67d7d807f5b4afba8a8c26cf3af06dcc57cea1f00b7658b34861dc606e62afcc546b0e5fb0549ce4ffa725c9dbabf5802a5a08a9e73931a19f703a2833343be8c25e0a4715f492295cd5b77fe2f8b2fa771055e572750c7fc95c204aedf4b7fcd9a6302151ec77628777cb79fef4d4957533b28952b01d8a4e9246d8337656c5f1f660324c356274ef7fc263cf9223b8fe7a4d090d93f9218306d169caff366159f7daa3bbc203cc8632c34d945a1d09b255a953379be1e1ce9898a71832acbf21ff2efc10698fb6e4523087fdf4abc4dbb328ccb7690be662076fefd344e053e6a4e1f71d80e3c5485978cc639ef041dad33e1cabfc7cc24bce372faea4c35002ae0b4af28f9577219e2c009b9650ff7c153596a8c6d510af47562d7c040fa9af6dfb5e7c9a944a4311d054e4d54222b4664176444143b2d956a3ecdf4a488829a3fa20e1b4fb8e609f3d3b73102c34e5fc78cf5986d9c0a1e7e344f606b5a56854396d0d6409f159ce9e8dec2252a00dd6d11ea6c68d6856317a2f873a994c284aa12523401bd80ca419e5d853ca822424fcf172f935ace6c05010e627d13a9957e6fac3b2ff75c32f851179aac7888be825e25165678c71f4d0d9dd0542377971a4da3fed2ceb65e554db3c70b0968d5e8c4d57c878f3068e2d7730ca26aaf9c6c7fe0e70c0c4f7db9dff7a4e7b8e751e6a11c1cbbb4773b90826b61421b1c1663660145ca63b0f2341ab7361ffdcc1fa854e16e8764484f7b64edc8acf79c4d43e81f6c5f3fcf065ce4c0b31e83dbd3303ccd6e23313450665f90723b7e6e21dfb44a1728b9ced9272363cffc08be32a18b19546788b2140ba18301d4ee26f08988f8bb3c1ccdf9f41854d9c34360ced3b50ec2e9fc6508d24dd62f4024b014e5155fd6b50535c2b01c2f0b532a8bdccf31ba9d9bc0be5251e919a2715c0478b5efd278b4c1ec0ed31e51e58e64b534db1d2b2bbaab97d550172f392b56bece675b4319bdcb483fe8bdaa807c6db3ae9f1503dd58f8f236957ea21d835c97c42954eb18cc02163e97f8c87c75084dce016f619a36cbdfd64e37274f363ae19ef3e01c8e21030623425dfb0c7fea15c1db70b63f8c400a35cfc93570bece7586efb8d2039c8908cf4af941f1eb46fe06692dcd8e89ac5f28aa0d310cf55243d279226143240c04e187be0954d9fe72af36f34311ae98af455185ecd6f77f6d6b30b650c7426d1a9e1fb64b3d5da61be9dbf4f81f03a2d91c73bfa0a9701dcaac8251b76449b820c55cc176520bd254cffee9352208d1d34fc7117289604bc4166f0cdbf17508d022dcd714d9dbfd4cc31e2d42475149e844c3092db863b0be182107bf47c285c99ff7111cc4426e54759ac92bfdae7e4a529e6906fdabb874f6dc2169f7cbc1f3862bcce740ff48f0d15d849561989b059d88b4fe9bc4a37629d6f8ddcaea6c9a5a769e2ef95505f97e11bfe9e25aabd3dfe4cbcd2d5e9f6109e57876835fe97a37a236a768618c2272ebe92b474b5cd4341fe1e93b946673927c79fcf55ba4fcde1273f01ff2d4456ed3effcb363509b7546ff90376e90967e567d7ff112a8498c6926fb051f8b9eb501d6d62874d2aa2fde483ef6d33cf3cd8190941d925a343d07ba44bee0b45a23f18385f1a9afc7b87c84eb5273402fa8e37cf6119506eef889e0aaddcba957c41a76583803c5b87473bc0d7b7ca37230c36f7b115f44fa1e47fcd2797e36f967587a670e05f461c24f0766d38874345e14bdc49a053ec8fc8803bed527ca8a69c1b9444008a93475623d91deef19d26f437f09be4ebdda0a58ebaa516222a5cff1d544cf5ae1eff694c3a367f7afbe04b76029253634d2d30749f37432fab0420fa65e5c83cf96ffbb1e7e7238475fcc317ac868a1fdd4d1514b12863d9687659ca8199952e8742a9939b982cbb10f9d55e799131f21f231184279afc4e960fca1911cdf5eed389d758c3792449fb366f1aab7fce8cb16df000441110568ce21c718040e6f85e8c8d176fb92584026e00bfcf0731f5e073ce7506e26066a23055eeae7da3d07bdecb82ab74a795e7e792b211ac388bb27279549af2dd5e36702514beff80e5b2eba860d3eb18c0ec3185297d01b1da1e95ab4b0fe254f123fa15182591f32fe8a66a5cf95fe233680a6734f974f8dcb0075adcae1fda3c400ff84093d8922b65e69d537137d43b08d844e5ac2f31398568f7f6b7bcd5f064c5cfec1315658bc4d110c47412ba1c2502b0f5f9c653b019cce444994f0d5959c07cbe580fc7076c250da846c201873f57cc477be507c7a8d5dad6dd33662468e7e90f6574a19acd8feec2eb127c4df387ab0283ffb6bc0aadfd4707b9589a2c3495f21b1866544e2f89b6c543ee1079e279de3e8822b4cc3823dae9961e647cab0d0acac717c57496f2d6524d7168e2c872ad205b928197bd23a545f40e10ee24307ff43a368bb40ca5c674811d714842e75467de2701ab68fdcfcdd1f75b18c5f2a719bd1dc83f128ad2ad2debadc6b24af3b513f8d548c61d6882a441068bae28578a7ebf0b371f138700b9df815626d3d92997d13be64cc6c6e036da363e6ca29e8576b627087b2129d15980a5cf9378e77dc7e80eda454a1c150759fe526964a4170107ca67194ad02cf0ec0b254f69b6e9084b108aca4aa31674ae24a37caa73c7d4e9324a5771f6f8ce87dab37cfa287c791cd85a3f1ed0ee43b19332f22aa0b57af02150bdb696dfef5540dfbed4b38c9cfbd16941c652981691e1450f2d98f56a877bfece73255126a288cfdc878ea0b0a693e3f88a4ea2b0f856ec6473d80c73d1cdc42932d9f980d96c4d7740d2ac84cd0e66972e8f4efc04a10db04f30c91f124b726f990457521a4a65054843533c3281464fd449173d2bccf9daf28e679b59144d60c1953562e6bd402edc6801d20957e2e01c17aabac56256ee619228a2983f72c5a61149b9547e7be772ac71546f24cf150219edfbe8efba2855ee3af40e18d9d21da8535d6b0a693b2ed67384ceb83bcd8200b6907f297f9dc287ab63e3abf0cbb8fc12a316215edd3779be9d18dc6557a02f23c45b070a252d7b5ca398f8b9129199f8cdefc504572cb88175a2d60b6a3ec369bc2597e5f94c66a73814e72a45a66e3e1263cd3d87c86a29b6178a8a7c1f5614bd5b84ca6a294669fed9651ae36df10ce412448888882227246d95e21e24e70e185516b1b571ca55871d0954c414a1df546276d121978c5121f4f58a22a937eb7e0f5d43d7fc253a23ea58ee178e5f11f274b178ad5d8fc7852329932752ad79463a9c339d386d58905b6dd77aaf2dad4fd7cd3a64d4ae45efed5c4b700b198b547cf8e9a0030e9f753a642c7b19154278c5428cfced0c7665b8f0d1ab0ad0653fe227cf3a6df56f30085f2ad36396bbc2e23e629ed637d608ce990b6bdb1e5c918bb85e056e4716617d9daac4f403fed6638ab454605b416eff10d697b4e51db3f39c831f835efa8a8bef9044a013dd88e75420c54d921c456e4593b4a6c22bf1287e4810c769c9c0d34a0befb36eb248cd1af9ac38085688efd24bf50ef8f55e8518acd11e6e68c9bab2b9f3e9b9773ab1a85f7eba923bc5ffa18b65e163955c6b140e4cbbc447b2e8ca455bbd223eb7f06cff7aef27c55f1050827583807440ef048bb72fb6ac4734f235c6d96c6ef23782e613cee4957c49597c0bacd3015aab6d7a01dce2bf7043aa75f4695d97c668722b64244b4576b8f4b75f3d5e235ee93fa23a2568c062d4de015f648ae6431513fa2ba6a2798678d212cb8f86ddae8b81b45c67040c1612af9c127d41fbadeffceab2a9ec4c7a562ab8e5067d7ddba568600bb6dc7f8876719c248ab1f5cdf3855ae1f177ebb3d147a1e6f56f6bbf6ea5c1bbd06ab8f2f7965b961febf8c3b257729b03d9db0735db41e05280f54ae38565de442d9e841c3391adffda5438bdb4778068de8c895fb4e098722eb9719db670e307831cb1f415a0413e9d0074fe126be4441bf20bbaf46def8359c1df710eec2a726aaa7c386c9507ddc054d00d2f4c4e64846465250448fcf8bfde9da17be0c168689a226f0817de03795b12b440b66173f02fee24a9c88972f3a8061836feb46c2bb27950eb4fc88aba7325d4f4f5f64ea4b28fa149302249cc63a19a3166a2c84e3335e8d7c20aee7fd180a63ccf1ce27ba60dddf12591807b1b651cdc122caab8ad61f4cdb66ca27977a4b99d0379f7a9cb1a8cef2105308036e2021902eaeb46d5f9912c3ce5ea18ec533525dd8d8830c567dd6a6e9dedda89e32a3a352f96e93d1ecb4cfd35aef33a9013a7be2a4a670ee7538f702a6e5c3df46dbfb4ab12160786b0c89397977f66d268c1c0ba6d0a1b8b6d846a8399dab5cb98bd5d51859508b080aed5bf5a0025de54a1c28b0837d4ad8486ec88e060c94ed9657856e5495ddc1e6b8e8189ede0c4f69e1c3be5bb08dc5300b86475c517d02c4fcdc036a60029accf4d1722ffa190ac88e0eec3c7a9b57eba23efa0dd2b118f00c40c4ed00b6c224580cc691294f6c8fe0218f2d9091e80f037b1659dccee8bced64a2ed598480d59623405b34e38ca19d1e3651698c48c09e59fc038aada849c0c82ec5fe3e3d160138ea29275622bc5a57f4b4318a51701dcdaa35ae2af901ead37c091b87c219b8de8213192c532b8896c0c4d7d0b5a164ca69fb4a19e196563c648968e7977afc124ce1cc75d59000b9f8b2fce82c5b74d87dbe55e9e4f580473a4cbf72ab1ba935765cbde20f648e150ee5a0b6fd65437e6cb42502d448dbb02f2347d80e8ee7baad4c2864a1bfb8c4a22b4e9e4dd6cfcc106a9dccac606939c1188adfa160cbd0b22a7cd5b7ed15b250a50351d83694d7e5c267a36a285f8ae2f7513fe893240d1c2ea84cae8b8a84faf7b273eb8f67417d998e7f69fbb9ff32b6f3d882439b92eb9bfc361b5823ec83733cc6a83de4680a0f17362fd718be96a98724ec6d25cbbb9b11a6ea93c7dbc106d1680aadc8818e48abc661cdaf37ed51173d1fdc615c0ab75ffb405970c8966f21578bb7a0045ba66cf76618848f54505dbe248d942dbe4e822dc7a2628d1ed1309838cc19b49ec34e98c83d8f99a6268121ec08fe9d0de45c75e6f46c237a53a5e5c9962ef71528d483ea82e0e0f102807e5c96eee787fb84cf99164111114ed4741fd8d31927d83ba8195cb1fc425ce023d1aafc2c2492e835e28563d5f0672b4bb8f219131dc475359dec870339c2c147842f4122583fbeec62d9ed63ef18a37fca663261cab2c1f93efddb367f3f08bb06fea7e6aaca892e3a2bf7718470ae65a698e6f036624a11a475f97e1693802b1d8f246c80ce2722a188f84220964a991288e045212908e067558ea67fcb2169e9d1f19f120b1c7626c852103aca27e01325e8118e3f9caa6eed0d2bc84ab737ab5ccbb382eb82de17ad2290a4a161da700413d219112e83552633fc0ab8546cc42e16c282e9d011d8ea5098a04ff014e20579244ecbd27b28aa56ca290a9acdae8285d5f4c304d0495767e84d348ad61bcfda7054438e6fc5b0138b6d717c579b52942b264a8e6b611d66b424fe286d0bce5fe671669b82b52145888761bc048d1318b0b57794be999ce3ee52dd2c906a085ca558fc4696f214d7e7309c4acbdcb344d8ad485882b592ec3d793c33892590b949f3aa1acb54ba0fbc3c6532f680f51cfe41c0688efc929964f5e5e5bb3aa6e011396e4fd49761785b1014481f6db8e6b2659f470787d9360d5918a750a4a571fa9d5fc8c6e3fac337b5c70475780daaa868b5e7ac44cc44fd8959f4607d2bcce318fb03d5ccc752b5e1a956b62a84cea6a14f29b15ffa3e99ca152ec2e8a3f33ddabd3f96653845cde9eb0438b5bc453dc93b299ce7e57589d097a06aafdb3adc84de77963a968588fa4bc33d0affce1b57947437741849611dfd013b3db48c23321a56afd036c7d43ece68654851f90a4060cb87116f44e71d0f87e9490463add82d41f080775c07310050739b80ca051bdf8156c42e9a5b5fa7b27d77f8c167b622922188a4dea381be6fb98d4fd82f3873e7479e6cfb1eb038cbc20783902ce5ed454699bf4ca2309979bd527b311c3fd9f3c463d9839524822bb86da103f1288c826002cf28a53cede7eea793a5638882d9dc5b04b6cab2fd6610bce963d3815936adf43081bf10a976ac35a18277be8283370965b56f685213aae4d1f96d4ea26934a667038a00b015e387f9e699904dba6a9f9cd34e8acad7f587cb6a96a5db8d6383da7770604f6f658e7e85230a3e5caba0c2e7abc09386dd75b3438ae224c2069be0cf2f7c5d37f9406cd3e5a592fb6f9104fece62478de9e9649fa83846d88750a26f7dad78153a5c9d627845267b4847d6ca0f78456682771c070de35f82a540cc86b5681f0a7e02ef3cdf398215e3001bb04cd48e681c673ba7bcc49f4e71120e57f2e29c2c70f88d8235bc2a1f4b83696bc1e50d35a9a73c7195877412df74799f70b91c91a2adae0a269a040e58b87551f6434656b313ba08be3da72c3d7c9616ffe5053bbfe926d25f041f8e3366cad7e25f5ba143286ac9c39739d7827d1bd33a27f955dcc5c76397da3059c2378fd90a0cc3b7c8757290859573a542e53c882893ca9e919b5ebd2425df2cc20a4f98090845d3152dbc170ea1f2af8159ba2a0833af477c638d20c65ce88442bb9c19327258d24447fa3247b3b84f70d3093d3e210a777a58ed76f5d4857f6f6528f5f615b0f0b8f78c72a07a8ce258cbe535096b407911d1cb2eb5fa42da6467489c252ba49ce6cfabf77b052b8b4f2354d8fb0adb4f0d68214127169dd1e7129c5e872250157cb1bcd546ea57ddac107ae0f25d0310b70ac26a2c2b8d7b7156d352cdac5a7247f70e6bf4a1f1ef078563187e98588dcf0f5775cacd21cadcfe509643b35b60c0373df50cc369f812619581a90337d93a71af9c3a0b6fe30f6116b09e3a3f50fbb217d9ef722ed753bca552395784005a3caf5ef1d7d4919fb3e6b5f3344ea44d68c2768c5d7aff86c6073fd5c72c91a567ebb4e21c9e376a05814e2c0208bf44cc17a2530aee15dae9571c8a6873505d07efada8815edf8e6ad8c930cba0b79309381f38dac7526a1f0c1a5329750c4adb3471453bda5ea0c7d0de1aff73f340b85a9ca9dd28a38bd3c60bc9080a1243a3eaacca10af520cdad0f33c2c1575ee485247ad67defec3ac9982b08d430ee48a4fcbcbfafb5ca27a5645c00bd991601183f6371cfe9ca77d9f9f66394917ee21e5ce70402b59ee79b6f0f9553c65a304d50d6f0109c76929086cc3e54ac158ee4376467b3560bd3524fa7cc1d4a382a57c89d3be5c8b98196338c8f97c0236d005fd89c187b56a857ae1ea3ca1c490c3e83480f5069d8a62ce4ba53d849e82b3014414804e00953a7bda7004687084dc69f861be44d07523c24a2c2dc40a3018b82ee635b4fce4082be83c239b6ed3e5739d6d74789f616ebf60a81bd1f3dd1b099bdd53db2f6f88a388e08c08238a6b04171235a4a102b3cb8ec89cb4a0feaedfcfa2380fee50f6efc12ee849f0082121f41ec8f36005c51c2cab305e7224cf15c7b061dfb35a07d7a42347b26410e447c06e7713ee456a8b4d3db8be0bd59be25166511defaafb1d0a03e07bd186ed5e054075d27aaf49607511bc8b4927f980de9001e755602e32ce679989645d2adb6cff131958707814dbb6133002b2cbdeb9bc230b57672f18174a429e01c334bdd20c206c6f1ede9c232c4d5aa294ddd7ec15be0b65ef3edebcd0005c5e1440daa4c49ebb1045c935efa919b79b570f8703062a3701f3f73347cd4213e75afd20bf8baad567e1cda3627d397a88fd914c0922c184dabcb8d1c7f9d2a9ff3c10cb01cef35ffd0743bc5036084886ac73edcf86934ac7e6a8d955c98a9269082ca17b0216e662a14fa2b160fdc42c0f6bc0a104db15a266ee65ee4a19b211fd1cd1d66cb5cfa1442a0af4780645a5d6259457788ac27b049b70247ea45a54a544730b833f482c72b4a1a2eeca496a01e1a1b652447b60946aef66059231d6f0a6f57ade13a333a370c374a5772ae853f2cd8943078ac01edbbbbb90509d08dafb9d5d7fcedf7d40ddd7a993f1969917ac5935535f59fd60ee4913c2b47c0bf8554f2e79c3c7f8b0cdea55920a8e019af9217660d41893d6c776eda8d0e7b781dc12c0151b80b164057527e089b0aefcb600410bf11d9a3d8bfc0058d958c1440244aa3a4724eb3e77d233505b21d216bd5ca5de02cd2d79a3ca5fa41158e4b3810ed6b37d3f62280d23727e60c6f27d10018caf10b736e103c56f72e3361e3b0d66a8f45847ec83d43e0e6cff8895d959a8c4af1ca844d1e185e159bf70b63795ce5283d5ca5053c7f35687aaaa3fe0ce43b3f589fcb219b9e8d092f17cdeac0d07bb81e39caac72e570b3ea456a7a27c4525e8cd223f29c4dc7711483276e03822ae45ce6142a75cb2033c736427ff33460c7f1be9c0040fa97fa1751cdbfd72c48cf2577e2ce8be845f93622cbeaa2ea1a62826928eef5d7e07479a6348d873bc91438a290c0c080edf80c7162b60566e59f03b57b130c6baef1c0c3de4468cf8036267d62da25c1fc6aa75bad0f4e3a8f782260a6fc1b9a2ea39995d4d032e7bd7b834b165c6f5cc57fc08293de81a852516b5631284604acb36ce4fa46ac10ea7e38a6bc1e9f2671888c2d6394e93d8bce17c2e4ba5085ea9a6388405cf85751d03a05b1d7b086138196b2f866194e20cd041f68c21b05df24f87b2ccd9a32821d4a2a5cc825e4110ac77094b7e07e8991e5309a5e1fbee6e554559cbd55c7ef082ce62ee80a3b8c3967780935ce4d786639d9f5174b98ee555b0d61930ddbc4e73a7d673c5ce16127678e3ef3d6783a8966af10a9218cf8a523a59fbf34d7442fb15fdacc04cf93138c0e91707cda84ff9000bac17aa4003a487fd743d33e2c492c3334e8f4e449e52d11f6a069cdaac523fa096cf25be1ae134ec026435ab0b61dcd29cfa3d3633d6190816914527df369df440376900faaae078d26e3ab2bf51b4b04551718420345439008b6759cced4ebc3c339ff9e111cce4557e00eda28a124981f44095cd40083f1af16d523884611f47afb426491a989c79d06ad1da7ad640bbe2fa83fccbbda30e5a8d61c6500aff69b0439bc857ab3aa31b11f5d21c09932f21622b883509757b2e53643ee5308b82cd94a65b9f95a3461839aee4881536752cde1a65d794c3fdf86e3f156609d62cab2a62387664b71fd70dd1ceb829845598fdc86dfc70cc0941b77a991ae7c1c8a94e38f1e97c0689359801036079582338ba11e59062a3d578ffb463594b38e72f693f5df76ee2411f5df63edc5baf689ad5b98c228ffc8840c8354e9e11cc30137c3e3b2ac453381f614c0b5910e892c8b51c93fb38bd27a9e5fc74155d21159c2f50714de7cf041065d2ad0f70f5e15e1633db8c2634609ff809031e7017ad75012edc84ff7816be37de5cd98dd39d993526b603f745f57314826561a83ee8ace0759f573d0bcaf323f5fa49c59954f47517be2949ab478aeab2a9da8d940a2bd842cddbbaa5ac808b587a79cc816d3b9c85eeaca45b2e47fb3de85270c06bd09f6a264997860e381b383a443264c7488d2a50db5e7b842feb0d458dbed44c6c74e6dd9b45847ad9f0e19f552629decbdb5a2edb98fb7173c3cb6bedbfd889e6b37e9986bdea159489ada3270769a22d9bd3b4f68bc1245d505e3b601c710c2aff7a6df3fde457fb89505bdf2bcf2625958471da9fc6f379987e1718587f23028d54d67fd919856937740638a3e40a51e8f07ae8d8e428f1364b7d16e366df6495ad709b86cb9f78e4fc71925c3c062435a23e370823d2c905c1bc16d88403cf340b26517c06de49e4f673f6ab895a5cb40fecfecb9c53375a0a96ac71ed2fae16761c553e9061c9b8ec681191e501377e0a8280023261234de578cf686b19fac6fe954280b510eea149f825a5a88e63eb3abd331f8451ebe73ec33e40fb7e141c1181697bfea4e37854f447419576166376f3614ebcb0c953b0c719fbabdd15c57c2c7af068bb06aa1c08af3c43caadb8fd3ad894e28b502f8f6ef2f28ff58808277759bd38426f29349c4f04eff13363ee02b62401504e0c18c246eb24eb7c2a645d301adf32f9a92710e9fdc3ba13a86c45625948179d3a43b22d0526dc9dd477ffecc692e61d6fbfced6709ea45a2eceff062418598bdb38f4ccd8790bd069f1b32a3ce3a24e9cd72f76fa45df8195b0886231482fcfe72529360722909ab47366365d975cdf6458c5d91c40608683ad67375f3b2549e35dabc5cfb4d9ef62df718864b81801d087905d79522335a8d0ea7b9abf485c1f15d023bb6085bd50330b838d27739665b94ba82ade4c60e963bf346dbc6dce778a9b8cd801537d53c07ccb341aff6b8f4767c7d3c522f6db14b007f40622cce685f98c0b0866d969d6170f29ea62a194c5081ffec7ceb5f736ca33fbafb2e2df64d740ae443a7f107229b935e49ebc7ab43260c0e162629bdc5eed773f82a46dd276dbb4fb3e47cf39a72b6df0ccfc66b0c783edf1483557b01f7250cd2d87c35d433dac86d1713754c5b8dbaf4e0b1af4b7edeabeb0927366d9108755ee75733ce15eb2297b6462cc41b73dd2e793e556460d05c8897727a932a040acb741333202f77e53eac5f50d2a23795bd9afedd9fc9ef58a49a5eccd13799bd0f28ef57643b5545240ee20aa514301e5fd521dde517fe58fac2ee8c523a68ab3511d1eac5cc12ccc6067ac3446a038357c9d88fa6038458ebc18fb853691da44beeb55229b8b390ed755206ed4a442172bb0aa6ca7c50888e3014d7840c6fade35115055b55db17c6d9c5b1fab396bb7547b813c2e358a0a9294a1e86fa9385aeec7838dd42b18a52807f4826c5673fd415dabfb3955ba8f67da66a6514dd99a125f444c56d55568459d8315f5c633db9d0d36778977bf7472c5fd01e4d0ecc0cac3cd767e9f2b0fc4929248e31dad4af7c9982a4a82731a1dcb8bde7ca1d9fe561b34dae3d9b183e6c5defd7c7868f98a3a06e57e5025b391060e6aa5bd9b4f486753ae6861bd5adefa8502cbc90a1fbb10cc7ce6488a536e77ba7ebd5ff7b5b0d2302d9757eb1345eec7cab6dc51b4c9ce5d0dd9ddb630e958bb4d75a50eaaf2ae5be9d5db6249ed51552e1ed4b9b3ae686517a14983f772d1a6de4a12f77ebba9c75b6fdca1adca91e23bc594724ae8f03d29359b1decc4c3b5d6eb959dd8ec9516dd52a3bde7e65c8e173969445afa26986e8269e2591e1397b23e7286e54e526f1eeffab9c2a233dcc96a4e85da42e5147178acd617d5e6805697b6ccacd8ac0e9964e7c876d39c49e57ebf6ca53ba97e6c6ed408801d74e7c06be8bb76588170948411e824691e35ce0d07aa5c8dd060d1c30b3d5a1e555ae929ab6e3bd712d7fd82df01f170102ac750d630f1eaeaf86068c4a98e3bf51ece99eb582b0f3b5a41d180996be3a9d637e6442fd019ad2223c8ad4075230d561b3e8b87f25aecde1fdacd52db508bbea14d9abd04eeead6a852df0c01dda8544edc76f5b09ce9eba516f3bbbba4b95026c6360a41b2552786bbeec846a3898d495123db586b6e8a13ab1b1e73321d15e4ee6e35912a47d66ab6e8486c2d8827e7fcc9cef5567db56f0cf6baab317923374ddf4ec660763cb23b69d17770bbd2bedf1eab8a53d56dc919ef3c4f3f58eaac31857406a9b16266584accb018de1961b9ed8e277d2df60687a95df6976ecf18baf741679894a504b08e93aa48636a980d686ee2a2a72fc7863e51d582d5dbb67791c1734cab4c786bd9d0b5846966d9dd92111bcd726d715d09f070cb9cc17cab56f652abe3d44739c375575377e876c038a180417596d8ea2c192f64b7d3e2d688e7aa65d0c25aa448fa6207f6fd62386c363beda3da28760c075aee802946bd9aecd25cb6b1d0746debf6514257008c3b55cff1759d18ad626fe0633028f086242f243b3c54fcfebad93595b05aa492aaf9607204be594aaae95a5aaf6b6ab9ded9af86ab0285238477eb622b2687b1b355555533c4a069cc4607b90517faddc8afd86cce01d668d191eb159977c6eda6df31066e07a8b93da94b40f2ef162dbdbd6e92f1a6a0d89423aa38d49ed7d74b79b05e16078eda4cfb79a7ef8d35d1c168e97adea6d3ec99051ab7b59ebe70eec424aa76869ad6f4eb46dfe8322d5759cef8bd51ef1c8f7c9a1bf6174e43168f95a06ab8aed71e6dd4b869aaad7ab01b1870afef821530815faa865d47370cc38d5d75389aa9c79567ef67e3827ccc29fab450ce0ddb653b5035ade5cfb430e849530c74a94d9416d9d7cbabe460aef6760ce60c1da362f5300d49cf5b550dc3c79ebed3ba3cfbd34c53692a1beee618558de5bde74c755d37fa505d68bdc6bd21315c46c5262791948ea7e58f5559ed4e7a466fd968f4c8587119308638f56173a7363665f5ce1c3a46aea7c386db14533fb577e3f61c2448a9f7775d65bc38349b4d5d6f4c55d53d7409a43ef281abebcb89a136c7fd467d626abd89d9183627868b3d75ba1e695d2fda76c7cd66b3a76b7557f5507c98ed47e62e487a675b6dfb0e950e65a5d993ab71ead381aaae47bdc0eac54e0f349891d9b2dc9664140b72ee5e92cbd27ca3cc36d5e512673154527bf3f1b4a524ca61acba5e6aa034dcd6ef3639b096c56d448d55ebaea4695a5354d559839aca500a12b5e5ec4e7d570f6273569fa63639243d54617cbc3828c7855f14316a361bddfeac6972f588cce31c1e6533b1cfbe58aa63ede41343f5d2be4055d5f5653aef0355d3dacd669da8e998d23ea5387d69b4dd7afdd4972c3eb0f73b1b4d120175d8ad0e78333785bcafa6ff9a416be28f1323d434212fc490a2880bb57f0b43df156a82901706304469ebd7afbce062ee25e60f8b84c0c63024916d26344236b02c0ff2ef2ef76b00471cd1080620c180f143807e588ca51671e490f469230e7190b1a293ed27585e60f888849a542ee68590d848a81565316bfee43803cba22c7e17cbdf256522956a62b526577e148ad592ac54cbdfc54a4d1485bc80d94f1b53a1e6c080a1bcc00ed9eb1a682bd4cae58258c90b7a44849a24172a65a550c80b830047be5093f2423f7b6ba12055ab79618a6da12689a29817dae7665e58fcfc19435b146a625e18d9a94d312f8c9ffa5d0ffcd3288aa2524e4962f94ca855f382ca719876648c2ca1269514b92c164b696f062ce53c0c43fc9517fab743b5dba18b9f3f932861c8166aff12f3625efceb573aaf1ea2997f529709c023217a985f30b6288e393bcdf0d33c5f4eb39017f43026940f21f784da0d51f24cfb1c6259bb41ac53dc4d2075113fb54784f05b7b26e4853ee49627d4fe25fc10feca0b630e0324d4384dd0991821c84824d48488f06f38621c0601b2bf9909ff06b71007d00cd0371c7d33131cd8df2c687948c80b6dd2c20162a95d0f411bd11f2e11f242824fcf1d8e6cb24bdb7f3df823c3beed0de1968feac95d2e671fd44830081163d0459fd064886eb1853ead0860c2bdcf6b9b1441dba249687ede06438c6112fdb1818c46f4da8e4bb85f78f8cd42ef421842ea9b90230662dfcd343d1e06e912c7298e5c96c64903c55990988983d320320f3c9b278b8431458c0127801c5d32dc238e2fe9e0b8bb248f0136333ae21047888200337e66a07dd6a2879893c70680a7179e080bc75ed6d5336d5f0a6d069f08645d93b65c2a49ca0bc6934b91bd83d466cf614180638ead278e17c20bea519dc2c84e380e5e11b1c4e4017a128476e98948f52e28ab78415c0e807950baa2e452f98a2e49f205fdec953cb8f0d3be242ad714887dbc17f2028a2c62e3c8bd6802c822e992362143e5e2150747901e2e392e312f490f5d1a076b96c5fb231da33025292534eda5133e5b7516098c7604b8e47b402c18bcffb9dff8315924fae89af3f1f5cde50c789cc7e7d8f888aa9784304a37ea8fa9f9e8404f73f811ad807c5423c129e6537a9f5ff11f34d3959b308b92e0a35ebd34f2b80cfd276c008b1c0f7f60084771f2d1fdf6853e4857da00f14f6d298fa6ce8d3fb0c0a0edc0cfeccc31c521e678fb99e0a0d8fac46e9e6a811852f69930f83f70023113ceffe4001210687f7cbdb93010a228f9871ea05eb103cee7947750e97acf008b03fc261887ee7b3bc319022c4cad979b1f4b87e452987ef10087d07d31152e3113c78101011ea2e8b9cc361306d29fe7026233ec4620ed083cbc10ba010226a7e885bda703a70531256f9c476dff0de1e99878eb51f65218c3c87dfe5a8adc3589d069277ec897de06a4aef55f81be3c35ff5ef88ac39f231e033284317b1b1afb2fe7f6750c60dc26cfacc588236a9284ba24cac6b67d26f75df07804bbe0339fa6d9aa4d3820318abebb2480919bb5af817c179a204c6898d0c2b5e4080318d9d901eed5b3c94b3960c8a288ffbc585db3d7fe20d405fb2ccc1130c3f875816561ce5f1771ec38bf979c93952b69fab55f9c9260e426e79df17d54b61943eb455faed11cbaaf022edee541e69d1f00da01a205f981b4a875224eb95b36988727b04840e83505621820ce9f303685bb47c2c5ce63fbb18319795ea54ea2758cdc4722cee6f3119da68830b862597172493a216784f24b568438a7a7f3c2238fb02c1e2f59f1e9b87791745dab50e404c8e201e6576c862337404e805defeaadecc02c180400ed9185a2ed6ba224ca12a3a7c9428c9f8ebc593e8c09c0e4ec9a133b84d97e9e3e8089dda766963964ed73ca17e2109d1f204c028e63983925636c12c2911d531c716866ab7e84f8e9375ba32e9ad9cf83f7ae98e78e3df21e4671e6a55116539225db299dd054922d1c84654e39b592d3c9283e8d2c7d000707e84c9f7d9eb55cb48f1f1b801d220e53efd124e2a7c19e5bc0ca96e807ead1bb909330cbb55f48ce6e7dc16787ec52f6144e8c538b64f3f870859117d821b2ce8f27f3e7d915f242f6a5310b46a724e0dccd24c216b12f5a20e18e54bea6ab19c9a093e2b628b20905575ff1c39d85072d0fcae26da8980407a92096de41678ff453bb15f790c7bf054ee8163ddc7fbc81f37cdb791bf1f2eae30df03b234e23d38e58faff292df91df031f4dd24fbdedec5c594ec0fef0065e0c5d0f2df40613b82bf11b3033baf7faf494fe187ac842260621bd3e4b7decaa09cc2883984866f811e623435780b2e4aedfd95172688f1c74be428098213ebf1aef8c4ea133bed64eddfc2cdd7e9d995378e1eeeb83f708d9f5d6bf7897df3b5bf4b7e84c4ced466886689414d907e48c5ac3e942d598fc5a39b3a7ebefbff4dd9e8575eb02187424d80ed99b76acf0ecbb075d0ef986bb55bfeaa1d24ab2371fb0de63a06e9f6a2416045ab7829cf8e7abb23d977a3ad89eb15bdddd95ae128b0b07458ce47b1bde897f5865ad1efc4ae864b7cb5181c97733be8cd075b331a056664305d7b95efdaed59d1d6ea15cd0df0723ea0ab42676bcf4bfe3dae27a65c0aee77a4b30c95626f3120cbf9686b1f896b864ab29ab0ae363ff763fdc4730cf25fef15de4e151af4c112cdc7cb324f2f0dd3707aad1873fde61f2e01268eae2cfc5db51a9652df6c14a3c8469175a87d7b6740366616a1f675e5261dd8a95e931ee8ed8f966b2e8cfebdd79a9fb9f67b5f212496ff7e6a7dce0ade4e976eca9342147e5539beaa1cff882ac71006018e6c94eed4df537f9130db5a3e5d0a8114fb7007018cdffcf22e60809ec2fc5dec0dabcc03d4851ced9e5f20bd0ef56094e6b6b7406fb8f47b84f21b0775bab1f3d0290bbb157e4369e7758dac6153fcce9de3b5f239a83e8006284ac20faa90f8bdfac1b55248287accad6ed4d9b19b2a62efef1937ef78672060c80d5174f38ef75525fcdbb7fdafb2e25759f1abacf85556fcff5c56bc2df7c950b7ef60bf4995fef955cd4b648423f779b1e935c42de7c733327cf3b87006650747065048d66fee61d7f01085e64d7d78c0276f9f4eafd1e977f94faf00531c041030cb43217c5db6432623968ff857f1f87faa787c516df41189c0ab500fc5f03f64063838e0e87931f90f4adae96765df7ca9f3bfaf487e4870045c12d8696f0164fc2df16bc78a6b0445918de8db98974bfeb5fce512fe55c9ffd34afeb51087e8e1cee5abc4ff55e2ff2af17f95f8bf4afc5f25feaf12ff674bfcbffe1b0000ffff010000ffff40b0a819876a0100`)))