From b0b6fd4f95eaafdc61b2af4492fdfd45ca7a04d5 Mon Sep 17 00:00:00 2001 From: Jonathan Magnan Date: Mon, 21 Feb 2022 15:23:16 -0500 Subject: [PATCH 1/2] remove docs (has been moved) --- docs/404.md | 10 - docs/CNAME | 1 - docs/_config.yml | 17 - docs/_data/meta.csv | 33 -- docs/_includes/_global_variable.html | 21 -- docs/_includes/aside.html | 87 ----- docs/_includes/component-try-it.html | 1 - docs/_includes/infozzzprojects-email.html | 1 - docs/_includes/layout-angle-begin.html | 3 - docs/_includes/layout-angle-end.html | 5 - docs/_includes/site-footer.html | 21 -- docs/_includes/site-header-nav-context.html | 25 -- docs/_includes/site-header-nav-md.html | 68 ---- docs/_includes/site-header-nav-site.html | 46 --- docs/_includes/site-products.html | 41 -- docs/_includes/template-example.html | 7 - docs/_includes/template-exception-cause.html | 1 - docs/_includes/template-exception.html | 4 - docs/_includes/template-execute-thrown.html | 1 - docs/_includes/template-h1.html | 16 - docs/_includes/under-construction.html | 3 - docs/_layouts/default.html | 147 -------- docs/_sass/card-layout-z1.scss | 41 -- docs/_sass/card-layout-z2.scss | 26 -- docs/_sass/console.scss | 98 ----- docs/_sass/hero.scss | 87 ----- docs/_sass/highlight.scss | 53 --- docs/_sass/highlight2.scss | 6 - docs/_sass/page-index.scss | 131 ------- docs/_sass/scroll-to-top.scss | 45 --- docs/_sass/section-faq.scss | 10 - docs/_sass/site-footer.scss | 39 -- docs/_sass/site-header-nav-context.scss | 45 --- docs/_sass/site-header-nav-md.scss | 36 -- docs/_sass/site-header-nav-site.scss | 86 ----- docs/_sass/site-header.scss | 22 -- docs/_sass/site-products.scss | 24 -- docs/css/master.scss | 284 -------------- docs/downloads/Eval-SQL.NET-Install.sql | 175 --------- docs/images/arrow-down1.png | Bin 4285 -> 0 bytes docs/images/logo.png | Bin 1439 -> 0 bytes docs/images/logo256X256-opacity.png | Bin 19064 -> 0 bytes docs/images/logo256X256.png | Bin 22802 -> 0 bytes docs/index.md | 357 ------------------ docs/js/fiddle-client.js | 133 ------- docs/pages/api/api.md | 51 --- docs/pages/api/configuration.md | 73 ---- docs/pages/api/eval.md | 121 ------ docs/pages/api/options.md | 101 ----- docs/pages/api/value.md | 106 ------ docs/pages/faq/faq-eval-sql-net.md | 96 ----- docs/pages/faq/faq-general.md | 23 -- docs/pages/faq/faq-installation.md | 12 - docs/pages/faq/faq-license.md | 71 ---- docs/pages/faq/faq.md | 11 - docs/pages/faq/issue-tracker.md | 13 - docs/pages/problems/problems.md | 10 - docs/pages/problems/sql-server-eval.md | 158 -------- .../problems/sql-server-file-operation.md | 141 ------- docs/pages/problems/sql-server-function.md | 223 ----------- docs/pages/problems/sql-server-regex.md | 230 ----------- docs/pages/site/contact-us.md | 69 ---- docs/pages/site/download.md | 93 ----- docs/pages/site/pricing.md | 193 ---------- docs/pages/site/trial.md | 22 -- docs/pages/tutorials.md | 52 --- .../pages/tutorials/arithmetic-expressions.md | 86 ----- docs/pages/tutorials/installing.md | 24 -- docs/pages/tutorials/licensing.md | 45 --- docs/pages/tutorials/overview.md | 149 -------- docs/pages/tutorials/regular-expressions.md | 67 ---- docs/pages/tutorials/requirements.md | 15 - docs/pages/tutorials/split-text.md | 94 ----- docs/pages/tutorials/tutorial-introduction.md | 107 ------ docs/pages/tutorials/upgrading.md | 18 - docs/robots.txt | 6 - docs2/pages/_topnav.md | 5 - docs2/pages/documentations/_sidebar.md | 4 - docs2/pages/documentations/api.md | 49 --- docs2/pages/documentations/configuration.md | 71 ---- .../convert/convert-toboolean.md | 25 -- .../documentations/convert/convert-tobyte.md | 25 -- .../convert/convert-todatetime.md | 24 -- .../convert/convert-todecimal.md | 24 -- .../convert/convert-todouble.md | 25 -- .../documentations/convert/convert-toint16.md | 24 -- .../documentations/convert/convert-toint32.md | 24 -- .../documentations/convert/convert-toint64.md | 24 -- docs2/pages/documentations/convert/convert.md | 14 - .../datetime/datetime-add-days.md | 28 -- .../datetime/datetime-add-months.md | 28 -- .../datetime/datetime-add-years.md | 28 -- .../documentations/datetime/datetime-age.md | 27 -- .../datetime/datetime-dayofweek.md | 25 -- .../datetime/datetime-dayofyear.md | 26 -- .../datetime/datetime-days-in-month.md | 28 -- .../datetime/datetime-from-binary.md | 27 -- .../datetime/datetime-from-file-time-utc.md | 27 -- .../datetime/datetime-from-file-time.md | 27 -- .../datetime/datetime-from-oadate.md | 24 -- .../datetime-isdaylight-saving-time.md | 25 -- .../datetime/datetime-isleap-year.md | 26 -- .../documentations/datetime/datetime-now.md | 19 - .../documentations/datetime/datetime-ticks.md | 25 -- .../datetime/datetime-to-oadate.md | 25 -- .../datetime/datetime-to-universal-time.md | 25 -- .../datetime/datetime-tobinary.md | 27 -- .../documentations/datetime/datetime-today.md | 19 - .../datetime/datetime-tofile-time-utc.md | 27 -- .../datetime/datetime-tofile-time.md | 27 -- .../datetime/datetime-tolocal-time.md | 25 -- .../datetime/datetime-tolong-date-string.md | 25 -- .../datetime/datetime-tolong-time-string.md | 26 -- .../datetime/datetime-toshort-date-string.md | 25 -- .../datetime/datetime-toshort-time-string.md | 26 -- .../datetime/datetime-tostring-with-format.md | 27 -- .../datetime/datetime-tostring.md | 25 -- .../datetime/datetime-utc-now.md | 19 - .../pages/documentations/datetime/datetime.md | 36 -- .../directory-create-sub-directory.md | 21 -- .../directory/directory-create.md | 18 - .../directory/directory-delete-all.md | 18 - .../directory/directory-delete.md | 18 - .../directory/directory-exists.md | 25 -- .../directory-get-all-directories.md | 23 -- .../directory-get-all-file-system-entries.md | 24 -- .../directory/directory-get-all-files.md | 24 -- .../directory-get-creation-time-utc.md | 24 -- .../directory/directory-get-creation-time.md | 24 -- .../directory/directory-get-directories.md | 39 -- .../directory-get-file-system-entries.md | 39 -- .../directory/directory-get-files.md | 39 -- .../directory-get-last-access-time-utc.md | 24 -- .../directory-get-last-access-time.md | 24 -- .../directory-get-last-write-time-utc.md | 24 -- .../directory-get-last-write-time.md | 24 -- .../directory/directory-move.md | 21 -- .../directory-set-creation-time-utc.md | 21 -- .../directory/directory-set-creation-time.md | 21 -- .../directory-set-last-access-time-utc.md | 21 -- .../directory-set-last-access-time.md | 21 -- .../directory-set-last-write-time-utc.md | 20 - .../directory-set-last-write-time.md | 21 -- .../documentations/directory/directory.md | 30 -- .../eval-expressions/_sidebar.md | 3 - .../eval-expressions/eval-compile.md | 65 ---- .../eval-expressions/eval-execute.md | 73 ---- .../eval-expressions/linq-dynamic.md | 75 ---- docs2/pages/documentations/eval.md | 120 ------ .../file/file-append-all-text.md | 21 -- docs2/pages/documentations/file/file-copy.md | 23 -- .../pages/documentations/file/file-create.md | 19 - .../pages/documentations/file/file-decrypt.md | 19 - .../pages/documentations/file/file-delete.md | 19 - .../pages/documentations/file/file-encrypt.md | 19 - .../file/file-get-creation-time-utc.md | 24 -- .../file/file-get-creation-time.md | 24 -- .../file/file-get-last-access-time-utc.md | 24 -- .../file/file-get-last-access-time.md | 24 -- .../file/file-get-last-write-time-utc.md | 24 -- .../file/file-get-last-write-time.md | 24 -- .../documentations/file/file-isexists.md | 25 -- docs2/pages/documentations/file/file-move.md | 21 -- .../documentations/file/file-read-all-text.md | 24 -- .../pages/documentations/file/file-replace.md | 25 -- .../file/file-set-creation-time-utc.md | 21 -- .../file/file-set-creation-time.md | 21 -- .../file/file-set-last-access-time-utc.md | 21 -- .../file/file-set-last-access-time.md | 21 -- .../file/file-set-last-write-time-utc.md | 21 -- .../file/file-set-last-write-time.md | 21 -- .../file/file-write-all-text.md | 21 -- docs2/pages/documentations/file/file.md | 29 -- docs2/pages/documentations/math/math-Tanh.md | 24 -- .../pages/documentations/math/math-bigmul.md | 26 -- docs2/pages/documentations/math/math-cosh.md | 24 -- .../documentations/math/math-cube-root.md | 24 -- .../math/math-ieee-remainder.md | 27 -- .../documentations/math/math-nth-root.md | 25 -- .../math/math-remainder-int32.md | 26 -- .../math/math-remainder-int64.md | 25 -- docs2/pages/documentations/math/math-sinh.md | 24 -- docs2/pages/documentations/math/math.md | 15 - docs2/pages/documentations/options.md | 99 ----- .../path/path-change-extension.md | 26 -- .../pages/documentations/path/path-combine.md | 26 -- .../path/path-get-directory-name.md | 24 -- .../documentations/path/path-get-extension.md | 24 -- .../path-get-file-name-without-extension.md | 24 -- .../documentations/path/path-get-file-name.md | 24 -- .../documentations/path/path-get-full-path.md | 24 -- .../documentations/path/path-get-path-root.md | 24 -- .../path/path-get-random-file-name.md | 18 - .../path/path-get-temp-file-name.md | 18 - .../documentations/path/path-get-temp-path.md | 18 - .../documentations/path/path-has-extension.md | 24 -- .../path/path-is-path-rooted.md | 25 -- docs2/pages/documentations/path/path.md | 20 - .../documentations/regex/regex-escape.md | 25 -- .../pages/documentations/regex/regex-index.md | 44 --- .../documentations/regex/regex-indexop.md | 68 ---- .../documentations/regex/regex-ismatch.md | 46 --- .../documentations/regex/regex-ismatchop.md | 68 ---- .../pages/documentations/regex/regex-match.md | 44 --- .../documentations/regex/regex-matchop.md | 68 ---- .../documentations/regex/regex-replace.md | 47 --- .../documentations/regex/regex-replaceop.md | 69 ---- .../pages/documentations/regex/regex-split.md | 44 --- .../documentations/regex/regex-splitop.md | 66 ---- docs2/pages/documentations/regex/regex.md | 17 - docs2/pages/documentations/string/_sidebar.md | 33 -- ...ing-compare-current-culture-ignore-case.md | 52 --- .../string/string-compare-current-culture.md | 52 --- .../string/string-compare-ignore-case.md | 52 --- ...g-compare-invariant-culture-ignore-case.md | 52 --- .../string-compare-invariant-culture.md | 52 --- .../string-compare-ordinal-ignore-case.md | 52 --- .../string/string-compare-ordinal.md | 52 --- .../documentations/string/string-compare.md | 50 --- .../documentations/string/string-contains.md | 44 --- .../documentations/string/string-endswith.md | 44 --- ...ing-indexof-current-culture-ignore-case.md | 46 --- .../string/string-indexof-current-culture.md | 46 --- ...g-indexof-invariant-culture-ignore-case.md | 46 --- .../string-indexof-invariant-culture.md | 46 --- .../string-indexof-ordinal-ignore-case.md | 46 --- .../string/string-indexof-ordinal.md | 46 --- .../documentations/string/string-indexof.md | 44 --- .../documentations/string/string-insert.md | 49 --- ...ast-indexof-current-culture-ignore-case.md | 46 --- .../string-last-indexof-current-culture.md | 46 --- ...t-indexof-invariant-culture-ignore-case.md | 46 --- .../string-last-indexof-invariant-culture.md | 46 --- ...string-last-indexof-ordinal-ignore-case.md | 46 --- .../string/string-last-indexof-ordinal.md | 46 --- .../string/string-last-indexof.md | 44 --- .../documentations/string/string-length.md | 41 -- .../string/string-occurrences.md | 49 --- .../documentations/string/string-padleft.md | 51 --- .../documentations/string/string-padright.md | 51 --- .../string/string-remove-num-of-chars.md | 45 --- .../documentations/string/string-remove.md | 44 --- .../documentations/string/string-replace.md | 50 --- .../string-split-remove-empty-entries.md | 47 --- .../documentations/string/string-split.md | 47 --- .../string/string-startswith.md | 44 --- .../documentations/string/string-substring.md | 47 --- .../string/string-tolower-invariant.md | 41 -- .../documentations/string/string-tolower.md | 41 -- .../string/string-totitle-case.md | 43 --- .../string/string-toupper-invariant.md | 41 -- .../documentations/string/string-toupper.md | 41 -- .../documentations/string/string-trim.md | 42 --- .../documentations/string/string-trimchars.md | 45 --- .../documentations/string/string-trimend.md | 45 --- .../documentations/string/string-trimstart.md | 45 --- docs2/pages/documentations/string/string.md | 51 --- docs2/pages/documentations/value.md | 104 ----- docs2/pages/faq/faq-eval-sql-net.md | 94 ----- docs2/pages/faq/faq-general.md | 21 -- docs2/pages/faq/faq-installation.md | 10 - docs2/pages/faq/faq-license.md | 67 ---- docs2/pages/faq/faq.md | 9 - docs2/pages/faq/issue-tracker.md | 11 - docs2/pages/getting-started/_sidebar.md | 6 - .../getting-started/arithmetic-expressions.md | 84 ----- docs2/pages/getting-started/licensing.md | 47 --- docs2/pages/getting-started/overview.md | 178 --------- .../getting-started/regular-expressions.md | 65 ---- docs2/pages/getting-started/split-text.md | 92 ----- .../getting-started/tutorial-introduction.md | 105 ------ docs2/pages/site/contact-us.md | 67 ---- docs2/pages/site/download.md | 91 ----- docs2/pages/site/pricing.md | 190 ---------- docs2/pages/troubleshooting/_sidebar.md | 5 - docs2/pages/troubleshooting/problems.md | 8 - .../pages/troubleshooting/sql-server-eval.md | 157 -------- .../sql-server-file-operation.md | 139 ------- .../troubleshooting/sql-server-function.md | 221 ----------- .../pages/troubleshooting/sql-server-regex.md | 228 ----------- docs2/pages/troubleshooting/trial.md | 18 - 281 files changed, 12784 deletions(-) delete mode 100644 docs/404.md delete mode 100644 docs/CNAME delete mode 100644 docs/_config.yml delete mode 100644 docs/_data/meta.csv delete mode 100644 docs/_includes/_global_variable.html delete mode 100644 docs/_includes/aside.html delete mode 100644 docs/_includes/component-try-it.html delete mode 100644 docs/_includes/infozzzprojects-email.html delete mode 100644 docs/_includes/layout-angle-begin.html delete mode 100644 docs/_includes/layout-angle-end.html delete mode 100644 docs/_includes/site-footer.html delete mode 100644 docs/_includes/site-header-nav-context.html delete mode 100644 docs/_includes/site-header-nav-md.html delete mode 100644 docs/_includes/site-header-nav-site.html delete mode 100644 docs/_includes/site-products.html delete mode 100644 docs/_includes/template-example.html delete mode 100644 docs/_includes/template-exception-cause.html delete mode 100644 docs/_includes/template-exception.html delete mode 100644 docs/_includes/template-execute-thrown.html delete mode 100644 docs/_includes/template-h1.html delete mode 100644 docs/_includes/under-construction.html delete mode 100644 docs/_layouts/default.html delete mode 100644 docs/_sass/card-layout-z1.scss delete mode 100644 docs/_sass/card-layout-z2.scss delete mode 100644 docs/_sass/console.scss delete mode 100644 docs/_sass/hero.scss delete mode 100644 docs/_sass/highlight.scss delete mode 100644 docs/_sass/highlight2.scss delete mode 100644 docs/_sass/page-index.scss delete mode 100644 docs/_sass/scroll-to-top.scss delete mode 100644 docs/_sass/section-faq.scss delete mode 100644 docs/_sass/site-footer.scss delete mode 100644 docs/_sass/site-header-nav-context.scss delete mode 100644 docs/_sass/site-header-nav-md.scss delete mode 100644 docs/_sass/site-header-nav-site.scss delete mode 100644 docs/_sass/site-header.scss delete mode 100644 docs/_sass/site-products.scss delete mode 100644 docs/css/master.scss delete mode 100644 docs/downloads/Eval-SQL.NET-Install.sql delete mode 100644 docs/images/arrow-down1.png delete mode 100644 docs/images/logo.png delete mode 100644 docs/images/logo256X256-opacity.png delete mode 100644 docs/images/logo256X256.png delete mode 100644 docs/index.md delete mode 100644 docs/js/fiddle-client.js delete mode 100644 docs/pages/api/api.md delete mode 100644 docs/pages/api/configuration.md delete mode 100644 docs/pages/api/eval.md delete mode 100644 docs/pages/api/options.md delete mode 100644 docs/pages/api/value.md delete mode 100644 docs/pages/faq/faq-eval-sql-net.md delete mode 100644 docs/pages/faq/faq-general.md delete mode 100644 docs/pages/faq/faq-installation.md delete mode 100644 docs/pages/faq/faq-license.md delete mode 100644 docs/pages/faq/faq.md delete mode 100644 docs/pages/faq/issue-tracker.md delete mode 100644 docs/pages/problems/problems.md delete mode 100644 docs/pages/problems/sql-server-eval.md delete mode 100644 docs/pages/problems/sql-server-file-operation.md delete mode 100644 docs/pages/problems/sql-server-function.md delete mode 100644 docs/pages/problems/sql-server-regex.md delete mode 100644 docs/pages/site/contact-us.md delete mode 100644 docs/pages/site/download.md delete mode 100644 docs/pages/site/pricing.md delete mode 100644 docs/pages/site/trial.md delete mode 100644 docs/pages/tutorials.md delete mode 100644 docs/pages/tutorials/arithmetic-expressions.md delete mode 100644 docs/pages/tutorials/installing.md delete mode 100644 docs/pages/tutorials/licensing.md delete mode 100644 docs/pages/tutorials/overview.md delete mode 100644 docs/pages/tutorials/regular-expressions.md delete mode 100644 docs/pages/tutorials/requirements.md delete mode 100644 docs/pages/tutorials/split-text.md delete mode 100644 docs/pages/tutorials/tutorial-introduction.md delete mode 100644 docs/pages/tutorials/upgrading.md delete mode 100644 docs/robots.txt delete mode 100644 docs2/pages/_topnav.md delete mode 100644 docs2/pages/documentations/_sidebar.md delete mode 100644 docs2/pages/documentations/api.md delete mode 100644 docs2/pages/documentations/configuration.md delete mode 100644 docs2/pages/documentations/convert/convert-toboolean.md delete mode 100644 docs2/pages/documentations/convert/convert-tobyte.md delete mode 100644 docs2/pages/documentations/convert/convert-todatetime.md delete mode 100644 docs2/pages/documentations/convert/convert-todecimal.md delete mode 100644 docs2/pages/documentations/convert/convert-todouble.md delete mode 100644 docs2/pages/documentations/convert/convert-toint16.md delete mode 100644 docs2/pages/documentations/convert/convert-toint32.md delete mode 100644 docs2/pages/documentations/convert/convert-toint64.md delete mode 100644 docs2/pages/documentations/convert/convert.md delete mode 100644 docs2/pages/documentations/datetime/datetime-add-days.md delete mode 100644 docs2/pages/documentations/datetime/datetime-add-months.md delete mode 100644 docs2/pages/documentations/datetime/datetime-add-years.md delete mode 100644 docs2/pages/documentations/datetime/datetime-age.md delete mode 100644 docs2/pages/documentations/datetime/datetime-dayofweek.md delete mode 100644 docs2/pages/documentations/datetime/datetime-dayofyear.md delete mode 100644 docs2/pages/documentations/datetime/datetime-days-in-month.md delete mode 100644 docs2/pages/documentations/datetime/datetime-from-binary.md delete mode 100644 docs2/pages/documentations/datetime/datetime-from-file-time-utc.md delete mode 100644 docs2/pages/documentations/datetime/datetime-from-file-time.md delete mode 100644 docs2/pages/documentations/datetime/datetime-from-oadate.md delete mode 100644 docs2/pages/documentations/datetime/datetime-isdaylight-saving-time.md delete mode 100644 docs2/pages/documentations/datetime/datetime-isleap-year.md delete mode 100644 docs2/pages/documentations/datetime/datetime-now.md delete mode 100644 docs2/pages/documentations/datetime/datetime-ticks.md delete mode 100644 docs2/pages/documentations/datetime/datetime-to-oadate.md delete mode 100644 docs2/pages/documentations/datetime/datetime-to-universal-time.md delete mode 100644 docs2/pages/documentations/datetime/datetime-tobinary.md delete mode 100644 docs2/pages/documentations/datetime/datetime-today.md delete mode 100644 docs2/pages/documentations/datetime/datetime-tofile-time-utc.md delete mode 100644 docs2/pages/documentations/datetime/datetime-tofile-time.md delete mode 100644 docs2/pages/documentations/datetime/datetime-tolocal-time.md delete mode 100644 docs2/pages/documentations/datetime/datetime-tolong-date-string.md delete mode 100644 docs2/pages/documentations/datetime/datetime-tolong-time-string.md delete mode 100644 docs2/pages/documentations/datetime/datetime-toshort-date-string.md delete mode 100644 docs2/pages/documentations/datetime/datetime-toshort-time-string.md delete mode 100644 docs2/pages/documentations/datetime/datetime-tostring-with-format.md delete mode 100644 docs2/pages/documentations/datetime/datetime-tostring.md delete mode 100644 docs2/pages/documentations/datetime/datetime-utc-now.md delete mode 100644 docs2/pages/documentations/datetime/datetime.md delete mode 100644 docs2/pages/documentations/directory/directory-create-sub-directory.md delete mode 100644 docs2/pages/documentations/directory/directory-create.md delete mode 100644 docs2/pages/documentations/directory/directory-delete-all.md delete mode 100644 docs2/pages/documentations/directory/directory-delete.md delete mode 100644 docs2/pages/documentations/directory/directory-exists.md delete mode 100644 docs2/pages/documentations/directory/directory-get-all-directories.md delete mode 100644 docs2/pages/documentations/directory/directory-get-all-file-system-entries.md delete mode 100644 docs2/pages/documentations/directory/directory-get-all-files.md delete mode 100644 docs2/pages/documentations/directory/directory-get-creation-time-utc.md delete mode 100644 docs2/pages/documentations/directory/directory-get-creation-time.md delete mode 100644 docs2/pages/documentations/directory/directory-get-directories.md delete mode 100644 docs2/pages/documentations/directory/directory-get-file-system-entries.md delete mode 100644 docs2/pages/documentations/directory/directory-get-files.md delete mode 100644 docs2/pages/documentations/directory/directory-get-last-access-time-utc.md delete mode 100644 docs2/pages/documentations/directory/directory-get-last-access-time.md delete mode 100644 docs2/pages/documentations/directory/directory-get-last-write-time-utc.md delete mode 100644 docs2/pages/documentations/directory/directory-get-last-write-time.md delete mode 100644 docs2/pages/documentations/directory/directory-move.md delete mode 100644 docs2/pages/documentations/directory/directory-set-creation-time-utc.md delete mode 100644 docs2/pages/documentations/directory/directory-set-creation-time.md delete mode 100644 docs2/pages/documentations/directory/directory-set-last-access-time-utc.md delete mode 100644 docs2/pages/documentations/directory/directory-set-last-access-time.md delete mode 100644 docs2/pages/documentations/directory/directory-set-last-write-time-utc.md delete mode 100644 docs2/pages/documentations/directory/directory-set-last-write-time.md delete mode 100644 docs2/pages/documentations/directory/directory.md delete mode 100644 docs2/pages/documentations/eval-expressions/_sidebar.md delete mode 100644 docs2/pages/documentations/eval-expressions/eval-compile.md delete mode 100644 docs2/pages/documentations/eval-expressions/eval-execute.md delete mode 100644 docs2/pages/documentations/eval-expressions/linq-dynamic.md delete mode 100644 docs2/pages/documentations/eval.md delete mode 100644 docs2/pages/documentations/file/file-append-all-text.md delete mode 100644 docs2/pages/documentations/file/file-copy.md delete mode 100644 docs2/pages/documentations/file/file-create.md delete mode 100644 docs2/pages/documentations/file/file-decrypt.md delete mode 100644 docs2/pages/documentations/file/file-delete.md delete mode 100644 docs2/pages/documentations/file/file-encrypt.md delete mode 100644 docs2/pages/documentations/file/file-get-creation-time-utc.md delete mode 100644 docs2/pages/documentations/file/file-get-creation-time.md delete mode 100644 docs2/pages/documentations/file/file-get-last-access-time-utc.md delete mode 100644 docs2/pages/documentations/file/file-get-last-access-time.md delete mode 100644 docs2/pages/documentations/file/file-get-last-write-time-utc.md delete mode 100644 docs2/pages/documentations/file/file-get-last-write-time.md delete mode 100644 docs2/pages/documentations/file/file-isexists.md delete mode 100644 docs2/pages/documentations/file/file-move.md delete mode 100644 docs2/pages/documentations/file/file-read-all-text.md delete mode 100644 docs2/pages/documentations/file/file-replace.md delete mode 100644 docs2/pages/documentations/file/file-set-creation-time-utc.md delete mode 100644 docs2/pages/documentations/file/file-set-creation-time.md delete mode 100644 docs2/pages/documentations/file/file-set-last-access-time-utc.md delete mode 100644 docs2/pages/documentations/file/file-set-last-access-time.md delete mode 100644 docs2/pages/documentations/file/file-set-last-write-time-utc.md delete mode 100644 docs2/pages/documentations/file/file-set-last-write-time.md delete mode 100644 docs2/pages/documentations/file/file-write-all-text.md delete mode 100644 docs2/pages/documentations/file/file.md delete mode 100644 docs2/pages/documentations/math/math-Tanh.md delete mode 100644 docs2/pages/documentations/math/math-bigmul.md delete mode 100644 docs2/pages/documentations/math/math-cosh.md delete mode 100644 docs2/pages/documentations/math/math-cube-root.md delete mode 100644 docs2/pages/documentations/math/math-ieee-remainder.md delete mode 100644 docs2/pages/documentations/math/math-nth-root.md delete mode 100644 docs2/pages/documentations/math/math-remainder-int32.md delete mode 100644 docs2/pages/documentations/math/math-remainder-int64.md delete mode 100644 docs2/pages/documentations/math/math-sinh.md delete mode 100644 docs2/pages/documentations/math/math.md delete mode 100644 docs2/pages/documentations/options.md delete mode 100644 docs2/pages/documentations/path/path-change-extension.md delete mode 100644 docs2/pages/documentations/path/path-combine.md delete mode 100644 docs2/pages/documentations/path/path-get-directory-name.md delete mode 100644 docs2/pages/documentations/path/path-get-extension.md delete mode 100644 docs2/pages/documentations/path/path-get-file-name-without-extension.md delete mode 100644 docs2/pages/documentations/path/path-get-file-name.md delete mode 100644 docs2/pages/documentations/path/path-get-full-path.md delete mode 100644 docs2/pages/documentations/path/path-get-path-root.md delete mode 100644 docs2/pages/documentations/path/path-get-random-file-name.md delete mode 100644 docs2/pages/documentations/path/path-get-temp-file-name.md delete mode 100644 docs2/pages/documentations/path/path-get-temp-path.md delete mode 100644 docs2/pages/documentations/path/path-has-extension.md delete mode 100644 docs2/pages/documentations/path/path-is-path-rooted.md delete mode 100644 docs2/pages/documentations/path/path.md delete mode 100644 docs2/pages/documentations/regex/regex-escape.md delete mode 100644 docs2/pages/documentations/regex/regex-index.md delete mode 100644 docs2/pages/documentations/regex/regex-indexop.md delete mode 100644 docs2/pages/documentations/regex/regex-ismatch.md delete mode 100644 docs2/pages/documentations/regex/regex-ismatchop.md delete mode 100644 docs2/pages/documentations/regex/regex-match.md delete mode 100644 docs2/pages/documentations/regex/regex-matchop.md delete mode 100644 docs2/pages/documentations/regex/regex-replace.md delete mode 100644 docs2/pages/documentations/regex/regex-replaceop.md delete mode 100644 docs2/pages/documentations/regex/regex-split.md delete mode 100644 docs2/pages/documentations/regex/regex-splitop.md delete mode 100644 docs2/pages/documentations/regex/regex.md delete mode 100644 docs2/pages/documentations/string/_sidebar.md delete mode 100644 docs2/pages/documentations/string/string-compare-current-culture-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-compare-current-culture.md delete mode 100644 docs2/pages/documentations/string/string-compare-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-compare-invariant-culture-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-compare-invariant-culture.md delete mode 100644 docs2/pages/documentations/string/string-compare-ordinal-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-compare-ordinal.md delete mode 100644 docs2/pages/documentations/string/string-compare.md delete mode 100644 docs2/pages/documentations/string/string-contains.md delete mode 100644 docs2/pages/documentations/string/string-endswith.md delete mode 100644 docs2/pages/documentations/string/string-indexof-current-culture-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-indexof-current-culture.md delete mode 100644 docs2/pages/documentations/string/string-indexof-invariant-culture-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-indexof-invariant-culture.md delete mode 100644 docs2/pages/documentations/string/string-indexof-ordinal-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-indexof-ordinal.md delete mode 100644 docs2/pages/documentations/string/string-indexof.md delete mode 100644 docs2/pages/documentations/string/string-insert.md delete mode 100644 docs2/pages/documentations/string/string-last-indexof-current-culture-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-last-indexof-current-culture.md delete mode 100644 docs2/pages/documentations/string/string-last-indexof-invariant-culture-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-last-indexof-invariant-culture.md delete mode 100644 docs2/pages/documentations/string/string-last-indexof-ordinal-ignore-case.md delete mode 100644 docs2/pages/documentations/string/string-last-indexof-ordinal.md delete mode 100644 docs2/pages/documentations/string/string-last-indexof.md delete mode 100644 docs2/pages/documentations/string/string-length.md delete mode 100644 docs2/pages/documentations/string/string-occurrences.md delete mode 100644 docs2/pages/documentations/string/string-padleft.md delete mode 100644 docs2/pages/documentations/string/string-padright.md delete mode 100644 docs2/pages/documentations/string/string-remove-num-of-chars.md delete mode 100644 docs2/pages/documentations/string/string-remove.md delete mode 100644 docs2/pages/documentations/string/string-replace.md delete mode 100644 docs2/pages/documentations/string/string-split-remove-empty-entries.md delete mode 100644 docs2/pages/documentations/string/string-split.md delete mode 100644 docs2/pages/documentations/string/string-startswith.md delete mode 100644 docs2/pages/documentations/string/string-substring.md delete mode 100644 docs2/pages/documentations/string/string-tolower-invariant.md delete mode 100644 docs2/pages/documentations/string/string-tolower.md delete mode 100644 docs2/pages/documentations/string/string-totitle-case.md delete mode 100644 docs2/pages/documentations/string/string-toupper-invariant.md delete mode 100644 docs2/pages/documentations/string/string-toupper.md delete mode 100644 docs2/pages/documentations/string/string-trim.md delete mode 100644 docs2/pages/documentations/string/string-trimchars.md delete mode 100644 docs2/pages/documentations/string/string-trimend.md delete mode 100644 docs2/pages/documentations/string/string-trimstart.md delete mode 100644 docs2/pages/documentations/string/string.md delete mode 100644 docs2/pages/documentations/value.md delete mode 100644 docs2/pages/faq/faq-eval-sql-net.md delete mode 100644 docs2/pages/faq/faq-general.md delete mode 100644 docs2/pages/faq/faq-installation.md delete mode 100644 docs2/pages/faq/faq-license.md delete mode 100644 docs2/pages/faq/faq.md delete mode 100644 docs2/pages/faq/issue-tracker.md delete mode 100644 docs2/pages/getting-started/_sidebar.md delete mode 100644 docs2/pages/getting-started/arithmetic-expressions.md delete mode 100644 docs2/pages/getting-started/licensing.md delete mode 100644 docs2/pages/getting-started/overview.md delete mode 100644 docs2/pages/getting-started/regular-expressions.md delete mode 100644 docs2/pages/getting-started/split-text.md delete mode 100644 docs2/pages/getting-started/tutorial-introduction.md delete mode 100644 docs2/pages/site/contact-us.md delete mode 100644 docs2/pages/site/download.md delete mode 100644 docs2/pages/site/pricing.md delete mode 100644 docs2/pages/troubleshooting/_sidebar.md delete mode 100644 docs2/pages/troubleshooting/problems.md delete mode 100644 docs2/pages/troubleshooting/sql-server-eval.md delete mode 100644 docs2/pages/troubleshooting/sql-server-file-operation.md delete mode 100644 docs2/pages/troubleshooting/sql-server-function.md delete mode 100644 docs2/pages/troubleshooting/sql-server-regex.md delete mode 100644 docs2/pages/troubleshooting/trial.md diff --git a/docs/404.md b/docs/404.md deleted file mode 100644 index 48596b1..0000000 --- a/docs/404.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -permalink: /404.html ---- - -
-Oops! The page has moved, or the link is broken. - -Let us know how you landed on this page, and we will try to fix the link: info@zzzprojects.com - -Go to Home diff --git a/docs/CNAME b/docs/CNAME deleted file mode 100644 index 1b5168c..0000000 --- a/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -eval-sql.net diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index e452dbb..0000000 --- a/docs/_config.yml +++ /dev/null @@ -1,17 +0,0 @@ -highlighter: rouge -gems: - - jekyll-sitemap -ga: "UA-55584370-4" -encoding: "utf-8" -defaults: - - - scope: - path: "" - values: - layout: "default" - - - scope: - path: "" - type: "pages" - values: - last_modified_at: "2017-12-02" diff --git a/docs/_data/meta.csv b/docs/_data/meta.csv deleted file mode 100644 index 4b25958..0000000 --- a/docs/_data/meta.csv +++ /dev/null @@ -1,33 +0,0 @@ -permalink,title,meta-description,meta-keywords,h1,h2,nagivation,template -index,Learn how to use Eval SQL.NET with Tutorials & Examples using C# syntax.,Learn how to use Eval SQL.NET with Tutorials & Examples using C# syntax.,,,,,full -/404.html,Page Moved,Page Moved,,Page Moved,,,container-h1 -download,Download,Download,,Download,,no,full-h1 -pricing,Purchase,Purchase,,Purchase,,no,full-h1 -contact-us,Contact Us,Contact Us,,Contact Us,,no,full-h1 -tutorials,Tutorials,Tutorials,,Tutorials,,,container-h1 -overview,Overview,Overview,,Overview,,, -requirements,Requirements,Requirements,,Requirements,,, -installing,Installing,Installing,,Installing,,, -upgrading,Upgrading,Upgrading,,Upgrading,,, -licensing,Licensing,Licensing,,Licensing,,, -arithmetic-expressions,Arithmetic Expressions,Arithmetic Expressions,,Arithmetic Expressions,,, -split-text,Split Text,Split Text,,Split Text,,, -regular-expressions,Reqular Expressions,Reqular Expressions,,Reqular Expressions,,, -api,API,API,,API,,, -eval,Eval,Eval,,Eval,,, -value,Value,Value,,Value,,, -options,Options,Options,,Options,,, -configuration,Configuration,Configuration,,Configuration,,, -articles,Articles,Articles,,Articles,,, -faq,FAQ,FAQ,,FAQ,,, -issue-tracker,Issue Tracker,Issue Tracker,,Issue Tracker,,, -faq-general,FAQ - General,FAQ - General,,FAQ - General,,, -faq-installation,FAQ - Installation,FAQ - Installation,,FAQ - Installation,,, -faq-license,FAQ - License,FAQ - License,,FAQ - License,,, -faq-eval-sql-net,FAQ - Eval SQL.NET,FAQ - Eval SQL.NET,,FAQ - Eval SQL.NET,,, -problems,Problems,Problems,,Problems,,, -sql-server-function,SQL Server Function (UDF),SQL Server Function (UDF),,SQL Server Function (UDF),,, -sql-server-regex,SQL Server Regex,SQL Server Regex,,SQL Server Regex,,, -sql-server-file-operation,SQL Server File Operation,SQL Server File Operation,,SQL Server File Operation,,, -sql-server-eval,SQL Server Eval,SQL Server Eval,,SQL Server Eval,,, -trial,Trial,Trial,,Trial,,, diff --git a/docs/_includes/_global_variable.html b/docs/_includes/_global_variable.html deleted file mode 100644 index caee1f8..0000000 --- a/docs/_includes/_global_variable.html +++ /dev/null @@ -1,21 +0,0 @@ -{% if page.path contains "tutorials.md" %} - {% assign is_context_home = true; %} - {% assign is_context_home_css_active = "active"; %} -{% elsif page.path contains "/tutorials/" %} - {% assign is_context_tutorials = true; %} - {% assign is_context_tutorials_css_active = "active"; %} -{% elsif page.path contains "/api/" %} - {% assign is_context_api = true; %} - {% assign is_context_api_css_active = "active"; %} -{% elsif page.path contains "/faq/" %} - {% assign is_context_faq = true; %} - {% assign is_context_faq_css_active = "active"; %} -{% elsif page.path contains "/problems/" %} - {% assign is_context_problems = true; %} - {% assign is_context_problems_css_active = "active"; %} -{% endif %} -{% for num in (0..site.data.meta.size) %} - {% if site.data.meta[num].permalink == page.permalink %} - {% assign meta_index = num %} - {% endif %} -{% endfor %} \ No newline at end of file diff --git a/docs/_includes/aside.html b/docs/_includes/aside.html deleted file mode 100644 index 2bd47c2..0000000 --- a/docs/_includes/aside.html +++ /dev/null @@ -1,87 +0,0 @@ -{% if page.path contains "/tutorials/" %} -
-
-

Tutorials

-
-
- -

Getting Started

- - -

Tutorials

- - -
-
- -{% elsif page.path contains "/api/" %} -
-
-

API

-
-
- - -
-
- -{% elsif page.path contains "/articles/" %} -
- -
- -{% elsif page.path contains "/faq/" %} -
-
-

FAQ

-
-
- -

Getting Help

- - -

FAQ

- - -
-
- -{% elsif page.path contains "/problems/" %} -
-
-

Problems

-
- -
- -{% endif %} diff --git a/docs/_includes/component-try-it.html b/docs/_includes/component-try-it.html deleted file mode 100644 index 46e59ce..0000000 --- a/docs/_includes/component-try-it.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/_includes/infozzzprojects-email.html b/docs/_includes/infozzzprojects-email.html deleted file mode 100644 index c57c078..0000000 --- a/docs/_includes/infozzzprojects-email.html +++ /dev/null @@ -1 +0,0 @@ -info@zzzprojects.com diff --git a/docs/_includes/layout-angle-begin.html b/docs/_includes/layout-angle-begin.html deleted file mode 100644 index 44e6adf..0000000 --- a/docs/_includes/layout-angle-begin.html +++ /dev/null @@ -1,3 +0,0 @@ -
-
-
\ No newline at end of file diff --git a/docs/_includes/layout-angle-end.html b/docs/_includes/layout-angle-end.html deleted file mode 100644 index 1deaf5e..0000000 --- a/docs/_includes/layout-angle-end.html +++ /dev/null @@ -1,5 +0,0 @@ -
-
-
-
-
\ No newline at end of file diff --git a/docs/_includes/site-footer.html b/docs/_includes/site-footer.html deleted file mode 100644 index 1ad94de..0000000 --- a/docs/_includes/site-footer.html +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/docs/_includes/site-header-nav-context.html b/docs/_includes/site-header-nav-context.html deleted file mode 100644 index 3f7d6ff..0000000 --- a/docs/_includes/site-header-nav-context.html +++ /dev/null @@ -1,25 +0,0 @@ - \ No newline at end of file diff --git a/docs/_includes/site-header-nav-md.html b/docs/_includes/site-header-nav-md.html deleted file mode 100644 index dd5d78e..0000000 --- a/docs/_includes/site-header-nav-md.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - \ No newline at end of file diff --git a/docs/_includes/site-header-nav-site.html b/docs/_includes/site-header-nav-site.html deleted file mode 100644 index c318f45..0000000 --- a/docs/_includes/site-header-nav-site.html +++ /dev/null @@ -1,46 +0,0 @@ - \ No newline at end of file diff --git a/docs/_includes/site-products.html b/docs/_includes/site-products.html deleted file mode 100644 index 661b745..0000000 --- a/docs/_includes/site-products.html +++ /dev/null @@ -1,41 +0,0 @@ -
- -
\ No newline at end of file diff --git a/docs/_includes/template-example.html b/docs/_includes/template-example.html deleted file mode 100644 index 79c41c0..0000000 --- a/docs/_includes/template-example.html +++ /dev/null @@ -1,7 +0,0 @@ -

-{% if include.title == null %} - Example -{% else %} - {{ include.title }} -{% endif %} -

diff --git a/docs/_includes/template-exception-cause.html b/docs/_includes/template-exception-cause.html deleted file mode 100644 index 3cae9de..0000000 --- a/docs/_includes/template-exception-cause.html +++ /dev/null @@ -1 +0,0 @@ -This error can be caused for the following reasons: diff --git a/docs/_includes/template-exception.html b/docs/_includes/template-exception.html deleted file mode 100644 index 8285735..0000000 --- a/docs/_includes/template-exception.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/docs/_includes/template-execute-thrown.html b/docs/_includes/template-execute-thrown.html deleted file mode 100644 index 9ee2a4a..0000000 --- a/docs/_includes/template-execute-thrown.html +++ /dev/null @@ -1 +0,0 @@ -You execute the method {{ include.methodName }}, and the following error is thrown: diff --git a/docs/_includes/template-h1.html b/docs/_includes/template-h1.html deleted file mode 100644 index 572af7d..0000000 --- a/docs/_includes/template-h1.html +++ /dev/null @@ -1,16 +0,0 @@ -
-
-
-
-

- {{site.data.meta[meta_index].h1}} -

- {% if site.data.meta[meta_index].h2 != null %} -

{{ site.data.meta[meta_index].h2 }}

- {% endif %} -
-
-
-
-
-
diff --git a/docs/_includes/under-construction.html b/docs/_includes/under-construction.html deleted file mode 100644 index a6c8219..0000000 --- a/docs/_includes/under-construction.html +++ /dev/null @@ -1,3 +0,0 @@ -This page is under construction. - -We hope to complete to finish to rewrite EFE tutorials at the end of November. \ No newline at end of file diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html deleted file mode 100644 index 5fc7e0d..0000000 --- a/docs/_layouts/default.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - {% include _global_variable.html %} - - - {{ site.data.meta[meta_index].title }} - - - - - - - - - - - - - - - - -{% if site.data.meta[meta_index].template == "full" %} - - - - {% include site-products.html %} - -
- {{ content }} -
-{% elsif site.data.meta[meta_index].template == "full-h1" %} - - - {% include site-products.html %} - {% include template-h1.html %} -
- {{ content }} -
-{% elsif site.data.meta[meta_index].template == "container-h1" %} -
-
- {% include site-header-nav-site.html %} - {% include site-header-nav-context.html %} - {% include site-header-nav-md.html %} -
-
- - {% include site-products.html %} - {% include template-h1.html %} -
- {{ content }} -
-{% else %} - -
-
- {% include site-header-nav-site.html %} - {% include site-header-nav-context.html %} - {% include site-header-nav-md.html %} -
-
- - {% include site-products.html %} - {% include template-h1.html %} -
-
-
-
- {{ content }} -
-
-
- -
-
-
- -{% endif %} - -{% include site-footer.html %} - -
- - - - - - - - - - - - - - - diff --git a/docs/_sass/card-layout-z1.scss b/docs/_sass/card-layout-z1.scss deleted file mode 100644 index 112b215..0000000 --- a/docs/_sass/card-layout-z1.scss +++ /dev/null @@ -1,41 +0,0 @@ -.card-layout-z1 { - border: 1px solid #000; - box-shadow: 5px 5px 5px #000; - border-radius: 0; -} -.card-layout-z1 .card-body { - border-radius: 0; - padding-left: 20px; -} -.card-layout-z1 .card-header { - border-radius: 0 !important; - background: rgb(204, 0, 0); - background: -webkit-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -o-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -moz-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - color: #fff; - padding-left: 20px; -} -.card-layout-z1 h2 { - padding: 5px 0; -} -.card-layout-z1 h3:not(:first-child) { - margin-top: 15px; -} -.card-layout-z1 ul { - padding-left: 20px; -} -.card-layout-z1 li { - list-style: none; - padding: 5px 0; -} -.card-layout-z1 li .fa { - font-size: 24px; - position: relative; - top: 5px; -} - -.card-layout-z1 a { - color: #c00; -} \ No newline at end of file diff --git a/docs/_sass/card-layout-z2.scss b/docs/_sass/card-layout-z2.scss deleted file mode 100644 index 0d1af7d..0000000 --- a/docs/_sass/card-layout-z2.scss +++ /dev/null @@ -1,26 +0,0 @@ -.card-layout-z2 { - background: #333; - background: -webkit-radial-gradient(circle, #333, #111); - background: -o-radial-gradient(circle, #333, #111); - background: -moz-radial-gradient(circle, #333, #111); - background: radial-gradient(circle, #333, #111); - color: #fff; - overflow: hidden; - border: 0; - text-align: center; - box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.3); -} - -.card-layout-z2 .card-header { - margin-top: 30px; - margin-bottom: 50px; - background: rgb(204, 0, 0); - background: -webkit-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -o-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -moz-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); -} - -.card-layout-z2 .card-header a { - color: #fff; -} \ No newline at end of file diff --git a/docs/_sass/console.scss b/docs/_sass/console.scss deleted file mode 100644 index e8437ac..0000000 --- a/docs/_sass/console.scss +++ /dev/null @@ -1,98 +0,0 @@ -.language-csharp .c1 { - color: #008000; -} -.language-csharp .nf { - color: #c00; -} - -.card-code { - border: 0; - border-radius: 0; -} -.card-code .card-header { - border: 0; - border-radius: 0; - font-size: 24px; -} - -.card-code-dark-inverse { - box-shadow: 10px 10px grey; - background: #fff; -} -.card-code-dark-inverse .card-header { - background: #777; - background: -webkit-radial-gradient(circle, #777, #444); - background: -o-radial-gradient(circle, #777, #444); - background: -moz-radial-gradient(circle, #777, #444); - background: radial-gradient(circle, #777, #444); - color: #fff; - text-shadow: 2px -1px rgba(0, 0, 0, 0.7); -} -.card-code-light { - box-shadow: 10px 10px grey; - background-color: rgba(255, 255, 255, 1); - background: -webkit-radial-gradient(circle, #fff, #fff, #ccc); - background: -o-radial-gradient(circle, #fff, #fff, #ccc); - background: -moz-radial-gradient(circle, #fff, #fff, #ccc); - background: radial-gradient(circle, #fff, #fff, #ccc); -} -.card-code-light .card-header { - background: #333; - background: -webkit-radial-gradient(circle, #333, #111); - background: -o-radial-gradient(circle, #333, #111); - background: -moz-radial-gradient(circle, #333, #111); - background: radial-gradient(circle, #333, #111); - color: #fff; - text-shadow: 2px -1px rgba(0, 0, 0, 0.7); -} - -article h3.example { - background: #777; - background: -webkit-radial-gradient(circle, #777, #444); - background: -o-radial-gradient(circle, #777, #444); - background: -moz-radial-gradient(circle, #777, #444); - background: radial-gradient(circle, #777, #444); - color: #fff; - text-shadow: 2px -1px rgba(0, 0, 0, 0.7); - padding: 10px; - margin-top: 20px; - margin-bottom: 0px; -} -article figure.highlight { - background: #333; - background: -webkit-radial-gradient(circle, #333, #222, #111); - background: -o-radial-gradient(circle, #333, #222, #111); - background: -moz-radial-gradient(circle, #333, #222, #111); - background: radial-gradient(circle, #333, #222, #111); - color: #fff; - padding: 10px; -} -article figure.highlight pre { - color: #d4d4d4; -} -article figure.highlight .language-csharp .nf { - /*color: #569cd6;*/ - color: #569cd6; -} -article2 h3.example { - background: #333; - background: -webkit-radial-gradient(circle, #333, #111); - background: -o-radial-gradient(circle, #333, #111); - background: -moz-radial-gradient(circle, #333, #111); - background: radial-gradient(circle, #333, #111); - color: #fff; - text-shadow: 2px -1px rgba(0, 0, 0, 0.7); - padding: 10px; - margin-top: 20px; - margin-bottom: 0px; -} -article2 figure.highlight { - background: #ccc; - background: -webkit-radial-gradient(circle, #fff, #fff, #ccc); - background: -o-radial-gradient(circle, #fff, #fff, #ccc); - background: -moz-radial-gradient(circle, #fff, #fff, #ccc); - background: radial-gradient(circle, #fff, #fff, #ccc); - padding: 10px; -} - - diff --git a/docs/_sass/hero.scss b/docs/_sass/hero.scss deleted file mode 100644 index 09163e2..0000000 --- a/docs/_sass/hero.scss +++ /dev/null @@ -1,87 +0,0 @@ -.hero { - background: #333; - background: -webkit-radial-gradient(circle, #333, #111); - background: -o-radial-gradient(circle, #333, #111); - background: -moz-radial-gradient(circle, #333, #111); - background: radial-gradient(circle, #333, #111); - color: #fff; - padding: 60px 0; - min-height: 800px; -} -.hero .hero-header { - background-image: url('/images/logo256X256-opacity.png'); - background-size: 100%; - background-repeat: no-repeat; - background-position: center; -} -.hero .hero-header h1 { - margin-top: 60px; - margin-bottom: 40px; -} -.hero .hero-header h1 .display-1 { - font-size: 9rem; - font-weight: 700; -} -.hero .hero-header .download-count .item-text { - color: #888; - font-size: 1.2rem; - margin-top: 30px; -} -.hero .hero-examples .row:first-child { - padding-bottom: 30px; -} -.hero .hero-examples h5 { - background: rgb(204, 0, 0); - background: -webkit-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -o-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -moz-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - border-radius: 50%; - font-size: 20px; - font-weight: 700; - height: 140px; - width: 140px; - text-align: center; - padding: 40px 0px; - margin: 0; - text-shadow: 2px -1px rgba(0, 0, 0, 0.7); -} -.hero .hero-examples .hero-arrow img{ - width: 90px; -} -.hero .hero-examples .hero-arrow-ltr { - text-align: right; -} -.hero .hero-examples .hero-arrow-rtl img{ - transform: scaleX(-1); -} -@media (max-width: 575px) { - .hero .hero-header .download-count img { - width: 350px; - } -} -@media (max-width: 991px) { - .hero .hero-header { - text-align: center; - } - .hero .hero-header .download-count img { - width: 350px; - } - .hero .hero-examples h5 { - margin: auto; - } - .hero .hero-examples .hero-arrow { - display: none; - } - .hero .hero-examples h5 { - margin-bottom: 20px; - } - .hero .hero-examples .row:last-child { - margin-top: 40px; - } -} -@media (max-width: 1199px) { - .hero .hero-header .download-count img { - width: 350px; - } -} \ No newline at end of file diff --git a/docs/_sass/highlight.scss b/docs/_sass/highlight.scss deleted file mode 100644 index d90d3f1..0000000 --- a/docs/_sass/highlight.scss +++ /dev/null @@ -1,53 +0,0 @@ -.highlight .k { color: #0000ff; font-weight: normal } -.highlight .nb { color: #0000ff; } -.highlight .nf { color: #c00; font-weight: 700;} -.highlight .c1 { color: #008000;} -.highlight .cm { color: #008000;} -.highlight .o { font-weight: normal;} - -pre { - counter-reset: line-numbering; - border: solid 1px #d9d9d9; - border-radius: 0; - background: #fff; - padding: 15; - line-height: 23px; - margin-bottom: 30px; - white-space: pre; - overflow-x: auto; - word-break: inherit; - word-wrap: inherit; -} - -pre a::before { - content: counter(line-numbering); - counter-increment: line-numbering; - padding-right: 1em; - width: 25px; - text-align: right; - opacity: 0.7; - display: inline-block; - color: #aaa; - background: #eee; - margin-right: 16px; - padding: 2px 10px; - font-size: 13px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -pre a:first-of-type::before { - padding-top: 10px; -} - -pre a:last-of-type::before { - padding-bottom: 10px; -} - -pre a:only-of-type::before { - padding: 10px; -} diff --git a/docs/_sass/highlight2.scss b/docs/_sass/highlight2.scss deleted file mode 100644 index 16358be..0000000 --- a/docs/_sass/highlight2.scss +++ /dev/null @@ -1,6 +0,0 @@ -.highlight .k { color: #0000ff; font-weight: normal } -.highlight .nb { color: #0000ff; } -.highlight .nf { color: #c00; font-weight: 700;} -.highlight .c1 { color: #008000;} -.highlight .cm { color: #008000;} -.highlight .o { font-weight: normal;} \ No newline at end of file diff --git a/docs/_sass/page-index.scss b/docs/_sass/page-index.scss deleted file mode 100644 index 1ede69f..0000000 --- a/docs/_sass/page-index.scss +++ /dev/null @@ -1,131 +0,0 @@ -.featured { - padding: 60px 0; -} -.featured h2 { - font-size: 3rem; - margin-bottom: 30px; -} -.featured .left { - font-size: 1.25rem; -} -.featured .left ul { - padding-left: 15px; -} -.featured .left ul li { - list-style: none; - padding: 5px 0; -} -.featured .left ul li .fa { - position: relative; - top: 3px; -} -.featured .right .table { - box-shadow: 0 10px 10px 0 rgba(0, 0, 0, 0.4); -} -.featured .right .text-muted { - font-style: italic; -} -.testimonials { - margin: 60px 0; -} -.testimonials .container { - padding-top: 80px; - padding-bottom: 40px; -} -.testimonials .container h2 { - font-size: 3rem; - margin-bottom: 30px; - text-align: center; -} -.testimonials .container blockquote { - font-size: 1.25rem; -} -.testimonials .container blockquote a { - color: #c00; -} -.testimonials .container .more { - text-align: center; - padding: 30px 0; -} - -.features h2 { - font-size: 3rem; - margin-bottom: 30px; -} -.features hr { - margin: 60px 0; -} -.features .more-info { - padding-top: 40px; - padding-bottom: 40px; -} -.features .more { - text-align: center; - margin-top: 120px; - margin-bottom: 40px; -} - -#testimonials { - background: transparent; - border: 0; - padding: 125px 0; -} -.main { - overflow-x: hidden; -} -.header-angle { - transform:rotate(4deg); - background: #333; - background: -webkit-radial-gradient(circle, #333, #111); - background: -o-radial-gradient(circle, #333, #111); - background: -moz-radial-gradient(circle, #333, #111); - background: radial-gradient(circle, #333, #111); - box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.3); - width:110%; - left:-5%; - top: 30px; - position: relative; -} -/* -.header-angle h1 { - font-size: 5rem; - position: relative; - text-align: center; - vertical-align: middle; - height: 225px; - line-height: 225px; - margin-bottom: 0px; -} -.header-angle h2 { - font-size: 3rem; - position: relative; - text-align: center; - vertical-align: middle; - margin-bottom: 0px; - top: -50px; -}*/ -.header-angle .header-angle-inner { - color: #fff; - transform:rotate(-4deg); -} -.header-angle .top-triangle { - position: absolute; - border-style: solid; - border-width: 200px 600px 0 0; - width: 600px; - border-color: #c00 transparent; -} -.header-angle .bottom-triangle-outer { - margin-right: 500px; - position: relative; -} - -.header-angle .bottom-triangle { - left: 100%; - top: -200px; - border-style: solid; - border-width: 0 0 200px 500px; - border-style: solid; - border-color: #c00 transparent; - position: absolute; -} \ No newline at end of file diff --git a/docs/_sass/scroll-to-top.scss b/docs/_sass/scroll-to-top.scss deleted file mode 100644 index a51feef..0000000 --- a/docs/_sass/scroll-to-top.scss +++ /dev/null @@ -1,45 +0,0 @@ -#scroll-to-top { - position: fixed; - bottom: 60px; - right: 20px; - background: rgb(0, 0, 0); - background: rgba(0, 0, 0, 0.7); - width: 50px; - height: 50px; - text-decoration: none; - -webkit-border-radius: 35px; - -moz-border-radius: 35px; - border-radius: 35px; - display: none; - -webkit-transition: all 0.3s linear; - -moz-transition: all 0.3s ease; - -ms-transition: all 0.3s ease; - -o-transition: all 0.3s ease; - transition: all 0.3s ease; - z-index:99999; -} -#scroll-to-top i { - color: #fff; - margin: 0; - position: relative; - top: 7px; - font-size: 24px; - -webkit-transition: all 0.3s ease; - -moz-transition: all 0.3s ease; - -ms-transition: all 0.3s ease; - -o-transition: all 0.3s ease; - transition: all 0.3s ease; - text-align: center; - width: 100%; - font-size: 30px; -} -#scroll-to-top:hover { - background: rgba(0, 0, 0, 0.9); -} - -@media (max-width: 575px) { - #scroll-to-top { - bottom: 10px; - right: 20px; - } -} diff --git a/docs/_sass/section-faq.scss b/docs/_sass/section-faq.scss deleted file mode 100644 index 426cca2..0000000 --- a/docs/_sass/section-faq.scss +++ /dev/null @@ -1,10 +0,0 @@ -.section-faq hr { - margin: 60px 0; -} -.section-faq h2 { - font-size: 3rem; - margin: 30px 0; -} -.section-faq a { - color: orange; -} \ No newline at end of file diff --git a/docs/_sass/site-footer.scss b/docs/_sass/site-footer.scss deleted file mode 100644 index 685214c..0000000 --- a/docs/_sass/site-footer.scss +++ /dev/null @@ -1,39 +0,0 @@ -.site-footer { - margin-top: 60px; -} -.site-footer .fixed-bottom { - background: -moz-linear-gradient(top, #333, #222); - background: -webkit-linear-gradient(top, #333, #222); - background: -ms-linear-gradient(top, #333, #222); - background: -o-linear-gradient(top, #333, #222); - background: linear-gradient(top, #333, #222); - color: #666; - padding-top: 5px; - padding-bottom: 5px; -} -.site-footer .footer-site-copyright { - padding-top: 4px; -} -.site-footer a { - color: #777; -} -.site-footer a:hover { - color: #777; - opacity: 0.7; - text-decoration: none; - transition: all 0.4s ease-in-out 0s; -} -.site-footer .footer-site-social a { - font-size: 24px; - padding: 0 10px; -} -@media (max-width: 61em) { - .site-footer { - padding: 20px 0; - } -} -@media (max-width: 575px) { - .site-footer { - display: none; - } -} \ No newline at end of file diff --git a/docs/_sass/site-header-nav-context.scss b/docs/_sass/site-header-nav-context.scss deleted file mode 100644 index 34240e0..0000000 --- a/docs/_sass/site-header-nav-context.scss +++ /dev/null @@ -1,45 +0,0 @@ -/* top-nav-lg-context */ -.site-header .nav-context { - background: #333; - background: -webkit-radial-gradient(circle, #333, #111); - background: -o-radial-gradient(circle, #333, #111); - background: -moz-radial-gradient(circle, #333, #111); - background: radial-gradient(circle, #333, #111); -} -.site-header .nav-context nav { - height:40px; - padding-bottom:0px; - padding-top:0px -} -.site-header .nav-context nav li { - font-size:20px; - text-transform:uppercase -} -.site-header .nav-context nav li.active { - background: rgb(204, 0, 0); - background: -webkit-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -o-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -moz-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); -} -.site-header .nav-context nav li .nav-link { - padding-left:1rem !important; - padding-right:1rem !important -} -.site-header .nav-context nav li .nav-link .fa-home { - font-size:24px -} -.site-header .nav-context nav li a.nav-link:hover { - color:rgba(255, 255, 255, 1) !important; -} - -@media (max-width: 991px) { - .top-nav-lg.top-nav-dual { - display: none; - } -} -@media (min-width: 992px) { - .top-nav-lg.top-nav-dual { - display: ""; - } -} \ No newline at end of file diff --git a/docs/_sass/site-header-nav-md.scss b/docs/_sass/site-header-nav-md.scss deleted file mode 100644 index dbe7342..0000000 --- a/docs/_sass/site-header-nav-md.scss +++ /dev/null @@ -1,36 +0,0 @@ -.site-header .nav-md { - background-color: white; - box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.3); - position:fixed; - top:0; - right:0; - left:0; - z-index: 1030; -} -.site-header .nav-md .header-brand a { - color: #000; -} -.site-header .nav-md .top-nav-md-menu { - text-align: center; - padding-bottom: 20px; -} -.site-header .nav-md .top-nav-md-menu a.nav-link { - color: #000; -} -.site-header .nav-md .top-nav-md-menu .nav-item a .fa { - margin-right: 5px; -} -.site-header .nav-md .top-nav-md-menu .nav-item a .fa-angle-right{ - margin-left: 5px; - margin-right: 0; -} -@media (max-width: 991px) { - .site-header .nav-md { - display: ""; - } -} -@media (min-width: 992px) { - .site-header .nav-md { - display: none; - } -} \ No newline at end of file diff --git a/docs/_sass/site-header-nav-site.scss b/docs/_sass/site-header-nav-site.scss deleted file mode 100644 index 31ccfa5..0000000 --- a/docs/_sass/site-header-nav-site.scss +++ /dev/null @@ -1,86 +0,0 @@ -/* top-nav-lg-site */ -.site-header .nav-site .navbar-brand { - padding-bottom: 0; - padding-top: 0; -} -.site-header .nav-site .navbar-nav .nav-item a.nav-link { - color: #000; - font-size: 18px; - font-weight: 300; -} -.site-header .nav-site .navbar-nav .nav-item a.nav-link:hover { - color: rgba(204, 0, 0, 0.8); -} -.site-header .nav-site .navbar-nav .nav-item a .fa { - margin-right: 5px; -} -.site-header .nav-site .navbar-nav .nav-item a .fa-angle-right{ - margin-left: 5px; - margin-right: 0; -} -@media print { - .site-header .nav-site { - position:relative; - } -} -@media (max-width: 991px) { - .site-header .nav-site .navbar-brand img { - height: 60px; - } - .site-header .nav-site .navbar-nav { - padding: 1em 0; - } - .site-header .nav-site .navbar-nav .nav-item { - border-top: 1px solid rgba(0, 0, 0, 0.3); - text-align: center; - padding: 0.5em 1em; - } - .site-header .nav-site .navbar-nav .nav-item-download { - padding-top: 1em; - } -} -@media (max-width: 575px) { - .site-header .nav-site .navbar-brand { - font-size: 0.8rem; - } - .site-header .nav-site .navbar-brand img { - height: 36px; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .site-header .nav-site .navbar-nav .nav-item:not(.nav-item-download) i { - display: none; - } -} -@media (min-width: 992px) { - .site-header .nav-site { - padding-bottom: 0; - padding-top: 0; - } - .site-header .nav-site .navbar-brand img { - height: 80px; - } - .site-header .nav-site .navbar-nav .nav-item { - padding-left: 1em; - padding-right: 1em; - } - .site-header .nav-site .navbar-nav .nav-item a.nav-link { - position: relative; - text-decoration: none; - } - .site-header .nav-site a.nav-link::after { - border-bottom: 2px solid #c00; - bottom: 0; - content: ""; - left: 0; - position: absolute; - transition: all 0.5s ease 0s; - width: 0; - } - .site-header .nav-site a.nav-link:hover::after { - width: 100%; - } - .site-header .nav-site .navbar-nav .nav-item { - border-left: 1px solid rgba(0, 0, 0, 0.3); - } -} \ No newline at end of file diff --git a/docs/_sass/site-header.scss b/docs/_sass/site-header.scss deleted file mode 100644 index 622c163..0000000 --- a/docs/_sass/site-header.scss +++ /dev/null @@ -1,22 +0,0 @@ -.site-header.page { - margin-top: 100px; -} -.site-header .site-header-inner { - background-color: white; - box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.3); - position:fixed; - top:0; - right:0; - left:0; - z-index: 1030; -} -@media (max-width: 991px) { - .site-header.post { - height: 80px; - } -} -@media (min-width: 992px) { - .site-header.post { - height: 140px; - } -} \ No newline at end of file diff --git a/docs/_sass/site-products.scss b/docs/_sass/site-products.scss deleted file mode 100644 index 0c09a4b..0000000 --- a/docs/_sass/site-products.scss +++ /dev/null @@ -1,24 +0,0 @@ -.site-products { - padding: 30px 0; - text-align: center; -} -.site-products h3 { - color: #000; - font-size: 2.5rem; - text-decoration: underline; -} -.site-products ul { - list-style-type: none; - padding-left: 0px; -} -.site-products ul li { - padding: 7px 0; -} -.site-products a { - color: #c00; -} -@media (max-width: 991px) { - .site-products .breadcrumb { - display: block; - } -} \ No newline at end of file diff --git a/docs/css/master.scss b/docs/css/master.scss deleted file mode 100644 index 187fbac..0000000 --- a/docs/css/master.scss +++ /dev/null @@ -1,284 +0,0 @@ ---- ---- - -@import "site-header"; -@import "site-header-nav-context"; -@import "site-header-nav-md"; -@import "site-header-nav-site"; -@import "site-products"; -@import "site-footer"; -@import "section-faq"; -@import "console"; -@import "card-layout-z1"; -@import "card-layout-z2"; -@import "page-index"; -@import "hero"; -@import "scroll-to-top"; - -body { - overflow-x: hidden; -} -/* theme: z */ -.fa-check-square-o { - color: #449d44; -} -/* -@media (min-width: 1400px) { - .container { - max-width: 1340px; - } -} -*/ - -.main { - overflow-x: hidden; -} -.header-angle { - transform:rotate(4deg); - background: #333; - background: -webkit-radial-gradient(circle, #333, #111); - background: -o-radial-gradient(circle, #333, #111); - background: -moz-radial-gradient(circle, #333, #111); - background: radial-gradient(circle, #333, #111); - box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.3); - width:110%; - left:-5%; - top: 30px; - position: relative; -} - -.header-angle h1 { - font-size: 5rem; - position: relative; - text-align: center; - vertical-align: middle; - height: 175px; - line-height: 175px; - margin-bottom: 0px; -} -.header-angle h2 { - font-size: 3rem; - position: relative; - text-align: center; - vertical-align: middle; - margin-bottom: 0px; - top: -50px; -} -.header-angle .header-angle-inner { - color: #fff; - transform:rotate(-4deg); -} -.header-angle .top-triangle { - position: absolute; - border-style: solid; - border-width: 200px 600px 0 0; - width: 600px; - border-color: #c00 transparent; -} -.header-angle .bottom-triangle-outer { - margin-right: 500px; - position: relative; -} - -.header-angle .bottom-triangle { - left: 100%; - top: -200px; - border-style: solid; - border-width: 0 0 200px 500px; - border-style: solid; - border-color: #c00 transparent; - position: absolute; -} - -@media (max-width: 991px) { - .header-angle .top-triangle { - left: -150px; - } - .header-angle .bottom-triangle { - left: 150%; - } -} -@media (max-width: 575px) { - .header-angle h1 { - font-size: 3rem; - } - .header-angle .top-triangle { - display: none; - } - .header-angle .bottom-triangle { - display: none; - } -} - - -.layout-angle { - transform:rotate(4deg); - background: #333; - background: -webkit-radial-gradient(circle, #333, #111); - background: -o-radial-gradient(circle, #333, #111); - background: -moz-radial-gradient(circle, #333, #111); - background: radial-gradient(circle, #333, #111); - box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.3); - width:110%; - left:-5%; - top: 30px; - position: relative; -} -.layout-angle .layout-angle-inner { - color: #fff; - transform:rotate(-4deg); -} -.layout-angle .top-triangle { - position: absolute; - border-style: solid; - border-width: 200px 600px 0 0; - width: 600px; - border-color: #c00 transparent; -} -.layout-angle .bottom-triangle-outer { - margin-right: 500px; - position: relative; -} - -.layout-angle .bottom-triangle { - left: 100%; - top: -200px; - border-style: solid; - border-width: 0 0 200px 500px; - border-style: solid; - border-color: #c00 transparent; - position: absolute; -} - -@media (max-width: 991px) { - .layout-angle .top-triangle { - left: -150px; - } - .layout-angle .bottom-triangle { - left: 150%; - } -} -@media (max-width: 575px) { - .layout-angle h1 { - font-size: 3rem; - } - .layout-angle .top-triangle { - display: none; - } - .layout-angle .bottom-triangle { - display: none; - } -} - - - -.text-z { - color: #c00; -} -.btn-z { - background: rgb(204, 0, 0); - background: -webkit-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -o-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: -moz-radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - background: radial-gradient(circle, rgb(204, 0, 0), rgb(170, 0, 0), rgb(154, 0, 0)); - border-color: rgb(154, 0, 0); - box-shadow: 2px 2px 6px 0 rgba(0, 0, 0, 0.48); - color: #fff; - font-size: 20px; - font-weight: 600; - padding: 10px 30px; - text-shadow: 2px -1px rgba(0, 0, 0, 0.7); -} -.btn-z:hover { - /*animation: 0.3s ease 0s alternate none infinite running bounce;*/ - background: rgba(0, 0, 0, 0) none repeat scroll 0 0; - border: 1px solid #cc0000; - color: #cc0000; - text-shadow: 2px -1px rgba(0, 0, 0, 0); -} -/* general */ -.btn-xl { - border-radius: 0.3rem; - font-size: 2rem; - line-height: 1.75; - padding: 0.5rem 1rem; -} - -.navbar-item-divider { - height: 0; - margin: .5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; -} - -.col-lg-9 .download-count2 img { - width: 250px; -} -article h1 { - margin-top: 20px; - margin-bottom: 20px; - font-size: 48px; -} - -article h2 { - margin-top: 15px; - margin-bottom: 15px; - letter-spacing: 1px; - color: #000; - text-shadow: 2px 2px 3px #E5EFF5; -} - -article h3 { - font-size: 1.3rem; - margin-top: 20px; - margin-bottom: 20px; -} - -article h4 { - font-size: 1.1rem; - margin-top: 20px; - margin-bottom: 10px; -} -article h1 { - color: #1a242f; - letter-spacing: 1px; - text-shadow: 2px 2px 3px #e5eff5; - margin-top: 30px; - margin-bottom: 20px; -} -article h2 { - padding-bottom: 12px; - padding-top: 15px; -} - -/* -aside .card { - font-size: 14px; - margin-top: 20px; - box-shadow: 10px 10px 10px -10px #333; - border-radius: 0px; -} -aside .card .card-block { - padding: 10px; - padding-top: 0px; -} -aside .card h3 { - font-size: 22px; -} -aside .card h4 { - font-size: 18px; - margin-bottom: 5px; - margin-top: 10px; - font-weight: 100; - letter-spacing: 0.5px; -} -aside .card ul { - list-style-type: none; - padding-left: 15px; - margin-bottom: 5px; -} - -aside .card li { - padding: 2px 0; -} -*/ \ No newline at end of file diff --git a/docs/downloads/Eval-SQL.NET-Install.sql b/docs/downloads/Eval-SQL.NET-Install.sql deleted file mode 100644 index 9121d74..0000000 --- a/docs/downloads/Eval-SQL.NET-Install.sql +++ /dev/null @@ -1,175 +0,0 @@ -/* - * SETUP - * 1 - Replace '[DATABASE_NAME]' by the target database name - * 2 - Run the script - * - * FOR SQL Server 2017 - * - Disabling clr strict security is required. You can re-enable it after. - * - * For EXTERNAL_ACCESS && UNSAFE - * 1 - Uncomment ALTER DATABASE [DATABASE_NAME] SET TRUSTWORTHY ON - * 2- Uncomment either: - * - WITH PERMISSION_SET = EXTERNAL_ACCESS - * - WITH PERMISSION_SET = UNSAFE - */ - -USE [DATABASE_NAME] -GO - --- Required for: EXTERNAL_ACCESS && UNSAFE permission --- ALTER DATABASE [DATABASE_NAME] SET TRUSTWORTHY ON - -GO -EXEC sys.sp_configure N'show advanced options', N'1'; -RECONFIGURE; -GO -DECLARE @version VARCHAR(MAX) = @@VERSION - -IF @version LIKE '%Microsoft SQL Server 2017%' -BEGIN - EXEC sp_configure N'clr strict security', N'0'; - RECONFIGURE; -END -GO -sp_configure 'clr enabled', 1; -RECONFIGURE; -GO -EXEC sys.sp_configure N'show advanced options', N'0'; -RECONFIGURE; -GO - -BEGIN TRY; - BEGIN TRAN; - - /* - * UNINSTALL - */ - PRINT N'Uninstall old version...'; - IF OBJECT_ID('SQLNET_EvalResultSet') IS NOT NULL - BEGIN - DROP PROCEDURE SQLNET_EvalResultSet; - END; - - IF OBJECT_ID('SQLNET_Eval') IS NOT NULL - BEGIN - DROP PROCEDURE SQLNET_Eval; - END; - - IF OBJECT_ID('SQLNET_EvalTVF_1') IS NOT NULL - BEGIN - DROP FUNCTION SQLNET_EvalTVF_1; - END; - - IF OBJECT_ID('SQLNET_EvalTVF_2') IS NOT NULL - BEGIN - DROP FUNCTION SQLNET_EvalTVF_2; - END; - - IF OBJECT_ID('SQLNET_EvalTVF_3') IS NOT NULL - BEGIN - DROP FUNCTION SQLNET_EvalTVF_3; - END; - - IF OBJECT_ID('SQLNET_EvalTVF_4') IS NOT NULL - BEGIN - DROP FUNCTION SQLNET_EvalTVF_4; - END; - - IF OBJECT_ID('SQLNET_EvalTVF_5') IS NOT NULL - BEGIN - DROP FUNCTION SQLNET_EvalTVF_5; - END; - - IF OBJECT_ID('SQLNET_EvalTVF_5') IS NOT NULL - BEGIN - DROP FUNCTION SQLNET_EvalTVF_5; - END; - - IF OBJECT_ID('SQLNET_EvalTVF_String') IS NOT NULL - BEGIN - DROP FUNCTION SQLNET_EvalTVF_String; - END; - - IF TYPE_ID('SQLNET') IS NOT NULL - BEGIN - DROP TYPE SQLNET; - END; - - IF EXISTS ( SELECT 1 - FROM sys.assemblies - WHERE name = 'Z.Expressions.SqlServer.Eval' ) - BEGIN - DROP ASSEMBLY [Z.Expressions.SqlServer.Eval]; - END - - IF EXISTS ( SELECT 1 - FROM sys.assemblies - WHERE name = 'Z.Expressions.Compiler' ) - BEGIN - DROP ASSEMBLY [Z.Expressions.Compiler]; - END; - - /* - * INSTALL - */ - PRINT N'Install new version...' - - IF EXISTS ( SELECT 1 - FROM sys.configurations conf - WHERE conf.configuration_id = 1562 -- "clr enabled" - AND conf.value_in_use = 0 ) - BEGIN - EXEC(N'EXEC sp_configure ''clr enabled'', 1;'); - - EXEC(N'RECONFIGURE'); - -- EXEC(N'RECONFIGURE --WITH OVERRIDE'); -- Use this line instead if you receive the error: "ad hoc changes are not allowed" - END; - - CREATE ASSEMBLY [Z.Expressions.Compiler] - AUTHORIZATION [dbo] - FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C0103009A87605B0000000000000000E00022200B013000008E020000080000000000002EAC0200002000000000000000000010002000000002000004000000000000000400000000000000000003000002000000000000030040850000100000100000000010000010000000000000100000000000000000000000D8AB02005300000000C00200000600000000000000000000000000000000000000E002000C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000348C020000200000008E020000020000000000000000000000000000200000602E727372630000000006000000C002000006000000900200000000000000000000000000400000402E72656C6F6300000C00000000E002000002000000960200000000000000000000000000400000420000000000000000000000000000000010AC020000000000480000000200050020750100B8360100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013300200010200000100001102D001000001280100000A280200000A38E001000072010000700A38DF01000002D004000001280100000A280200000A38A5010000720F0000700A38BF01000002D005000001280100000A280200000A385D01000072190000700A389F01000002D006000001280100000A280200000A2C0B72230000700A388201000002D007000001280100000A280200000A2C0B722F0000700A386501000002D008000001280100000A280200000A2C0B72390000700A384801000002D009000001280100000A280200000A2C0B72450000700A382B01000002D00A000001280100000A280200000A2C0B72530000700A380E01000002D00B000001280100000A280200000A2C0B725B0000700A38F100000002D00C000001280100000A280200000A2C0B72650000700A38D400000002D00D000001280100000A280200000A2C0B726F0000700A38B700000002D00E000001280100000A280200000A2C0B727B0000700A389A00000002D00F000001280100000A280200000A2C0B72870000700A387D00000002D010000001280100000A280200000A2C0872950000700A2B6302D011000001280100000A280200000A2C022B0C2B1239A9FEFFFF3899FEFFFF72A50000700A2B3B02D012000001280100000A280200000A2C022B0C2B123961FEFFFF3851FEFFFF72B30000700A2B13026F0300000A0A2B0A3926FEFFFF3816FEFFFF062A0000001330010008000000010000111200284F0000062A1E02284F0000062A13300300300100000200001173070000060A0602380D010000060338CC000000067B020000046F0500000A72BD000070280600000A3884000000067B020000046F0500000A72D5000070280600000A2C0B72F1000070730700000A7A067B030000046F0500000A72C0010070280600000A2D17067B030000046F0500000A72D6010070280600000A2C0B72F0010070730700000A7A067B02000004280800000A2C0B72B9020070730700000A7A067B03000004280800000A2C022B092B122D913875FFFFFF720D030070730700000A7A7E0100000406FE0608000006730900000A6F0A00000A2D022B0C2B2F7D03000004382AFFFFFF7E01000004067B020000046F0B00000A067B030000046F0B00000A730C00000A6F0D00000A284E0000062D022B0C2B157D0200000438E9FEFFFF725F030070730700000A7A2A1E02280E00000A2A2E730F00000A80010000042A1E02280E00000A2AC6036F1000000A027B020000046F0B00000A280600000A2C17036F1100000A027B030000046F0B00000A280600000A2A162A000026020304281300000A2A00002A02030405281400000A2A00260203046F1500000A2A00001E026F1600000A2A1E026F1700000A2A1E02281800000A2A13300300470000000300001173150000060A06022B34067B05000004036F1900000A2B07072D022B052B260B2BF6031F186F1A00000A06FE0616000006731B00000A280100002B0B2B077D050000042BC5072A001E026F1D00000A2A1E026F1E00000A2A1E026F1F00000A2A1E026F2000000A2A133004002401000000000000732100000A25D004000001280100000A196F2200000A25D007000001280100000A1C6F2200000A25D005000001280100000A1A6F2200000A25D026000001280100000A1F106F2200000A25D010000001280100000A1F0F6F2200000A25D00F000001280100000A1F0E6F2200000A25D008000001280100000A1D6F2200000A25D00A000001280100000A1F096F2200000A25D00C000001280100000A1F0B6F2200000A25D001000001280100000A176F2200000A25D006000001280100000A1B6F2200000A25D00E000001280100000A1F0D6F2200000A25D011000001280100000A1F126F2200000A25D009000001280100000A1E6F2200000A25D00B000001280100000A1F0A6F2200000A25D00D000001280100000A1F0C6F2200000A80040000042A1E02280E00000A2A9A036F0300000A72A6040070280600000A2C12036F2300000A027B05000004280200000A2A162A001E02280E00000A2A3A02280E00000A02037D2400000A2A001E027B2400000A2A3A02280E00000A02037D2500000A2A001E027B2600000A2A2202037D2600000A2A000000B602282700000A2B1A02027B2500000A6F2800000A7D2900000A0217282A00000A2B042D022BE2027B2900000A2A00001E027B100000042A2202037D100000042A0000001E027B110000042A2202037D110000042A0000001E027B120000042A2202037D120000042A0000001E027B130000042A2202037D130000042A0000001E02280E00000A2A1B3002004D00000004000011732B00000A0A026F2C00000A0B2B19076F2D00000A2B0E0608A50A00001B6F2E00000A2B030C2BEF076F2F00000A2DDFDE190775290000012B07092C022B052B090D2BF6096F3000000ADC062A0000000110000002000D0025320019000000001B3002004D00000005000011733100000A0A026F3200000A0B2B19076F2D00000A2B0E0608742B0000016F3300000A2B030C2BEF076F2F00000A2DDFDE190775290000012B07092C022B052B090D2BF6096F3000000ADC062A0000000110000002000D0025320019000000001B3002002300000006000011733400000A0A02733500000A0B07066F3600000A26DE0A072C06076F3000000ADC062A000110000002000D000A17000A000000001B3004006700000007000011036F3700000A6F3800000A0A2B34066F2D00000A74310000012B240207046F3900000A6F3A00000A07056F3900000A6F3A00000A283B00000AFE0B00002B030B2BD9066F2F00000A2DC4DE190675290000012B07082C022B052B090C2BF6086F3000000ADC022A000110000002000C00404C0019000000001B3004006900000007000011036F3700000A6F3800000A0A2B36066F2D00000A74310000012B260207046F3900000A6F3A00000A07056F3900000A6F3A00000A0E04283C00000AFE0B00002B030B2BD7066F2F00000A2DC2DE190675290000012B07082C022B052B090C2BF6086F3000000ADC022A0000000110000002000C00424E0019000000001B3004006700000007000011036F3700000A6F3800000A0A2B34066F2D00000A74310000012B240207046F3900000A6F3A00000A07056F3900000A6F3A00000A6F3D00000AFE0B00002B030B2BD9066F2F00000A2DC4DE190675290000012B07082C022B052B090C2BF6086F3000000ADC022A000110000002000C00404C0019000000004A02178D11000001251603A2046F3E00000A2A00260203166F3E00000A2A000013300500580000000800001102120028310000060B72BE0400700372DA040070284000000A72EA040070284100000A284200000A077E15000004252D17267E14000004FE0637000006734300000A258015000004280200002B284500000A284200000A2A13300400F70100000900001172EE04007038BD000000026F4600000A38A000000007451A000000050000006701000010000000670100001B000000260000009A00000067010000A5000000B00000006701000067010000BB00000072010000FD000000670100000801000067010000670100006701000010010000180100006701000057010000670100005F010000386201000072F00400700A386201000072FE0400700A385701000072060500700A384C010000026F4700000A2C022B082B5D0B385AFFFFFF026F4800000A2C022B082B4B0A383DFFFFFF1B8D0100000125167218050070A22517026F4700000A8C07000001A2251872EA040070A22519026F4800000A8C07000001A2251A722A050070A2284900000A0A38E3000000722E0500700A38D8000000723E0500700A38CD000000724A0500700A38C200000072520500700A38B7000000725E050070026F4A00000A156A2E1E026F4A00000A20401F00006A3010026F4A00000A0C1202284B00000A2B057272050070722A050070284000000A0A3875000000727A0500700A386A000000729C0500700A2B6272AE0500700A2B5A72BE050070026F4A00000A156A2E1E026F4A00000A20401F00006A3010026F4A00000A0C1202284B00000A2B057272050070722A050070284000000A0A2B1B72D40500700A2B1372EC0500700A2B0B72F4050070730700000A7A062A00133005006D0000000A000011026F4C00000A6F4D00000A8D380000012B5603026F4C00000A6F4D00000A8D040000012B2E160B2B2D026F4C00000A076F4E00000A2B130607080350078F040000012832000006A22B030C2BEA0717580B2B03512BCF07026F4C00000A6F4D00000A32022B052BC10A2BA7062A00000013300400730100000B00001103163828010000026F4F00000A381001000007281800000A2B09026F5000000A0D2B030C2BF4084513000000D20000009F000000D20000000500000020000000D2000000120000005A000000D200000068000000D200000075000000D2000000820000004D0000003D00000030000000E80000008D00000038E30000000918735100000A0A38E7000000091F14735100000A0A38D9000000091F0C176A735200000A0A38C9000000091A735100000A0A38BC000000091B1F1216735300000A0A38AC000000091C735100000A0A389F000000091F10735100000A0A3891000000091E735100000A0A38840000000916735100000A0A3877000000091F0D735100000A0A2B6C091F0C026F5400000A6A735200000A0A2B5A09020728330000060A2B060B38EAFEFFFF062D022B082B425238D2FEFFFF091F0C026F5400000A6A735200000A0A0317522B27720C060070088C1B000001285500000A730700000A7A724206007007285500000A730700000A7A062A00133004006D0200000C00001104D00D00001B280100000A280200000A384C02000004D03D000001280100000A280200000A381E02000004D03E000001280100000A280200000A38DE01000004D00E00001B280100000A280200000A2D2404D03F000001280100000A280200000A2D1204D040000001280100000A280200000A2C15021F15036F5400000A6A735200000A0A38E101000004D041000001280100000A280200000A2C0E021F0E735100000A0A38C101000004D001000001280100000A280200000A2C0E021F17735100000A0A38A101000004D042000001280100000A280200000A2C0D0218735100000A0A388201000004D043000001280100000A280200000A2C0E021F14735100000A0A386201000004D044000001280100000A280200000A2C0D021A735100000A0A384301000004D045000001280100000A280200000A2C0D021C735100000A0A382401000004D046000001280100000A280200000A2C0E021F0E735100000A0A380401000004D047000001280100000A280200000A2C0E021F10735100000A0A38E400000004D048000001280100000A280200000A2C0D021E735100000A0A38C500000004D049000001280100000A280200000A2C0D0216735100000A0A38A600000004D04A000001280100000A280200000A2C0E021F09735100000A0A388600000004D04B000001280100000A280200000A2C10021B7E5600000A16735300000A0A2B6404D04C000001280100000A280200000A2C022B0C2B153A53FEFFFF3818FEFFFF021F0D735100000A0A2B3904D04D000001280100000A280200000A2C022B0C2B153A28FEFFFF38D8FDFFFF021F19735100000A0A2B0E140A2B0A3A0FFEFFFF38AAFDFFFF062A0000001B300200520000000D000011735700000A0A026F3700000A6F3800000A0B2B19076F2D00000A74310000012B0906086F5800000A2B030C2BF4076F2F00000A2DDFDE190775290000012B07092C022B052B090D2BF6096F3000000ADC062A0000011000000200120025370019000000002E733600000680140000042A1E02280E00000A2A5E7276060070036F5900000A032830000006285A00000A2A1B300100350000000E000011027B170000046F5B00000A0A2B081200285C00000A261200285D00000A2DEFDE0E1200FE161100001B6F3000000ADC72EE0400702A0000000110000002000C001521000E000000001B3006000C0200000F000011022B2B06067294060070196F5E00000A1C586F5F00000A0A06160672A2060070196F5E00000A6F6000000A0A2B030A2BD206178D0500000125161F2C9D6F6100000A7E1A000004252D17267E19000004FE063D000006736200000A25801A000004280300002B280400002B7E1B000004252D17267E19000004FE063E000006736400000A25801B000004280500002B7E1C000004252D17267E19000004FE063F000006736600000A25801C000004280600002B280700002B280800002B020272AC060070196F5E00000A6F5F00000A0B140C6F5B00000A13042B581204285C00000A130572BA060070110507284000000A130672DC060070736900000A130711076F6A00000A11061107736B00000A1308110828290000060CDE1811082C0711086F3000000ADC11072C0711076F3000000ADC1204285D00000A2D9FDE0E1204FE161100001B6F3000000ADC736C00000A0D086F3700000A6F3800000A13092B2B11096F2D00000A7431000001130A097210070070110A166F6D00000A6F3A00000A284200000A6F6E00000A11096F2F00000A2DCCDE1511097529000001130B110B2C07110B6F3000000ADC1D8D110000012516721A070070A2251772EA04007009284500000AA22518722A070070A2251902723A070070723E0700706F3D00000AA2251A7242070070A2251B72EA04007009284500000AA2251C729E070070A2286F00000A730700000A7A01340000020011010A1B010C000000000200FF002827010C000000000200D900653E010E0000000002005F0138970115000000001E02280E00000A2A2E733C00000680190000042A1E02280E00000A2A1E0373400000062A1E037B1F0000042A1E037B210000042A13300300BB0000001000001102736C00000A7D210000040238960000000372C0070070196F5E00000A15386E0000000372CA07007017282D0000062B520372C007007016282D0000062B44068E6918310B72CE070070730700000A7A068E6917330A0206169A7D1D0000042A0206169A7D1D00000406179A72DE0700701A6F5E00000A152E3702177D1F0000042B030A2BB90206179A7D1E0000042B04339E2B8E027B2100000472E20700706F6E00000A2B0A280E00000A3860FFFFFF0206179A7D1E0000042A00133003003F0000001100001128470000062B1828430000060A1200287000000A20330800002E022B062B0D2D1C2BE428450000061F642F11737100000A161F0F6F7200000A16FE012A162A001E02280E00000A2A1A7E240000042A001E0280240000042A1A7E250000042A001E0280250000042A1A7E270000042A001E0280270000042A1330010047000000120000117E280000046F7300000A2B2A066F5F0000062B121201287400000A2C1C066F5F0000060B2B030B2BEB1201287500000A2D022B052B0A0A2BD3066F5B0000062A17737600000A2A00133003005300000013000011287700000A026F7800000A0A737900000A066F7A00000A0B737B00000A0C160D2B1D0807098F0700000172EA070070287C00000A6F7D00000A2B0E0917580D09078E6932022B052BD9262BEF086F3A00000A2A00133003005300000013000011287E00000A287700000A026F7800000A0A066F7A00000A0B737B00000A0C160D2B1D0807098F0700000172EA070070287C00000A6F7D00000A2B0E0917580D09078E6932022B052BD9262BEF086F3A00000A2A001B3006006B02000014000011026F0B00000A38BB010000036F0B00000A38560100000216021F2D6F7F00000A6F6000000A383301000009178D0500000125161F3B9D6F6100000A169A130409178D0500000125161F3B9D6F6100000A179A13057356000006251104288000000A7D2A0000042502021F2D6F7F00000A17586F5F00000A7D29000004251105288000000A7D2C000004257E2300000411056F8100000A7D2D0000040C041105288000000A540372F007007072EE0400706F3D00000AFE0B010072EE0400701306086F540000066F8200000A280900002B7E2F000004252D17267E2E000004FE0659000006738300000A25802F000004280A00002B20BD0700005A2040420F005D1308120872F4070070288500000A13071613092B4E110711096F8600000A130B120B288700000A288000000A130A110603110A6F8600000A130B120B288700000A284200000A130603110A176F8800000AFE0B01001109175813092B060D38C7FEFFFF11091C32022B0B2BA9FE0B010038A1FEFFFF0820D0070000110616186F6000000A288000000A58110618186F6000000A288000000A11061A186F6000000A288000000A738900000A7D2B000004086F55000006284B000006161F1A6F6000000A0A2B09FE0B0000383CFEFFFF087B2B0000040BDE132672020800700203285A00000A730700000A7A030617288A00000A2D30086F55000006284B000006161F1A6F6000000A0A030617288A00000A2D1272B70900700203285A00000A730700000A7A0720E20700001D1F0F738900000A288B00000A2C1E72820B00700203120172630D0070288C00000A288D00000A730700000A7A087B2A0000042846000006072844000006172A00411C00000000000000000000D8010000D80100001300000017000001133002006D000000000000000220900100002B407E280000046F7300000A03737600000A6F5C0000062A0220F401000033167E280000046F7300000A03737600000A6F5E0000062A02205802000033022B062B1A33D42BBC7E280000046F7300000A03737600000A6F600000062A725F030070730700000A7A0000001B3004001E01000015000011284900000638FB0000001200287400000A38D80000001200287500000A2A7E010000046F8E00000A2B21288F00000A20E20700001F0917738900000A288B00000A2C4D1728480000062B042D4E2BDB7E280000046F7300000A17737600000A6F5C0000067E280000046F7300000A17737600000A6F5E0000067E280000046F7300000A17737600000A6F60000006172A72790D0070730700000A7A7E010000046F9000000A0B2B251201289100000A0C086F1000000A086F1100000A1203284C0000061304091104284D0000061201289200000A2DD2DE0E1201FE161900001B6F3000000ADC28490000060A2B0A392BFFFFFF381EFFFFFF1200287400000A2C022B082B0E0A38FFFEFFFF1200287500000A2A725F030070730700000A7A0000011000000200A60032D8000E00000000133002001F010000000000000272EE0400703806010000284700000638E10000000272100F007038C3000000162A7E010000046F8E00000A2D090272D70F007051162A7E010000046F8E00000A1733497E01000004280B00002B6F1000000A6F0500000A72D5000070280600000A2D207E01000004280B00002B6F1000000A6F0500000A72BD000070280600000A2C0902721B10007051162A7E010000046F8E00000A1733517E01000004280B00002B6F1100000A6F0500000A72D6010070280600000A2D207E01000004280B00002B6F1100000A6F0500000A72C0010070280600000A2C110272D0100070512B06513837FFFFFF162A28470000062D022B0C2B273927FFFFFF3815FFFFFF7E010000046F8E00000A1631022B082B0C5138F4FEFFFF28500000062A162A001B3001000F00000016000011284E0000060ADE0526160ADE00062A00011000000000000008080005170000011E02280E00000A2A133004005A00000000000000739400000A25727F11007072871100706F9500000A2572C911007072D11100706F9500000A2572F911007072011200706F9500000A8023000004736100000680260000047E2E000004FE065A000006739600000A80280000042A0000133005005400000017000011721B120070027C2B000004287000000A0A1200289700000A186F5F00000A027C2B000004289800000A0A1200722F120070288500000A027C2B000004289900000A0A1200722F120070288500000A288D00000A2A133005006900000000000000027B2C0000042D227235120070027B2D000004027B2A0000048C0A000001027B29000004288D00000A2A724D1200701A8D010000012516027B2C0000048C0A000001A22517027B2D000004A22518027B2A0000048C0A000001A22519027B29000004A2289A00000A2A000000133006000A01000017000011027B2C0000042D7A726D1200701C8D010000012516027B2D000004A22517027C2B000004287000000A8C0A000001A22518027C2B000004289800000A0A1200722F120070288500000AA22519027C2B000004289900000A0A1200722F120070288500000AA2251A027B2A0000048C0A000001A2251B027B29000004A2289A00000A2A72991200701D8D010000012516027B2C0000048C0A000001A22517027B2D000004A22518027C2B000004287000000A8C0A000001A22519027C2B000004289800000A0A1200722F120070288500000AA2251A027C2B000004289900000A0A1200722F120070288500000AA2251B027B2A0000048C0A000001A2251C027B29000004A2289A00000A2A00001E02280E00000A2A2E7358000006802E0000042A1E02280E00000A2A0A032A001A7E260000042A001E027B300000042A2202037D300000042A0000001E027B310000042A2202037D310000042A0000001E027B320000042A2202037D320000042A0000001E02280E00000A2A4A027B37000004036F9B00000AA50A00001B2A004E027B3700000403048C0A00001B6F9C00000A2A4A02739D00000A7D3700000402280E00000A2A009E032B0C037B2C0200042C022B062B162C142BF00272CB120070284200000A0328660000062A022A133006007100000018000011037B2C0200042B2F1F19067B540200046F9E00000A067B5602000459289F00000A0B067B54020004067B56020004076FA000000A0C2B030A2BCE02066F3A00000A723A07007072581300706F3D00000A067B560200048C0A00000108723A07007072581300706F3D00000A288D00000A2A000000133006007100000018000011037B2C0200042B2F1F19067B540200046F9E00000A067B5602000459289F00000A0B067B54020004067B56020004076FA000000A0C2B030A2BCE02066F3A00000A723A07007072581300706F3D00000A067B560200048C0A00000108723A07007072581300706F3D00000A288D00000A2A0000003A0203042801000006285A00000A2A00520203042801000006052801000006288D00000A2A0000001E02280E00000A2A1B300500FD05000019000011046FA100000A281000000638E1050000056FA100000A281000000638AE050000143891050000056FA100000A3886050000046FA100000A387B0500000405289A0000060C046FA100000A280E0000060D056FA100000A280E00000613040714280200000A3A9A000000037B2602000420DC2100003B8A000000037B2602000420DD2100003B7A000000037B2602000420E62100003B6A000000037B2602000420E52100002E5D037B2602000420E72100002E50037B2602000420E82100002E43037B2602000420E92100002E36037B2602000420EC2100002E29037B2602000420ED2100002E1C037B2602000420EA2100002E0F037B2602000420EB210000FE012B011739360400000819594510000000050000004B000000A6030000A6030000A6030000A603000091000000D70000001D01000063010000A9010000EF010000350200007B020000A6030000C102000038A1030000020309082E0D046FA200000A28A300000A2B0B046FA200000AA5040000011104082E0D056FA200000A28A300000A2B0B056FA200000AA50400000128780000060A385D030000020309082E0D046FA200000A28A400000A2B0B046FA200000AA5050000011104082E0D056FA200000A28A400000A2B0B056FA200000AA505000001287B0000060A3817030000020309082E0D046FA200000A28A500000A2B0B046FA200000AA50A0000011104082E0D056FA200000A28A500000A2B0B056FA200000AA50A000001287D0000060A38D1020000020309082E0D046FA200000A28A600000A2B0B046FA200000AA50B0000011104082E0D056FA200000A28A600000A2B0B056FA200000AA50B000001287F0000060A388B020000020309082E0D046FA200000A28A700000A2B0B046FA200000AA50C0000011104082E0D056FA200000A28A700000A2B0B056FA200000AA50C00000128820000060A3845020000020309082E0D046FA200000A28A800000A2B0B046FA200000AA50D0000011104082E0D056FA200000A28A800000A2B0B056FA200000AA50D00000128850000060A38FF010000020309082E0D046FA200000A28A900000A2B0B046FA200000AA50E0000011104082E0D056FA200000A28A900000A2B0B056FA200000AA50E00000128880000060A38B9010000020309082E0D046FA200000A28AA00000A2B0B046FA200000AA50F0000011104082E0D056FA200000A28AA00000A2B0B056FA200000AA50F000001288B0000060A3873010000020309082E0D046FA200000A28AB00000A2B0B046FA200000AA5100000011104082E0D056FA200000A28AB00000A2B0B056FA200000AA510000001288E0000060A382D010000020309082E0D046FA200000A28AC00000A2B0B046FA200000AA5260000011104082E0D056FA200000A28AC00000A2B0B056FA200000AA52600000128910000060A38E7000000046FA100000AD005000001280100000A280200000A2C14046FA200000A6F3A00000A28AD00000AFE0B0200056FA100000AD005000001280100000A280200000A2C14056FA200000A6F3A00000A28AD00000AFE0B0300037B2602000420E82100002E0D037B2602000420E92100003332046FA100000AD011000001280100000A28AE00000A2D17056FA100000AD011000001280100000A28AE00000A2C04140A2B45020309082E0D046FA200000A6F3A00000A2B0B046FA200000A74110000011104082E0D056FA200000A6F3A00000A2B0B056FA200000A741100000128920000060A2B02140ADE4626081F0F331F725E130070032866000006730700000A130572E7130070110573AF00000A7A725E130070032866000006730700000A13067251140070110673AF00000A7A140A062D3B725E130070032866000006730700000A130772C1140070037B2C0200046F3A00000A046FA100000A056FA100000A2869000006110773B000000A7A071428AE00000A3970000000066FA100000A280E000006083362037B2602000420DD2100003332046FA100000A28100000062C022B082B210B387FFAFFFF056FA100000A28100000062D022B0C2B2D3A53FAFFFF3848FAFFFF0706745B0000016FA200000A28B100000A28AD00000A0A2B0A3A3BFAFFFF3815FAFFFF062A000000411C00000000000009010000F2030000FB040000440000005C0000011B300400400200001A000011046FA100000A280E00000638ED010000056FA100000AD00A000001280100000A280200000A38C2010000056FA200000A28A500000A2B34056FA200000AA50A0000012B27046FA100000A28100000062D10056FA100000A281000000616FE012B01162C022B08387D0100000C2BD60719594510000000050000001E000000370000003700000037000000370000005000000069000000820000009B000000B1000000C8000000DF0000001001000010010000FA000000380B0100000203046FA200000AA5040000010828790000060A38F40000000203046FA200000AA50500000108287C0000060A38DB0000000203046FA200000A28A500000A08287D0000060A38C20000000203046FA200000AA50A00000108287D0000060A38A90000000203046FA200000AA50B0000010828800000060A38900000000203046FA200000AA50C0000010828830000060A38770000000203046FA200000AA50D0000010828860000060A2B610203046FA200000AA50E000001086B28880000060A2B4A0203046FA200000AA50F000001086C288B0000060A2B330203046FA200000AA5100000010828B200000A288E0000060A2B180203046FA200000A74110000010828930000060A2B02140ADE2C26725E130070032866000006730700000A0D72511400700973AF00000A7A140A2B0A3A46FEFFFF3834FEFFFF062D022B082B410B380DFEFFFF725E130070032866000006730700000A130472C1140070037B2C0200046F3A00000A046FA100000A056FA100000A2869000006110473B000000A7A062A411C0000000000006E0000005C010000CA0100001E0000005C000001133005002F0000001B00001102037B27020004141628710000062B1102037B2A020004141628710000060B2B030A2BEC0203060704286E0000062A0013300400E90200001C0000111438DB02000004755B00000138B102000005755B000001388D020000072C12082C0F02030708286B0000060A38B6020000046FA100000A28100000062D18056FA100000A28100000062D03142B0E056FA100000A2B06046FA100000A0D046FA100000A056FA100000A289900000613041104D001000001280100000A280200000A3950010000046FA100000A28110000062C68046FA100000A6FB300000AD053000001280100000A280200000A2C4C056FA100000A28110000062C20046FA100000A6FB300000A056FA100000A6FB300000A28AE00000A39D800000005046FA100000A28B400000AFE0B03000E0404056FB500000A0A38B9000000056FA100000A28110000062C62056FA100000A6FB300000AD053000001280100000A280200000A2C46046FA100000A28110000062C1D046FA100000A6FB300000A056FA100000A6FB300000A28AE00000A2C6604056FA100000A28B400000AFE0B02000E0404056FB500000A0A2B4A046FB600000A1F322E1C056FB600000A1F32331205046FA100000A28B400000AFE0B03002B24056FB600000A1F322E1A046FB600000A1F32331004056FA100000A28B400000AFE0B0200062D0A02030405289C0000060A063A200100000E0404056FB500000A0A3811010000046FA100000A110428AE00000A2C4F1104D011000001280100000A280200000A2C30072C2D076FA100000AD005000001280100000A280200000A2C16076FA200000A6F3A00000A28AD00000AFE0B02002B0C04110428B400000AFE0B0200056FA100000A110428AE00000A2C4F1104D011000001280100000A280200000A2C30082C2D086FA100000AD005000001280100000A280200000A2C16086FA200000A6F3A00000A28AD00000AFE0B03002B0C05110428B400000AFE0B03000E0404056FB500000A0A091428AE00000A2C022B082B3E0C386DFDFFFF066FA100000A1104280200000A2C022B082B250B3849FDFFFF0906745B0000016FA200000A28B100000A28AD00000A0A2B060A381FFDFFFF062A000000133004008B0000001D00001102037B2702000414162871000006387300000002037B2A020004141628710000062B5507755B0000012B3708755B0000011304092C1111042C0D0203091104286C0000060A2B42086FA100000AD00A000001280100000A28AE00000A2C022B052B190D2BC608D00A000001280100000A28B400000A0C2B030C2BA80407086FB500000A0A2B030B2B8A062A00133004002C0000001E00001102037B27020004141628710000062B1002037B2A0200041628740000060B2B030A2BED0406076FB700000A2A1B300600EE2F00001F00001173AA0000060A060238D52F00001638C52F00001438A62F0000037B260200040D0920C02100003D760100000920BC2000003D500100000920132000003B3C2F000009207020000059454D000000370800004C080000F4080000090900005D090000B508000033090000CA080000480900008B080000A0080000760800001E0900006108000072090000DF0800006B140000A30F00001A0800002608000009080000C10E00001E0B0000BE150000370B0000620C0000870A0000F3100000272E00006A0A00005B120000272E0000272E0000272E00009B0E0000A5090000530A0000500F00002A120000272E0000272E0000272E0000272E0000272E0000272E0000272E0000220A0000272E0000272E0000272E00003E0F0000272E0000272E0000272E0000272E0000272E0000272E0000272E0000272E0000200F000087090000272E0000272E0000272E0000272E0000272E0000272E0000272E0000272E0000EE140000272E0000272E0000272E0000272E0000272E0000BC0900008814000038222E00000920B92100003B8D1900000920C02100003B5E1F000038072E00000920ED3200003DC90100000920DC210000594548000000791B00003D1D0000821D0000C71D0000E51D00003D1B00005B1B0000C2190000E0190000FE1900006B1A00001C1A0000891A0000A71A0000C51A0000E31A0000011B00001F1B0000D02C0000D02C00007E170000A81F0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C0000D02C000027170000F514000039170000A6160000FD15000088160000DF1500001B160000EB1600006A16000009170000D02C0000D02C0000D02C0000D02C0000D02C00004B1F0000041F0000031E0000A71E0000E51E0000C61E0000D02C0000D02C0000891F00006A1F00000920CB3200005945230000004122000066220000382C0000382C0000382C0000BF230000E82300004224000011240000382C0000960100007500000014030000382C000080010000382C0000382C0000310500005F01000060270000122100009D240000CE260000CE260000382C0000B5270000382C0000F9270000382C0000382C0000382C0000382C0000382C0000382C00006C1F000038332C00000920F63200003B3D23000009200233000059451500000003240000252200007A220000C82B000012250000C82B000008200000C82B0000C82B000055200000C41F0000C82B000046240000C82B000051210000F3250000F31F000051210000C82B0000C82B0000501F000038C32B0000037B270200042C60037B270200047B2602000420E63200002E1C037B270200047B2C0200047B58020004724C15007028B800000A2C32067B5A000004037B270200041728740000061307067B5A0000041107037B2C0200047B580200046F190100060C385B2B0000067B5A0000047BA50000041428AE00000A2C27067B5A000004067B5A0000047BA5000004037B2C0200047B580200046F190100060C38212B0000067B5A0000047BA70000042C18067B5A0000040317287400000628AD00000A0C38FC2A0000067B5A000004067B5A000004037B2C0200047B58020004166F170100060C38D92A0000037B2C0200047B58020004166F8600000A8C0500000128AD00000A0C38B82A0000037B2C0200047B5802000428AD00000A0C38A22A0000037B2C0200047B5702000420153300003335037B2C0200047B58020004200002000028B900000A120828BA00000A2C17110816321211088C0A00000128AD00000A0C385B2A0000037B2C0200047B5702000420153300002E12037B2C0200047B5702000420E73200003330037B2C0200047B58020004200002000028B900000A120928BB00000A2C1211098C0B00000128AD00000A0C38072A0000037B2C0200047B5702000420153300002E12037B2C0200047B5702000420E83200003336037B2C0200047B58020004200002000028B900000A120A28BC00000A2C18110A166A3212110A8C0C00000128AD00000A0C38AD290000037B2C0200047B5702000420153300002E36037B2C0200047B5702000420E73200002E24037B2C0200047B5702000420E83200002E12037B2C0200047B5702000420E93200003330037B2C0200047B58020004200002000028B900000A120B28BD00000A2C12110B8C0D00000128AD00000A0C38352900007254150070032865000006730700000A7A037B2C0200047B570200042015330000332C037B2C0200047B580200041628B900000A120C28BA00000A2C12110C8C0A00000128AD00000A0C38E6280000037B2C0200047B5702000420153300002E12037B2C0200047B5702000420E7320000332C037B2C0200047B580200041628B900000A120D28BB00000A2C12110D8C0B00000128AD00000A0C3896280000037B2C0200047B5702000420153300002E12037B2C0200047B5702000420E8320000332C037B2C0200047B580200041628B900000A120E28BC00000A2C12110E8C0C00000128AD00000A0C3846280000037B2C0200047B5702000420153300002E36037B2C0200047B5702000420E73200002E24037B2C0200047B5702000420E83200002E12037B2C0200047B5702000420E9320000332C037B2C0200047B580200041628B900000A120F28BD00000A2C12110F8C0D00000128AD00000A0C38D2270000037B2C0200047B5702000420EA320000332C037B2C0200047B580200041628B900000A121028BE00000A2C1211108C0E00000128AD00000A0C3894270000037B2C0200047B5702000420EB320000332C037B2C0200047B580200041628B900000A121128BF00000A2C1211118C0F00000128AD00000A0C3856270000037B2C0200047B5702000420EC320000332C037B2C0200047B580200041628B900000A121228C000000A2C1211128C1000000128AD00000A0C38182700007254150070032865000006730700000A7A037B2C0200047B5702000420EA3200003330037B2C0200047B5802000420A000000028B900000A121328BE00000A2C1211138C0E00000128AD00000A0C38C5260000037B2C0200047B5702000420153300002E12037B2C0200047B5702000420EB3200003330037B2C0200047B5802000420A000000028B900000A121428BF00000A2C1211148C0F00000128AD00000A0C3871260000037B2C0200047B5702000420EC3200003330037B2C0200047B5802000420A000000028B900000A121528C000000A2C1211158C1000000128AD00000A0C382F2600007254150070032865000006730700000A7A168C0400000128AD00000A0C380D2600001428AD00000A0C3801260000178C0400000128AD00000A0C38F0250000D004000001280100000A28AD00000A0C38DB250000D007000001280100000A28AD00000A0C38C6250000D005000001280100000A28AD00000A0C38B1250000D010000001280100000A28AD00000A0C389C250000D00F000001280100000A28AD00000A0C3887250000D00E000001280100000A28AD00000A0C3872250000D00A000001280100000A28AD00000A0C385D250000D00C000001280100000A28AD00000A0C3848250000D001000001280100000A28AD00000A0C3833250000D006000001280100000A28AD00000A0C381E250000D008000001280100000A28AD00000A0C3809250000D011000001280100000A28AD00000A0C38F4240000D00B000001280100000A28AD00000A0C38DF240000D00D000001280100000A28AD00000A0C38CA240000D009000001280100000A28AD00000A0C38B5240000D06D000001280100000A28AD00000A0C38A0240000067B5A0000040314FE06C100000A73C200000A28700000060C3882240000067B5A000004146F0F01000628C300000A0C386B240000037B230200042C3F067B5A0000047BA30000041316067B5A000004177DA3000004067B5A000004037B23020004141628710000060C067B5A00000411167DA30000043824240000067B5A000004176F14010006037B20020004141728720000060C3805240000067B5A000004177DA6000004067B5A000004037B2A020004040528710000060C067B5A000004167DA600000438D4230000067B5A000004146F1001000628C400000A0C38BD230000067B5A000004037B2302000416287400000628C500000A0C38A0230000067B5A00000417176F1301000613171117037B20020004141728710000062611176F110100062C1911177BA80000041117146F1001000628C600000A6FC700000A067B5A000004037B230200041416287100000628C800000A1117146F0F01000628C300000A28C900000A131811177BA800000411186FC700000A111716146F0B0100061117146F0F01000628CA00000A0C3809230000067B5A000004037B20020004141628710000060C38F0220000067B5A00000416166F1301000625037B230200047B1F020004166FCB00000A1416287100000613192517176F13010006131A111A037B230200047B1F020004176FCB00000A14162871000006131B037B230200047B1F0200046FCC00000A192E0728C800000A2B1A111A037B230200047B1F020004186FCB00000A14162871000006131C111A037B200200041417287100000626111A6F110100062C19111A7BA8000004111A146F1001000628C600000A6FC700000A111A7BA8000004111C6FC700000A111A16146F0B010006131D111A146F0F01000628C300000A131E111B2D04111D2B0B111B111D111E28C900000A111A146F0F01000628CA00000A131F11192C0B1119111F28CD00000A2B02111F0C257BA8000004086FC700000A16146F0B0100060C38C5210000067B5A00000416166F1301000613201120037B230200047B1F020004166FCB00000A7B2B0200047B2A02000414162871000006256FA100000A72921500706FCE00000A132111211428CF00000A2C16D02A000001280100000A729215007028CE00000A1321112128D000000A1322112011226FA100000A6F1A010006132311207BA80000041123112228D100000A6FC700000A11226FA100000A72AE1500706FCE00000A13241123112428D000000A11226FA100000A72C01500706FD200000A13251123112528D300000A1326037B230200047B1F020004166FCB00000A7B2B0200047B270200047B270200047B2C0200047B58020004724C150070280600000A2D2A1120037B230200047B1F020004166FCB00000A7B2B0200047B270200047B270200041628740000062B0711266FA100000A132711201127037B230200047B1F020004166FCB00000A7B2B0200047B270200047B2C0200047B580200046F190100061328112017176F13010006132911286FA100000A11266FA100000A28AE00000A2D0B1128112628D100000A2B151128112611286FA100000A28B400000A28D100000A132A11297BA8000004112A6FC700000A1129037B200200041417287100000626112916146F0B010006132B1129146F0F01000628C300000A132C112B112C28C900000A132D11296F110100062D11112D1129146F0F01000628CA00000A2B17112D1129146F0F0100061129146F1001000628D400000A0C11207BA8000004086FC700000A112016146F0B0100060C388C1F0000067B5A000004037B2A0200047B2C0200047B580200046F0C01000628D500000A0C38661F0000067B5A000004037B2302000414162871000006132E067B5A000004037B2002000414162871000006132F037B2A0200042D0B112E112F28D600000A2B1C112E112F067B5A000004037B2A0200041416287100000628C900000A0C38071F0000067B5A0000040314FE06D700000A73C200000A28700000060C38E91E0000067B5A0000040328760000060C38D71E0000037B200200042C34067B5A000004037B20020004141628710000061330067B5A00000411306FA100000A6F0E010006113028D800000A0C389B1E0000067B5A000004146F0E01000628D900000A0C38841E0000067B5A000004037B2302000416287400000613311131280E000006133211321959450D00000005000000160000002700000038000000490000005A0000006B0000007C0000008D0000009E000000AF000000C0000000D100000038DE000000178C0A00000128AD00000A0C38141E0000188C0A00000128AD00000A0C38031E0000178C0A00000128AD00000A0C38F21D0000178C0A00000128AD00000A0C38E11D0000188C0A00000128AD00000A0C38D01D0000188C0A00000128AD00000A0C38BF1D00001A8C0A00000128AD00000A0C38AE1D00001A8C0A00000128AD00000A0C389D1D00001E8C0A00000128AD00000A0C388C1D00001E8C0A00000128AD00000A0C387B1D00001A8C0A00000128AD00000A0C386A1D00001E8C0A00000128AD00000A0C38591D00001F108C0A00000128AD00000A0C38471D000072D01500700311312867000006730700000A7A73A800000613331133067B5A00000417166F130100067D5800000411337B58000004037B2302000414162871000006133414133573DA00000A1336037B1F0200046FDB00000A13372B5E123728DC00000A133811337B5800000411387B200200041416287100000611387B1F02000411337B59000004252D1A2611331133FE06A900000673DD00000A25133A7D59000004113A280C00002B28DE00000A1339113611396FDF00000A123728E000000A2D99DE0E1237FE162000001B6F3000000ADC037B2A0200042C1611337B58000004037B2A02000414162871000006133511337B580000047BA80000041134113511366FE100000A28E200000A6FC700000A11337B580000047BA800000411337B58000004146F0F01000628C600000A6FC700000A11337B5800000416146F0B0100060C38FD1B0000037B200200042C1E067B5A000004037B200200041416287100000628E300000A0C38D71B000028E400000A0C38CC1B0000067B5A000004037B2002000414162871000006133B037B1F02000414FE03133C73E500000A133D037B1F0200043967010000037B1F0200046FDB00000A13373839010000123728DC00000A134014134111407B2302000439D700000011407B230200047B1F0200046FCC00000A16314311407B230200047B1F020004166FCB00000A7B270200042C2A067B5A00000411407B230200047B1F020004166FCB00000A7B270200041628740000061341388000000011407B230200047B1F0200046FCC00000A16313611407B230200047B1F0200046FCC00000A173322067B5A00000411407B230200047B1F020004166FCB00000A16287400000613412B3611407B230200042C1311407B230200047B1F0200046FCC00000A2D051413412B15067B5A00000411407B230200041628740000061341067B5A00000411407B20020004141628710000061342114114280200000A2C1A113DD017000001280100000A114228E600000A6FE700000A2B10113D1141114228E600000A6FE700000A123728E000000A3ABBFEFFFFDE0E1237FE162000001B6F3000000ADC037B2A02000414FE03133E14133F113E2C1A067B5A000004037B2A0200047B2002000414162871000006133F113C2C18113E2D14113B113D6FE800000A28E900000A0C38EB190000113C16FE01113E5F2C0F113B113F28EA00000A0C38D2190000113B113F113D6FE800000A28EB00000A0C38BC190000067B5A000004037B2302000417287400000628AD00000A0C389F190000037B230200042C3F067B5A0000047BA30000041343067B5A000004187DA3000004067B5A000004037B23020004141628710000060C067B5A00000411437DA30000043858190000067B5A000004186F14010006037B20020004141728720000060C3839190000067B5A00000416166F1301000613441144037B230200041416287100000613451144037B2002000414162871000006134611456FB600000A1F2E3345114574680000016FEC00000A72421600707EED00000A168D1C00000128EE00000A13471146114728EA00000A134811447BA80000041145114828CD00000A6FC700000A2B40114572421600707EED00000A168D1C00000128EE00000A13491146114928EA00000A134A11447BA8000004178D1C0000012516114AA228EF00000A6FC700000A114416146F0B0100060C3869180000067B5A00000417176F13010006134B114B146F0F01000628C300000A134C067B5A000004037B2302000414162871000006114B037B200200041417287100000626114B16146F0B010006134D114D114C28C900000A134E114B6F110100062D11114E114B146F0F01000628CA00000A2B17114E114B146F0F010006114B146F1001000628D400000A0C38DB170000067B5A000004037B2702000414162871000006134F067B5A000004037B2A020004141628710000061350114F6FA100000AD011000001280100000A280200000A2C351150755B0000012C181150755B0000016FA200000A6F3A00000A28AD00000A1350114F11507E5700000428F000000A0C3864170000114F6FA100000A6F0300000A7252160070280600000A2C167274160070037B270200042865000006730700000A7A067B5A0000046F000100062D1A067B5A0000040314FE06F100000A73F200000A286D0000062B18067B5A0000040314FE06F300000A73F200000A286D0000060C38F1160000067B5A0000040314FE06F400000A73F200000A286D0000060C38D3160000067B5A0000040314FE06F500000A73F200000A286D0000060C38B5160000067B5A0000047BAC0000047BB50000042C1F0320D33200007D26020004067B5A00000403040528710000060C3884160000067B5A0000040314FE06F600000A73F200000A286D0000060C3866160000067B5A0000040314FE06F700000A73F200000A286F0000060C3848160000067B5A0000040314FE06F800000A73F200000A286D0000060C382A160000067B5A0000046F000100062D1A067B5A0000040314FE06F900000A73F200000A286D0000062B18067B5A0000040314FE06FA00000A73F200000A286D0000060C38E5150000067B5A0000040314FE06FB00000A73F200000A286D0000060C38C7150000067B5A0000040314FE06FC00000A73F200000A286F0000060C38A9150000067B5A0000040328770000060C3897150000067B5A0000046F000100062D1A067B5A0000040314FE06FD00000A73F200000A286D0000062B18067B5A0000040314FE06FE00000A73F200000A286D0000060C3852150000067B5A000004037B27020004141628710000061351067B5A000004037B2A02000414162871000006135211516FA100000A11526FA100000A28AE00000A2611511428AD00000A28FF00000A11516FA100000A28110000062C3B11516FA100000A6FB300000AD053000001280100000A280200000A2C1E11516FA100000A729F1700706FD200000A13531151115328D300000A135111516FA100000A11526FA100000A28AE00000A2C10115211516FA100000A28B400000A135211511152280001000A0C388A140000067B5A000004037B27020004141628710000061354067B5A000004037B2A0200047B27020004141628710000061355067B5A000004037B2A0200047B2A02000414162871000006135611556FA100000A11566FA100000A28AE00000A39DF00000011556FA100000A11566FA100000A2899000006135711556FA100000A115728AE00000A2C55037B2A0200047B270200047B260200042096200000331C1155745E0000016F0101000A11566FA100000A280201000A13552B22037B2A0200047B2A0200047B2602000420962000002E0B1155115728B400000A135511566FA100000A115728AE00000A2C55037B2A0200047B2A0200047B260200042096200000331C1156745E0000016F0101000A11556FA100000A280201000A13562B22037B2A0200047B270200047B2602000420962000002E0B1156115728B400000A135611546FA100000AD004000001280100000A28AE00000A2C131154D004000001280100000A28B400000A1354115411551156280001000A0C380E130000067B5A0000040314FE060301000A73F200000A286D0000060C38F0120000067B5A0000040314FE060401000A73F200000A286D0000060C38D2120000067B5A0000040314FE060501000A73F200000A286D0000060C38B4120000067B5A0000047BAC0000047BB50000042C1F0320D23200007D26020004067B5A00000403040528710000060C3883120000067B5A0000040314FE060601000A73F200000A286D0000060C3865120000067B5A0000040314FE060701000A73F200000A286D0000060C3847120000067B5A0000040314FE060801000A73F200000A286D0000060C3829120000067B5A0000040314FE06FF00000A73F200000A286D0000060C380B120000067B5A0000040314FE060901000A73F200000A286D0000060C38ED110000067B5A0000040314FE060A01000A73F200000A286D0000060C38CF110000067B5A0000040314FE060B01000A73F200000A286D0000060C38B1110000067B5A0000040314FE060C01000A73F200000A286D0000060C3893110000067B5A0000040314FE060D01000A73F200000A286F0000060C3875110000067B5A0000040314FE060E01000A73F200000A286F0000060C3857110000067B5A000004037B27020004141628710000061358067B5A000004037B2A02000414162871000006135911586FA100000AD011000001280100000A280200000A2D1B11596FA100000AD011000001280100000A280200000A391A0100001158755B000001135A1159755B000001135B115A2C1A115B2C16067B5A00000403115A115B286B0000060C38CA100000115A2C2B115A6FA100000AD005000001280100000A280200000A2C13115A6FA200000A6F3A00000A28AD00000A1358115B2C2B115B6FA100000AD005000001280100000A280200000A2C13115B6FA200000A6F3A00000A28AD00000A135911586FA100000AD011000001280100000A28AE00000A2C2411586FA100000A72AB170070168D020000016F0F01000A135C1158115C28D000000A135811596FA100000AD011000001280100000A28AE00000A2C2411596FA100000A72AB170070168D020000016F0F01000A135D1159115D28D000000A13597E5700000411581159281001000A0C38E00F0000067B5A0000046F000100062D1E067B5A000004031158115914FE061101000A73F200000A286E0000062B1C067B5A000004031158115914FE061201000A73F200000A286E0000060C38930F0000067B5A0000046F000100062D1A067B5A0000040314FE061301000A73F200000A286D0000062B18067B5A0000040314FE061401000A73F200000A286D0000060C384E0F0000067B5A0000046F000100062D1A067B5A0000040314FE061501000A73F200000A286D0000062B18067B5A0000040314FE061601000A73F200000A286D0000060C38090F0000067B5A0000040314FE061701000A73F200000A286D0000060C38EB0E0000067B5A0000040314FE061801000A73F200000A286D0000060C38CD0E0000067B5A000004030414FE061901000A731A01000A28A60000060C38AE0E0000067B5A000004037B23020004162874000006135E04755B0000012C49046FA100000AD005000001280100000A280200000A2C32115ED011000001280100000A280200000A2C1F04745B0000016FA200000AA50500000117731B01000A28AD00000AFE0B0200046FA100000A115E28AE00000A2D03042B0804115E28B400000A0C38290E0000067B5A000004030414FE061901000A731A01000A28A60000060C380A0E0000067B5A000004030414FE061C01000A731A01000A28A60000060C38EB0D0000067B5A000004030414FE061D01000A731A01000A28A60000060C38CC0D0000067B5A0000046F000100062D1B067B5A000004030414FE061E01000A731A01000A28A60000062B19067B5A000004030414FE061F01000A731A01000A28A60000060C38850D0000067B5A000004030414FE062001000A731A01000A28A60000060C38660D0000067B5A000004030414FE062101000A731A01000A28A60000060C38470D0000067B5A000004030414FE062201000A731A01000A28A60000060C38280D000004755B000001135F115F2C32115F6FA200000A75020000012C24067B5A000004037B20020004115F6FA200000A74020000011428A40000060C38EA0C0000067B5A000004037B20020004046FA100000A0428A40000060C38CC0C000004755B000001136011602C2E11606FA200000A75020000012C20067B5A0000040311606FA200000A7402000001141428A30000060C38920C0000067B5A00000403046FA100000A041428A30000060C38780C000004755B0000011361037B1F02000406FE06AB000006732301000A280D00002B280E00002B136211612C2F11616FA200000A75020000012C21067B5A0000040311616FA200000A740200000114116228A30000060C381F0C0000067B5A00000403046FA100000A04116228A30000060C38040C0000046FA100000A6F2401000A2D0F067B5A000004030428A20000062B0D067B5A000004030428A10000060C38D50B0000067B5A0000040314141428A30000060C38C00B0000041428AD00000A280801000A0320F12100007D26020004067B5A000004030405287100000613631163D001000001280100000A28B400000A13631428AD00000A1163280001000A0C38730B0000041428AD00000A280801000A03200C3300007D26020004067B5A000004030405287100000613641164D001000001280100000A28B400000A13641428AD00000A1164280001000A0C38260B0000067B5A0000046F150100061365037B200200047B1F0200046FDB00000A13372B15123728DC00000A1367116511671417287100000626123728E000000A2DE2DE0E1237FE162000001B6F3000000ADC116517146F0B0100060C086FA100000AD06D000001280100000A280200000A2C0D081428AD00000A28CD00000A0C067B5A000004086FA100000A6F1A010006250828D100000A1366067B5A0000047BA800000411666FC700000A0C38770A0000037B200200042C55037B200200047B1F0200046FCC00000A173342067B5A000004067B5A00000472DE070070037B200200047B1F020004166FCB00000A7B2C0200047B5802000472BD170070284000000A166F170100060C381A0A0000067B5A000004067B5A000004037B2C0200047B58020004166F170100060C38F7090000037B2C0200047B5802000428B900000A282501000A8C2600000128AD00000A0C38D209000072C1170070037B2C0200047B58020004284200000A28B900000A282601000A8C7500000128AD00000A0C38A3090000067B5A000004146F0F0100061368067B5A00000413692B1C11697BAB000004136911697BB60000042C1E1169146F0F010006136811697BAB0000042C0B116911697BAA00000433D0116828C300000A0C384E090000067B5A000004146F0F010006136A067B5A000004136B2B2A116B7BAB000004136B116B7BB60000042C2C116B146F0F010006116A2E0C116B146F0F010006136A2B14116B7BAB0000042C0B116B116B7BAA00000433C2116A28C300000A0C38EB080000067B5A000004037B23020004141628710000061428AD00000A28FF00000A136C067B5A000004037B2002000414162871000006136D037B2A0200042C26067B5A000004037B2A02000414162871000006136E116C116D116E28C900000A0C3888080000116C116D28D600000A0C38790800000320112200007D26020004067B5A0000040314FE06F600000A73F200000A286D0000060C38500800000320E72100007D26020004067B5A0000040314FE060601000A73F200000A286D0000060C3827080000067B5A000004037E5C000004252D17267E5B000004FE06AE00000673F200000A25805C000004286D0000060C38F6070000067B5A000004037E5D000004252D17267E5B000004FE06AF00000673F200000A25805D000004286D0000060C38C507000003201C2200007D26020004067B5A000004030414FE061901000A731A01000A28A60000060C389B070000067B5A000004037B2B020004141628710000060C3882070000732701000A136F1613703892000000037B1F02000411706FCB00000A1371116F067B5A0000041171141628710000066FC700000A11702D6311717B2602000420D6320000330911717B270200042D3411717B2602000420E0320000333E11717B2B0200047B26020004200A220000332B11717B2B0200047B270200047B270200042C18067B5A000004116F166F2801000A6FA100000A7DA50000041170175813701170037B1F0200046FCC00000A3F5CFFFFFF067B5A000004147DA5000004116F282901000A0C38B6060000067B5A000004037B27020004141628710000061372067B5A000004037B2A020004141628710000061172755B0000011373755B000001137411732C2E11742C2A11736FA200000A6F3A00000A1275282A01000A2C1511746FA200000A6F3A00000A1276282A01000A2D1172C9170070032865000006730700000A7A732701000A1377117511763027117513782B19117711788C0A00000128AD00000A6FC700000A1178175813781178117631E12B25117513792B19117711798C0A00000128AD00000A6FC700000A117917591379117911762FE11177282901000A0C38D5050000067B5A00000416166F13010006137A037B200200047B1F0200046FDB00000A13372B20123728DC00000A137B117A7BA8000004117A117B141628710000066FC700000A123728E000000A2DD7DE0E1237FE162000001B6F3000000ADC117A16146F0B0100060C386A050000732701000A137C037B1F0200046FDB00000A13372B37123728DC00000A137D067B5A000004117D141628710000060C052C13067B5A0000047BA8000004086FC700000A2B08117C086FC700000A123728E000000A2DC0DE0E1237FE162000001B6F3000000ADC052C07170B38FA040000117C6F2B01000A16310D117C282901000A0C38E304000028C800000A0C38D8040000037B1F0200046FDB00000A13372B2A123728DC00000A137E067B5A000004117E141628710000060C067B5A0000047BA8000004086FC700000A123728E000000A2DCDDD910400001237FE162000001B6F3000000ADC037B1F0200046FDB00000A13372B19123728DC00000A137F067B5A000004117F141628710000060C123728E000000A2DDEDD4D0400001237FE162000001B6F3000000ADC067B5A000004037B20020004141628710000060C082C0C086FB600000A1F17FE012B01161304161305732C01000A1306082D1A067B5A000004031205287300000628AD00000A0C110517581305037B2A0200043956010000110513803836010000037B2A0200047B1F02000411806FCB00000A138111817B26020004200833000033201106118108732D01000A6F2E01000A118120F12100007D2602000438DE00000011817B26020004200933000033201106118108732D01000A6F2E01000A118120ED3200007D2602000438B000000011817B26020004200A33000033201106118108732D01000A6F2E01000A118120163300007D26020004388200000011817B26020004200B3300003374081428AD00000A280801000A13821181200C3300007D26020004067B5A0000041181081628710000060C086FA100000A28120000062C12110611811182732D01000A6F2E01000A2B3B081428AD00000A280801000A138311821183280301000A1384110611811184732D01000A6F2E01000A2B10067B5A0000041181081628710000060C1180175813801180037B2A0200047B1F0200046FCC00000A3FB3FEFFFF037B270200042C60037B270200047B1F0200046FDB00000A13372B33123728DC00000A138511857B2C0200047B580200047245180070280600000A2C02DE29067B5A0000041185081628710000060C123728E000000A2DC4DE0E1237FE162000001B6F3000000ADC11066F2F01000A163EBF01000011066F3001000A11066F3101000A1386388E0100001286283201000A138711876F3301000A7B2602000420F12100002E2911876F3301000A7B2602000420ED3200002E1611876F3301000A7B26020004201633000040A000000011876F3401000A1428AD00000A280801000A1388086FA100000A6F3501000A16FE012C5E086FA100000A28110000062C1C086FA100000A6FB300000AD053000001280100000A28AE00000A2C35D053000001280100000A178D020000012516086FA100000AA26F3601000A138A08118A28B400000A0C14118A283701000A13892B0E14086FA100000A283701000A13891188118908280001000A0C38A900000011876F3301000A7B26020004200C330000408200000011876F3401000A138B086FA100000A28110000062C1C086FA100000A6FB300000AD053000001280100000A28AE00000A2C35D053000001280100000A178D020000012516086FA100000AA26F3601000A138D08118D28B400000A0C14118D283701000A138C2B0E14086FA100000A283701000A138C118B118C08280001000A0C2B11724D180070032865000006730700000A7A1286283801000A3A66FEFFFFDE0E1286FE162700001B6F3000000ADC0814FE0111045F2C54067B5A000004177DA7000004067B5A00000403040528710000060C067B5A000004167DA70000042B2B037B270200047B2C0200047B58020004138E067B5A000004118E037B270200046F0D01000628C600000A0C052C33037B2602000420DE3200002E26072D022B082B1F0C3854D0FFFF067B5A0000047BA8000004086FC700000A2B060B3835D0FFFF08262B0A7D5A0000043821D0FFFF082A000041DC000002000000BC1200006B000000271300000E00000000000000020000001B1400004C010000671500000E0000000000000002000000A124000022000000C32400000E0000000000000002000000F42900002D000000212A00000E0000000000000002000000522A000044000000962A00000E0000000000000002000000DD2A00003A000000172B00000E0000000000000002000000322B0000290000005B2B00000E0000000000000002000000312D000040000000712D00000E00000000000000020000009C2D0000A10100003D2F00000E000000000000004E020314172871000006260216146F0B0100062A96020314041628750000062514280200000A2C117248190070032865000006730700000A7A2A000013300500FA0000001700001103147D2D0200040203141200042875000006037B270200042C16726F1A0070037B270200042865000006730700000A7A042C40037B2A0200042C38037B2A0200047B1F0200042C2B061758037B2A0200047B1F0200046FCC00000A2F1672B61B0070037B2A0200042865000006730700000A7A037B2A020004397B000000037B2A0200047B1F0200042C6E06037B2A0200047B1F0200046FCC00000A305B06173257037B2A0200047B1F0200040617596FCB00000A7B2602000420F93200002E38037B2A0200047B1F0200040617596FCB00000A7B2602000420163300002E1903037B2A0200047B1F0200040617596FCB00000A7D2D0200042A00001B3005006F0600002000001114384806000005153832060000037B2602000438FD0500000720D6320000305C0720702000005945100000002B0000003B000000BB000000CB0000000B0100008B000000EB0000009B000000FB0000006B0000007B0000005B000000DB0000004B0000001B010000AB0000000720D63200003B2001000038E00500000720E43200003B570100000720E63200003B8701000038C5050000D004000001280100000A0A38C6050000D007000001280100000A0A38B6050000D005000001280100000A0A38A6050000D010000001280100000A0A3896050000D00F000001280100000A0A3886050000D00E000001280100000A0A3876050000D00A000001280100000A0A3866050000D00C000001280100000A0A3856050000D001000001280100000A0A3846050000D006000001280100000A0A3836050000D008000001280100000A0A3826050000D011000001280100000A0A3816050000D00B000001280100000A0A3806050000D00D000001280100000A0A38F6040000D009000001280100000A0A38E6040000D06D000001280100000A0A38D6040000042C2B04037B2C0200047B580200046F7D00000A2602037B2C0200047B5802000412006F160100062638A804000002037B2C0200047B5802000412006F1601000626388F040000037B1F0200046FCC00000A172E1172FD1C0070032865000006730700000A7A02037B1F020004166FCB00000A04050E0428750000060A3854040000737B00000AFE0B020002037B2002000404050E0428750000060A0614280200000A0E04603933030000037B2A0200043928030000037B2A0200047B1F0200043918030000061428AE00000A2C0F066F3901000A733A01000AFE0B020005165438E1020000037B2A0200047B1F020004054A6FCB00000A0C087B260200040B0720F932000030230720F12100002E410720ED3200003B7D0000000720F93200003BB301000038890200000720FC3200003BA900000007200C3300003B3B0200000720163300003BB8000000386302000004061428AE00000A2D0772241E00702B0572281E00706F7D00000A2604087B200200047B2C0200047B580200046F7D00000A2602046F3A00000A12006F1601000626381C02000004061428AE00000A2D0772241E00702B0572281E00706F7D00000A2604087B200200047B2C0200047B580200046F7D00000A2602046F3A00000A12006F160100062638D5010000D053000001280100000A178D02000001251606A26F3601000A0A05054A17585438B001000004061428AE00000A2D0772241E00702B0572281E00706F7D00000A2604087B200200047B2C0200047B580200046F7D00000A26733B01000A0D171304087B1F0200046FDB00000A13052B29120528DC00000A130611062D0C16130409146F3C01000A2B10090211060E0428740000066F3C01000A120528E000000A2DCEDE0E1205FE162000001B6F3000000ADC04722C1E0070096F3D01000A8C0A000001283E01000A6F7D00000A2602046F3A00000A12006F1601000639F4000000110439ED00000006096F3F01000A6F3601000A0A38DB000000733B01000A1307171308087B230200047B1F0200046FDB00000A13052B2B120528DC00000A130911092D0D1613081107146F3C01000A2B1111070211090E0428740000066F3C01000A120528E000000A2DCCDE0E1205FE162000001B6F3000000ADC04722C1E007011076F3D01000A8C0A000001283E01000A6F7D00000A2602046F3A00000A12006F160100062C4C11082C480611076F3F01000A6F3601000A0A2B38087B230200047B1F0200046FCC00000A2D09066F4001000A0A2B1D087B230200047B1F0200046FCC00000A130A06110A17586F4101000A0A061428AE00000A2C040E042C1D05054A175854054A037B2A0200047B1F0200046FCC00000A3F08FDFFFF037B2A0200042C63037B2A0200047B1F0200042C56054A1758037B2A0200047B1F0200046FCC00000A2F40037B2A0200047B1F020004054A17586FCB00000A7B2602000420FC3200003320D053000001280100000A178D02000001251606A26F3601000A0A05054A175854037B2A0200043982000000037B2A0200047B1F0200043972000000054A1758037B2A0200047B1F0200046FCC00000A2F022B082B580B38FDF9FFFF037B2A0200047B1F020004054A17586FCB00000A7B26020004200C33000033022B082B2E5438C8F9FFFF066F4001000A0A2B060A38B2F9FFFF05054A1758542B1172FD1C0070032865000006730700000A7A062A00011C00000200E403361A040E0000000002008C0438C4040E000000001B300700E41000002100001173B50000060A060238CB100000143891100000037B2A0200043869100000142B12067B62000004037B2A0200041728740000060C037B200200040D037B230200041304037B2A0200042C1C037B2A0200047B2D0200042C0F037B2A0200047B2D020004FE0B01001104397605000011047B2602000420E43200002E1111047B26020004200F330000405705000073B200000613051105067B62000004110428980000067D600000041105147D610000040814280200000A2C1172301E0070032866000006730700000A7A0811057B600000047B910000046F4201000A1306110614284301000A2C70086F4401000A1105FE06B3000006734501000A280F00002B281000002B130711076F4601000A1733471107166F4701000A130611066F4801000A11057B600000047B910000048E69281100002B281200002B1105732701000A7D610000041105FE06B4000006734A01000A6F4B01000A067B620000041106032895000006110614284301000A394D010000086F0300000A72E31F00706F4C01000A393801000011057B600000047B910000048E3A26010000086F4401000A130809130911088E691740EE0300001108169A130611066F4801000A130A11097B1F020004166FCB00000A7B26020004200E3300002E0911097B1F0200042B1211097B1F020004166FCB00000A7B1F020004734D01000A26734E01000A130B6FDB00000A130D2B41120D28DC00000A257B2B0200047B27020004130E7B2B0200047B2A020004130F067B62000004110F141628710000061310110B110E6F3A00000A11106F4F01000A120D28E000000A2DB6DE0E120DFE162000001B6F3000000ADC732701000A130C110A13111613122B27111111129A1313110B11136F5001000A12146F5101000A26110C11146FC700000A111217581312111211118E6932D11105732701000A7D6100000411057B61000004110C6F5201000A38DD0200000939D702000009131511157B1F0200046FCC00000A163EC20200001106285301000A131611157B1F020004166FCB00000A7B2602000420E82100002E4311157B1F020004166FCB00000A7B26020004200E330000401701000011157B1F020004166FCB00000A7B1F020004166FCB00000A7B2602000420E032000040F000000011157B1F020004166FCB00000A7B26020004200E3300002E0911157B1F0200042B1211157B1F020004166FCB00000A7B1F020004734D01000A13186FDB00000A130D3883000000120D28DC00000A257B2B0200047B2702000413197B2B0200047B2A020004131A11166FA100000A11197B2C0200047B580200046FD200000A131B111B14285401000A2C1A11166FA100000A11197B2C0200047B580200046F5501000A131B067B62000004111A14162871000006131C111B111C285601000A131D1118111D6F5701000A120D28E000000A3A71FFFFFFDE0E120DFE162000001B6F3000000ADC11161118285801000A2A11157B1F020004166FCB00000A7B2602000420E032000040F500000011157B1F020004166FCB00000A7B2B0200047B26020004200A22000040D4000000735901000A2511157B1F020004166FCB00000A6F5A01000A734D01000A131E6FDB00000A130D3883000000120D28DC00000A257B2B0200047B27020004131F7B2B0200047B2A020004132011166FA100000A111F7B2C0200047B580200046FD200000A1321112114285401000A2C1A11166FA100000A111F7B2C0200047B580200046F5501000A1321067B62000004112014162871000006132211211122285601000A1323111E11236F5701000A120D28E000000A3A71FFFFFFDE0E120DFE162000001B6F3000000ADC1116111E285801000A2A11157B1F02000406FE06B600000673DD00000A280C00002B281300002B131711176F2B01000A1733291117166F2801000A75720000012C1A11161117166F2801000A74720000016F5B01000A285C01000A2A11161117285C01000A2A11057B610000042C25110611057B600000047B9300000411057B61000004281400002B285E01000A0B38170B0000110611057B600000047B93000004285E01000A0B38FE0A00001104396E02000011047B2602000420E3320000405D020000110439DF0A0000093902020000097B1F02000439F7010000097B1F020004166FCB00000A7B1F020004252D1826735901000A25097B1F020004166FCB00000A6F5A01000A732701000A13246FDB00000A130D38DD000000120D28DC00000A132511257B2602000420E032000040AD00000011257B2B0200047B2602000420C22100003323067B620000040811257B2B020004289E0000061326112411266FC700000A388D000000067B6200000411257B2B0200047B2702000414162871000006745B0000016FA200000AA50A000001067B6200000411257B2B0200047B2A02000414162871000006745B0000016FA200000AA50A000001132713282B19112411288C0A00000128AD00000A6FC700000A1128175813281128112731E12B161124067B620000041125141628710000066FC700000A120D28E000000A3A17FFFFFFDE0E120DFE162000001B6F3000000ADC0814280200000A2C0E1124166F2801000A6FA100000A0C1613293884000000112411296F2801000A132A112A6FA100000A0828AE00000A2C6408D011000001280100000A280200000A2C41112A755B000001132B112B2C45112B6FA100000AD005000001280100000A280200000A2C2D11241129112B6FA200000A6F3A00000A28AD00000A6F5F01000A2B1111241129112A0828B400000A6F5F01000A112917581329112911246F2B01000A3F6EFFFFFF081124286001000A0B38D708000073B8000006132C112C067D64000004112C732701000A7D6300000411047B1F020004112CFE06B9000006736101000A6F6201000A086F6301000A2608112C7B63000004286401000A0B38890800000814280200000A3907040000097B2602000420E132000040F7030000736501000A132D097B1F020004166FCB00000A7B1F0200043A5C010000097B1F020004166FCB00000A7B2B020004399F000000097B1F020004166FCB00000A7B2B0200047B270200047B270200042D22097B1F020004166FCB00000A7B2B0200047B270200047B2C0200047B580200042B28067B62000004097B1F020004166FCB00000A7B2B0200047B27020004141628710000066F3A00000A1332112D1132067B62000004097B1F020004166FCB00000A7B2B0200047B2A02000414162871000006736601000A6F6701000A38D3010000097B1F020004166FCB00000A7B2A0200042C54112D097B1F020004166FCB00000A7B2A0200047B1F020004281500002B7B200200047B2C0200047B58020004067B62000004097B1F020004166FCB00000A14162871000006736601000A6F6701000A386C010000112D097B1F020004166FCB00000A7B2C0200047B58020004067B62000004097B1F020004166FCB00000A14162871000006736601000A6F6701000A382C010000097B1F020004166FCB00000A7B1F0200046FDB00000A130D38F3000000120D28DC00000A133311337B2B0200042C7411337B2B0200047B270200047B270200042D1811337B2B0200047B270200047B2C0200047B580200042B1E067B6200000411337B2B0200047B27020004141628710000066F3A00000A1334112D1134067B6200000411337B2B0200047B2A02000414162871000006736601000A6F6701000A2B6D11337B2A0200042C3D112D11337B2A0200047B1F020004281500002B7B200200047B2C0200047B58020004067B62000004113314162871000006736601000A6F6701000A2B27112D11337B2C0200047B58020004067B62000004113314162871000006736601000A6F6701000A120D28E000000A3A01FFFFFFDE0E120DFE162000001B6F3000000ADC067B620000046F15010006132ED016000002280100000A284401000A169A132F112ED016000002280100000A6F1A0100061330112E7BA80000041130112F285301000A28D100000A6FC700000AD016000002280100000A720920007028CE00000A1331112D6F6901000A133538890000001235286A01000A1336112E7BAC0000047BB200000411366F6B01000A6F6C01000A2D24112E7BAC0000047BB200000411366F6B01000A11366F6D01000A6FA100000A6F6E01000A112E7BA800000411301131178D02000001251611366F6D01000A6FA100000AA26F6F01000A11366F6B01000A28AD00000A11366F6D01000A287001000A6FC700000A1235287101000A3A6BFFFFFFDE0E1235FE163200001B6F3000000ADC112E7BA8000004112ED016000002280100000A6F0E010006113028D800000A6FC700000A112E17D016000002280100000A6F0B0100060B38760400000814280200000A3906010000D081000001280100000A0C08168D020000016F4201000A1337067B6200000411370328950000060939CC000000097B20020004252D02260913381137285301000A0BD01A00001B280100000A720920007028CE00000A26737201000A2611387B1F0200046FCC00000A16312811387B1F020004166FCB00000A7B26020004200E330000330F11387B1F020004166FCB00000A133811387B1F0200046FDB00000A130D2B3A120D28DC00000A133911397B2B0200047B270200047B2C0200047B5802000426067B6200000411397B2B0200047B2A0200041416287100000626120D28E000000A2DBDDE0E120DFE162000001B6F3000000ADC072A1137285301000A0B386403000008168D020000016F4201000A133A067B62000004113A032895000006113A14284301000A392B010000086F0300000A72E31F00706F4C01000A3916010000086F4401000A133B09133C113B8E69174011030000113B169A133A113A6F4801000A133D113C7B1F020004166FCB00000A7B26020004200E3300002E09113C7B1F0200042B12113C7B1F020004166FCB00000A7B1F020004734D01000A26734E01000A133E6FDB00000A130D2B41120D28DC00000A257B2B0200047B2702000413407B2B0200047B2A0200041341067B620000041141141628710000061342113E11406F3A00000A11426F4F01000A120D28E000000A2DB6DE0E120DFE162000001B6F3000000ADC732701000A133F113D13111613122B27111111129A1343113E11436F5001000A12446F5101000A26113F11446FC700000A111217581312111211118E6932D1113A113F285E01000A0B381002000009396A01000009134511457B1F0200046FCC00000A163E5501000011457B1F020004166FCB00000A7B2602000420E82100002E4311457B1F020004166FCB00000A7B26020004200E330000402001000011457B1F020004166FCB00000A7B1F020004166FCB00000A7B2602000420E032000040F9000000113A285301000A134611457B1F020004166FCB00000A7B26020004200E3300002E0911457B1F0200042B1211457B1F020004166FCB00000A7B1F020004734D01000A13476FDB00000A130D3883000000120D28DC00000A257B2B0200047B2702000413487B2B0200047B2A020004134911466FA100000A11487B2C0200047B580200046FD200000A134A114A14285401000A2C1A11466FA100000A11487B2C0200047B580200046F5501000A134A067B62000004114914162871000006134B114A114B285601000A134C1147114C6F5701000A120D28E000000A3A71FFFFFFDE0E120DFE162000001B6F3000000ADC11461147285801000A2A093986000000097B20020004252D0226097B1F02000406FE06B700000673DD00000A280C00002B281300002B134D113A285301000A134E114D6F2B01000A1733022B0C2B3D3A95EFFFFF388DEFFFFF114D166F2801000A75720000012C022B082B200B3869EFFFFF114E114D166F2801000A74720000016F5B01000A285C01000A2A114E114D285C01000A2A113A285301000A0B2B0A7D62000004382BEFFFFF072A41DC000002000000060200004E000000540200000E00000000000000020000008203000096000000180400000E00000000000000020000009304000096000000290500000E00000000000000020000004E060000F00000003E0700000E0000000000000002000000060A0000060100000C0B00000E0000000000000002000000860B00009C000000220C00000E00000000000000020000001A0D000047000000610D00000E0000000000000002000000280E00004E000000760E00000E0000000000000002000000940F0000960000002A1000000E000000000000001B300500A203000022000011037B2A0200047B2602000420DF3200003881030000143865030000037B270200047B27020004383C03000002037B270200047B270200041728740000061304021104037B270200047B2C0200047B580200046F190100060B2B36037B270200047B2C0200042D1002037B27020004141628710000062B180202037B270200047B2C0200047B58020004166F170100060B732701000A0C037B2A0200047B200200047B1F020004166FCB00000A7B1F0200046FDB00000A13052B19120528DC00000A130608021106141628710000066FC700000A120528E000000A2DDEDE0E1205FE162000001B6F3000000ADC076FA100000A6F6301000A08286001000A0D070928D100000A0A389502000002037B2A020004141628710000061307141308037B270200047B270200042C6F037B270200047B270200047B2C0200042C21037B270200047B270200047B2C0200047B58020004724C150070280600000A2D1402037B270200047B270200041728740000062B0711076FA100000A1309021109037B270200047B2C0200047B580200046F1901000613083875000000027BA50000041428AE00000A2C2002027BA5000004037B270200047B2C0200047B580200046F1901000613082B47037B270200047B2C0200042D1002037B27020004141628710000062B180202037B270200047B2C0200047B58020004166F1701000613082B0E1108745E0000016F0101000A130811086FB600000A1F0A2EE711086FB600000A1F0B2EDC11073A96000000037B2A0200047B2602000420DF320000408100000011086FA100000A6F2401000A399B000000732701000A130A037B2A0200047B1F020004166FCB00000A7B1F0200046FDB00000A13052B1A120528DC00000A130B110A02110B141628710000066FC700000A120528E000000A2DDDDE0E1205FE162000001B6F3000000ADC11086FA100000A6F6301000A110A286001000A13072B2B11072D27037B2A0200047B2602000420C221000033150211086FA100000A037B2A020004289E000006130711076FA100000A11086FA100000A28AE00000A2C6F11086FA100000AD011000001280100000A280200000A2C3B1107755B0000012C3211076FA100000AD005000001280100000A280200000A2C1A1107745B0000016FA200000A6F3A00000A28AD00000A13072B1C110711086FA100000A28B400000A13072B0A39EEFCFFFF38BAFCFFFF11086FB600000A1F3233022B082B0A0B3895FCFFFF140A2B161108110728D100000A0A2B0A4070FDFFFF3875FCFFFF062A0000011C00000200B80026DE000E0000000002007602279D020E0000000013300200BC00000023000011037B2602000438A90000000720E321000059450700000018000000050000003800000028000000480000005800000069000000387800000004055F8C0400000128AD00000A0A386F0000000405608C0400000128AD00000A0A2B5F04055F8C0400000128AD00000A0A2B4F0405608C0400000128AD00000A0A2B3F0405618C0400000128AD00000A0A2B2F0405FE018C0400000128AD00000A0A2B1E0405FE0116FE018C0400000128AD00000A0A2B0A140A2B060B3851FFFFFF062A0A142A00133002002A00000023000011037B260200042B1D07201D22000033110416FE018C0400000128AD00000A0A2B07140A2B030B2BE0062A0000133002002B01000023000011037B2602000438180100000720DC21000059451200000005000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C00000002B000000180000003E0000005100000062000000760000009800000087000000AC00000038BB0000000405588C0A00000128AD00000A0A38B200000004055F8C0A00000128AD00000A0A389F0000000405608C0A00000128AD00000A0A388C0000000405618C0A00000128AD00000A0A38790000000405FE018C0400000128AD00000A0A2B680405FE0116FE018C0400000128AD00000A0A2B540405FE048C0400000128AD00000A0A2B430405FE028C0400000128AD00000A0A2B320405FE0216FE018C0400000128AD00000A0A2B1E0405FE0416FE018C0400000128AD00000A0A2B0A140A2B060B38E2FEFFFF062A00133003004900000023000011037B260200042B3C0720E12100002E0A0720E22100002E152B2604051F1F5F628C0A00000128AD00000A0A2B1A04051F1F5F638C0A00000128AD00000A0A2B07140A2B030B2BC1062A000000133003003D02000023000011037B26020004382A0200000720DC2100005938BB0000000720D23200003BF9010000380A020000026FFF00000638700000000405582B030405D68C0A00000128AD00000A0A38F1010000026FFF0000062D050405592B030405DA8C0A00000128AD00000A0A38D1010000026FFF0000062D0504055A2B030405D88C0A00000128AD00000A0A38B1010000026FFF0000062D14042000000080330C05152E022B062B132D932B8C04055B8C0A00000128AD00000A2B0F20000000808C0A00000128AD00000A0A3871010000051533022B542B5F451200000008FFFFFF2BFFFFFF4BFFFFFF6BFFFFFFABFFFFFF250000003B00000012010000120100006400000051000000770000008A0000009E000000B2000000D4000000C3000000E800000038F3FEFFFF168C0A00000128AD00000A2B0D04055D8C0A00000128AD00000A0A38F700000004051F1F5F628C0A00000128AD00000A0A38E100000004051F1F5F638C0A00000128AD00000A0A38CB00000004055F8C0A00000128AD00000A0A38B80000000405608C0A00000128AD00000A0A38A50000000405618C0A00000128AD00000A0A38920000000405FE018C0400000128AD00000A0A387E0000000405FE0116FE018C0400000128AD00000A0A2B6A0405FE048C0400000128AD00000A0A2B590405FE028C0400000128AD00000A0A2B480405FE0216FE018C0400000128AD00000A0A2B340405FE0416FE018C0400000128AD00000A0A2B20046C056C287301000A8C0F00000128AD00000A0A2B0A140A2B060B38D0FDFFFF062A000000133002006400000023000011037B260200042B5707201A2200005945030000001E000000020000002C0000002B39026FFF0000062D0404652B031604DA8C0A00000128AD00000A0A2B24048C0A00000128AD00000A0A2B1604668C0A00000128AD00000A0A2B07140A2B030B2BA6062A13300200DA01000023000011037B2602000438C70100000720DC2100005938640000000720D23200003B9401000038A7010000026FFF0000062B240405582B030405D78C0B00000128AD00000A0A3891010000026FFF0000062D022B062B092DDF2BD80405592B030405DB8C0B00000128AD00000A0A3869010000026FFF0000062D022B542B5745120000005FFFFFFF7FFFFFFFA7FFFFFF1D00000030000000060100000601000006010000060100005600000043000000690000007C00000090000000A4000000C6000000B5000000DA000000384AFFFFFF04055A2B030405D98C0B00000128AD00000A0A38F300000004055C8C0B00000128AD00000A0A38E000000004055E8C0B00000128AD00000A0A38CD00000004055F8C0B00000128AD00000A0A38BA0000000405608C0B00000128AD00000A0A38A70000000405618C0B00000128AD00000A0A38940000000405FE018C0400000128AD00000A0A38800000000405FE0116FE018C0400000128AD00000A0A2B6C0405FE058C0400000128AD00000A0A2B5B0405FE038C0400000128AD00000A0A2B4A0405FE0316FE018C0400000128AD00000A0A2B360405FE0516FE018C0400000128AD00000A0A2B2204766C05766C287301000A8C0F00000128AD00000A0A2B0A140A2B060B3833FEFFFF062A0000133003004900000023000011037B260200042B3C0720E12100002E0A0720E22100002E152B2604051F1F5F628C0B00000128AD00000A0A2B1A04051F1F5F648C0B00000128AD00000A0A2B07140A2B030B2BC1062A00000013300200CC00000023000011037B2602000438B900000007201A22000059450300000080000000050000008E00000038980000000420000000802B47037B210200047B200200047B2602000420D73200002B20037B210200047B200200047B2C0200047B5702000420153300002E022B062B2A33022BDC026FFF0000062D022B062B0933F22BB5046E652B05166A046EDA8C0C00000128AD00000A2B0F20000000808C0A00000128AD00000A0A2B27048C0B00000128AD00000A0A2B1904668C0B00000128AD00000A0A2B0A140A2B060B3841FFFFFF062A133002001C02000023000011037B2602000438090200000720DC2100005938C50000000720D23200003BD801000038E9010000026FFF00000638750000000405582B030405D68C0C00000128AD00000A0A38D0010000026FFF0000062D050405592B030405DA8C0C00000128AD00000A0A38B0010000026FFF0000062D0504055A2B030405D88C0C00000128AD00000A0A3890010000026FFF0000062D1904210000000000000080330D05156A2E022B062B132D8E2B8704055B8C0C00000128AD00000A2B132100000000000000808C0C00000128AD00000A0A384701000005156A33022B542B604512000000FEFEFFFF21FFFFFF41FFFFFF61FFFFFFAAFFFFFFE7000000E7000000E7000000E700000039000000260000004C0000005F0000007300000087000000A900000098000000BD00000038E9FEFFFF166A8C0C00000128AD00000A2B0D04055D8C0C00000128AD00000A0A38CB00000004055F8C0C00000128AD00000A0A38B80000000405608C0C00000128AD00000A0A38A50000000405618C0C00000128AD00000A0A38920000000405FE018C0400000128AD00000A0A387E0000000405FE0116FE018C0400000128AD00000A0A2B6A0405FE048C0400000128AD00000A0A2B590405FE028C0400000128AD00000A0A2B480405FE0216FE018C0400000128AD00000A0A2B340405FE0416FE018C0400000128AD00000A0A2B20046C056C287301000A8C0F00000128AD00000A0A2B0A140A2B060B38F1FDFFFF062A133003004900000023000011037B260200042B3C0720E12100002E0A0720E22100002E152B2604051F3F5F628C0C00000128AD00000A0A2B1A04051F3F5F638C0C00000128AD00000A0A2B07140A2B030B2BC1062A000000133002006500000023000011037B260200042B5807201A2200005945030000001F000000020000002D0000002B3A026FFF0000062D0404652B04166A04DA8C0C00000128AD00000A0A2B24048C0C00000128AD00000A0A2B1604668C0C00000128AD00000A0A2B07140A2B030B2BA5062A00000013300200DA01000023000011037B2602000438C70100000720DC2100005938640000000720D23200003B9401000038A7010000026FFF0000062B240405582B030405D78C0D00000128AD00000A0A3891010000026FFF0000062D022B062B092DDF2BD80405592B030405DB8C0D00000128AD00000A0A3869010000026FFF0000062D022B542B5745120000005FFFFFFF7FFFFFFFA7FFFFFF300000001D000000060100000601000006010000060100005600000043000000690000007C00000090000000A4000000C6000000B5000000DA000000384AFFFFFF04055A2B030405D98C0D00000128AD00000A0A38F300000004055E8C0D00000128AD00000A0A38E000000004055C8C0D00000128AD00000A0A38CD00000004055F8C0D00000128AD00000A0A38BA0000000405608C0D00000128AD00000A0A38A70000000405618C0D00000128AD00000A0A38940000000405FE018C0400000128AD00000A0A38800000000405FE0116FE018C0400000128AD00000A0A2B6C0405FE058C0400000128AD00000A0A2B5B0405FE038C0400000128AD00000A0A2B4A0405FE0316FE018C0400000128AD00000A0A2B360405FE0516FE018C0400000128AD00000A0A2B2204766C05766C287301000A8C0F00000128AD00000A0A2B0A140A2B060B3833FEFFFF062A0000133003004900000023000011037B260200042B3C0720E12100002E0A0720E22100002E152B2604051F3F5F628C0D00000128AD00000A0A2B1A04051F3F5F648C0D00000128AD00000A0A2B07140A2B030B2BC1062A00000013300200D500000023000011037B2602000438C200000007201A22000059450300000089000000050000009700000038A1000000042100000000000000802B5B037B210200047B200200047B2602000420D73200002B20037B210200047B200200047B2C0200047B5702000420153300002E022B062B2B33262BDC037B210200047B200200047B2C0200047B5702000420E83200002E022B062B0733022BA1142B132100000000000000808C0C00000128AD00000A0A2B27048C0D00000128AD00000A0A2B1904668C0D00000128AD00000A0A2B0A140A2B060B3838FFFFFF062A000000133002009F01000023000011037B26020004388C0100000720DC2100005938640000000720D23200003B5B010000386C010000026FFF0000062B240405582B030405588C0E00000128AD00000A0A3856010000026FFF0000062D022B062B092DDF2BD80405592B030405598C0E00000128AD00000A0A382E010000026FFF0000062D022B542B5745120000005FFFFFFF7FFFFFFFA7FFFFFF1D00000030000000CB000000CB000000CB000000CB000000CB000000CB000000CB00000043000000570000006B0000008D0000007C000000A1000000384AFFFFFF04055A2B0304055A8C0E00000128AD00000A0A38B800000004055B8C0E00000128AD00000A0A38A500000004055D8C0E00000128AD00000A0A38920000000405FE018C0400000128AD00000A0A387E0000000405FE0116FE018C0400000128AD00000A0A2B6A0405FE048C0400000128AD00000A0A2B590405FE028C0400000128AD00000A0A2B480405FE0316FE018C0400000128AD00000A0A2B340405FE0516FE018C0400000128AD00000A0A2B20046C056C287301000A8C0F00000128AD00000A0A2B0A140A2B060B386EFEFFFF062A000A142A00133002004600000023000011037B260200042B3907201A2200002B0C07201B22000033022B062B212E112BF004658C0E00000128AD00000A0A2B15048C0E00000128AD00000A0A2B07140A2B030B2BC4062A0000133002009D01000023000011037B26020004388A0100000720DC2100005938640000000720D23200003B5B010000386A010000026FFF0000062B240405582B030405588C0F00000128AD00000A0A3854010000026FFF0000062D022B062B092DDF2BD80405592B030405598C0F00000128AD00000A0A382C010000026FFF0000062D022B542B5745120000005FFFFFFF7FFFFFFFA7FFFFFF1D00000030000000C9000000C9000000C9000000C9000000C9000000C9000000C900000043000000570000006B0000008D0000007C000000A1000000384AFFFFFF04055A2B0304055A8C0F00000128AD00000A0A38B600000004055B8C0F00000128AD00000A0A38A300000004055D8C0F00000128AD00000A0A38900000000405FE018C0400000128AD00000A0A387C0000000405FE0116FE018C0400000128AD00000A0A2B680405FE048C0400000128AD00000A0A2B570405FE028C0400000128AD00000A0A2B460405FE0316FE018C0400000128AD00000A0A2B320405FE0516FE018C0400000128AD00000A0A2B1E0405287301000A8C0F00000128AD00000A0A2B0A140A2B060B3870FEFFFF062A0000000A142A00133002004600000023000011037B260200042B3907201A2200002B0C07201B22000033022B062B212E112BF004658C0F00000128AD00000A0A2B15048C0F00000128AD00000A0A2B07140A2B030B2BC4062A0000133002009901000023000011037B2602000438860100000720DC210000594512000000050000002D00000055000000850000009C0000002E0100002E0100002E0100002E0100002E0100002E0100002E010000B3000000CA000000DE00000006010000F20000001A0100003829010000026FFF0000062B540405287401000A2B070405287401000A8C1000000128AD00000A0A380B010000026FFF0000062D090405287501000A2B070405287501000A8C1000000128AD00000A0A38E3000000026FFF0000062D022B062B0D2DB32BA80405287601000A2B070405287601000A8C1000000128AD00000A0A38B30000000405287701000A8C1000000128AD00000A0A389C0000000405287801000A8C1000000128AD00000A0A38850000000405287901000A8C0400000128AD00000A0A386E0000000405287A01000A8C0400000128AD00000A0A2B5A0405287B01000A8C0400000128AD00000A0A2B460405287C01000A8C0400000128AD00000A0A2B320405287D01000A8C0400000128AD00000A0A2B1E0405287E01000A8C0400000128AD00000A0A2B0A140A2B060B3874FEFFFF062A0000000A142A00133002004A00000023000011037B260200042B3D07201A2200002B0C07201B22000033022B062B252E152BF004287F01000A8C1000000128AD00000A0A2B15048C1000000128AD00000A0A2B07140A2B030B2BC0062A000013300200F300000023000011037B2602000438E00000000720DD2100002B350720E8210000594506000000350000004C0000006000000088000000740000009C00000038AB000000026FFF0000062D022B062B0D2EF22BC70405288001000A2B070405288001000A8C7500000128AD00000A0A38850000000405288101000A8C0400000128AD00000A0A386E0000000405288201000A8C0400000128AD00000A0A2B5A0405288B00000A8C0400000128AD00000A0A2B460405288301000A8C0400000128AD00000A0A2B320405288401000A8C0400000128AD00000A0A2B1E0405288501000A8C0400000128AD00000A0A2B0A140A2B060B381AFFFFFF062A00133002006D00000023000011037B26020004385D0000000720DC2100002B0C0720E82100002E022B062B1D2E0C2BF00720E92100002E252B370405284200000A28AD00000A0A2B2F0405280600000A8C0400000128AD00000A0A2B1B040528B800000A8C0400000128AD00000A0A2B07140A2B030B2BA0062A0000000A142A000A142A00062A00005A02280D000006D083000001280100000A281600002B2A001B3005004B02000024000011738701000A0A037B1F0200046FCC00000A172B1C037B1F020004166FCB00000A7B26020004200E3300002E022B062B0C33022BE0037B1F0200042B11037B1F020004166FCB00000A7B1F0200046FDB00000A0B38D5010000120128DC00000A0C73EA0000060D060938B6010000087B26020004383A010000110420A82000002E17110420A92000002E0E110420E03200002E70387A0100000902087B2A020004141628710000067D92000004087B2A0200047B270200042C3E087B2A0200047B270200047B2C0200047B58020004724C150070280600000A2C1D09087B2A0200047B2C0200047B580200047D9000000409177D8E00000409177D8D000004382A010000087B2B0200047B26020004201320000040C500000009087B2B0200047B270200047B2C0200047B580200047D8F000004087B2B0200047B2A020004130511057B2602000420A92000002E0E11057B2602000420A82000003366090211057B2A020004141628710000067D9200000411057B270200042C3F11057B270200047B2C0200047B58020004724C150070280600000A2C220911057B2C0200047B580200047D9000000409177D8E0000042B07130438BFFEFFFF09177D8D0000042B6B0902087B2B0200047B2A020004141628710000067D920000042B5009087B2B0200047B2602000420C22100002E1002087B2B020004141628710000062B0B087B2B02000428AD00000A7D920000042B1B090208141628710000067D920000042B0A6F8801000A3840FEFFFF120128E000000A3A1FFEFFFFDE0E1201FE162000001B6F3000000ADC062A00411C00000200000053000000E80100003B0200000E000000000000001B3004004A01000025000011732701000A0A733B01000A0B037B1F0200046FCC00000A172B1C037B1F020004166FCB00000A7B26020004200E3300002E022B062B0C33022BE0037B1F0200042B11037B1F020004166FCB00000A7B1F0200046FDB00000A0C38C3000000120228DC00000A38B1000000097B260200043895000000110620A82000002E14110620A92000002E0B110620E03200002E222B5A02097B2A02000414162871000006130411046FA100000A6F8901000A13052B4E097B2B0200047B2602000420C22100002E1002097B2B020004141628710000062B0B097B2B02000428AD00000A130411046FA100000A13052B14020914162871000006130411046FA100000A13050611046FC700000A2B0713063864FFFFFF0711056F3C01000A2B060D3849FFFFFF120228E000000A3A31FFFFFFDE0E1202FE162000001B6F3000000ADC06076F3F01000A73EB0000062A00000110000002005900D62F010E0000000013300200910200002600001102280E000006387E02000003280E000006386A00000006072B5602060D03FE0B0000070AFE0B0100090B140C06172E0407173310D001000001280100000A0C384B02000006073348061A2E44061B2E40061C2E3C061D2E38061E2E340228100000062C100328100000062D022B062B192FB82BA60228100000062D022B052B060B2B93022B04032B01030C38FF010000061A59450F000000050000000500000005000000050000000500000005000000360000007B000000B4000000ED0000002E0100006D010000A8010000BB010000A801000038B6010000071A59450500000005000000050000000500000005000000050000003895010000D00A000001280100000A0C3885010000071A5945060000000500000015000000050000001500000005000000150000003860010000D00B000001280100000A0C3850010000D00C000001280100000A0C3840010000071A594507000000050000000500000005000000050000000500000005000000050000003817010000D00C000001280100000A0C3807010000071A59450700000005000000E300000005000000E300000005000000E30000000500000038DE000000D00D000001280100000A0C38CE000000071A594509000000050000000500000005000000050000000500000005000000050000000500000005000000389D000000D00E000001280100000A0C388D000000071A59450A000000020000000200000002000000020000000200000002000000020000000200000002000000020000002B5BD00F000001280100000A0C2B4E071A5945090000000200000002000000020000000200000002000000020000000200000002000000020000002B20D010000001280100000A0C2B13D011000001280100000A0C2B060A387CFDFFFF082A000000133002006602000027000011026FA100000A280E000006384E020000036FA100000A280E0000063888010000060738F000000002061304070AFE0B010011040B036FA200000A0C160D06172E0407173307170D38180200000607331B061A2E17061B2E13061C2E0F061D2E0B061E2E07060D38F9010000061A59450F0000000500000005000000050000000500000005000000050000002E00000082000000B3000000070100004001000077010000AA010000B5010000AA01000038B0010000071A5945050000000500000005000000050000000500000005000000388F0100001F090D3887010000071A594506000000050000000D000000050000000D000000050000000D00000038620100001F090D385A0100000828A500000A1632022B0C2B123C18FFFFFF3806FFFFFF1F0A0D383B0100001F0B0D3833010000071A59450700000005000000050000000500000005000000050000000500000005000000380A0100001F0B0D3802010000071A59450800000005000000DA00000005000000DA000000050000000D000000050000000D00000038D50000001F0C0D38CD0000000828A700000A166A32022B0B38BC0000000B3872FEFFFF1F0C0D38AE000000071A594509000000050000000500000005000000050000000500000005000000050000000500000005000000387D0000001F0D0D3875000000071A59450A000000020000000200000002000000020000000200000002000000020000000200000002000000020000002B431F0E0D2B3E071A5945090000000200000002000000020000000200000002000000020000000200000002000000020000002B101F0F0D2B0B1F120D2B060A38ACFDFFFF092A0000133003003B0000002800001173BA0000060A06042B0B031F186F1A00000A262B077D650000042BEE031F186F1A00000A06FE06BB000006731B00000A281700002B281800002B2A00133006005403000029000011143846030000046FA100000A3824030000056FA100000A3808030000140D141304037B260200041309110920DC21000059451200000065010000820100009F010000BC010000D90100002501000045010000F4010000F40100000500000045000000250000006500000085000000A5000000C5000000E50000000501000038EF01000002077211200070289B0000060D02087211200070289B000006130438CF0100000207722B200070289B0000060D0208722B200070289B000006130438AF01000002077249200070289B0000060D02087249200070289B0000061304388F01000002077265200070289B0000060D02087265200070289B0000061304386F0100000207727D200070289B0000060D0208727D200070289B0000061304384F01000002077299200070289B0000060D02087299200070289B0000061304382F010000020772B1200070289B0000060D020872B1200070289B0000061304380F010000020772D7200070289B0000060D020872D7200070289B000006130438EF000000020772F5200070289B0000060D020872F5200070289B000006130438CF00000002077221210070289B0000060D02087221210070289B000006130438AF0000000207723B210070289B0000060D0208723B210070289B0000061304388F00000002077257210070289B0000060D02087257210070289B00000613042B720207726F210070289B0000060D0208726F210070289B00000613042B550207728D210070289B0000060D0208728D210070289B00000613042B38020772A5210070289B0000060D020872A5210070289B00000613042B1B020772BD210070289B0000060D020872BD210070289B0000061304732701000A25046FC700000A25056FC700000A1305733B01000A25046FA100000A6F3C01000A25056FA100000A6F3C01000A6F3F01000A1306091104281900002B130707141107281A00002B110611050228CB00000611060328CF000006130811082D02142A11087B6C0000042C1172D3210070032865000006730700000A7A11087B6F00000417331A110828D1000006130511087B700000041105288C01000A0A2B3C11087B6F0000041833022B082B2E0C38F2FCFFFF110828D100000613052B060B38D6FCFFFF11087B700000041105288C01000A0A2B060A38B4FCFFFF062A133006008D0100002A00001114387F010000046FA100000A385E010000143848010000037B2602000413061106201A22000059450A0000002300000032000000500000004100000014000000050000007B0000007B0000006E0000005F000000387600000002077206230070289B0000060C2B6702077220230070289B0000060C2B580207723A230070289B0000060C2B4902077254230070289B0000060C2B3A02077276230070289B0000060C2B2B02077292230070289B0000060C2B1C02077206230070289B0000060C2B0D02077220230070289B0000060C732701000A25046FC700000A0D733B01000A25046FA100000A6F3C01000A6F3F01000A13040714086F8D01000A1104090228CB00000611040328CF000006130511052D02142A11057B6C0000042C1172D3210070032865000006730700000A7A11057B6F000004173318110528D10000060D11057B7000000409288C01000A0A2B3A11057B6F0000041833022B082B2C0C38B2FEFFFF110528D10000060D2B060B389CFEFFFF11057B7000000409288C01000A0A2B060A387BFEFFFF062A00000013300400BA0100002B000011026F15010006389F010000036F1600000A3882010000036F0300000A72B62300706F4C01000A3852010000162B01170C047B270200047B230200042C16047B270200047B230200047B1F0200046FCC00000A26738E01000A0D078E69083E2501000016130538030100000711059A130672EE0400701307047B270200047B2302000439BA000000047B270200047B230200047B1F0200046FCC00000A173352047B270200047B230200047B1F020004166FCB00000A7B26020004200E3300003330047B270200047B230200047B1F020004166FCB00000A7B1F02000411056FCB00000A7B2C0200047B5802000413072B62047B270200047B230200047B1F0200042C25047B270200047B230200047B1F02000411056FCB00000A7B2C0200047B5802000413072B2B047B270200047B230200047B2C0200047B5802000413072B12047B270200047B2C0200047B58020004130706110611076F1B01000613080911086F8F01000A1105175813051105078E69085932022B0F38EDFEFFFF3AACFEFFFF38A4FEFFFF06047B2A02000414172871000006262B060B3878FEFFFF0616146F0B01000613042B060A385BFEFFFF03110409289001000A2A000013300400910100002C000011026F150100060A738E01000A0B046F3D01000A163862010000160C383401000004086F9101000A383801000072EE0400703817010000037B2702000439CB000000037B270200047B2302000439BB000000037B270200047B230200047B1F0200046FCC00000A173354037B270200047B230200047B1F020004166FCB00000A7B26020004200E3300003332037B270200047B230200047B1F020004166FCB00000A7B1F020004086FCB00000A7B2C0200047B5802000413043877000000037B270200047B230200047B1F0200042C24037B270200047B230200047B1F020004086FCB00000A7B2C0200047B5802000413042B41037B270200047B230200047B2C0200047B5802000413042B28082D14037B270200047B2C0200047B5802000413042B1172C2230070032865000006730700000A7A060911046F1B01000613050711056F8F01000A0817580C2B07130438E2FEFFFF08046F3D01000A32022B0B38BCFEFFFF0D38C2FEFFFF06037B2A02000414172871000006262B0731ED3897FEFFFF0616146F0B01000607289201000A2A0000001B300400600100002D000011056F9301000A6F1600000A382F010000026F150100060B738E01000A0C056F9301000A6F0300000A72EB2400706F4C01000A38ED0000001638D10000001738CB000000037B270200042C1E037B270200047B1F0200042C11037B270200047B1F0200046FCC00000A0D068E690917582E08141304DDE4000000068E69173EAC000000161305388A0000000611059A130672EE0400701307037B270200042C41037B270200047B1F0200042C20037B270200047B1F02000411056FCB00000A7B2C0200047B5802000413072B26037B270200047B2C0200047B5802000413072B12037B270200047B2C0200047B58020004130707110611076F1B01000613080811086F8F01000A1105175813052B060D382FFFFFFF1105068E69175932022B0F3866FFFFFF3A14FFFFFF3809FFFFFF07037B2A02000414172871000006262B060A38CBFEFFFF0716146F0B01000608289201000A1304DE0626141304DE0011042A411C0000000000000000000057010000570100000600000017000001133002001A0000002E00001102037B2302000428980000060A04067B93000004289401000A2A000013300600480000002F00001102037B2302000428970000062B230204046FA100000A060414FE010328280100060B02077BC20000040328950000062B030A2BDA04077BC200000407036F1F010006289501000A2A13300900310200003000001173BC0000060A0602381702000005755B00000138EA0100000738CD010000056FA100000A6F0300000A72F5240070280600000A2C1A067B6600000403076FA200000A7402000001141428A30000062A067B66000004037B2302000428970000060C0E043A85000000037B2C0200043A7A000000037B2A0200042C72037B2A0200047B1F0200042C65037B2A0200047B1F0200046FCC00000A173352037B2A0200047B1F020004166FCB00000A7B2602000420F93200003335037B2A0200047B1F020004166FCB00000A7B230200047B1F02000406FE06BD000006732301000A280D00002B280E00002BFE0B0400037B2C0200042C3B037B2C0200047B5802000472241E0070280600000A2D24037B2C0200047B58020004720D250070280600000A2D0D037B2C0200047B580200042B10037B200200047B2C0200047B580200040D0414280200000A2C61037B2C0200042C59067B66000004067B66000004037B2C0200047B58020004166F170100062513042C37087E5F000004252D17267E5B000004FE06B1000006739601000A25805F000004281B00002B130611041106289701000A13053883000000067B66000004050409080514FE010E0403120728290100061308067B6600000411087BC100000403289500000611072C061107FE0B030011086F1E0100062B0A395FFEFFFF3829FEFFFF11086F1D0100062D022B082B090B3810FEFFFF052B011411087BC10000041108036F1F010006289801000A13052B0A7D6600000438DFFDFFFF11052A00000013300600FD0200003100001173BE0000060A060338E40200000538D00200001E38B30200001A38AD020000140C053988000000056FA100000AD016000002280100000A280200000A2C71027BAC0000047BB2000004067B670000047B2C0200047B580200046F9901000A1305D016000002280100000A721325007028CE00000A1306051106178D0200000125161105A26F6F01000A178D1C0000012516067B670000047B2C0200047B5802000428AD00000AA2289A01000A0C082A06027BAC0000047BB4000004175F172E031A2B011B7D680000040407027BAC0000047BB4000004606F9B01000A0D0906FE06BF000006739C01000A281C00002B252D13260906FE06C0000006739C01000A281C00002B1304110414289E01000A2C1C021104067B67000004289500000605110428D300000A0C38CE0100000407027BAC0000047BB4000004606F9F01000A1307110706FE06C100000673A001000A281D00002B252D1426110706FE06C200000673A001000A281D00002B130811081428A101000A3978000000021108067B67000004289500000611086FA201000A2D2B04D010000001280100000A280200000A2D0A05110828A301000A2B3F1108056FA401000A28AD00000A2B300428100000062D0F1108056FA401000A28AD00000A2B1911086FA501000A1108056FA401000A28B100000A28AD00000A0C38080100000407027BAC0000047BB4000004606FA601000A1309110906FE06C300000673A701000A281E00002B252D1426110906FE06C400000673A701000A281E00002B130A110A1428A801000A2C1B02110A067B670000042895000006110A28AD00000A0C38A20000000407027BAC0000047BB4000004606FA901000A130B110B06FE06C500000673AA01000A281F00002B252D1426110B06FE06C600000673AA01000A281F00002B130C110C1428AE00000A2C0A110C28AD00000A0C2B4D052C4A056FA100000AD001000001280100000A280200000A2D022B082B210B384DFDFFFF056FA100000A28960000062C022B0C2B183A31FDFFFF3826FDFFFF140C2B0A7D670000043812FDFFFF082A0000001B3003009F01000032000011046FA100000A280E0000063854010000071959451000000005000000E30000001D0000001D0000001D0000001D000000350000004D000000650000007A0000008F000000A4000000B9000000E3000000E3000000CE00000038DE0000000203046FA200000AA504000001287A0000060A38C80000000203046FA200000A28A500000A287E0000060A38B00000000203046FA200000AA50A000001287E0000060A38980000000203046FA200000AA50B00000128810000060A38800000000203046FA200000AA50C00000128840000060A2B6B0203046FA200000AA50D00000128870000060A2B560203046FA200000AA50E000001288A0000060A2B410203046FA200000AA50F000001288D0000060A2B2C0203046FA200000AA51000000128900000060A2B170203046FA200000A741100000128940000060A2B02140ADE1E26725E130070032866000006730700000A0C72511400700873AF00000A7A062D022B082B390B38A6FEFFFF725E130070032866000006730700000A0D7225250070037B2C0200046F3A00000A046FA100000A28680000060973B000000A7A062A00411C000000000000100000002F0100003F0100001E0000005C000001133003005200000033000011046FB600000A1F322B42140A2B4204755B0000012B15072D28046FA100000A280E000006172E022B052B0C0B2BE805046FAB01000A2B12020304289D0000062B0802030728A50000060A2B0433C02BBA062A0000133006005300000000000000D05A000001280100000A729925007028CE00000A8056000004D011000001280100000A72A1250070188D020000012516D001000001280100000AA22517D001000001280100000AA2280F01000A80570000042A001E02280E00000A2A52027B58000004037B20020004141628710000062A0000001E02280E00000A2A3A027B5A000004031728740000062A002E73AD000006805B0000042A1E02280E00000A2A133004007700000000000000036FA100000AD00F000001280100000A28AE00000A2B4903D00F000001280100000A28B400000A2B1B046FA100000AD00F000001280100000A28AE00000A2C022B082B20FE0B01002BDF04D00F000001280100000A28B400000AFE0B02002B042CC72BB3037E560000040304281001000A28D100000A2A00133003007100000000000000036FA100000AD00F000001280100000A28AE00000A2B4903D00F000001280100000A28B400000A2B1B046FA100000AD00F000001280100000A28AE00000A2C022B082B20FE0B01002BDF04D00F000001280100000A28B400000AFE0B02002B042CC72BB37E560000040304281001000A2A0000001E036FAC01000A2A1E037B920000042A1E02280E00000A2A133003005600000000000000036F4801000A8E69027B600000047B910000048E69313D036F4801000A027B600000047B910000048E69281100002B7E5E000004252D17267E5B000004FE06B000000673AD01000A25805E000004282000002B2A162A000076027B61000004036FAF01000A036F9301000A283701000A6FC700000A2A00001E02280E00000A2A3E027B6200000403141628710000062A3E027B6200000403141628710000062A1E02280E00000A2A7E027B63000004027B640000047B6200000403141628710000066FC700000A2A1E02280E00000A2A4A036F0300000A027B6500000428B001000A2A001E02280E00000A2A3A027B66000004031728740000062A001E02280E00000A2A72036F0300000A027B670000047B2C0200047B580200046FB101000A2A0000008A036F0300000A027B670000047B2C0200047B58020004027B680000046FB201000A2A0072036F0300000A027B670000047B2C0200047B580200046FB101000A2A0000008A036F0300000A027B670000047B2C0200047B58020004027B680000046FB201000A2A0072036F0300000A027B670000047B2C0200047B580200046FB101000A2A0000008A036F0300000A027B670000047B2C0200047B58020004027B680000046FB201000A2A0072036F0300000A027B670000047B2C0200047B580200046FB101000A2A0000008A036F0300000A027B670000047B2C0200047B58020004027B680000046FB201000A2A001330030036000000340000110228D10000062B29027B6F000004192B0D027B6F0000041A33022B062B162E022BEF0616027B790000046FB301000A2B030A2BD4062A00004A0273B401000A7D7300000402280E00000A2A0013300300430100003500001173DA0000060A0605382A0100000414280200000A3806010000027BAC0000046F0701000606FE06DB00000673B501000A282100002B7E84000004252D17267E83000004FE06E000000673B601000A258084000004282200002B282300002B7E85000004252D17267E83000004FE06E100000673B701000A258085000004282400002B281800002B2A06027BAC0000047BB4000004175F172E031A2B5E1B2B5B0E042D2B041A027BAC0000047BB4000004606F1A00000A06FE06DD000006731B00000A281700002B281800002B2B29041E027BAC0000047BB4000004606F1A00000A06FE06DC000006731B00000A281700002B281800002B0B2B077D820000042B9E027BAC0000046F03010006067B8100000412026FB801000A2C022B0C2B223964FFFFFF38F0FEFFFF07086FB901000A6FBA01000A2B0A7D8100000438CCFEFFFF072A00DE026FBB01000A26026FBB01000A7E86000004252D17267E83000004FE06E2000006739C01000A258086000004282500002B282600002B2A13300500030100003600001173BC01000A0A0438EF000000160C38DB00000007089A0D73C8000006250E057D7700000425097D7100000425097D7000000425177D6F0000042502252D0726096FBD01000A7D7800000425057D7400000425037D79000004250E0473BE01000A7D6B0000042509D014000001280100000A166FBF01000A7D6D0000043869000000096FC001000A2B571104110428D70000067D7000000411047B700000041428CF00000A2D3E1104110428CD0000067D6900000411047B690000042C27110428D80000062C1E110411047B690000048E697D6A0000040611046FC101000A2B042CC42BA50817580C2B0413042B9308078E6932022B0B3818FFFFFF0B380BFFFFFF062A0013300200640000003700001173C201000A0A023853000000160C2B4507089A2B3D032B30096FC301000A2C2C032D08096FC401000A2C21032D08096FC501000A2B06096FC601000A13040611046FC701000A2B042CD62BCC0817580C2B030D2BC008078E6932022B052BB10B2BAA062A133002005D00000038000011027B700000046F4801000A2B37027B6D0000042B12027B6F00000417330D02197D6F0000042B042C322BEA06169A6F9301000A027B780000046F1900000A2D022B052B050A2BC6142A06281200002B17281100002B282700002B2A062A0000001330040022000000390000110272EE04007028CA0000060A73C800000625047D6B0000042506169A7D760000042A000013300300620000003A000011026FC801000A2B43142A02166FC901000A2B29170B2B180602076FC901000A28D00000062B060717580B2B030A2BF707026FC801000A32022B052BDB0A2BD4067B6C0000042C022B062B152DBD2BB972D3210070042865000006730700000A7A062A000013300200020100003B000011027B6A000004037B6A000004289F00000A38E40000001438CF000000160C2B47027B73000004086FCA01000A38A9000000037B73000004086FCA01000A13040911042E1F0911043203032B01021305072C0E0711052E0C07177D6C000004072A11050B0817580C080632B5073A8F000000027B6F000004037B6F0000042E18027B6F000004037B6F0000043203032B01020B3869000000027B6E000004037B6E0000042E15027B6E000004037B6E0000043203032B01020B2B46027B6A000004037B6A0000042E1F027B6A000004037B6A00000430022B082B090D3851FFFFFF032B01020B2B19020B2B060B382BFFFFFF07177D6C0000042B060A3816FFFFFF072A000013300300A70100003C000011027B7600000414289E01000A388A010000027B6B0000042A027B6B0000040A732701000A0B027B6E00000418FE013850010000160D384F010000027B69000004099A382F01000008398000000009027B690000048E691759337311046F9301000A6F6301000A1305732701000A13060913072B3B0611076F2801000A130811086FA100000A110528AE00000A2C1211061108110528B400000A6FC700000A2B09110611086FC700000A1107175813071107066F2B01000A32BB0711051106286001000A6FC700000A38B000000009066F2B01000A322011046FAC01000A2C170711046FAF01000A28AD00000A6FC700000A388700000011046F9301000A06096F2801000A6FA100000A28AE00000A2C5711046F9301000A6FCB01000A2C2E11046F9301000A6F6301000A06096F2801000A6FA100000A280200000A2C0F0706096F2801000A6FC700000A2B310706096F2801000A11046F9301000A28B400000A6FC700000A2B160706096F2801000A6FC700000A2B07130438CAFEFFFF0917580D2B060C38AAFEFFFF09027B690000048E6932022B0F389FFEFFFF3978FEFFFF386CFEFFFF072A0013300200CD0300003D0000110203280200000A38B0030000162A02280E000006388E03000003280E00000638740300000617594512000000050000005703000057030000570300001300000076000000DF00000040010000A50100000402000065020000C202000057030000570300005703000057030000570300001C03000038520300000302280F0000062C031F632A152A071759450F0000000F000000000300000003000000030000050000001D000000070000001D000000090000001D0000000B0000001D0000000D0000000D0000000D00000038FB020000162A172A182A192A1A2A0302280F0000062C031F632A152A152A071759450F000000150000009D0200009D0200009D020000230000000500000007000000090000000B0000000D0000000F000000110000001300000013000000130000003898020000162A172A182A192A1A2A1B2A1C2A1D2A0302280F0000062C031F632A152A152A071759450F0000000D0000003402000034020000340200001B0000001B000000050000001B000000070000001B000000090000001B0000000B0000000B0000000B000000382F020000162A172A182A192A0302280F0000062C031F632A152A152A071759450F00000011000000D3010000D3010000D30100001F0000001F000000D30100000500000007000000090000000B0000000D0000000F0000000F0000000F00000038CE010000162A172A182A192A1A2A1B2A0302280F0000062C031F632A152A152A071759450F0000000B0000006E0100006E0100006E01000019000000190000001900000019000000050000001900000007000000190000000900000009000000090000003869010000162A172A192A0302280F0000062C031F632A152A152A071759450F0000000D0000000F0100000F0100000F0100001B0000001B0000000F0100001B0000001B0000000500000007000000090000000B0000000B0000000B000000380A010000162A172A182A192A0302280F0000062C031F632A152A152A071759450F00000009000000AE000000AE000000AE000000170000001700000017000000170000001700000017000000050000001700000007000000070000000700000038A9000000162A172A0302280F0000062C031F632A152A152A071759450F0000000600000051000000510000005100000014000000140000005100000014000000140000001400000014000000020000000400000004000000040000002B4F162A172A0302280F0000062C031F632A152A152A07172E022B082B170B3886FCFFFF071F1233022B082B240A386CFCFFFF162A0302280F0000062C022B0C2B0D394DFCFFFF3846FCFFFF1F632A152A152A00000013300300290100003E00001173CC01000A0A027B700000046FCD01000A3800010000160D2B5F08099A130473D900000625027D7B0000042511046F0300000A7D7C00000425037D7D000004389C0000000611052B65027B70000004110528D400000611057B7F00000414280200000A2C1011057B7A0000046FCC00000A2D02142A0917580D09088E69329B067E87000004252D17267E83000004FE06E300000673CE01000A258087000004282800002B2C0F0628D60000062B076FCF01000A2B94067E88000004252D17267E83000004FE06E400000673CE01000A258088000004282800002B2C022B092B091305385DFFFFFF142A067E89000004252D17267E83000004FE06E500000673D001000A258089000004282900002B282A00002B0B2B060C38FAFEFFFF027B70000004076F6F01000A2A00000013300400970100003F000011026F4801000A387F010000160B381001000006079A3855010000086F9301000A6FCB01000A382C010000086F9301000A6F2401000A2D0D086F9301000A6F0300000A2B48086F9301000A6F0300000A16086F9301000A6F0300000A6FD101000A18596F6000000A2B23086F9301000A6F0300000A16086F9301000A6F0300000A6FD101000A17596F6000000A037B7C000004280600000A3982000000086F9301000A6FCB01000A2C1403037B7D000004079A6F6301000A7D7F0000042A086F9301000A6F2401000A2C45037B7D000004079A6F2401000A2C1403037B7D000004079A6F6301000A7D7F0000042A08D037000001280100000A166F1500000A2C1D03037B7D000004079A7D7F0000042A03037B7D000004079A7D7F0000042A0717580B07068E693FE7FEFFFF160D2B6106099A130411046F9301000A28110000062C3309037B7D0000048E692F2803097D7E0000042B0A3A0EFFFFFF38CAFEFFFF11046F9301000A0328D50000062B060C38A5FEFFFF037B7F0000041428AE00000A2C012A0917580D2B060A387BFEFFFF09068E6932992A00133003004301000040000011026F1600000A3828010000160B382701000006079A6F0300000A037B7C000004280600000A38F1000000037B7D000004037B7E0000049A38CE00000008D042000002280100000A280200000A3993000000026F0300000A72EB2400706F4C01000A397E00000007068E6917593376037B7B0000047B6D0000042D27037B7B0000047B6B000004037B7E0000046F2801000A745B0000016FA200000A74420000022B27037B7B0000047B6B000004037B7E00000417596F2801000A745B0000016FA200000A74420000020D037B80000004026F3C01000A037B7A000004096F5A01000A2B49086F2401000A2C14072D11086F6301000A13050311057D7F0000042A086F1600000A13042B060C382CFFFFFF0711048E692F022B092B122C103808FFFFFF031104079A7D7F0000042A0717580B2B060A38D2FEFFFF07068E693FD0FEFFFF2A001B3005007101000041000011170A385E010000160A027E8A000004252D17267E83000004FE06E600000673CE01000A25808A000004282B00002B6FD201000A0B3815010000076FD301000A0C160D38E6000000087B7A000004096FCB00000A1304087B80000004096F9101000A6F1600000A130517130616130A2B3173E8000006130B110B1105110A9A7D8C00000402110BFE06E900000673D401000A6FD501000A2C03161306110A1758130A110A11058E69175932C511063977000000027E8B000004252D17267E83000004FE06E700000673D001000A25808B000004282900002B282A00002B1307087B7B0000047B7000000411076F6F01000A1308087B7B0000047B770000041104110811086F4801000A179A28A00000067484000001130911092C0F0811096FD601000A7D7F0000042B150917580D09087B7A0000046FCC00000A3F09FFFFFF087B7F0000041428AE00000A2C02170A076F2F00000A3AE0FEFFFFDE0A072C06076F3000000ADC063A9CFEFFFFDE0326DE002A000000413400000200000034000000270100005B0100000A0000000000000000000000000000006D0100006D0100000300000017000001133003005F00000042000011027B6D0000042B46021A7D6F000004733B01000A25027B780000046F3C01000A2B1306027B74000004280E00002B6FD701000A2B030A2BEA02066F3F01000A28D30000062A02187D6F0000042B042CF52BB602027B7400000428D30000062A00133004007202000043000011027B69000004385F020000027B74000004384102000017382F020000160D383A02000006099A130409068E691759FE01130511046FAC01000A2D141104D037000001280100000A16280B0000062C2909078E6932231104D037000001280100000A16280B00000639E501000002187D6E00000438D901000009078E693207160C38EB010000110539DD0000001104D037000001280100000A16280B00000639C600000016130609078E691759336107099A1308027B6B000004096F2801000A755B000001130911092C1D11096FA200000A2D1411046F9301000A280E0000061733051713062B10110811046F9301000A28D200000613061106152E13027B730000040911066FD801000A386101000011046F9301000A6F6301000A130709130A2B2607099A130B1106110B110728D200000628D901000A13061106153304160C2B0D110A1758130A110A078E6932D302187D6E000004027B730000040911066FD801000A38E800000011052C0F09078E6917592F07160C38F400000007099A130C027B6B000004096F2801000A130D110CD042000002280100000A280200000A2C56027B6B000004096F2801000A745B0000016FA200000A74420000021310027B770000041110027B70000004110428A0000006131111112D07160C388F000000027B6B0000040911116F5F01000A11116FA100000A130C110D755B000001130F110F2C1D110F6FA200000A2D1411046F9301000A280E00000617330517130E2B10110C11046F9301000A28D2000006130E110E153304160C2B35027B7300000409110E6FD801000A2B060C38CBFDFFFF0917580D2B060B38B9FDFFFF09068E6932022B0B38B9FDFFFF0A389BFDFFFF082A00007602735901000A7D7A00000402733B01000A7D8000000402280E00000A2A00001E02280E00000A2A4E0F0128DA01000A027B81000004280600000A2A62036F0300000A027B81000004027B82000004288A00000A2A00000062036F0300000A027B81000004027B82000004288A00000A2A0000002E73DF00000680830000042A1E02280E00000A2A360F0128DB01000A6FDC01000A2A00001E03282C00002B2A2E036FDE01000A8E16FE032A7E037B7F00000414280200000A2C0F037B7A0000046FCC00000A16FE022A162A36037B7F00000414280200000A2A00001E037B7F0000042A7E037B7F00000414280200000A2C0F037B7A0000046FCC00000A16FE022A162A56037B7F000004252D0B26D001000001280100000A2A00001E02280E00000A2A9E037B7C000004027B8C0000046F0300000A280600000A2C0D037B7F00000414280200000A2A162A1E02280E00000A2A6E022B0902037D930000042B07280E00000A2BF002047D910000042A1B300400FE000000440000110238C1000000026FDF01000A388E00000072FD1C0070032865000006730700000A7A73E001000A0A026F6901000A13042B271204286A01000A13050611056F6B01000A11056F6D01000A6FA100000A73E101000A6FE201000A1204287101000A2DD0DE0E1204FE163200001B6F3000000ADC067E98000004252D17267E97000004FE06F400000673E301000A258098000004282D00002B282A00002B0B2B0A3A7EFFFFFF3868FFFFFF060328EE000006076F3601000A256F4401000A169A0C6FBB01000A0D2B0A3945FFFFFF3835FFFFFF08027E99000004252D17267E97000004FE06F500000673E401000A258099000004282E00002B0928E501000A2A000001100000020030003464000E00000000C272AF250070027E9A000004252D17267E97000004FE06F600000673E601000A25809A000004282F00002B284500000A2A0000001B300600A4020000450000117E9600000438400200000228ED00000638210200007E96000004066FE701000A38FD0100007E96000004066FE801000A6FE901000A1307DD650200001A8D01000001251672E31F0070A225177E960000046FEA01000A8C0A000001A22518722C1E0070A22519026FEB01000A8C0A000001A2284900000A0B7E95000004072001200000147EED00000A6FEC01000A0C027E9B000004252D17267E97000004FE06F700000673E601000A25809B000004282F00002B283000002B0D08097E9C000004252D17267E97000004FE06F800000673ED01000A25809C000004283100002B283000002B6FEE01000A1304081C1711047E9D000004252D17267E97000004FE06F900000673EF01000A25809D000004283200002B283300002B6FF101000A6FF201000A130573F301000A130616130838D6000000110411089A13090211086FF401000A130A0872B3250070110A6FF501000A284200000A1109176FF601000A130B1106110B6FF701000A08110A6FF501000A161109168D020000016FF801000A2086080000130C0872B7250070110A6FF501000A284200000A110C11097EED00000A6FF901000A130D110D6FFA01000A257EFB01000A6FFC01000A257EFD01000A110B6FFE01000A7EFF01000A6FFC01000A110D6F0002000A11057E0102000A166F0202000A11057E0102000A110817586F0202000A11057E0302000A110B6FFE01000A1108175813081108026FEB01000A3F1DFFFFFF08110628EF0000062B0A3915FEFFFF38F9FDFFFF08110628F00000062B060A38D9FDFFFF11057EFF01000A6FFC01000A2B0A280402000A38B6FDFFFF7E96000004060708281300000673E101000A6F0502000A7E96000004066FE801000A6FE901000A1307DE22130E110E6F0602000A032865000006110E73B000000A7A7E96000004280702000ADC11072A4134000000000000000000007F0200007F0200001700000017000001020000000000000096020000960200000B000000000000001B300800C2010000460000110272C125007020C6000000D004000001280100000A178D020000012516D001000001280100000AA26FF901000A6FFA01000A387901000006026F0802000A2B67066F0902000A2B53067E0A02000A6FFC01000A067E0B02000A026F0C02000A067E0D02000A076F0E02000A067E0F02000A076F0E02000A067E1002000A086F1102000A067E1202000A6FFC01000A067EFF01000A6FFC01000A2B030C2BAA06086F1302000A2B030B2B96036F1402000A0D38D10000001203281502000A1304066F0902000A0CD09D000001280100000A72CF25007028CE00000A1305067E1602000A1105146F1702000A067EFB01000A6FFC01000A067EFD01000A11046FFE01000A067E0F02000A076F0E02000A067EFD01000A11046FFE01000AD09D000001280100000A281802000A7E9E000004252D17267E97000004FE06FA000006731B00000A25809E000004283400002B1306067E1A02000A1106146F1702000A067E1002000A086F1102000A067E1202000A6FFC01000A067EFF01000A6FFC01000A06086F1302000A1203281B02000A3A23FFFFFFDE0E1203FE165600001B6F3000000ADC067E1C02000A6FFC01000A2B060A3881FEFFFF067EFF01000A6FFC01000A2A0000011000000200B100E495010E000000001B3005000B010000470000110272E725007020C6000000D00A000001280100000A7EED00000A6FF901000A6FFA01000A2B0D067E1202000A6FFC01000A2B030A2BF0036F1402000A0B38A10000001201281502000A388F000000D09D000001280100000A72CF25007028CE00000A2B69067E1602000A09146F1702000A067EFB01000A6FFC01000A067EFD01000A086FFE01000AD09D000001280100000A281802000A7E9F000004252D17267E97000004FE06FB000006731B00000A25809F000004283400002B1304067E1A02000A1104146F1702000A2B030D2B94067E1D02000A6FFC01000A2B060C386BFFFFFF1201281B02000A3A53FFFFFFDE0E1201FE165600001B6F3000000ADC067EFF01000A6FFC01000A2A000110000002003D00B4F1000E00000000133003004400000000000000731E02000A2572E31F00706F1F02000A8094000004282002000A7E94000004176F2102000A7E940000046F2202000A6F2302000A8095000004732402000A80960000042A2E73F300000680970000042A1E02280E00000A2A1E036FE901000A2A1E036F6D01000A2A1E036FF501000A2A1E036FF501000A2A3272FF25007003284200000A2A0000000A032A0046036F0300000A72C1250070280600000A2A000046036F0300000A72E7250070280600000A2A0000F2026F1501000625031417287100000626284E0000062D0B725F030070730700000A7A28410000062C0B7205260070730700000A7A17046F0B0100062A0000001E02280E00000A2A133002008A0000000000000002732502000A7DA000000402732602000A7DA400000402732701000A7DA800000402732502000A7DA900000402732702000A7DAE00000402732702000A7DAF00000402734E01000A7DB000000402732802000A7DB100000402732902000A7DB200000402732A02000A7DBC000004022B0A021F707DB40000042B07280E00000A2BEF02027DAC0000042A000036027BA300000418FE0116FE012A00002A027BA300000417FE012A001E027BB30000042A2202037DB30000042A0000001E027BB80000042A2202037DB80000042A0000001E027BB90000042A2202037DB90000042A0000001E027BBA0000042A2202037DBA0000042A0000001E027BBB0000042A2202037DBB0000042A0000001B300300B3010000480000110338A1010000027BAB0000043873010000027BAB000004027BAC000004383D010000027BAB0000047BAE0000046F2B02000A16314D027BAB0000047BAE0000046F2C02000A0B2B211201282D02000A0C027BAE0000041202282E02000A1202282F02000A6F3002000A1201283102000A2DD6DE0E1201FE165C00001B6F3000000ADC027BAB0000047BA80000046F2B01000A163117027BA800000416027BAB0000047BA80000046F3202000A027BA10000042C23027BA10000040D027BA800000409096F3302000A28C500000A283402000A6FC700000A027BAE0000042C27027BAE0000046F2B02000A163119027BAE0000046F3502000A027BA8000004283602000A0A2B3E027BA80000046F2B01000A2D0828C800000A0A2B29027BA80000046F2B01000A17330F027BA8000004166F2801000A0A2B0C027BA8000004282901000A0A041428AE00000A2C64066FA100000A0428AE00000A2C022B0C2B524048FFFFFF38B9FEFFFF066FA100000AD06D000001280100000A280200000A2C022B0C2B193923FFFFFF3883FEFFFF061428AD00000A28CD00000A0A2B14060428B400000A0A2B0A392BFFFFFF3855FEFFFF062A0001100000020046002E74000E0000000013300300760000004900001114386B000000020B2B23027BA90000040312006F3702000A2B3F07027BAA0000042B29077BAB0000042B01140B072DDA062D41027BAA0000047BA00000040312006F3702000A2D022B062B282EDD2BD303283802000A0A2B042DD52BBD027BAA0000047BA000000403066F3902000A2B030A2B92062A000013300300BB00000049000011027BA90000040312006F3702000A389F000000027BAA0000047BA00000040312006F3702000A3874000000027BAA0000047BA0000004036F3A02000A2B57027BA900000403066F3902000A386900000003283802000A0A020B2B3D077BA9000004036F3B02000A2C17722027007003285500000A042865000006730700000A7A07027BAA0000042E08077BAB0000042B01140B2B03262BA6072D022B062BBC2CAF2B88027BA900000403066F3902000A2B072D05385AFFFFFF062A00133003003A0000004A000011027BAA0000047BA1000004252D2B2B25027BAA0000040314280200000A2D0803283C02000A2B05283D02000A250A7DA10000042B03262BD8062A0000F2027BB60000042B07032D022B062B102D1F2BF572B9270070730700000A2B1072EF270070032866000006730700000A7A027BB60000046F3E02000A2A000000F2027BB70000042B07032D022B062B102D1F2BF572B9270070730700000A2B1072EF270070032866000006730700000A7A027BB70000046F3E02000A2A00000032027BB70000046F3F02000A2A00000032027BB60000046F3F02000A2A00000013300400750000000000000073FE00000625027BA30000047DA300000425032D08027BB60000042B1114FE063D02000A734002000A734102000A7DB600000425042D08027BB70000042B1114FE063D02000A734002000A734102000A7DB700000425027BAA0000047DAA00000425027DAB00000425027BAC0000047DAC0000042A00000042021616281301000625037DA30000042A000000CE73FE00000625027BA30000047DA300000425177DA200000425027DAB00000425027BAC0000047DAC00000425257DAA0000042A133004009F0000004B000011027BAC00000402387A000000027BAC00000403046F160100062A02280901000603046F4202000A2B45027BAC0000047BB4000004175F17FE012B2204031606284302000A252D1326729A28007003284200000A1606284302000A512B030A2BDB045014280200000A2C022B062B282DF02BB70228050100060312016F4402000A2C022B092B102E92387FFFFFFF02070428160100062A04501428AE00000A2A0013300400F50000004C0000110538E3000000027BAC0000046F050100060412036F4402000A38AC000000093889000000027BAE0000040412016F4502000A2C07070A38B8000000027BA40000040412026F4602000A2C07080A38A1000000027BB00000040412006F5101000A3A8E000000027BAB0000042D34027BAF0000040412016F4502000A2C07070A386F000000027BBC0000040412046F4702000A2D03142B0711046F4802000A0A2B52027BA20000042C022B0B2B2BFE0B0200386EFFFFFF027BAF0000040412016F4502000A2C022B0C2B0E3955FFFFFF384AFFFFFF070A2B1B027BAB0000040304176F170100060A2B0A3A36FFFFFF3813FFFFFF062A0000003A027BBC00000403046F4902000A2A0013300300660000004D0000110304284A02000A2B58020B2B3A077BAE000004046F4B02000A2B33077BA4000004046F4C02000A2B1A72AA28007004285500000A730700000A7A077BAB0000040B2B042CF52BE2072D022B062BBF2DD92BC9027BAE00000404066F3002000A2B030A2BA5062A0000133003001B0000004E0000110203284D02000A0A1200FE16410000016F3A00000A28190100062A00133003001D0000004F0000110304284A02000A2B0F027BAF00000404066F3002000A2B030A2BEE062A000000133003001B0000004E0000110203284D02000A0A1200FE16410000016F3A00000A281B0100062A0056027BBF000004172E0A027BBF00000419FE012A172A00001B3004008000000050000011027BC40000047EC8000004252D17267EC7000004FE0623010006734E02000A2580C8000004283500002B6F4F02000A0A2B39066F5002000A2B2E07027BC6000004077BD40000046F9301000A6F6301000A077BD20000047B900000046F190100067DD30000042B030B2BCF066F2F00000A2DBFDE0A062C06066F3000000ADC2A01100000020030004575000A000000001B300300FF01000051000011732701000A0A027BC40000046F5102000A0B38CA0100001201285202000A3877010000087BD100000439A1000000732701000A0D087BD40000046F9301000A6F6301000A3839010000087BD100000438FF0000001613062B5B110511069A13071107755B000001130811082C1A11086FA200000A2D11091107110428B400000A6FC700000A2B2709087BD40000046F9301000A110428AE00000A2D0411072B091107110428B400000A6FC700000A110617581306110611058E69329D06110409286001000A6FC700000A3812010000087BD30000042C50087BD40000046F9301000A1309087BD3000004755B000001130A110A2C21110A6FA200000A2D1806087BD3000004110928B400000A6FC700000A38CB00000006087BD30000046FC700000A38BA000000087BD4000004D037000001280100000A166F1500000A2C32087BD40000046F9301000A6F6301000A130B2B07130538FAFEFFFF06110B732701000A286001000A6FC700000A3870000000087BD40000046FAC01000A2C022B092B4E130438C0FEFFFF087BD40000046FAF01000A2D022B082B1E0C3883FEFFFF06087BD40000046F9301000A28C500000A6FC700000A2B2906087BD40000046FAF01000A28AD00000A6FC700000A2B1172FD1C0070032865000006730700000A7A1201285302000A3A2AFEFFFFDE0E1201FE166500001B6F3000000ADC062A00411C00000200000012000000DD010000EF0100000E000000000000009202177DBE00000402735402000A7DC300000402735402000A7DC500000402280E00000A2A0000002E732201000680C70000042A1E02280E00000A2A5A037BD30000042C0C037BD20000047B8E0000042A162A003A02280E00000A02037DC90000042A001E02280E00000A2AC2026FBB01000A7ED8000004252D17267ED7000004FE0639010006739C01000A2580D8000004282500002B283600002B2A00000013300400CA0100005200001173490100060A060438B1010000060E04387401000006027BAC0000047BB4000004175F172E061A38470100001B38410100000314280200000A2C6F027BAC0000046F0701000606FE064A01000673B501000A282100002B7ED9000004252D17267ED7000004FE063A01000673B601000A2580D9000004282200002B7EDA000004252D17267ED7000004FE063B01000673B701000A2580DA000004282400002B281800002B0B38D3000000052D2B031A027BAC0000047BB4000004606F1A00000A06FE064C010006731B00000A281700002B281800002B2B29031E027BAC0000047BB4000004606F1A00000A06FE064B010006731B00000A281700002B281800002B0B07027BAC0000046F0301000606FE064D010006735502000A283700002B7EDB000004252D17267ED7000004FE063C010006735602000A2580DB000004283800002B7EDC000004252D17267ED7000004FE063D010006735702000A2580DC000004283900002B281800002B6FBA01000A2B0A7DE900000438B5FEFFFF067BEA0000042C022B0C2B3F7DEA0000043882FEFFFF0706FE064E010006731B00000A281700002B06FE064F010006735802000A283A00002B281800002B0B2B0A7DE80000043845FEFFFF072A00001B300400BC00000053000011040E042826010006140A735902000A0B6F5A02000A0C2B361202285B02000A2B2A02030905282D0100062B1111042C1E11047BBE0000042C022B062B1113042BEB0711046F5C02000A2B030D2BD31202285D02000A2DC1DE0E1202FE166C00001B6F3000000ADC076F5E02000A17330A07166F5F02000A0A2B0707282A0100060A062D1272D92900700E052865000006730700000A7A067BBD0000042C1C72532A007072A12A0070285500000A0E052865000006730700000A7A062A01100000020016004359000E000000001B300500420200005400001173500100060A0605380C020000060E0638DC0100000E081438C70100000204067BEB0000040E05067BEC00000428270100060B076F6002000A16FE010E055F392E010000735301000613041104067DEE0000041104027BAC0000047BB4000004175F172E031A2B011B7DED000004027BAC0000047BB10000041104FE0654010006736102000A283B00002B7EDD000004252D17267ED7000004FE063E010006736202000A2580DD000004283C00002B281800002B0B16130511047BEE0000047BEC0000042C4C11047BEE0000047BEC0000046F3D01000A1631381713050711047BEE000004FE0651010006731B00000A281700002B11047BEE000004FE0652010006735802000A283A00002B281800002B0B076F6002000A16315711052D19027BAC0000047BB100000407166F6302000A6F6402000A2B1C027BAC0000047BB100000407166F6302000A6F6502000A6F6402000A1306027BAC000004021106166F1701000613071107FE0B01000E08110751140C735902000A0D076F6602000A13082B2B1208286702000A1309020311090E04282D010006130A110A2C11110A7BBE0000042C0809110A6F5C02000A1208286802000A2DCCDE0E1208FE166F00001B6F3000000ADC096F5E02000A17330A09166F5F02000A0C2B0F09282A0100060C2B06513833FEFFFF082D022B0C2B1C7DEC000004381AFEFFFF72D92900700E072865000006730700000A7A087BBD0000042C022B0C2B277DEB00000438EAFDFFFF72532A0070067BEB000004285500000A0E072865000006730700000A7A082A0000011000000200820138BA010E00000000133003004100000055000011026F5E02000A2B33142A02166F5F02000A2B18170B2B170602076F5F02000A282B0100060A0717580B2B030A2BE507026F5E02000A32022B062BDC2DCD2BC9062A0000001B3003002C04000056000011027BC50000046F6902000A037BC50000046F6902000A289F00000A38010400001438EC030000160C3819010000027BC5000004086F6A02000A38C6030000037BC5000004086F6A02000A1304097BD500000411047BD50000042E48097BD50000042C2111047BD50000042C15097BD500000411047BD50000043203032B07022B04032B01021305072C110711053BB000000007177DBD000004072A11050B389F000000097BD50000041F64409200000011047BD50000041F64408400000011047BD10000042C08097BD30000042D32097BD40000046F9301000A11047BD40000046F9301000A6F1900000A2C14072C0D07032E0907177DBD000004072A030B2B41097BD10000042C0911047BD30000042D3011047BD40000046F9301000A097BD40000046F9301000A6F1900000A2C12072C0D07022E0907177DBD000004072A020B0817580C08063FE0FEFFFF027BC30000046F5102000A130638790000007355010006130711071206285202000A7DEF000004037BC30000041107FE0656010006736B02000A6F6C02000A130811077BEF0000047BD500000411087BD50000042E3511077BEF0000047BD500000411087BD50000043203032B01021309072C140711092E1207177DBD00000407130ADD5402000011090B1206285302000A3A7BFFFFFFDE0E1206FE166500001B6F3000000ADC073A61010000027BBF000004037BBF0000042E18027BBF000004037BBF0000043203032B01020B383B010000027BC40000046F6902000A163139027BC4000004283D00002B7BD10000042C27037BC40000046F6902000A163119037BC4000004283D00002B7BD30000042C07030B38F4000000037BC40000046F6902000A163139037BC4000004283D00002B7BD10000042C27027BC40000046F6902000A163119027BC4000004283D00002B7BD30000042C07020B38AD000000027BC50000046F6902000A130B037BC50000046F6902000A130C110B110C2E10110B110C3003032B01020B387D000000027BC10000046FBD01000A037BC10000046FBD01000A28AE00000A2C60027BC10000046F4801000A130D037BC10000046F4801000A130E110D8E69110E8E69333C17130F1613102B26110D11109A6F9301000A110E11109A6F9301000A28AE00000A2C0516130F2B0E1110175813101110110D8E6932D2110F2C02020B073AC6000000027BC10000046F4801000A8E69027BC50000046F6902000A027BC30000046F6902000A58332D037BC10000046F4801000A8E69037BC50000046F6902000A037BC30000046F6902000A583107020B3873000000027BC10000046F4801000A8E69027BC50000046F6902000A027BC30000046F6902000A583134037BC10000046F4801000A8E69037BC50000046F6902000A037BC30000046F6902000A5833022B082B0A0D3834FCFFFF030B2B19020B2B060B380EFCFFFF07177DBD0000042B060A38F9FBFFFF072A110A2A0110000002005A018CE6010E0000000013300200800000003D0000110203280200000A3869000000162A0228110000062B46026F0300000A72B12A00706F4C01000A2B2802280C000006169A03280200000A2C02162A02280E0000060A03280E0000060B06172E022B062B102CE82BD4071733022B062B072CDC2BB61F642A0228100000060328100000062E022B062B072C972B931F642A0706592A13300500FA00000057000011732001000625047DC0000004250475200000017DC1000004250475630000017DC200000425027DC600000438C00000000338A200000004D014000001280100000A166FBF01000A387D000000163877000000067BC100000414286D02000A2C1A067BC10000046FC001000A2C0D067BC10000046F6E02000A2B01160C0607085F2D0F072D09082D03162B07182B04172B01197DBF000004072C1D05736F02000AFE0B0300051673EA00000625037D920000046F7002000A060528310100062D02142A082C022B052B1B0B2B8606282E0100062D022B0C2B0C396FFFFFFF3854FFFFFF142A0628350100062D022B082B080A383AFFFFFF142A062A00001B300400FA01000058000011027BC10000046FCD01000A7EDE000004252D17267ED7000004FE063F010006737102000A2580DE000004283E00002B283F00002B385F010000027BC10000046F4801000A7EDF000004252D17267ED7000004FE0640010006737202000A2580DF000004284000002B282A00002B38EC000000027BC40000047EE0000004252D17267ED7000004FE0641010006737302000A2580E0000004284100002B282A00002B38A900000002070806282F010006027BBE0000042D02162A067EE1000004252D17267ED7000004FE0642010006737402000A2580E1000004284200002B2C44027BC40000047EE2000004252D17267ED7000004FE0643010006734E02000A2580E2000004284300002B2C180207027BC4000004062830010006027BBE0000042D02162A067EE3000004252D17267ED7000004FE0644010006737402000A2580E3000004284200002B2C022B082B1C0C3851FFFFFF02167DBE0000042B060B380EFFFFFF027BBE0000042A067EE4000004252D17267ED7000004FE0645010006737502000A2580E4000004284400002B282A00002B0D2B060A389BFEFFFF02027BC1000004096F6F01000A7DC1000004027BC10000046F4801000A13041613052B1D027BC400000411056F6A02000A110411059A7DD4000004110517581305110511048E6932DBDE0A2602167DBE000004DE00027BBE0000042A00000110000000009E014BE9010A0100000113300400FF02000059000011160A38EE02000073570100060B027BBE0000042D012A06048E6932012A0703069A38C502000004069A38B10200000814280200000A388B020000077BF00000046FCB01000A2C28086FCB01000A2D0802167DBE0000042A07077BF00000046F6301000A7DF0000004086F6301000A0C077BF00000046F2401000A2C372B28086F2401000A2D0802167DBE0000042A07077BF00000046F6301000A7DF0000004086F6301000A0C077BF00000046F2401000A2DCB077BF000000428110000062C32077BF0000004280C0000068E69173322086F2401000A2C1A07077BF0000004280C000006169A7DF0000004086F6301000A0C077BF0000004281100000639FA00000008D042000002280100000A280200000A3ACE0100000828110000062D4E086F1700000A07FE065801000673AA01000A281F00002B0D091428AE00000A2C25077BF0000004280C0000061304096F1600000A1305021104110505282F010006388001000002167DBE0000042A735901000613061106077BF0000004280C0000067DF100000408280C000006130711067BF10000048E6917334D051106FE065A010006737402000A284500002B130811082C34086F0300000A72C92A0070280600000A2D12086F0300000A72FD2A0070280600000A2C1011081107179A7DCA00000438FE0000000211067BF1000004110705282F01000638E9000000735B01000613091109077BF00000046F0300000A7DF2000004051109FE065C010006737602000A6F7702000A130A110A39B4000000110A7BCA00000414280200000A2C0D110A087DCA0000043898000000110A7BCA000004077BF000000428AE00000A3981000000110A7BCA000004082899000006130B110B14280200000A2C0902167DBE0000042B5F110BD001000001280100000A280200000A2C3B08110A7BCA000004280F0000062C0A110A087DCA0000042B33110A7BCA00000408280F0000062D022B092B202D1E386EFDFFFF02167DBE0000042A110A110B7DCA0000042B060C3849FDFFFF0617580A2B0A7DF00000043831FDFFFF06038E693F09FDFFFF2A001B300600E20300005A000011046F5102000A0A38B90300001200285202000A3842030000077BD40000046F9301000A381D030000086F0300000A72B12A00706F4C01000A38F302000008280C000006169A0C086F0300000A72B62300706F4C01000A396A030000077BD1000004392E010000735D0100060D077BD1000004284600002B130408280C0000061305091105284700002B7DF30000040509FE065E010006737602000A6F7702000A130611062D0C02167DBE000004DD2F03000011067BCA0000041428AE00000A3A01030000171307733B01000A130816130A2B5B735F010006130B110B1105110A9A7DF400000405110BFE0660010006737602000A6F7702000A130C110C2D0902167DBE0000042B30110C7BCA00000414280200000A2C031613071108110C7BCA0000046F3C01000A110A1758130A110A11058E691759329B110739860200001104745B0000011309027BC600000411096FA200000A74420000021108289F000006130D1106110D6FA100000A280C000006284700002B7DCA000004077BD100000416110DA2DE0D2602167DBE000004DD4D020000077BD300000439260200007361010006130E08280C000006130F110E110F284700002B7DF500000405110EFE0662010006737602000A6F7702000A131016131111102D26110E7BF500000428110000062C1805110EFE0663010006737602000A6F7702000A131017131111102D0C02167DBE000004DDD301000011107BCA0000041428AE00000A3AA5010000171312733B01000A131316131538ED000000736401000613161116110F11159A7DF6000004051116FE0665010006737602000A6F7702000A131711173A980000007366010006131811167BF600000428110000062D13111311167BF60000046F3C01000A3890000000111811167BF6000004280C0000067DF7000004051118FE0667010006737602000A6F7702000A131711172D0C02167DBE000004387900000072EE04007073240100061319111911167BF60000046FB300000A178D02000001251611177BCA000004A26F3601000A7DCA0000041119131711177BCA00000414280200000A2C03161312111311177BCA0000046F3C01000A1115175813151115110F8E69175932022B0F3802FFFFFF3911FDFFFF3803FDFFFF11122C022B0B38800000000C38DDFCFFFF077BD3000004745B00000113142B060B38B8FCFFFF027BC600000411146FA200000A74420000021113289F000006131A111011112D13111A6FA100000A280C000006284700002B2B18111A6FA100000A280C000006284700002B280C000006169A7DCA00000407111A7DD3000004DE0A2602167DBE000004DE1C1200285302000A3A3BFCFFFFDE0E1200FE166500001B6F3000000ADC2A0000414C000000000000480100003F000000870100000D0000001700000100000000600300005B000000BB0300000A000000170000010200000007000000CC030000D30300000E0000000000000013300500360100005B000011027BC100000414286D02000A3814010000027BC20000046FDE01000A2B0B027BC10000046F4801000A0A735402000A0B020738DB0000001638C2000000160D38AE00000006099A130409036F7802000A320E02070609283201000638A500000009068E69175933241104D037000001280100000A166F1500000A2C10020706030928330100060C387900000003096F7902000A7B8F0000042C0D020706030928340100060C2B5E73250100062511047DD40000042503086F7902000A7DD20000042503086F7902000A7B920000047DD300000413050711056F7A02000A027BC500000411056F7A02000A0917580D0817580C09068E6932022B0B3845FFFFFF0C3838FFFFFF08036F7802000A2E022B0C2B1D7DC4000004381BFFFFFF02167DBE0000042B0A3AF4FEFFFF38E2FEFFFF027BBE0000042A000013300400550000005C0000112B4C04059A2B44066FAC01000A2B2F06D037000001280100000A166F1500000A2D0802167DBE0000042A03732501000625067DD40000046F7A02000A2B042DEA2BCD051758FE0B03002B030A2BB905048E6932AE2A00000013300500CF0100005D0000110E0438BB010000040E049A389D010000056F7802000A065917387B01000005066F7902000A0D097B92000004755B000001130411042C0C11046FA200000A397A000000097B920000046FA100000A076F9301000A280200000A2D62097B920000046FA100000A6F2401000A2C1F076F9301000A6F2401000A2C12076F9301000A6F6301000A6F7B02000A2D31097B920000046FA100000A6F2401000A2C67076F9301000A6F2401000A2C5A076F9301000A6F6301000A28110000062C48732501000625077DD40000042505066F7902000A7DD20000042505066F7902000A7B920000047DD300000413050311056F7A02000A027BC500000411056F7A02000A0617580A062A050E04056F7802000A0E04596F7C02000A6F7D02000A0C02087EE5000004252D17267ED7000004FE0646010006737E02000A2580E5000004284800002B7DBE000004027BBE0000043976000000732501000625077DD400000425087DD000000425087EE6000004252D17267ED7000004FE0647010006739601000A2580E6000004281B00002B284900002B7DD100000413062B0A4067FFFFFF387BFEFFFF0311066F7A02000A2B060B385DFEFFFF027BC500000411066F7A02000A2B060A383FFEFFFF056F7802000A2A0013300400640100005E000011050E04056F7802000A0E04596F7C02000A284A00002B383C01000002067EE7000004252D17267ED7000004FE0648010006737E02000A2580E7000004284800002B38FE000000027BBE00000439D000000038C100000073680100060B07040E049A38C70000000607FE0669010006737F02000A6F8002000A0C08153347077BF80000046FAC01000A2D21077BF8000004D037000001280100000A166F1500000A2D0902167DBE0000042B7603732501000625077BF80000047DD40000046F7A02000A2B4B732501000625077BF80000047DD4000004250608284B00002B7DD2000004250608284B00002B7B920000047DD30000040D03096F7A02000A027BC3000004096F7A02000A06086F8202000A0E041758FE0B04000E04048E693F35FFFFFF027BBE0000042C022B0C2B307DF8000004382FFFFFFF066F7802000A1631022B0C2B197DBE00000438F8FEFFFF02167DBE0000042B060A38BEFEFFFF056F7802000A2A1B300300170600005F000011027BC50000046F5102000A0A2B521200285202000A2B4607077BD30000042D0F077BD1000004169A6FA100000A2B0B077BD30000046FA100000A7DD600000407077BD40000046F9301000A077BD6000004282C0100067DD50000042B030B2BB71200285302000A2DA5DE0E1200FE166500001B6F3000000ADC027BC30000046F5102000A0A2B3A1200285202000A0C08087BD30000046FA100000A7DD600000408087BD40000046F9301000A087BD30000046FA100000A282C0100067DD50000041200285302000A2DBDDE0E1200FE166500001B6F3000000ADC027BC40000046F5102000A0A38090500001200285202000A0D097BD1000004393C010000097BD40000046F9301000A6F6301000A1304161305380E010000097BD100000411059A13061106755B000001130711072C1F11076FA200000A2D16097BD40000046F9301000A280E000006173BD100000011066FA100000AD042000002280100000A280200000A2C46097BD40000046F9301000A6F6301000A13081106755B0000011309027BC6000004110811096FA200000A7442000002289E000006130A097BD10000041105110AA2387300000011066FA100000A110428AE00000A2C631104D011000001280100000A280200000A2C3811072C3411076FA100000AD005000001280100000A280200000A2C1C097BD1000004110511076FA200000A6F3A00000A28AD00000AA22B18110411066FA100000A280F000006130B02110B7DBE0000041105175813051105097BD10000048E693FE3FEFFFF38BA030000097BD300000439AF030000097BD300000439A4030000097BD3000004755B000001130C097BD40000046F9301000A6FCB01000A2C19097BD20000047B8D0000042D0C02167DBE000004DD88030000097BD40000046F9301000A6FCB01000A2C10110C2C0C02167DBE000004DD66030000110C2C1F110C6FA200000A2D16097BD40000046F9301000A280E000006173B27030000097BD30000046FA100000AD042000002280100000A280200000A39AD000000097BD40000046F9301000A130D097BD3000004755B000001130E110D28110000062C54110D6FB300000AD0A4000001280100000A280200000A2C3C027BC6000004110D280C000006169A110E6FA200000A7442000002289E000006130F09110F7DD3000004DD9E0200002602167DBE000004DDAD02000000027BC6000004110D110E6FA200000A7442000002289E00000613100911107DD3000004DD680200002602167DBE000004DD77020000097BD20000047B8D0000042D0D097BD30000046FA100000A2B10097BD30000046FA100000A6F8901000A1311097BD40000046F9301000A28110000062C3A097BD40000046F9301000A6F0300000A72B12A00706F4C01000A2C1E097BD40000046F9301000A280C000006169A1111280200000A3AE30100001111097BD40000046F9301000A28AE00000A39CC0100001111097BD40000046F9301000A28990000061312111214280200000A2C0C02167DBE000004DDBE0100001112D001000001280100000A280200000A39DE000000097BD3000004755B0000011313097BD40000046F9301000A097BD30000046FA100000A280F0000062C2109097BD3000004097BD40000046F9301000A28B400000A7DD3000004384101000011132C4211136FA200000A2D3911126F8302000A2C0F1112288402000A1428AE00000A2C2109097BD3000004097BD40000046F9301000A28B400000A7DD300000438FB0000001111D001000001280100000A280200000A2C2E097BD3000004751D0000012C2109097BD3000004097BD40000046F9301000A28B400000A7DD300000438BA00000002167DBE000004DDCA0000001112D011000001280100000A280200000A2C5F110C2C52110C6FA100000AD005000001280100000A280200000A2C3A09110C6FA200000A6F3A00000A28AD00000A7DD300000409097BD40000046F9301000A097BD30000046FA100000A282C0100067DD50000042B4502167DBE000004DE581111097BD40000046F9301000A28D2000006152E1E09097BD3000004097BD40000046F9301000A28B400000A7DD30000042B0902167DBE000004DE1C1200285302000A3AEBFAFFFFDE0E1200FE166500001B6F3000000ADC027BBE0000042A00417C0000020000000C0000005F0000006B0000000E00000000000000020000008500000047000000CC0000000E0000000000000000000000270300002F000000560300000D000000170000010000000064030000280000008C0300000D0000001700000102000000E60000001C050000020600000E000000000000001E02280E00000A2A2E733801000680D70000042A1E02280E00000A2A2E036FDE01000A8E16FE032A360F0128DB01000A6FDC01000A2A00001E03282C00002B2A360F01288502000A6FB901000A2A00000A032A00220F01288602000A2A00000032036F0300000A73240100062A0000001E036F9301000A2A133002005A00000060000011037BD10000042B3E037BD1000004169A6FA100000A6F4001000A2A037BD30000042B13037BD3000004755B0000010A062C022B062B162C202BE9066FA200000A2D022B062B062CD32BBE142A037BD30000046FA100000A2A142A000036037BCA00000414280200000A2A0000E6037BD40000046F9301000A6F0300000A72B62300706F4C01000A2D1B037BD40000046F9301000A6F0300000A72B12A00706F4C01000A2A172A000036037BCA00000414280200000A2A00001E037BCA0000042A2A037B8F00000414FE012A001E037B920000042A2A037B8F00000414FE032A001E02280E00000A2A660F0128DA01000A027BE8000004027BE9000004288A00000A2A000062036F0300000A027BE8000004027BE9000004288A00000A2A00000062036F0300000A027BE8000004027BE9000004288A00000A2A000000660F01288702000A027BE8000004027BE9000004288A00000A2A00008E036FC001000A2C19036FCD01000A284C00002B027BEA0000046F3D01000AFE012A162A4A03027BEA0000046F3F01000A6F6F01000A2A001E02280E00000A2A8E036FC001000A2C19036FCD01000A284C00002B027BEC0000046F3D01000AFE012A162A4A03027BEC0000046F3F01000A6F6F01000A2A001E02280E00000A2A8E0F01288602000A6F0300000A027BEE0000047BEB000004027BED000004288A00000A2A1E02280E00000A2A86037BD40000046F5001000A027BEF0000047BD40000046F5001000A280600000A2A00001E02280E00000A2A860328110000062C17036F0300000A027BF00000046F0300000A280600000A2A162A00001E02280E00000A2A66037BC9000004027BF1000004169A6F0300000A280600000A2A00001E02280E00000A2A4A037BC9000004027BF2000004280600000A2A001E02280E00000A2A5E037BC9000004027BF30000046F0300000A280600000A2A1E02280E00000A2A5E037BC9000004027BF40000046F0300000A280600000A2A1E02280E00000A2A5E037BC9000004027BF50000046F0300000A280600000A2A7A037BC9000004027BF5000004280C000006169A6F0300000A280600000A2A001E02280E00000A2A5E037BC9000004027BF60000046F0300000A280600000A2A1E02280E00000A2A66037BC9000004027BF7000004169A6F0300000A280600000A2A00001E02280E00000A2A5E037B8F000004027BF80000046F5001000A280600000A2A3A02280E00000A02037D260200042A006E022B0902037D260200042B07280E00000A2BF002047D1F0200042A82022B0E02037B530200047D260200042B07280E00000A2BEB02037D2C0200042A0000009A027B2C0200042D12027C26020004FE16410000026F3A00000A2A027B2C0200046F3A00000A2A0013300200D5010000610000111738C70100000338B1010000170C38B001000002076FAE0100063892010000092D07160A388E010000097B53020004201720000033090817580C3878010000097B53020004201920000033290817590C083A610100000717580B02076FAE0100060D097B530200042008200000FE010A385E010000097B5302000420D63200003B32010000097B5302000420702000003B22010000097B5302000420712000003B12010000097B53020004207D2000003B02010000097B53020004207B2000003BF2000000097B5302000420792000003BE2000000097B53020004207A2000003BD2000000097B5302000420752000003BC2000000097B5302000420772000003BB2000000097B53020004207F2000003BA2000000097B5302000420722000003B92000000097B5302000420732000003B82000000097B53020004207C2000003B72000000097B5302000420762000002E65097B5302000420782000002E58097B5302000420742000002E4B097B53020004201A2000002E3E097B53020004200F2000002E31097B5302000420102000002E24097B53020004201B2000002E17097B5302000420182000002E0A160A2B060D3868FEFFFF0717580B2B060B3849FEFFFF062D022B0B3846FEFFFF0A3833FEFFFF062A00000013300200AD0100006200001117389F010000030B388E01000002076FAE010006387C010000083866010000160A3869010000087B5302000420172000003B75010000087B5302000420192000003B65010000087B5302000420182000003B55010000087B5302000420D63200003B29010000087B5302000420702000003B19010000087B5302000420712000003B09010000087B53020004207D2000003BF9000000087B53020004207B2000003BE9000000087B5302000420792000003BD9000000087B53020004207A2000003BC9000000087B5302000420752000003BB9000000087B5302000420772000003BA9000000087B53020004207F2000003B99000000087B5302000420722000003B89000000087B5302000420732000003B79000000087B53020004207C2000003B69000000087B5302000420762000002E5C087B5302000420782000002E4F087B5302000420742000002E42087B53020004201A2000002E35087B53020004200F2000002E28087B5302000420102000002E1B087B53020004201B2000002E0E160A2B0A3A9CFEFFFF3890FEFFFF0717580B2B060C387EFEFFFF062D022B0B3868FEFFFF0A385BFEFFFF062A000000133002008400000063000011026FAD0100063872000000062B5A067B5302000420092000002B38067B5302000420102000002E0D067B5302000420192000003302172A02176FAE0100060A062C40067B53020004200C2000002E022B062B2D2EE02BC4067B5302000420182000002E022B062B182CCD2BA2067B53020004201420000033022B052B050A2B8B172A162A13300500731A00006400001173900100060A060238251A0000067B2E0200046F9C01000638FE190000142A0338D8190000037B370200042C2D738902000A25067B2E0200047D8A02000A0C037B37020004086F8B02000A087B8C02000A2C07087B8D02000A2A067B2E0200046F9C0100067B530200040D0920C02100003DF70100000920C02000003DD101000009200120000059451C0000008E110000870C00005919000059190000591900005919000059190000A10E0000D10A0000AA0D0000C91000005E0C0000DD0D0000D10A0000780E0000D10A00005919000059190000E20A00006C1100005919000059190000390D0000200B0000B00C0000960B00002F1100005C1700000920702000005945510000008F0200008F0200008F0200008F0200008F0200008F0200008F0200008F0200008F0200008F0200008F0200008F0200008F0200008F0200008F0200008F020000DD0800001D0800007E0200007E0200007E0200000B05000077040000510900009B040000BA0400002F0400002F080000091800001D04000060080000850300008904000070090000D9040000B50200000C040000FE0700004108000070090000700900007009000070090000700900007009000070090000DA030000700900007009000070090000900500007009000070090000700900007009000070090000D9070000B4070000670500007B050000A0020000700900000918000009180000091800000918000070090000700900007009000032090000700900007009000070090000700900007009000097030000EF0800007009000070090000700900007009000038041800000920B92100003BCE1000000920C02100003B2D12000038E91700000920232200003D3C0100000920C22100003B941000000920DC210000594548000000A9100000A9100000BE100000BE100000BE1000009410000094100000071000001B1000002F10000057100000431000006B1000006B1000007F1000007F1000007F1000007F100000A7160000A7160000680F00000D110000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000A7160000540F0000540F0000540F0000540F0000540F0000540F0000540F0000540F0000540F0000540F0000540F0000A7160000A7160000A7160000A7160000A7160000D3100000D3100000D3100000D3100000D3100000D3100000A7160000A7160000FA100000FA10000038A21600000920CB320000594515000000D2140000D2140000421600004216000042160000051500002D150000411500000515000042160000A600000094000000A600000042160000A60000004216000042160000A6000000A600000042160000561400000920ED3200003BD71200000920F932000059451E00000024120000560D0000D109000006100000B6130000B6130000B3150000B3150000B3150000C71400005414000065140000B31500008A140000B31500004C100000B3150000B3150000F5110000F5110000B3150000B3150000B3150000DA1400001B0E00003C13000005140000B3150000B3150000A212000038AE150000067B2E0200040428880100060B38B7150000067B2E02000428870100060B38A6150000067B2E02000428870100060B3895150000067B2E02000428870100060B3884150000067B2E02000403041F0928720100060B386F150000067B2E0200046FAD010006130511052C5511057B5302000420D6320000334711057B5802000472152B0070280600000A2C34067B2E0200046FAA010006067B2E0200046F9C01000620033300007D53020004067B2E02000403040528710100060B380915000011052C5511057B5302000420D6320000334711057B58020004721D2B0070280600000A2C34067B2E0200046FAA010006067B2E0200046F9C01000620043300007D53020004067B2E02000403040528710100060B38B0140000067B2E02000428810100060B389F140000067B2E0200040328800100060B388D140000067B2E02000420082000006FA60100062C12067B2E02000403287B0100060B3869140000067B2E0200040328770100060B067B2E02000407288201000626384A140000067B2E02000428870100060B07067B2E02000403161428860100067D2A020004067B2E020004072882010006263818140000067B2E02000428810100060B3807140000067B2E02000403287B0100060B38F5130000067B2E0200040328770100060B067B2E020004208720000006FE0691010006738E02000A6FA5010006067B2E0200040307287C010006067B2E0200040728820100062638AD130000067B2E0200040328770100060B389B130000067B2E0200040328770100060B3889130000067B2E0200040328800100060B067B2E02000407288201000626386A130000067B2E0200040328800100060B067B2E02000407288201000626384B130000067B2E02000428870100060B07067B2E02000403141628710100067D2A020004067B2E020004072882010006263819130000067B2E0200040328800100060B067B2E02000420862000006FA70100062C31067B2E02000420852000006FA60100062C0B067B2E0200046FAA01000607067B2E02000403141628710100067D2A02000407057D2502000438BD120000067B2E02000403041828740100060B38A9120000067B2E02000403041F0928720100060B3894120000067B2E02000428870100060B06FE0692010006738F02000A28B0010006130607067B2E0200041106161428860100067D2A020004067B2E020004201A2000006FA7010006398C000000067B2E020004176FAE010006397B000000067B2E020004176FAE0100067B5302000420082000002E30067B2E020004176FAE0100067B53020004200F2000002E18067B2E020004176FAE0100067B53020004200D2000003333067B2E0200046F9C01000620F12100007D5302000407067B2E02000403077B2A0200041628710100067D2A02000438E8000000067B2E020004201A2000006FA701000639D3000000067B2E020004176FAE01000639C2000000067B2E020004176FAE0100067B53020004201720000040A7000000067B2E0200046F9C01000620F12100007D5302000407067B2E02000403077B2A0200041628710100067D2A020004077B2A0200047B2A0200047B1F020004281500002B20163300007D26020004067B2E02000403077B2A0200047B2A0200047B1F020004281500002B287D010006077B2A0200047B2A0200047B1F020004281500002B077B2A0200047B2A0200047B1F020004281500002B7B230200047B1F0200047D1F020004067B2E02000420082000006FA70100062C0F067B2E0200040307287C0100062B1F067B2E020004200F2000006FA70100062C0D067B2E0200040307287E010006067B2E020004200D2000006FA70100063982100000067B2E020004030728780100063870100000067B2E02000428870100060B07067B2E02000403161428860100067D2A020004384B100000067B2E02000428870100060B07067B2E02000403161428860100067D2A0200043826100000067B2E0200040328790100060B067B2E020004072882010006263807100000067B2E02000403287B0100060B38F50F0000067B2E0200040328760100060B38E30F0000067B2E0200040328790100060B067B2E0200040728820100062638C40F0000067B2E0200040328770100060B07735901000A7D1F0200042B19077B1F020004067B2E02000403141628710100066F5A01000A067B2E020004208F2000006FA70100062DD5067B2E02000420902000006FA70100062C1407067B2E02000403141628710100067D2A020004067B2E0200040728820100062638470F0000067B2E02000403287A0100060B38350F0000067B2E02000420082000006FA60100062C12067B2E02000403287B0100060B38110F0000067B2E0200040328770100060B067B2E0200040728820100062638F20E0000067B2E0200040328800100060B067B2E0200040728820100062638D30E0000067B2E0200040328800100060B067B2E0200040728820100062638B40E0000067B2E020004288E0100060B38A30E0000067B2E02000428840100060B38920E0000032C1C037B380200042C14067B2E02000414041828740100060B38730E0000067B2E0200040428880100060B067B2E0200040728820100062638540E0000052D11067B2E02000428840100060B38400E0000200E330000735901000A25046F5A01000A736B0100060B042C3104177D240200042B28067B2E0200046FAA010006067B2E02000403161428860100061307077B1F02000411076F5A01000A067B2E02000420182000006FA70100062DC638DE0D0000067B2E0200046F9C010006067B2E020004176FAE0100062C18067B2E020004176FAE0100067B5302000420082000002E42067B2E020004176FAE0100062C26067B2E020004176FAE0100067B530200042017200000330E067B2E02000418286E0100062D0720F12100002B0C20163300002B0520ED3200007D53020004032C34037B390200042C2C067B2E0200046F9C0100067B5302000420163300003315067B2E0200046F9C01000620F12100007D53020004067B2E02000403041628710100060B38160D0000067B2E0200046F9C010006200A2200007D53020004067B2E02000403040528710100060B38ED0C0000067B2E0200046F9C010006201D2200007D53020004067B2E02000403041628710100060B38C40C0000067B2E0200046FAD0100067B5302000420192000003349067B2E0200046FAA010006067B2E0200046F9C01000672292B00707D58020004067B2E0200046F9C01000620E22100007D53020004067B2E02000403041628710100060B38640C0000067B2E0200046F9C01000620EC2100007D53020004067B2E02000403041628710100060B383B0C0000067B2E0200046F9C010006067B2E02000416286F0100062D0720EA2100002B0520F93200007D53020004067B2E02000403041628710100060B38FD0B0000067B2E0200046F9C010006042C0720232200002B05201F2200007D53020004067B2E02000403041628710100060B38CA0B0000067B2E0200046F9C010006042C0720DD2100002B05201B2200007D53020004067B2E02000403041628710100060B38970B0000052C30067B2E0200046F9C010006067B2E02000420D73200006FA60100062D0720113300002B0520103300007D530200042B54067B2E0200046F9C010006067B2E02000420D73200006FA60100062C26067B2E020004176FAE0100062C18067B2E020004176FAE0100067B53020004200E2000002E0720DF3200002B0520133300007D53020004067B2E02000403041628710100060B38FC0A0000067B2E0200046F9C010006200C3300007D53020004067B2E02000403041628710100060B38D30A0000043A69010000067B2E0200046F9C010006736C010006FE0B0200067B2E0200040304287C010006067B2E0200046F9C0100062D17047B230200040B0720E43200007D2602000438880A0000067B2E0200046F9C0100067B5302000420C22100003314067B2E02000403041628710100060B385D0A0000067B2E0200046F9C0100067B5302000420D63200003BA7000000067B2E0200046F9C0100067B5302000420082000003B8D000000067B2E0200046F9C0100067B5302000420D53200003B73000000067B2E0200046F9C0100067B5302000420D73200002E5C067B2E0200046F9C0100067B5302000420DC3200002E45067B2E0200046F9C0100067B5302000420DD3200002E2E067B2E0200046F9C0100067B5302000420D93200002E17067B2E0200046F9C0100067B5302000420822000003321040B0720C02100007D26020004067B2E020004031407288C0100060B387B090000047B230200040B0720E43200007D260200043864090000067B2E0200046F9C010006047B2602000420D63200003B80000000047B2602000420E6320000331A047B200200047B2602000420D63200003308047B2A0200042C59047B2602000420E63200003345047B2A0200042C3D047B2A0200047B1F0200042C30047B2A0200047B1F0200046FCC00000A17331D047B2A0200047B1F020004166FCB00000A7B2602000420F93200002E0720ED3200002B0520123300007D53020004067B2E02000403041628710100060B38AB080000067B2E0200046F9C010006042C0720DC2100002B05201A2200007D53020004067B2E02000403041628710100060B3878080000067B2E0200046F9C010006042C0720222200002B05201E2200007D53020004067B2E02000403041628710100060B3845080000067B2E0200046F9C010006067B2E02000428700100062D0720B92100002B0520FC3200007D53020004067B2E02000403041628710100060B3808080000052D0D067B2E02000428840100062B0C067B2E0200040428830100060B38E6070000067B2E0200046F9C010006052D07201C2200002B0520023300007D53020004067B2E02000403041628710100060B38B3070000067B2E0200046F9C010006736C0100060B067B2E0200046F9C010006200D2000007D53020004067B2E02000403072878010006067B2E02000407288201000626386E070000067B2E02000403041728740100060B385A070000067B2E02000403041828740100060B3846070000067B2E0200046F9C010006736C01000625187D290200041308067B2E0200046FA3010006067B2E020004178D41000002251620132000009E28AF010006161428860100061309067B2E020004201320000006FE0693010006738E02000A6FA801000626067B2E020004031109182874010006130A110804110A28750100060B04177D2402000438BB060000067B2E02000403041928720100060B38A7060000067B2E02000403041A28720100060B3893060000067B2E02000403041B28720100060B387F060000067B2E02000403041C28720100060B386B060000067B2E02000403041D28720100060B3857060000067B2E02000403041E28720100060B3843060000067B2E02000403041F0928720100060B382E060000067B2E02000403041F0A28720100060B3819060000067B2E02000403041F0B28720100060B3804060000067B2E02000403041F0C28720100060B38EF050000067B2E0200040304288B0100060B38DC050000067B2E020004031404288C0100060B38C8050000067B2E020004030428890100060B38B5050000067B2E020004030428890100060B077B2A0200047B1F020004281500002B067B2E02000428870100067D200200043882050000067B2E020004176FAE0100062C7C067B2E020004176FAE0100067B5302000420082000003364067B2E0200046F9C01000620093300007D53020004067B2E020004030428890100060B077B2A0200047B1F020004281500002B067B2E02000428870100067D20020004067B2E02000403077B2A0200047B1F020004281500002B287F01000638F8040000067B2E020004176FAE01000639DB000000067B2E020004176FAE0100067B53020004201720000040C0000000067B2E02000418286F01000639AF000000067B2E0200046F9C010006200A3300007D53020004067B2E020004030428890100060B077B2A0200047B1F020004281500002B067B2E02000428870100067D20020004067B2E02000403077B2A0200047B1F020004281500002B287D010006077B2A0200047B1F020004281500002B077B2A0200047B1F020004281500002B7B230200047B1F0200047D1F020004067B2E02000403077B2A0200047B1F020004281500002B287F010006380C040000067B2E020004030428890100060B077B2A0200047B1F020004281500002B067B2E02000428870100067D2002000438D9030000067B2E020004030428890100060B067B2E02000403077B2A0200047B1F020004281500002B287E01000638AA030000067B2E020004030428890100060B067B2E02000403077B2A0200047B1F020004281500002B287D010006387B030000067B2E020004030428890100060B077B2A0200047B1F020004281500002B067B2E02000428870100067D20020004067B2E02000403077B2A0200047B1F020004281500002B287F010006382C030000067B2E020004030428890100060B077B2A0200047B1F020004281500002B067B2E02000428870100067D20020004067B2E02000403077B2A0200047B1F020004281500002B287D010006077B2A0200047B1F020004281500002B077B2A0200047B1F020004281500002B7B230200047B1F0200047D1F020004067B2E02000403077B2A0200047B1F020004281500002B287F0100063892020000040B071304077B2602000420E63200003322047B200200047B2602000420D63200003310047B2A0200042D08077B2002000413041104067B2E0200046F9C0100067B530200047D26020004067B2E0200046F9C01000620082000007D5302000404177D24020004067B2E020004031104287C0100063818020000067B2E020004288F0100060B3807020000067B2E02000428870100060B067B2E0200046FA9010006067B2E0200046F9C010006200D2000007D53020004067B2E0200040307287801000638C9010000067B2E02000428870100060B067B2E0200046FA9010006067B2E0200046F9C010006200D2000007D53020004067B2E02000403072878010006388B010000067B2E02000428870100060B387A010000067B2E02000428810100060B3869010000067B2E02000428810100060B3858010000067B2E02000403041728740100060B3844010000067B2E02000403041828740100060B3830010000067B2E02000403041C28720100060B381C010000067B2E02000403041F0D28740100060B3807010000067B2E0200040304288B0100060B38F4000000067B2E0200046F9C0100067B54020004130B067B2E0200046F9C0100067B56020004130C067B2E0200046F9C0100067B58020004130D067B2E0200046FAA010006110D067B2E0200046F9C0100067B58020004284200000A130D067B2E0200046FAA010006110D067B2E0200046F9C0100067B58020004284200000A130D2B0A3958E6FFFF381EE6FFFF067B2E0200046F9C0100067B52020004130E2B0A3AFFE5FFFF38F8E5FFFF067B2E0200046FAA0100062B0A7D2E02000438D1E5FFFF2010330000110D110B110C110E73D3010006736C0100060B2B1B722F2B0070067B2E0200046F9C01000628CE010006730700000A7A072A00133005002A00000065000011026F9C010006736C01000625057D29020004026FA30100060203161428860100060A040628730100062A0000133003005E0100006600001103384C01000072972B0070027B2C02000428CE010006730700000A7A043818010000724A2C0070027B2C02000428CE010006730700000A7A020338E800000003177D24020004047B2602000420E03200002E3320E0320000736A01000625027D2B02000425027D220200040A02067D2102000402047D2A02000404027D2802000438D6000000040A02067D21020004067B220200040B06027D22020004027B29020004077B29020004323202077D2802000402077B270200047D2A02000407027D27020004027B2A020004027D280200043886000000077B280200040B072C0E027B29020004077B2902000432E8072D2102067B2B0200047D2A02000406027D2B020004027B2A020004027D280200042B4A02077D2802000402077B270200047D2A0200042B0A7D27020004380EFFFFFF07027D270200042B0A3AF9FEFFFF38DEFEFFFF027B2A020004027D280200042B0A3AC5FEFFFF38AAFEFFFF062A0000133005002A00000065000011026F9C010006736C01000625057D29020004026FA30100060203161428860100060A040628750100062A000013300300570100006600001103384501000072972B0070027B2C02000428CE010006730700000A7A043811010000724A2C0070027B2C02000428CE010006730700000A7A020338E100000003177D24020004047B2602000420E03200002E2C20E0320000736A01000625027D2B02000425027D220200040A02067D2102000402047D2A02000438D6000000040A02067D21020004067B220200040B06027D22020004027B29020004077B29020004313202077D2802000402077B270200047D2A02000407027D27020004027B2A020004027D280200043886000000077B280200040B077B280200042C0E027B29020004077B2902000431E3077B280200040B072D1502067B2B0200047D2A02000406027D2B0200042B4A02077D2802000402077B270200047D2A0200042B0A7D270200043815FFFFFF07027D270200042B0A3A00FFFFFF38E5FEFFFF027B2A020004027D280200042B0A3ACCFEFFFF38B1FEFFFF062A0013300500D70100006700001173940100060A060238BE010000178D41000002251620132000009E28AF01000638910100007E32020004252D1B385A0100007E31020004FE0698010006738F02000A25803202000428B00100060C067B2F02000403287B0100060D09735901000A7D1F020004067B2F020004200D2000006FA4010006161304735901000A1305161306067B2F020004208C2000006FA70100062C4A067B2F0200040728790100061307067B2F0200042013200000067B30020004252D18260606FE0695010006738E02000A2513087D3002000411086FA5010006110511076F5A01000A2BA4067B2F020004208D2000006FA70100062C5011042C1B72FF2C0070067B2F0200046F9C01000628CE010006730700000A7A171306171304067B2F02000428870100061309067B2F02000420132000006FA4010006110511096F5A01000A3842FFFFFF11056FCC00000A16315920E2320000067B2F020004082885010006736B010006130A11062C0D09110A7D2A0200043805FFFFFF20E23200001105736B01000625110A7D20020004130B2B062638A0FEFFFF097B1F020004110B6F5A01000A38D5FEFFFF067B2F020004200E2000006FA40100062B060B3869FEFFFF067B2F020004092882010006262B0A7D2F0200043838FEFFFF092A00133003002200000065000011026F9C010006736C0100060A022B0A02030628780100062B076FA30100062BEF062A000013300800660000000000000002200D2000006FA70100062B0D02200D2000006FA40100062B042C252BEF0420E132000002142885010006736B0100067D2002000402200E2000006FA40100062A0420E1320000735901000A250203171428860100066F5A01000A736B0100067D200200042A000086026F9C010006736C010006026FA3010006250203161428860100067D200200042A0000133008008800000068000011026F9C010006736C0100060A022B340220082000006FA70100062B0D0220082000006FA40100062B042C502BEF178D41000002251620092000009E28AF0100060B2B076FA30100062BC50620E4320000735901000A250207161428860100066F5A01000A736B0100067D230200040220092000006FA40100062B0B72A22D0070730700000A7A062A133003002200000065000011026F9C010006736C0100060A022B0A020306287C0100062B076FA30100062BEF062A00001330040057000000000000000220082000006FA70100062B230420E4320000735901000A736B0100067D230200042A0220082000006FA40100062B042DF12BD90420E432000002142885010006736B0100067D230200040220092000006FA40100062A0013300600C8000000690000110220172000002B36178D41000002251620192000009E28AF0100062B1106177D39020004020628850100060B2B030A2BEC076FCC00000A1731022B092B1D6FA40100062BC372712E0070047B2C02000428CE010006730700000A7A04076FCC00000A2C4407166FCB00000A7B1F0200042D1E200F330000735901000A2507166FCB00000A6F5A01000A736B0100062B27200F33000007166FCB00000A7B1F020004736B0100062B0F200F330000735901000A736B0100067D230200040220192000006FA40100062A13300600A70000006A00001102200F2000002B15021428850100060A066FCC00000A1731022B092B1D6FA40100062BE472712E0070047B2C02000428CE010006730700000A7A04066FCC00000A2C4406166FCB00000A7B1F0200042D1E20E3320000735901000A2506166FCB00000A6F5A01000A736B0100062B2720E332000006166FCB00000A7B1F020004736B0100062B0F20E3320000735901000A736B0100067D230200040220102000006FA40100062A0013300600B20000006A0000110220082000002B200273B101000625177D3802000428850100060A066FCC00000A1731022B092B1D6FA40100062BD972712E0070047B2C02000428CE010006730700000A7A04066FCC00000A2C4406166FCB00000A7B1F0200042D1E200F330000735901000A2506166FCB00000A6F5A01000A736B0100062B27200F33000006166FCB00000A7B1F020004736B0100062B0F200F330000735901000A736B0100067D230200040220092000006FA40100062A00001330030018000000650000110203287B0100062B0A02030628780100062B030A2BF3062A133002001A00000065000011026F9C010006736C0100060A026FAA010006020628820100062A00006A0220142000002B0903177D250200042B076FA40100062BF0032A00C2032B2703177D240200042B0F026F9C010006736C010006FE0B0100026FA301000603177D250200042B042CE02BD5032A0000000A142A00133004002D0000006B000011735901000A0A0203171428860100062B17072B0906076F5A01000A2B042C022BF3072D022B052BDE0B2BE6062A0000001330040090000000650000110538820000000203050428710100063865000000052B52062C0706FE0B03002B34062C1E067B240200042D1672DF2E0070067B2C02000428CE010006730700000A7A052C10057B250200042D08026F9E0100062DAB026F9E01000616FE01045F2C2C052C022B062B252DB62BAA057B250200042D022B082B15FE0B03002B9505177D250200042B060A3878FFFFFF052A4A026F9C010006736C010006026FA30100062A00133002003100000065000011026F9C010006736C0100060A022B19032B0906037D270200042B042C122BF303177D240200042B076FA30100062BE0062A000000133002001A00000065000011026F9C010006736C0100060A026FA30100060406288A0100062A000013300600B4000000650000110238A200000072642F0070037B2C02000428CE010006730700000A7A027B2602000420E6320000386F000000022B60067B2A0200042D150620E2320000735901000A736B0100067D2A020004067B2A0200047B1F020004036F5A01000A2B3320E6320000736A01000625027D200200042520E2320000735901000A25036F5A01000A736B0100067D2A0200040A2B030A2B9D03067D210200042B0433C22B8D02177D240200042B0A3A6FFFFFFF3854FFFFFF062A133004002B00000066000011026F9C010006736C0100060A022B0C0203141628710100060B2B076FA30100062BED040607288D0100062A001330040013000000650000110203141628710100060A040506288D0100062A0013300600D3000000650000110238C10000007215300070027B2C02000428CE010006730700000A7A04389200000072D4300070037B2C02000428CE010006730700000A7A047B2602000420E63200002B62040A067B270200042D150620E2320000735901000A736B0100067D27020004067B270200047B1F020004036F5A01000A2B5A20E6320000736A01000625047D200200042520E2320000735901000A25036F5A01000A736B0100067D270200040A2B0433CE2B9A03067D210200042B0A3A7FFFFFFF3864FFFFFF03177D240200042B0A3950FFFFFF3835FFFFFF062A00867287310070026F9C010006026F9C0100067B5802000428CF010006730700000A7A00005A72F3310070026F9C01000628CE010006730700000A7A001E02280E00000A2A6E7261320070027B2E0200046F9C01000628CE010006730700000A2A13300200D6000000000000000320082000006FA701000638A000000003200F2000006FA7010006387000000003200D2000006FA70100062B4003201A2000006FA70100063995000000027B2E020004176FAE0100063984000000027B2E020004176FAE0100067B5302000420082000002E022B0C38630000003A620000002BB9027B2E020004176FAE0100067B53020004200F2000002E022B062B402D422B8C027B2E020004176FAE0100067B53020004200D2000002E022B092B202D223859FFFFFF027B2E020004176FAE0100067B530200042017200000FE012A172A162A172A00006E7224330070027B2E0200046F9C01000628CE010006730700000A2A1E02280E00000A2A6E72C1330070027B2F0200046F9C01000628CE010006730700000A2A2E739701000680310200042A1E02280E00000A2ACA03208C2000006FA70100062B1103208D2000006FA70100062C022B062B102D102BEB0320132000006FA60100062A162A172A006A02280E00000A0203733A01000A28A00100060215289B0100062A001E027B330200042A2202037D330200042A0000001E027B340200042A2202037D340200042A0000002A02289C01000614FE032A001E027B350200042A2202037D350200042A0000001E027B360200042A2202037D360200042A0000001E0228AA0100062A42020328A70100062C060228AA0100062A0000005E020328A70100062D07046F9002000A7A0228AA0100062A133002001E000000630000110228AD0100062B07062C022B052B0D0A2BF6067B5302000403FE012A162A00006602289C0100062C0F02289C0100067B5302000403FE012A162A00004A020328A70100062D07046F9002000A7A172A001330030032000000170000110202289A01000618592B1602021628AE010006289D01000602289A0100060A2B07289B0100062BE302061758289B0100062A000013300300240000001700001102021628AE0100062B0902289A0100060A2B07289D0100062BF002061758289B0100062A320273990100066FAC0100062A000000133007007F0000006A0000110202289F01000628BB010006284D00002B2B20022B0A021428850100060A2B0728AA0100062BEF02289C0100062C022B092B1D28A20100062BD9726634007002289C01000628CE010006730700000A7A20DE32000006736B0100062520DE3200001402289F0100061602289F0100066F9E00000A73D30100067D2C0200042A0022021628AE0100062A00000013300200290000001700001102289A010006175803582B0F060228A10100068E692F022B052B0C0A2BEE0228A1010006069A2A142A00000013300400DE0000006C00001173B20100060A06027D3A02000473B10100060B067B3A0200048E691738B100000007257B3702000406FE06B3010006739102000A289202000A747D00001B7D370200043894000000067B3A0200048E69182B3307257B3702000406FE06B4010006739102000A289202000A747D00001B7D370200042B65067B3A0200048E691933022B062B2833EF2BC907257B3702000406FE06B5010006739102000A289202000A747D00001B7D370200042B2E07257B3702000406FE06B6010006739102000A289202000A747D00001B7D370200042B0A4071FFFFFF3845FFFFFF072A000013300500350000006D00001173B90100060A06027D3C02000473B101000625257B3702000406FE06BA010006739102000A289202000A747D00001B7D370200042A0000001E02280E00000A2A1E02280E00000A2AD2037B8A02000A027B3A02000416946FA70100062B1303037B8A02000A28840100067D8D02000A2B042C092BE903177D8C02000A2A000000133003004900000000000000037B8A02000A027B3A02000416946FA70100062B28037B8A02000A027B3A02000417946FA70100062C1E03037B8A02000A28840100067D8D02000A2B042DEB2BD403177D8C02000A2A000000133003006600000000000000037B8A02000A027B3A02000416946FA70100062B45037B8A02000A027B3A02000417946FA70100062B19037B8A02000A027B3A02000418946FA70100062C022B062B222D022BE303037B8A02000A28840100067D8D02000A2B042DEB2BB703177D8C02000A2A000013300300540000006E00001173B70100060A06032B36027B3A02000406FE06B8010006739302000A284E00002B2C30067B3B020004067B3B0200047B8A02000A28840100067D8D02000A2B077D3B0200042BC3067B3B020004177D8C02000A2A1E02280E00000A2A4A027B3B0200047B8A02000A036FA70100062A001E02280E00000A2ACA027B3C020004037B8A02000A6F9402000A2B1303037B8A02000A28840100067D8D02000A2B042C092BE903177D8C02000A2A0013300300A80100006F000011739502000A0A160B3883010000020728CD010006388701000017386B010000087B5302000438500100001104205E21000030231104201C2000003B0F0100001104205D2100002E541104205E2100002E5F3814010000110420DA3200002E36110420EE3200005945060000004000000052000000640000007400000084000000A7000000110420143300003BCD00000038D5000000160D38CE00000002087B5602000428BF0100060C160D38BA00000002087B5602000428BE0100060C160D38A600000002087B5602000428CA0100060C389400000002087B5602000428C90100060C388200000002087B560200041628C60100060C2B7202087B560200041628C50100060C2B6202087B5602000428C801000613050611056F9602000A1105166F9702000A0C160D2B3F02087B5602000428C701000613060611066F9602000A1106166F9702000A0C160D2B1C02087B5602000428C00100060C2B0D02087B5602000428CC0100060C087B5202000417580B092C022B092B16130438A9FEFFFF06086F9802000A2B060D388FFEFFFF07026F9E00000A32022B0B386DFEFFFF0C3873FEFFFF062A1E02280E00000A2A133004004B0A000000000000739902000A25720F35007020842000006F9A02000A25721B35007020822000006F9A02000A25722535007020832000006F9A02000A25720F00007020702000006F9A02000A25722F00007020712000006F9A02000A257219000070207D2000006F9A02000A257295000070207B2000006F9A02000A25728700007020792000006F9A02000A25727B000070207A2000006F9A02000A25725300007020752000006F9A02000A25726500007020772000006F9A02000A257201000070207F2000006F9A02000A25722300007020722000006F9A02000A25723900007020732000006F9A02000A2572A5000070207C2000006F9A02000A25725B00007020762000006F9A02000A25726F00007020782000006F9A02000A25724500007020742000006F9A02000A25722F350070207E2000006F9A02000A25723935007020AC2000006F9A02000A25723F35007020932000006F9A02000A25724B350070208C2000006F9A02000A257255350070208F2000006F9A02000A25726135007020BB2000006F9A02000A257271350070209E2000006F9A02000A25727D35007020942000006F9A02000A25728F350070208D2000006F9A02000A25729F350070208A2000006F9A02000A2572A535007020862000006F9A02000A2572AF35007020902000006F9A02000A2572BF35007020882000006F9A02000A2572C735007020892000006F9A02000A2572D735007020922000006F9A02000A2572E135007020852000006F9A02000A2572E735007020AA2000006F9A02000A2572ED35007020AB2000006F9A02000A2572F335007020A22000006F9A02000A25724518007020A92000006F9A02000A2572FB35007020A82000006F9A02000A25720336007020952000006F9A02000A25721136007020812000006F9A02000A25721F360070208B2000006F9A02000A25722D36007020962000006F9A02000A257239360070208E2000006F9A02000A25724136007020802000006F9A02000A25724F36007020BC2000006F9A02000A25726336007020B52000006F9A02000A25726F36007020872000006F9A02000A25727B36007020A42000006F9A02000A25728D36007020B32000006F9A02000A25729736007020B62000006F9A02000A2572A336007020BA2000006F9A02000A2572B300007020B92000006F9A02000A2572B536007020A62000006F9A02000A2572C136007020BF2000006F9A02000A2572D336007020A72000006F9A02000A2572E1360070209F2000006F9A02000A2572ED36007020C02000006F9A02000A2572FF36007020B82000006F9A02000A25721337007020992000006F9A02000A25722537007020912000006F9A02000A25722F37007020B42000006F9A02000A25724337007020BE2000006F9A02000A25725537007020A32000006F9A02000A25726737007020AD2000006F9A02000A25727537007020982000006F9A02000A257285370070209A2000006F9A02000A25729937007020972000006F9A02000A2572A7370070209C2000006F9A02000A2572B9370070209D2000006F9A02000A2572C737007020A02000006F9A02000A2572DD370070209B2000006F9A02000A2572EB37007020B72000006F9A02000A2572F937007020B22000006F9A02000A25720338007020BD2000006F9A02000A25721138007020A52000006F9A02000A25722138007020A12000006F9A02000A25723338007020012000006F9A02000A25723738007020022000006F9A02000A25723B38007020082000006F9A02000A25722A05007020092000006F9A02000A2572F0070070200A2000006F9A02000A2572281E0070200B2000006F9A02000A25723F380070200C2000006F9A02000A2572DE070070200D2000006F9A02000A2572BD170070200E2000006F9A02000A257243380070200F2000006F9A02000A25724738007020102000006F9A02000A25724B38007020132000006F9A02000A2572AF25007020142000006F9A02000A25724F38007020172000006F9A02000A2572EA04007020182000006F9A02000A25725338007020192000006F9A02000A2572241E0070201A2000006F9A02000A257257380070201B2000006F9A02000A25725B38007020FA3200006F9A02000A25726138007020FB3200006F9A02000A257267380070200B2200006F9A02000A25726D380070200C2200006F9A02000A257273380070200D2200006F9A02000A257279380070200E2200006F9A02000A25727F380070200F2200006F9A02000A25728538007020102200006F9A02000A25728B38007020112200006F9A02000A25729138007020122200006F9A02000A25729738007020132200006F9A02000A25729F38007020142200006F9A02000A2572A738007020F02100006F9A02000A2572AD38007020C22100006F9A02000A2572B338007020E32100006F9A02000A2572B938007020E42100006F9A02000A2572BF38007020E52100006F9A02000A2572C338007020E72100006F9A02000A2572C738007020E62100006F9A02000A2572CB38007020E82100006F9A02000A2572D138007020E92100006F9A02000A2572D738007020EB2100006F9A02000A2572DD38007020ED2100006F9A02000A2572E338007020E12100006F9A02000A2572E938007020DE2100006F9A02000A2572ED38007020DF2100006F9A02000A2572F138007020E02100006F9A02000A25720D25007020083300006F9A02000A2572F5380070200B3300006F9A02000A25723E07007020EE3200006F9A02000A25723A07007020EF3200006F9A02000A2572FB38007020F03200006F9A02000A25720139007020F13200006F9A02000A25720739007020F23200006F9A02000A25720D39007020F33200006F9A02000A257213390070205D2100006F9A02000A257219390070205E2100006F9A02000A25721F390070201C2000006F9A02000A25722339007020FD3200006F9A02000A25722939007020FE3200006F9A02000A25722F39007020D13200006F9A02000A25723539007020D13200006F9A02000A25723D39007020D23200006F9A02000A25724339007020D33200006F9A02000A25724B39007020E92100006F9A02000A25725139007020063300006F9A02000A25725739007020F23200006F9A02000A25725F39007020F33200006F9A02000A25726739007020F23200006F9A02000A25726F39007020F33200006F9A02000A25727739007020143300006F9A02000A25727D39007020E73200006F9A02000A25728739007020E73200006F9A02000A25729139007020E83200006F9A02000A25729B39007020E83200006F9A02000A2572A539007020E93200006F9A02000A2572B139007020E93200006F9A02000A2572BD39007020E93200006F9A02000A2572C939007020E93200006F9A02000A2572D539007020E93200006F9A02000A2572E139007020E93200006F9A02000A2572ED39007020E93200006F9A02000A2572F939007020E93200006F9A02000A2572053A007020EA3200006F9A02000A25720F3A007020EA3200006F9A02000A2572193A007020EB3200006F9A02000A2572233A007020EB3200006F9A02000A25722D3A007020EC3200006F9A02000A2572373A007020EC3200006F9A02000A803D0200042A0013300500A300000070000011140A737B00000A0B031758026F9E00000A387300000002036F9B02000A1F2F2B53020317586F9B02000A1F2A2B350318580C2B3302086F9B02000A0D0817580C091F2A331408026F9E00000A2F0B02086F9B02000A1F2F2E1F07096F9C02000A262B04333C2BC708026F9E00000A32022B062BC0332B2BA9026F9E00000A175908289F00000A0C2B042F162B89205E210000076F3A00000A02030873D30100060A062A0013300500A300000070000011140A737B00000A0B031758026F9E00000A387300000002036F9B02000A1F2F2B53020317586F9B02000A1F2F2B350318580C2B3302086F9B02000A0D0817580C091F0D331408026F9E00000A2F0B02086F9B02000A1F0A2E1F07096F9C02000A262B04333C2BC708026F9E00000A32022B062BC0332B2BA9026F9E00000A175908289F00000A0C2B042F162B89205D210000076F3A00000A02030873D30100060A062A0013300500A800000070000011140A737B00000A0B031758026F9E00000A388900000002036F9B02000A1F23386A000000020317586F9B02000A1F302B53020317586F9B02000A1F393D6500000007020317586F9B02000A6F9C02000A260318580C2B3B02086F9B02000A0D091F23331620CB320000076F3A00000A02030873D30100060A2B2C07096F9C02000A262B0432202BA90817580C2B0433162B9208026F9E00000A32022B092BB82F053870FFFFFF062A133006007101000071000011140A737B00000A0B14385B010000031758026F9E00000A38F900000002036F9B02000A1F3038DC000000020317586F9B02000A1F782E10020317586F9B02000A1F58402801000002036F9B02000A8C05000001020317586F9B02000A8C05000001283E01000A0D0318581304161305161306387E0000000211046F9B02000A130711071F30320611071F39311811071F61320611071F66310C11071F41321811071F46301211062D0E1713050711076F9C02000A262B3811071F61320611071F7A310C11071F41321E11071F5A301811062D09737B00000A0C1713060811076F9C02000A262B081104175913042B1E1104175813041104026F9E00000A32022B0C3871FFFFFF3367381DFFFFFF11052C022B092B5A2F583800FFFFFF20D5320000076F3A00000A0203110473D301000625097D5502000425082D0720153300002B1F7E3D02000472413A0070086F3A00000A72BD170070284000000A6F9D02000A7D570200040A2B060C389FFEFFFF062A000000133005005201000072000011140A737B00000A0B03381E0100001638FE00000016130438D100000002086F9B02000A38D900000011051F61320611051F7A311511051F41320611051F5A31091105289E02000A2C111713040711056F9C02000A26388F00000011051F5C3335020817586F9B02000A1F753328092D0C170D07161F406F9F02000A261713040702081B6FA000000A28A002000A6F7D00000A262B5411051F30320B11051F39FE0216FE012B011611045F2C0B0711056F9C02000A262B3211051F403315076F9E00000A2D0D170D0711056F9C02000A262B1711051F5F330B0711056F9C02000A262B060817590C2B100817580C08026F9E00000A3F23FFFFFF11042C022B092B4F13053820FFFFFF076F3A00000A13062B060D38FCFEFFFF7E3D020004110612076FA102000A2D022B082B170C38DCFEFFFF20D6320000110602030873D30100062B0C1107110602030873D30100060A062A000013300600C701000073000011140A737B00000A0B1438B1010000033859010000163841010000161305161306161307381F01000002096F9B02000A130811081F30321B11081F39301511072D111713060711086F9C02000A2638F100000011081F2E334211042D3E11052D3A11072D36091758026F9E00000A2F2B020917586F9B02000A1F30321E020917586F9B02000A1F3930111713040711086F9C02000A2638A900000011081F652E0611081F45336711052D6311072D5F091758026F9E00000A2F54020917586F9B02000A1F2B2E27020917586F9B02000A1F2D2E1A020917586F9B02000A1F30322D020917586F9B02000A1F3930201713050711086F9C02000A260917580D0702096F9B02000A6F9C02000A262B3611081F61320611081F7A310C11081F41321E11081F5A301811072D09737B00000A0C1713070811086F9C02000A262B060917590D2B100917580D09026F9E00000A3FD5FEFFFF11062C022B092B6A130438B8FEFFFF11041105602D022B082B0D0D38A1FEFFFF20D73200002B0520DC320000076F3A00000A02030973D301000625082D0720153300002B1F7E3D02000472413A0070086F3A00000A72BD170070284000000A6F9D02000A7D570200040A2B060C3849FEFFFF062A00133005005601000074000011140A737B00000A0B030C38B900000002086F9B02000A3833010000091F273814010000091F2238FB00000007096F9C02000A26389C000000091F2F334F081758026F9E00000A2F44020817586F9B02000A1F2F2E0D020817586F9B02000A1F2A332A076F9E00000A2D1C07096F9C02000A260817580C0702086F9B02000A6F9C02000A262B4E0817590C2B48091F213205091F2F311E091F3A3205091F403114091F5B3205091F60310A091F7B3213091F7E300E07096F9C02000A260817580C2B060817590C2B0C08026F9E00000A3F3BFFFFFF026F9E00000A175908289F00000A0C2B4B076F3A00000A13047E3D020004076F3A00000A12056FA102000A2C0F1105110402030873D30100060A2B2007076F9E00000A1759176FA202000A260817590C2B0A400DFFFFFF38FBFEFFFF062D022B0C2B1D3BEFFEFFFF38E2FEFFFF076F9E00000A1630022B082B970D38C7FEFFFF062A000013300500D300000070000011140A737B00000A0B0317580458026F9E00000A38A000000002036F9B02000A1F4038840000000203175804586F9B02000A1F222B6403185804580C2B6002086F9B02000A0D091F223326081758026F9E00000A2F1B020817586F9B02000A1F22330E07096F9C02000A260817580C2B23091F22331620D9320000076F3A00000A02030873D30100060A2B2607096F9C02000A260817580C2B0433362B9808026F9E00000A32022B092B9333253875FFFFFF062D022B092B192F173859FFFFFF72473A0070020328D1010006730700000A7A062A0013300500D300000070000011140A737B00000A0B0317580458026F9E00000A38A000000002036F9B02000A1F4038840000000203175804586F9B02000A1F272B6403185804580C2B6002086F9B02000A0D091F273326081758026F9E00000A2F1B020817586F9B02000A1F27330E07096F9C02000A260817580C2B23091F27331620D9320000076F3A00000A02030873D30100060A2B2607096F9C02000A260817580C2B0433362B9808026F9E00000A32022B092B9333253875FFFFFF062D022B092B192F173859FFFFFF72473A0070020328D1010006730700000A7A062A00133003008A0000007500001114387C000000031758026F9E00000A386100000002036F9B02000A2B4E020317586F9B02000A0C140D071F243311081F22330C0203175828C90100060D2B2F071F243312081F40330D020317581628C50100060D2B18071F403313081F24330E02031728C50100060D2B030B2BAF092C022B062B132F112B9B0928CB0100060A2B060A387EFFFFFF062A0000133003008A0000007500001114387C000000031758026F9E00000A386100000002036F9B02000A2B4E020317586F9B02000A0C140D071F243311081F27330C0203175828CA0100060D2B2F071F243312081F40330D020317581628C60100060D2B18071F403313081F24330E02031728C60100060D2B030B2BAF092C022B062B132F112B9B0928CB0100060A2B060A387EFFFFFF062A0000133006000102000076000011140A737B00000A0B03026F9E00000A38D201000002036F9B02000A1F2238B60100000317580C389D01000002086F9B02000A388B010000091F5C333E081758026F9E00000A2F33020817586F9B02000A1F5C2E0D020817586F9B02000A1F22331907020817586F9B02000A6F9C02000A260817580C3842010000091F5C3368081758026F9E00000A2F5D020817586F9B02000A1F753350081B58026F9E00000A322472DC3A0070020208026F9E00000A085917586FA000000A081428D2010006730700000A7A02081C6FA000000A130407110428A002000A6F7D00000A26081B580C38D5000000091F2240C5000000076F3A00000A13051105725A3B007072603B00706F3D00000A1305110572643B0070726A3B00706F3D00000A13051105726E3B007072743B00706F3D00000A1305110572783B0070727E3B00706F3D00000A1305110572823B007072883B00706F3D00000A13051105728C3B007072923B00706F3D00000A1305110572963B0070729C3B00706F3D00000A1305110572A03B007072A63B00706F3D00000A1305110572AA3B007072B03B00706F3D00000A130520D9320000110502030873D30100060A2B2B07096F9C02000A260817580C2B060D386FFEFFFF08026F9E00000A32022B0C3853FEFFFF33253843FEFFFF062D022B092B192F173827FEFFFF72473A0070020328D1010006730700000A7A062A000000133006001202000076000011140A737B00000A0B03026F9E00000A38E301000002036F9B02000A1F2738C70100000317580C38AE01000002086F9B02000A389C010000091F5C333E081758026F9E00000A2F33020817586F9B02000A1F5C2E0D020817586F9B02000A1F27331907020817586F9B02000A6F9C02000A260817580C3853010000091F5C3368081758026F9E00000A2F5D020817586F9B02000A1F753350081B58026F9E00000A322472DC3A0070020208026F9E00000A085917586FA000000A081428D2010006730700000A7A02081C6FA000000A130407110428A002000A6F7D00000A26081B580C38E6000000091F2740D6000000076F3A00000A13051105725A3B007072603B00706F3D00000A1305110572643B0070726A3B00706F3D00000A13051105726E3B007072743B00706F3D00000A1305110572783B0070727E3B00706F3D00000A1305110572823B007072883B00706F3D00000A13051105728C3B007072923B00706F3D00000A1305110572963B0070729C3B00706F3D00000A1305110572A03B007072A63B00706F3D00000A1305110572AA3B007072B03B00706F3D00000A130511056FD101000A172E0720D93200002B0520DD320000110502030873D30100060A2B2B07096F9C02000A260817580C2B060D385EFEFFFF08026F9E00000A32022B0C3842FEFFFF33253832FEFFFF062D022B092B192F173816FEFFFF72473A0070020328D1010006730700000A7A062A00001B300600610300007700001173A302000A0A737B00000A0B739502000A0C027B58020004733A01000A0D16130438DA0100000911046F9B02000A380602000011071F7B38E901000011041758096F9E00000A38C601000009110417586F9B02000A1F7B331D0711076F9C02000A261104175813040711076F9C02000A26388401000011071F7B4072010000110417581304739502000A130817130915130A1104110A330B72A22D0070730700000A7A1104130A09110428CD010006130B110B3942010000110B7B5302000420EE320000331109110B7B5602000428CA010006130B2B1D110B7B5302000420EF320000330F09110B7B5602000428C9010006130B110B7B53020004200D20000033081109175813092B88110B7B53020004200E20000040BD00000011091759130911093A6AFFFFFF0772DE0700706F7D00000A2607066FA402000A6FA502000A2611086FA602000A183177110811086FA602000A18596F9702000A7B5302000420182000002E1C110811086FA602000A18596F9702000A7B530200042013200000333F07110811086FA602000A18596F9702000A6FA702000A2607110811086FA602000A17596F9702000A6FA702000A26110811086FA602000A1859186FA802000A0772BD1700706F7D00000A260611086FA902000A2B221108110B6F9802000A110B7B520200041758130438A1FEFFFF0711076F9C02000A261104175813041104096F9E00000A32022B0F3815FEFFFF3C60FEFFFF3830FEFFFF027B5602000413052B0A404CFEFFFF380DFEFFFF027B5202000413062B07130738F3FDFFFF08207C20000072A5000070091105110673D30100066F9802000A08201A20000072241E0070091105110673D30100066F9802000A0820D632000072B43B0070091105110673D30100066F9802000A082008200000723B380070091105110673D30100066F9802000A0820D9320000076F3A00000A091105110673D30100066F9802000A066FAA02000A130C2B5F120C28AB02000A130D08201820000072EA040070091105110673D30100066F9802000A0820DF32000072DE070070091105110673D30100066F9802000A08110D6F9602000A08200E20000072BD170070091105110673D30100066F9802000A120C28AC02000A2D98DE0E120CFE168400001B6F3000000ADC082009200000722A050070071105110673D30100066F9802000A082A000000011000000200CB026C37030E0000000013300500DD00000070000011140A737B00000A0B031858026F9E00000A38BE00000002036F9B02000A1F23389C000000020317586F9B02000A1F23387F000000020318586F9B02000A1F303F97000000020318586F9B02000A1F393D8700000007020318586F9B02000A6F9C02000A260319580C2B5D02086F9B02000A0D091F233332081758026F9E00000A2F27020817586F9B02000A1F23331A0817580C20CC320000076F3A00000A02030873D30100060A2B3207096F9C02000A262B073326387AFFFFFF0817580C2B073319385DFFFFFF08026F9E00000A32022B092B962F05383BFFFFFF062A00000013300500270200007800001103026F9E00000A38EB010000142A0338D401000002066F9B02000A0B2B2806175838B301000006026F9E00000A320F20DA3200001402060673D30100062A02066F9B02000A0B071F202ED3071F0D2ECE071F0A2EC9071F092EC4071F2E333F061758026F9E00000A2F27020617586F9B02000A1F30321A020617586F9B02000A1F39300D020628C30100060C3894010000020628C40100060C3887010000071F30333F061758026F9E00000A2F27020617586F9B02000A1F782E0D020617586F9B02000A1F58330D020628C10100060C3850010000020628C30100060C3843010000071F303212071F39300D020628C30100060C382C010000071F613205071F7A3112071F413205071F5A310807289E02000A2C0D020628C20100060C3803010000071F402E08071F5F4088000000061758026F9E00000A3C6D000000020617586F9B02000A1F5F2E2C020617586F9B02000A1F61320D020617586F9B02000A1F7A3112020617586F9B02000A1F413239071F5A3034020628C20100060D071F403315092C1209097B58020004176F5F00000A7D5802000409252D0826020628C40100060C387B000000020628C40100060C386E000000071F213205071F2F3140071F3A3205071F403136071F5B320F071F6031022B082B280A3847FEFFFF071F7B32022B082B230A3826FEFFFF071F7E30022B0C2B143F12FEFFFF380BFEFFFF020628C40100060C2B1A72C23B0070021201288700000A061428D2010006730700000A7A082A00A602037B54020004036F3A00000A723A07007072581300706F3D00000A037B560200041428D20100062A00009202037B5402000404723A07007072581300706F3D00000A037B560200041428D20100062A000000A602047B54020004046F3A00000A723A07007072581300706F3D00000A047B560200040328D20100062A00003E020372EE040070041428D20100062A1330070061000000790000111F19036F9E00000A0559289F00000A2B0B0305066FA000000A0B2B030A2BF2021A8D01000001251604A22517058C0A000001A2251807723A07007072581300706F3D00000AA225190E042D0772EE0400702B070E046F0602000AA2289A00000A2A000000E2022B26020E052B1002037D5302000402057D540200042B077D520200042BE9020E047D560200042B07280E00000A2BD302047D580200042A00000072027B58020004252D1226027C53020004FE16410000026F3A00000A2A00000042534A4201000100000000000C00000076342E302E333033313900000000050070000000F4630000237E0000646400001040000023537472696E67730000000074A40000343C000023555300A8E00000100000002347554944000000B8E000000056000023426C6F62000000000000000000000002000001571DA209090E0000005AA4010016000001000000B60000004F00000058020000D4010000B4020000BB020000730100009D00000079000000080000001A0000002E00000084000000010000000400000029000000080000004E0000000000010001000000000006006800480006006F0048000600860048000600A40048000600AC0048000600B10048000600B70048000600BC0048000600C20048000600C90048000600CF0048000600D60048000600DC0048000600E30048000600EA0048000600F10048000600F90048000600000148000600050110010A0030014301060087018E010600A90148000600D60148000600EE01480006004B024301060066028E010600730248000A007C0287020A00A70287020A00B90243010600E002100106004A0310010600550310010600620348000A0069037403060084038E010600C303CF030600F10348000600380448000600670573050600860548000600920573050E00E105E7050E000606E705120016064F00120020062F06120045062F06120050065E06120087064F00120098064F001200AA064F000E00D706E7050E000F07E70506002A07480006005907480012006D07790706009B0748001200E0074F00120036084F0012004D084F001200C208CC081200E108CC081200EA08CC081200F408CC080600FD08480012000209CC0812000D09CC0812001509CC0812002109CC0812002B09CC0812003309CC0812003C09CC0812004509CC0812004E09CC0812005709CC0812006F09CC0812007909CC085700CB0900001200E2092F060600F80948001200340A5E060600C70A48000600030B480006001B0B290B0600350B290B0A00510B6D0B06008A0B6D0B0600AF0B6D0B0600BE0B48000600D10C48000A00130D870206008F0D48000600D60D48000A00020E87020A001F0E87020A005A0E87020A00700E87020A00850E87020600990E10010A00A60E87020A00B70E87020A00C20E87020A00CD0E87020A00DB0E87020A00EC0E87020600F80E040F0600370F040F0600440F48000600540F48000A00660F87020A00860F87020A009E0F87020A00C40F87020A00D90F87020A00271087020A00521087020600D612480006006A1310010A007A1387020A00881387020600B81310010600D61348000600141410010A002E1487020A00431487020600611476140A009E1487020A00C71487020A001B1529150A00381587020A00971729150A00221887020A00791887020A00AB1887020600D41810010600191A8E016B00281A00000600281B8E010600771C10010600841CCF030600B31CCF030600CF1CCF030600DB1CCF030600E81C10010600F91CCF030600121D100106004B1DCF0306005E1D100106008C1D10010600AB1DCF030600BB1D10010600DB1DCF030600EB1DCF0306001C1E241E0600621ECF030600980FCF030600BF1E8E010600141F241E0600251F48000600451FCF030600551FCF036B00CB0900006B00502100000A006E25870206008B2548000600463D48000600373E43010600573E43010600753E893EA7029C3E00000600AB3E10010600C23E10010600DF3E10010600FE3E10010600173F10010600303F100106004B3F10010600663F7A3F0600993F7A3F0600A73F10010600C43FDD3F0600F73F4301000000005B00000000000100010080011000640000000500010001000100100069017901050001000200030110006400000005000200070080011000330200000500040009000301100064000000050005001500000010000D0400000500060017000000100013040000050009001800010010002504790105000D001A0001001000A5047901050010001E008101100039054A05050014002700032110008C09000005001400350001001000A1094A05050016003800032110008C090000050019003B0001001000770A4A0505001D00400000001000D002000005002200410000001000D40200000500220043000500100064000000050029005300032110008C09000005002E00570000001000D8020000050030005B0000010000DC02000049003300620001001000780C8A0C05003700620000001000F802000005003800650080011000FC020000050056006B00030110006400000005005800A800030110003302000005005A00AA00032110008C09000005005B00AC0003011000C802000005006000B20003011000CC02000005006200B50003011000D002000005006300B80003011000D402000005006500BA0003011000D802000005006600BC0003011000DC02000005006700BE00000010009203000005006900C700800110000904000005007A00C900050010006400000005007A00D900030110003302000005008100DA00032110008C09000005008300DE0003011000C802000005008C00E80001001000E31BFB1B05008D00EA0081011000621CFB1B05009400EC00032110008C09000005009700F20001001000E21FFB1B0500A000FC00010010001020FB1B0500A000FE0001001000702281220500BD001D01032110008C0900000500C700210101001000002381220500C900240101010000202381224900CB002501010010005F2381220500D000250100001000190400000500D7002601032110008C0900000500D700370103011000640000000500E800490103011000330200000500EB00500103011000C80200000500ED00530103011000CC0200000500EF00550103011000D00200000500F000570103011000D40200000500F100590103011000D80200000500F2005B0103011000DC0200000500F3005D0103011000F80200000500F4005F0103011000FC0200000500F500610103011000920300000500F600640103011000090400000500F700660103011000190400000500F8006801000100009B26A6264900F9006A0101001000713BA62605001F026A0180011000BA08000005002E026E01030110006400000005002E029001030110003302000005002F029401032110008C09000005003102960101001000DC3CE93C05003302990100001000BE08000005003702AF01030110006400000005003A02B201030110003302000005003B02B70103011000C802000005003C02B901000010008009000005003D02BB01800110008409000005003E02BE01800110008809000005003E02CE01000010009D09000005005202D30133006400300006006400A00006003302A00031006400B700060064007001030064007B01030033027F010300C8028201230064008201030033027B010300C8027F010300CC028201210064009A0106003F047B01010033027F01010064007F0101003302A0000100C802CB010100CC027F0136009009D00316009409D4030600B109ED030600B909F5030600C709A0003600900904051600500A08051600590A12051600620A1C0506009F04A00006008D0AA0000600970A7F010600A10AA0000600AF0AF50356806400A0003300330299061100C802A1061100CC02A6063300D002A9061100D4027F013300D802AD0606006400A00006003302A6060600C802A1060600CC02A6060600D002A00036009009080816003A0C0C08010064001A08010033021A080100C8021A080606700CA606568064003E08568033023E085680C8023E080600A50C470853806400A00053803302A0005380C802A0005380CC02A0005380D002A0005380D402A0005380D802A0005380DC02A0005380F802A0005380FC02A00053809203A00053800904A00053801904A0005380BA08A0005380BE08A00053808009A00053808409A00053808809A00053809D09A00053806B0AA00053806F0AA0005380730AA0005380AB0BA0005380BA0BA0005380020CA0005380060CA00053800A0CA00053800E0CA0005380120CA0005380240CA00033006400CE1F33003302CE1F06006400602D06003302652D06006400602D36009009812D16007419852D16007D19852D16008619922D160090199C2D06006400BF2D06003302C42D06006400602D06006400C42D06003302E22D06006400A00006006400602D06006400ED2D06003302F22D03006400142E03003302A6060300C802C42D0300CC027F010300D0027F010300D402A6060300D802A6060300DC02CE1F0300F802CE1F0300FC02192E030092031E2E03000904292403001904192E0300BA08192E0300BE08602D03008009700103008409262E030064002B310300330234310300C802A0000300CC0229240300D002A6060300D40270010300D802393106006400A00006003302F22D36009009603116005A1B65311600631B813116006C1B98311600751BA33116007F1BA3311600891BAE311600931BA33116009D1BAE3106006400700106001D1C7F010600251C7F0106002205A0000600351CA0000600431C292406009F04262E0600491CC42D310064001732310033021C323100C802213236009009BA3416007F1FBF341600881FCF341600500ADF341600911FDF3416009A1FEE341600A31FF7341600AC1F05351600B51F0535030064004A350300330254350300C8027F010300CC023E080600202059350300D00270010300D4027F010300D8027F0106002A20C42D0300DC024A350300F802602D0300FC02602D03009203602D060036207F010300090463350300190463350300BA086D3506003F2076350300BE08803501008009893506005503923506004F207F0103008409973501008809973501009D09A03501006B0A990601006F0AAF350100730A80350300AB0BBD35030064007F01030033027F010300C8021E380300CC0223380300D002CE1F0300D402192E0300D80227380300DC0227380300F80227380300FC02602D36009009A9381600F222AE3806002205A00006006F0070010606700CA606568035231E3856803C231E38568046231E3856804E231E3806007923C53806009C23CB380600BB23BF2D0600D923262E0600F323D03806000324A60606000924700136009009193D1600AA2598311600B32565311600BC2581311600C5251E3D1600CE253C3D1600881F543D16009409673D1600D725733D160074197E3D16007D198A3D1600E025AE381600E9258A3D1600F225953D1600931BA13D160086199C2D1600FB25A13D06006400A00006003302F22D0600C802393106006400A00006003302393106006400F22D060033025C3E060064006E3E06006400700106006400292406006400A00006006400700106006400700106006400700106006400700106006400292406006400D0380606700CA6065680C126733E5680CC26733E5680DD26733E5680E926733E5680F626733E56800127733E56801027733E56801E27733E56802D27733E56803D27733E56804827733E56805227733E56805E27733E56806D27733E56807D27733E56808E27733E5680A027733E5680A927733E5680B827733E5680C327733E5680D227733E5680E327733E5680F427733E56800228733E56800D28733E56801E28733E56802728733E56803528733E56803F28733E56804A28733E56805628733E56806228733E56806F28733E56807C28733E56808A28733E56809528733E5680A128733E5680AD28733E5680BA28733E5680C828733E5680D528733E5680E428733E5680F228733E5680FE28733E56800A29733E56801829733E56802629733E56803429733E56804029733E56804C29733E56805929733E56806329733E56806F29733E56807C29733E56808729733E56809629733E5680A029733E5680AE29733E5680BA29733E5680C929733E5680D429733E5680E129733E5680F029733E5680FC29733E5680082A733E5680152A733E5680252A733E5680332A733E5680402A733E56804E2A733E56805D2A733E56806D2A733E56807E2A733E56808C2A733E56809C2A733E5680AA2A733E5680B72A733E5680C42A733E5680D62A733E5680E62A733E5680F12A733E5680012B733E5680112B733E5680202B733E56802D2B733E56803B2B733E5680462B733E5680512B733E56805B2B733E5680652B733E56806F2B733E56807D2B733E56808C2B733E56809B2B733E5680AA2B733E5680BA2B733E5680C62B733E5680D22B733E5680E32B733E5680F02B733E5680FD2B733E56800B2C733E56801C2C733E5680282C733E5680382C733E5680472C733E5680582C733E5680662C733E5680762C733E5680862C733E5680962C733E5680A62C733E5680B72C733E5680CF2C733E5680E62C733E5680092D733E56802E2D733E5680522D733E5680652D733E5680802D733E5680922D733E5680A62D733E5680BA2D733E5680CF2D733E5680E52D733E5680FE2D733E5680142E733E5680292E733E56803E2E733E5680552E733E5680692E733E5680862E733E5680A42E733E5680BD2E733E5680D02E733E5680E42E733E5680F22E733E5680052F733E5680182F733E5680292F733E56803A2F733E56804E2F733E5680632F733E5680772F733E56808C2F733E5680A02F733E5680B52F733E5680CB2F733E5680DC2F733E5680F02F733E56800330733E56801D30733E56803330733E56805030733E56805D30733E56806A30733E56807D30733E56809A30733E5680B830733E5680D430733E56805A0E733E5680AB18733E5680EC30733E56800431733E56801131733E56802731733E56803031733E56803A31733E56804931733E56806331733E56807A31733E56809831733E5680B431733E5680D431733E5680EF31733E56800F32733E56803332733E56804C32733E56806E32733E56808632733E5680A632733E5680C832733E5680E332733E56800033733E56801633733E56803133733E56804933733E56806633733E56808333733E56809E33733E5680B933733E5680D133733E5680F133733E56800834733E56802634733E56804534733E56805934733E56806E34733E56808334733E56809834733E5680AF34733E5680C634733E5680E334733E5680F734733E56800F35733E56802735733E56803735733E56804835733E56805935733E56806B35733E5680860F733E56807F35733E56809135733E5680A435733E5680B635733E5680C535733E5680D035733E5680E135733E5680F435733E56800336733E56800D36733E56801936733E56802636733E56805136733E56807236733E56808536733E5680A236733E5680C136733E5680CD36733E5680D536733E5680DC36733E5680F900733E5680E536733E5680EC36733E5680F436733E5680AC00733E5680F936733E5680FE36733E56801537733E56802537733E56803337733E56804737733E56805B37733E56806A37733E56807837733E56808737733E56808F37733E56809737733E5680A037733E5680A837733E5680B037733E5680B837733E5680CF37733E5680E837733E56800138733E56801B38733E56803538733E56805338733E56807138733E56808838733E56809E38733E5680B438733E5680CD38733E5680E538733E5680FB38733E56800939733E56801939733E56803039733E56804039733E5680CD0E733E56805639733E56806B39733E56807F39733E5680A139733E5680B139733E5680C339733E5680CE39733E5680E339733E5680053A733E5680273A733E5680493A733E5680723A733E5680933A733E5680A93A733E5680BA3A733E5680C93A733E5680850E733E5680E13A733E5680F03A733E56801D3B733E5680403B733E56804E3B733E5680533B733E030064002B3103003302ED2D0300C802ED2D0300CC02ED2D0300D002ED2D0300D4027F010300D8027F010300DC02733E0300F802ED2D0300FC02ED2D03009203A60603000904ED2D03001904ED2D0300BA0831440300BE08ED2D06006400E74506006400E74506003302F84536009009014616009409064601006400A6060100330231440100C80211460100CC021646030064009246030033027F010300C8027F0106006400D746060064000147060064000646330064000D4753806400A00053803302A0005380C802A0005380CC02A0005380D002A0005380D402A0005380D802A0005380DC02A0005380F802A0005380FC02A00053809203A00053800904A00053801904A0005380BA08A0005380BE08A00053808009A00053808409A00053808809A00053809D09A00053806B0AA00003006400A60603003302733E0300C80211460300CC02A0000300D002A6060300D402733E03009F04A00050200000000093006400210001006022000000009600B1013C0002007422000000009600B101400002007C220000000096000A0296000300B823000000008618630127000500C0230000000091182C029C000500CC23000000008618630127000500D4230000000083006400AD00050008240000000096006400CC00060014240000000096003302E40009002024000000009600C802F8000D002C24000000009600CC02070110003424000000009600D002070111003C24000000009600D4020F0112004424000000009600D802150013009824000000009600DC0254011500A024000000009600F80254011600A824000000009600FC0254011700B02400000000960092035F011800B8240000000091182C029C001900E825000000008618630127001900F0250000000083006400740119001826000000008618630127001A00202600000000831863018F011A0030260000000083081D04A8001B0038260000000086186301AA011B004826000000008608530450011C0050260000000086086604B5011C005C260000000086088604A3001D008C26000000008608BD0450011D009426000000008608CB04B5011D00A02600000000860822011D001E00A826000000008608D90451001E00B4260000000086088604CE011F00BC26000000008608E204D2011F00C826000000008608EC0450012000D0260000000086080205B5012000DC26000000008618630127002100E426000000009600C905FF0121005027000000009600C90525022200BC27000000009600760649022300FC27000000009600E506700224008028000000009600E506840228000829000000009600DD0670022D008C290000000096002407A1023100A0290000000096002407B0023400AC29000000009600BF0702033600102A0000000096001E0826033800142C0000000096006C0849033900902C000000009100640082033B00102E00000000910033029C033D008C30000000009600C905C3034000FC300000000091182C029C004100083100000000861863012700410010310000000083006400E60341002831000000008600D6091D0042007C31000000009600460AFF044200C833000000008618630127004300D0330000000091182C029C004300DC33000000008618630127004300E43300000000830064002B054300EC33000000008300330231054400F433000000008300C80237054500FC33000000008618630151004600C43400000000960064003C00470010350000000086186301270047001835000000009308D30AB60647002035000000009308DB0ABC0647002835000000009308E30AC30648003035000000009308EB0AC70648003835000000009308F30A3C0049004035000000009308FB0ACC06490048350000000093006400EB064A009C3500000000930033021E074A00FC35000000009300C8021E074B005C36000000009300CC029F074C00F038000000009300D002A7074F006C39000000009300D4023C005100A83A000000009300D80240005100D43B000000009300DC023C005200003C000000008618630127005200083C0000000091182C029C005200703C00000000860064001D005200D03C00000000860033021D005200483D000000008600C8021D005200603E000000008618630127005200683E0000000091182C029C005200743E0000000086186301270052007C3E00000000830064003B075200803E000000008300330215085300883E000000008308480C22085300903E000000008308500C2B0853009C3E0000000083081D0422085400A43E000000008308580C2B085400B03E000000008308600C22085500B83E000000008308680C2B085500C43E000000008618630127005600CC3E000000008600B00C56085600E03E00000000860006025D085700F43E000000008618630127005900083F00000000930064009C1F5900303F00000000930033029C1F5B00B03F000000009300C802B21F5D003040000000009300CC02BC1F60004040000000009300D002C41F6300584000000000861863012700670060400000000093006400302067008846000000009300330230206B00F048000000009300C8025A206F002C49000000009300CC02A4207200244C000000009300D0025A207700BC4C000000009300D402E0207A00F44C000000009300D802F2247D00CC7D000000009300DC02F2248100E07D000000009300F80202258500087E000000009300FC020F258800107F000000009300920356258B00A8850000000093000904FE27900074970000000093001904FE279200409B000000009300BA083D289400089C000000009300BE084A2898000C9C000000009300800957289C00449C000000009300840963289F007C9D00000000930088097028A300D49D0000000093009D098328A70020A00000000093006B0A9028AB0090A00000000093006F0A9C28AE0078A2000000009300730AA928B200D0A2000000009300AB0BB628B600A8A3000000009300BA0BC228B900D0A5000000009300020CCF28BD0028A6000000009300060CDC28C1009CA60000000093000A0CE828C40084A80000000093000E0CF528C800DCA8000000009300120C0229CC00C0A9000000009300240C0E29CF006CAB000000009300440C4A28D30070AB000000009300BE0C1B29D700C4AB000000009300C20C2729DA0070AD000000009300DA0C4A28DE0074AD000000009300DE0C3429E200C8AD000000009300E20C5129E50070AF000000009300E60C4A28E90074AF000000009300EA0C6729ED00CCAF000000009300EE0C8029F000CCB0000000009300F20C9129F40048B1000000009300F60C9E29F8004CB1000000009300FA0CAB29FC0050B1000000009600FE0CB729FF0054B1000000009300020D540102016CB1000000009300060DF7290301E0B3000000009300AA0D282A050148B5000000009300AE0D3F2A0701E8B7000000009300B20D542A09015CBA000000009300B60D642A0B01A4BA000000009300C60DC02A0E0104BE000000009300CA0DF42A1201A0BF000000009300CE0D352B150168C1000000009300D20D662B180108C3000000009300DD0D912B1B0190C4000000009300E10DF42A1F01B8C4000000009300E50DF42A22010CC50000000093002E0E2A2C25014CC7000000009300320E1A2D2A0158CA000000009300360E342D2E0120CC0000000093003A0E4A2D310180CC0000000091182C029C003501E0CC000000008618630127003501E8CC0000000083006400712D350100CD00000000861863012700360108CD0000000083006400792D360118CD0000000091182C029C00370124CD0000000086186301270037012CCD0000000083006400A82D3701B0CD0000000083003302A82D390130CE000000008300C802B12D3B0138CE000000008300CC02B72D3C0140CE000000008618630127003D0148CE0000000083006400D52D3D01ACCE0000000083003302DC2D3E01CCCE000000008618630127003F01D4CE0000000083006400712D3F01E4CE0000000083003302712D4001F4CE000000008618630127004101FCCE0000000083006400E62D41011CCF00000000861863012700420124CF00000000830064007401420138CF00000000861863012700430140CF0000000083006400792D430150CF00000000861863012700440158CF0000000083006400F72D440178CF0000000083003302F72D45019CCF000000008300C802062E4601BCCF000000008300CC02062E4701E0CF000000008300D0020D2E480100D0000000008300D4020D2E490124D0000000008300D8021C014A0144D0000000008300DC021C014B0168D00000000086006400332E4C01ACD0000000008618630127004C01C0D00000000093006400012F4C0110D200000000930033021A2F510148D2000000009300C802412F530158D3000000009300CC027A2F5901C8D3000000009300D0028F2F5B0134D4000000009300D4029F2F5C0164D4000000009300D802B72F5F01D4D4000000009300DC02D72F6201E4D5000000009300F8020130640198D7000000009300FC021430650174DB00000000930092035D306701ACDC00000000930009047530690150DE000000009300190490306B01A0DF000000009300BA08E1306D0154E1000000009300BE08F5306E01C0E1000000009300800924316F0140E400000000861863012700700160E400000000861863012700700168E400000000830064004F3170017CE400000000830033027401710198E4000000008300C80274017201B4E40000000091182C029C007301C0E4000000008618630127007301C8E40000000083006400C2317301D8E40000000083003302E8317401E0E4000000008300C802F72D7501ECE4000000008300CC02FB3176010CE5000000008300D002FB3177011CE5000000008300D4020232780124E5000000008300D802FB31790144E5000000008300DC0202327A015CE5000000008618630127007B0164E50000000083006400FB317B018CE5000000008618630127007C0194E500000000861863010A327C01B0E5000000009600921CB7327E01CCE60000000091006400E332800100E70000000096004C1EFD338101E4E9000000009600ED1E7C348301C4EB000000009600031F7C348501ECEC0000000091182C029C0087013CED0000000091182C029C00870148ED00000000861863012700870150ED00000000830064001035870158ED00000000830033021C35880160ED000000008300C8022835890168ED000000008300CC0228358A0170ED000000008300D00212078B0180ED000000008300D40233358C0184ED000000008300D80274018E0198ED000000008300DC0274018F01ACED000000009600F31F3D359001ECED000000008618630127009301F4ED0000000086186301270093018CEE0000000083086320500193019CEE0000000083086B2050019301A8EE0000000086087320FA359301B0EE000000008608872004369301BCEE0000000086089B200F369401C4EE000000008608B5201F369401D0EE000000008608CF2030369501D8EE000000008608DE2039369501E4EE000000008608ED2043369601ECEE000000008608042152369601F8EE0000000086081B216236970100EF0000000086082A216C3697010CEF0000000086006021F5369801DCF000000000830064000D379A0160F1000000008300330214379B0128F2000000008300C80232379D0170F2000000008300CC0242379E01B0F2000000008300D00242379F01F0F2000000008300D4025001A00100F3000000008300D8025001A00110F3000000008300DC025437A00194F3000000008300F8025C37A201A8F3000000008300FC026437A301DCF300000000830092037737A30188F4000000008600AE219837A5018CF5000000008600D421A237A8019CF5000000008600F521BF37AA0110F6000000008600F521D437AC0138F60000000086001122BF37AD0164F60000000086001122D437AF018CF6000000008308B6225001B001A4F6000000008600BE222700B00140F7000000008600DA229D38B00168F900000000861863012700B10190F90000000091182C029C00B1019CF900000000861863012700B101A4F90000000083006400B938B101BCF900000000861863015100B201CCF900000000861863012700B301D4F90000000093006400D438B30108FA00000000930033028639B501E0FB000000009300C802D139BA01B8FC000000009300CC025B3AC00118FF000000009300D002843AC90168FF000000009300D402D33ACA01B003010000009300D8021430CC013C04010000009600DC02E73ACE014405010000009600F8026C3BD2015C07010000009300FC02A53BD301680A01000000930092030A3CD701A40E0100000096000904363CDB01E80F0100000096001904493CDD014C10010000009600BA088C3CE1012812010000009600BE088C3CE601981301000000960080096C3BEB01381A01000000861863012700EC01401A0100000091182C029C00EC014C1A01000000861863012700EC01541A0100000083006400F72DEC01601A0100000083003302C231ED01701A010000008300C802E831EE01781A010000008300CC02BB3DEF01881A010000008300D002D53DF0018C1A010000008300D402F33DF101981A010000008300D802023EF201A81A010000008300DC020A3EF301B01A010000008300F802173EF401181B010000008300FC021F3EF501281B0100000083009203B938F601641B01000000830009041F3EF701741B0100000083001904263EF8017C1B010000008300BA082E3EF901881B010000008300BE08B72DFA01901B01000000830080092E3EFB019C1B01000000861863012700FC01A41B01000000830064004F31FC01C01B01000000830033027401FD01DC1B010000008300C8027401FE01F81B010000008300CC02353EFF01141C010000008300D00274010002381C010000008300D402533E01024C1C010000008618630127000202541C010000008300640074010202781C0100000083003302533E03028C1C010000008618630127000402941C0100000083006400613E0402B81C010000008618630127000502C01C0100000083006400B9380502E41C010000008618630127000602EC1C01000000830064001C010602101D010000008618630127000702181D01000000830064001F3E0702341D0100000086186301270008023C1D01000000830064001F3E0802501D010000008618630127000902581D01000000830064001F3E0902701D010000008618630127000A02781D01000000830064001F3E0A02901D010000008618630127000B02981D01000000830064001F3E0B02B01D01000000830033021F3E0C02D01D010000008618630127000D02D81D01000000830064001F3E0D02F01D010000008618630127000E02F81D01000000830064001F3E0E02141E010000008618630127000F021C1E01000000830064002E3E0F02341E010000008318630136441002441E01000000831863013D441102601E01000000831863014B441302841E01000000C600CE061D001402AC1E01000000930064005B441402902001000000930033025B4416024C22010000009300C80271441802DC22010000009300CC02D64419025C3D010000009300D002EC441D02943D010000009300D40205452102003F010000009300D802EC442402383F010000009300DC02054528029C40010000009300F8023F452B028042010000009300FC023F452D02B04201000000930092034B452F02244301000000930009043F453202484301000000930019043F453402DC43010000009300BA083F4536020C44010000009300BE084B453802704401000000930080094B453B02444501000000930084094B453E02F84501000000930088094B454102B8460100000093009D093F454402DC460100000093006B0A7845460204470100000093006F0A814547022047010000009300730A814549025447010000009300AB0B78454B025847010000009300BA0B9A454C029447010000009300020CAA454E023048010000009300060C7845520244480100000093000A0C8145530284480100000093000E0CBA455502AC48010000009300120CC94558026C49010000009300240CBA455A02A449010000009300440CD5455D02C449010000009300BE0C05456102A44A010000009300C20C78456402C84A010000009300DA0C78456502E04A010000008618630127006602E84A0100000083006400EC456602044B0100000083003302F1456602E84B010000008300C802EC456702044C0100000086186301270067020C4C0100000083006400EC456702284C0100000091182C029C006702344C0100000086186301270067023C4C0100000083006400F1456702704C0100000083186301510068028C4C0100000083081D043E036902944C010000008308580CD63C6902A04C010000008308600C1C466A02A84C010000008308680C4B446A02B44C0100000083080F3D50016B02C04C010000008308D30A22466B02C84C010000008308DB0A28466B02D44C010000008308E30A2F466C02DC4C010000008308EB0A36466C02E84C010000008300640027006D02F04C010000008300330236446D02044D010000008300C8023E466E021C4D010000008300CC024C467002484D010000008300D0024C467102644D010000008300D40253467202784D010000008300D80227007402B84D010000008300DC0227007402E84D010000009600333D61467402F84D010000008300F8026E467502844E010000008300FC021C467502904E010000008300920374467502C84E0100000093006400B8467602B44F0100000093003302C8467702F84F010000008618630127007802005001000000861863012700780208500100000083006400DD46780240500100000083003302DD4679029850010000008300C802DD467A020C51010000008300CC02DD467B026C51010000008618630127007C02745101000000830064004C467C028851010000008618630127007D0290510100000083006400DD467D02C45101000000930064003F477E027853010000008618630127007F0280530100000091182C029C007F02D85D010000009300640068477F02885E010000009300330268478102385F010000009300C80268478302EC5F010000009300CC02684785026C61010000009300D00268478702CC62010000009300D40268478902A064010000009300D80268478B020466010000009300DC02CA478D02E466010000009300F802CA479002C467010000009300FC02E44793025C680100000093009203E4479502F468010000009300090468479702046B010000009300190468479902246D010000009300BA086A489B02A470010000009300BE0868479C029071010000009300800968479E02C47301000000930064005654A002F07301000000930033025E54A2021874010000009300C8026754A5024474010000009300CC027154A8025474010000009300D0027F54AB02C47401000000831863018B54B002007501000000C600CE061D00B502000001002B0102000100C10100000100150200000200210200000100640000000100330200000200C80200000300CC0200000100D00200000200D40200000300D80200000400DC02000001002B0100000200F80200000300FC02000001002B01000001002B01000001002B01000001002B01000002009203000001002B01000001002B01000001002B01000001002B0100000100090400000100190400000100460400000100790400000100790400000100790400000100790400000100790400000100D60500000100D605000001002B0100000100F20600000200F80600000300FB0600000400060700000100F20600000200F80600000300FB06000004000607000005001C0700000100F20600000200F80600000300FB06000004000607000001002B01000002003D07101003004707000001002B01000002004E0700000100F80600000200D607000001002D0800000100F806020002008B0800000100BA0802000200BE08000001008009000002008409000003008809000001002B01000001009D09000001004C0A000001006B0A000001006F0A00000100730A00000100BC0A00000100790400000100790400000100790400000100AB0B00000100BA0B00000100020C00000200060C020003000A0C000001000E0C00000200120C02000100240C00000100440C00000100790400000100790400000100790400000100B90C00000100B90C00000200790400000100BE0C00000200C20C00000100DA0C00000200DE0C00000100E20C00000200E60C00000300EA0C00000100EE0C00000200F20C00000300F60C00000100FA0C00000200FE0C00000300020D00000400060D00000100AA0D00000200AE0D00000300B20D00000400B60D00000100C60D00000200CA0D00000300CE0D00000400D20D00000100DD0D00000200E10D00000300E50D000001002E0E00000200320E00000300360E000004003A0E000005003E0E00000100420E00000200460E000003004A0E000001004E0E00000200520E00000300560E000001000313000002000713101003000B13101004000F13000001001313000002001713101003001B13101004001F13000001002313000002002713020003002B13000001002F13000002003313000003003713000001005613000002005A13000003005E13020004006213000005006613000001004415000002004815000001004C15000002005015000001005415000002005815000003005C15000004006015000001006415000002006815000003006C15000004007015000001007415000002007815000003007C15000001008015000002008415000003008815000004008C15000001009015000002009415000003009815000004009C1500000100A41500000200A81500000300AC1500000400B01500000100B41500000200B81500000300BC1500000100C01500000200C41500000300C81500000400CC1500000100D01500000200D41500000300D81500000400DC1500000100E01500000200E41500000300E81500000100EC1500000200F01500000300F41500000400F81500000100FC15000002000016000003000416000004000816000001000C16000002001016000003001416000001001816000002001C16000003002016000004002416000001002816000002002C16000003003016000004003416000001003816000002003C16000003004016000001004416000002004816000003004C16000004005016000001005416000002005816000003005C16000004006016000001006416000002006816000003006C16000001007016000002007416000003007816000004007C16000001008016000002008416000003008816000004008C16000001009016000002009416000003009816000001001217000002001617000003001A17000004001E17000001002217000002002617000003002A17000004002E17000001004317000002004717000003004B17000001004F17000002005317000003005717000004005B17000001005F17000002006317000003006717000004006B17000001006F17000002007317000003007717000004007B17000001007F17000002008317000003008717000001008B17000002008F1700000300931700000100BB1700000100BF1700000200C31700000100D51700000200D91700000100DD1700000200E11700000100E51700000200E91700000100ED1700000200F11700000300F51700000100FF17000002000318000003000718000004000B18000001000F18000002001318000003001718000001003318000002003718000003003B18000001003F18000002004318000003004718000001005D18000002006118000003006518000004006918000001008918000002008D18000003009118000001009F1800000200A31800000300A71800000100C01800000200C41800000300C81800000400CC1810100500D018000001004019000002004419000003004819000004004C19000001005019000002005419000003005819000001005C19000002006019000003006419000004006819000001006C19000001007019000001009A19000002009E1900000100A21900000200A61900000100B91900000100BD1900000100C51900000100DA1900000100DE1900000100E21900000100E61900000100EA1900000100EE1900000100F21900000100F61900000100FA1900000100FE1900000100021A00000100061A000001000A1A000001000E1A000001003F1A00000200431A00000300471A000004004B1A000005004F1A00000100531A00000200571A00000100811A00000200851A00000300891A000004008D1A00000500911A00000600951A00000100CC1A00000200D01A00000100D41A00000100D81A00000200DC1A00000300E01A00000100E41A00000200E81A00000300EC1A00000100F01A00000200F41A00000100041B00000100081B000002000C1B00000100101B00000200141B00000100181B000002001C1B00000100201B00000200241B00000100361B000001003A1B00000100421B000001004E1B00000100521B00000100561B00000100A71B00000100B01B00000100C71B00000100CB1B00000100CF1B00000100D31B00000100D71B00000100DB1B00000100DF1B00000100501C000002005C1C00000100A31C00000200AA1C00000100AF1C000001005B1E00000200AA1C00000100FC1E000002005B1E00000100FC1E000002005B1E00000100BE1F00000100C21F00000100C61F00000100CA1F00000100CE1F00000100D21F00000200D61F00000100DA1F00000100DE1F00000100FF1F00000200AA1C000003000520000001007904000001007904000001007904000001007904000001007904101001006B21101002007221000001007A21000001007E21000002008221101001008621101001008A21101001008E21101001009221101002009621000001009A2100000100A62102000200AA2100000100FF1F00000200B90C10100300C72100000100B90C00000200E72100000100042200000200B90C00000100042200000100042200000200B90C00000100042200000100AA1C00000100FC2200000100B90C000001001324000002001724000001001B24000002001F24000003002324000004002724000005002B24000001002F24000002003324000003003724000004003B24000005003F24000006004324000001006224000002006624000003006A24000004006E24000005007224000006007624000007007A24000008007E24020009008224000001008624000001008F24000002009324000001009724000002009B2400000100BD2400000200C12400000300C52400000400C92400000100CD2400000100D12400000200D52400000300D92400000400DD2400000100E12400000200E52400000300E92400000400ED2400000100F12400000200F52400000100F92400000200FD24000003000125000004000525000001002925000002002D25000003003125000004003525000005003925000001005A25000002005E25000003006225000004006625000005006A2500000100A625000001000526000001000926000001000D26000001001126000001001526000001001926000001001D26000001002126000001002526000001002926000001002D26000001003126000001003526000001003926000001003D26000001004126000001004526000001004926000001004D26000001005126000001005B26000001005F26000001006326000001006726000001006B26000001006F26000001007326000001007726000001007B26000001007F26000001008326000001008726000001008B26000001008F26000001009326000001009726000001007C3B00000100803B00000200843B00000100883B000001008C3B10100200903B00000100943B10100200983B000001009C3B00000100A03B00000200A43B00000300A83B00000400AC3B00000100B03B00000200B43B00000300B83B00000400BC3B00000100C03B00000200C43B00000300C83B00000100CC3B00000200D03B00000300D43B00000400D83B00000100DC3B00000200E03B00000300E43B00000100E83B00000200EC3B00000100F03B00000200F43B00000100F83B00000200FC3B00000300003C00000100043C00000200083C000001000C3C00000200103C00000100143C00000200183C000001001C3C00000200203C00000300243C00000100283C000002002C3C00000300303C00000100343C00000200383C000003003C3C00000100403C00000200443C00000300483C000001004C3C00000200503C00000100543C00000100583C000002005C3C00000100603C00000200643C00000100683C000001006C3C00000200703C00000100743C00000200783C000003007C3C10100400803C00000100843C00000100883C000002008C3C00000100903C00000200943C00000300983C000001009C3C00000200A03C00000100A43C00000200A83C00000300AC3C00000100B03C00000200B43C00000300B83C00000400BC3C00000100C03C00000200C43C00000300C83C00000100CC3C00000100D03C00000100D43C00000100D83C000001000B3D00000100790400000100790400000100790400000100790400000100173D000001001B3D000002001F3D00000100233D00000100273D000001002B3D000002002F3D000001003D3D00000100423D00000100573D000001005B3D000001005F3D00000100633D00000100673D000001006B3D000001006F3D00000100733D00000100773D000001002B01000002007B3D000001002B01000002007F3D000001002B0100000200833D000001002B0100000200873D000001002B01000002009D3D000001002B0100000200A13D000001002B0100000200A53D000001002B0100000200A93D10100300AD3D000001002B0100000200B13D10100300B53D000001002B0100000200B93D000001002B0100000200BD3D000001002B0100000200C13D000001002B0100000200C53D00000100D53D000001002B0100000200D93D000001002B0100000200DD3D00000100E13D00000200E53D00000100E93D00000200ED3D00000300F13D00000100F53D00000200F93D00000300FD3D00000100013E00000200053E00000300093E000001000D3E00000200113E00000300153E00000400193E101005001D3E00000100213E00000200253E00000300293E000004002D3E00000500313E110074000E00110098001500990022011D00A100630127008900CE011D00890098004B00B900630151008900E00156000C00630166001400FA017700890001021D001C00630188001400060290000900630127001400630127001C003702A3001C004102A800C90063012700E1009F02C100E1009F02D700F900EE02F100110000030101110014030101110022030F0111002E031C0111003F0322012400630166001901800336011100960350011100A10350011100B30350012901E6035A012C00630127002C00060288000101FA035A013400640082013C0064009A013C0033027F013C005304500144007F04A3003C003F047B013C006604B5014C006301270051019E05F6014101AC05CE014C00060290004101B80550014901C10527005C006301270061019E05F6015C0006029000690163012700710163013B0281017106420269018F065E0299019E05F6018901C50664020900CE061D00A101DD066902A101DD067A028900DD069102890024079702B90163012700890094076902C901A707C10289009407C5026400630166001901B307D5028900BA07F702C101EA071203C101F8071803C10106081803890094071C03C101100822036100CE061D00690141083803990162083E03E101C5064203D90197085A01D901A4081D00C10163016103C10163016903C10163017203D90110083E038900B3087C035902620999037C00630127007C0006029000C10122011D008900B308DF0384009E050B048C00AC05A3008C00B80550018900F00940048900090A48048900090A4D048900240753049400630166001901130A69049C006301660019011A0A8804A400630166001901200AB00419012B0AD6047902630151008902410A270079016301EC048400630127008901C506F40484000602900089009407F9043101BE0A3E039102630127009102CE0A4D05AC007F04A300B4000E0B5001B4008604A300B40063019000A9023E0BFF06A902480B0507B10263012700B902980B0B07A102630127003900CE061207A102A40B1707C102B30B23078900F0093B07C902C60B4007BC00C5064C078900CE0B5307C400630166001901DA0B64075100CE0612078900DE0B78072900CE061D008900E80B4D04310163017D078900EF0B84073101F60B8D073101CE0612078900B3089707140062083E033101160CB60614009E050B04CC00AC05A300CC00B805500119011E0CD507BC0063012700BC0006028800AC00630166005100CE061D003101280C3E033101320C3E038900B3080108D400C5064C07D40006028800D40063012700A102C60C3E03D102D60CAC1FA102CE064D04E1000A0D5A01D9028604CE01C902260DE61FC902300DEB1FC902C60BF01FC902370DF51FC902400DFA1FC902480DFF1FC902510D0420C9025A0D0920C902630D0E20C9026D0D1420E100780D1B201100810D1500E10263012220B900630122209100A10D29208100BA0D4D201100E90D5A01E100BE0B7F20DC007F049520E100120E9E20E4007F0495208900810D4B005103190F7C2251002E0F822259002E0F8F2261002E0F9C2269002E0FA92271002E0FB62279002E0FC32281002E0FD022E100590F7F20E40063016600E100600FDE22E100750FDE22E1007E0FE722E100980FEF22EC0006029000E100AE0FFF22E100B40F0523E100BF0F1123F400C5062423F40062083E03E100D30F2A231100E90F3423010198003B23E100F30F4523E100F80F50231100FF0F5A23E1000B106123E100BF0F6C23E1001410DE22E10019107A23E10020108423E1003C108E23E1003C10DE22FC0063012700F4009E050B040401AC05A3000C0163016600E100B70EBD23FC00060290000401B8055001FC004310CC23E1004B10D223E1006310E023E1006910E823140163012700E1007110F62314010602900014014310CC23E10077100024E10080100C24E1008B10162441039B1024241100A4102924E100F30F2E24E100D30F3D24E100AF104624E100AF105023DC0063016600E100B9105023E100CA105023E100D4105023E100E1105023E100F3105023E10003115023E10010115023E1001F115023E10035115023E1003E115023E1004F115023E1005E115023E10074115023E1007D110523F10287112424E10063107F20E10093115023E1009A115023E100A2115023E100A5115023E100B1115023E100B5115023E100BB115023E100C4115023E100D4115023E100E0115023E100F3115023E100FD1150231100E90F5324E100F30F5D24E10006025023E10008125023E10013125023E1001C125023E1002C125023E10035125023E10045125023E1004C125023E1005312E0231C0163016600890063017424E1005712E023E1006A12E023E1007D12E023E1008412E023E1009212E023E1009C12E023E100B012E0232401630166001100C41250013101D0129224A903D0129C24EC0063012700EC00C5062423E100D30FA62451002E0FB324EC0062083E032C01630127003401630188002C01060290002C0162083E032C01DF1227002C019E050B043C01AC05A30034013702A30034014102A8001100E71250011100F312E124E100780DE9243C01B805500111003B131D00A10263015100440163012700440106029000440162083E03890094074A2544014310CC23110048135A01110048135025110099137C26B103980085261100A8138F264C0163016600540162083E035401C5062423C903C313AE261901D113B4265C01630166006401DF13DB268900E713E6266C0163012700740163012700740106028800F90022011D007401F213FB26EC00FE130427E10007140F2799009800182711000B142027E1001E1427276C0106029000E10023143127F40063012700F40006029000910351144727E10095145127190194076127E10007147A27EC00B1148A27E100BA1491277C0163016600F400DF13DB261100DA145A01E100E91491278401630127008C01630188008401060290001901F814D50784019E050B049401AC05A3008C013702A3009C01FD14D8278C014102A8009C010602880001010915DE27E100F30FE7279401B8055001A40163012700D102A0157D2881009C1640298100A81640298100B71640298100C31640298100CF1640298100980049298100810D49298100F60B49298100DA1649298100E91649298100FC1649298100321760293101A8167429310198008D073101810D8D073101DA168D073101E9168D073101FC168D071901B217C329AC0163012700AC01060290001100C7175A011901F917612719014310A22AE100F30FB02AB4014310CC23BC0163012700BC0106029000E1001B18232B4401C5062423E1001B18562BF9004B185A01E1006D18A72BE1009518C32BC40163016600E1007F04092CE100F30F182C9C01C5064C07E100F30F692C1100DE18772CCC01630166001901EC188B2C1903810DA62C1100FB18B02CD40163016600D903810DCA2CD90305195001E1001319D42CD903B00CDF2CD90319195A0111002719E42CDC01630166003904810DFE2C11003119082DE401630166001C017F044C07F900AA195001EC01630166001901C1193601F900C919CE018900EF0B4B008900EF0BE6268900EF0BFE2DEC00121A8A27F40163012700FC01630166000402630166000C02630166001402F213FB261C02361AF52EB401FE1304271100DE18132F24026301270099005B1A5A01EC00630104279900EE02F100C9036D1A5001240206029000B401630127001903991A50011903A51A50011903B21A742F1903BF1A742FB40106029000240262083E032402C5062423F401C5064C071100F81A50012C0263012700C903000301013402630166002C02060290003C02630166008900C60C3E0344029E05C6304C02AC05A3005402630166002C02FA0177002104FA035A014401FE130427F40106028800D1023E1BAC1F5C02461BA3005C028604A8006402361AF52E1901AB1BDA311903B41BAE26840162083E036C02630127007402630188006C02060290007C0263016600840263016600E1000714A4328C02630166009402FD14D8279402C5064C0774024102A800940262083E036C0262083E036104071D2F339C02630166002901211D4B33A402630166001901B30761332901391D8C339904711D9B33AC02630127006C02C506242374023702A3002901801DA933AC020602900029019C1DB5332901CE1DC4338904711D9B33C104E31DD3337104F21DD833C104F71DD3337104F21DDF33C104FD1DD333B104011EE933C1040E1ED3337104F21DF033C104161ED333D104351EF8339402B1148800B9003B1E1D00D104471EF83371046F1E2D3471047C1E3534C104881ED333C104901ED3337104F21D3B34C104971ED3337104F21D4434C1049D1ED333C104A31ED3337104F21D4E34C104AC1ED3337104B51E5834AC029E050B04B402AC05A300C104F30FD3337104D21E683411003F03753419011E0C8B2CC104DB1ED333B402B8055001C104E41ED333C104FF1ED3335904630127005904D9045100F1041B1FA134F9042F1FA734590422011D0001056B1FB334940263012700BC0263012700C40263012700CC0263012700D402630127009C0163012700DC0263012700CC0262083E03CC029E059136E402AC05A736EC02461BA300EC028604A800CC0206028800E402B8055001EC003921BD3649030A0D5A01E100980FC936CC024521D436E100D30FE036BC02F213FB26E100980F0637BC0206028800BC02E80BD827BC02FD14D827E100980F2437E100980F2C37F4028604A300F40253045001FC0263016600F4026301AA019C01F213FB2611009E216F37BC00F213FB26CC02F213FB26C402F213FB26DC02F213FB2604038604A300DC0206028800E100EC21B637CC02FD14D827C402FD14D82709020922CE370C036301660014039E05C6301C03AC05A30024039E050B042C03AC05A3002C03B80550012403630127003403630166003C03630166004403630166004C03630166005403630127005C039E050B046403AC05A3005403060290006403B8055001540362083E035403C5062423B40162083E036C0363016600740363016600B401C5062423D402C5064C0701014724742FB4019E050B047C03AC05A3007C03B8055001240362083E032403C506242384036301660024038A24C83A0101810D3B23C9039F245001AC0163010427AC01121A8A278C03630166009403630166009C0363016600A40363016600AC0363016600B40363016600BC038A24C83AAC0162083E03AC01C5062423240306029000110009255001AC012025713CAC014310CC23C40363016600CC0363016600AC013D25BE3C19014725C83CAC015125D63C11007B25500129059425123DD4038604A800DC03461BA300D403461BA30019015526473EE40363012700E40364007B01EC037F049000E40333027F01E403C8028201F40363016600FC0363016600F4037F04A300EC036301660031054F3DAC46040463016600FC037F044C070C04630127000C04FE1304270C04C50624230C0406029000140463012700140406028800A102DE0B7807A102A40B61471404C5064C0729008B3D9447A102121A9947A101943D1E071404F213FB26A102E80BC2471C04630127001C0462083E03A102A40B49480C0462083E03A102A40B50480C04C93D57481C04060290001C049E050B042404AC05A3002404B805500139056301D63C41056301270049056301C05459056301510061056301510069056301510071056301510079056301510081056301510089056301510091056301B501990563015100A10563015100A90563015100B105630127000E00880053050800CD00AB020800D000AB020800D4002B000800D80042080E00E00065080E00E40045090E00E8006B0A0E00EC00950B0E00F000BB0C0E00F400010E0E00F800470F0E00FC0079100E000001A1110E000401C9120E00080151130E000C01FB130E00100130140E001401A1140E00180120150E001C015D150E002001D0150E0024015A160E00280132170E002C01A1170E00300114180E0034017D180E003801AB190E003C01431A0E004001F31A0E0044016C1B0E004801B91B0E004C01341C0E005001F01C0E005401A21E1200FD01AB0202000102002512000D02AB0202001102002508003003AB02080034032B0008003803420808003C03C0380800E803783E0800EC037D3E0800F003823E0800F403873E0800F8038C3E0800FC03913E08000004963E080004049B3E08000804A03E08000C04A53E08001004AA3E08001404AF3E08001804B43E08001C04B93E08002004BE3E08002404C33E08002804C83E08002C04CD3E08003004D23E08003404D73E08003804DC3E08003C04E13E08004004E63E08004404EB3E08004804F03E08004C04F53E08005004FA3E08005404FF3E08005804043F08005C04093F080060040E3F08006404133F08006804183F08006C041D3F08007004223F08007404273F080078042C3F08007C04313F08008004363F080084043B3F08008804403F08008C04453F080090044A3F080094044F3F08009804543F08009C04593F0800A0045E3F0800A404633F1200A504AB020800A804683F0800AC046D3F0800B004723F0800B404773F0800B8047C3F0800BC04813F0800C004863F0800C4048B3F0800C804903F0800CC04953F0800D0049A3F0800D4049F3F0800D804A43F0800DC04A93F0800E004AE3F0800E404B33F0800E804B83F0800EC04BD3F0800F004C23F0800F404C73F0800F804CC3F0800FC04D13F08000005D63F08000405DB3F08000805E03F08000C05E53F08001005EA3F08001405EF3F08001805F43F08001C05F93F08002005FE3F08002405034008002805084008002C050D40080030051240080034051740080038051C4008003C052140080040052640080044052B4008004805304008004C053540080050053A40080054053F4008005805444008005C054940080060054E4008006405534008006805584008006C055D40080070056240080074056740080078056C4008007C057140080080057640080084057B4008008805804008008C058540080090058A40080094058F4008009805944008009C0599400800A0059E400800A405A3400800A805A8400800AC05AD400800B005B2400800B405B7400800B805BC400800BC05C1400800C005C6400800C405CB400800C805D0400800CC05D5400800D005DA400800D405DF400800D805E4400800DC05E9400800E005EE400800E405F3400800E805F8400800EC05FD400800F00502410800F40507410800F8050C410800FC051141080000061641080004061B4108000806204108000C062541080010062A41080014062F4108001806344108001C063941080020063E4108002406434108002806484108002C064D41080030065241080034065741080038065C4108003C066141080040066641080044066B4108004806704108004C067541080050067A41080054067F4108005806844108005C068941080060068E4102006106002508006406934112006506AB0208006806984108006C069D4108007006A24108007406A74112007506AB0208007806AC4112007906AB0208007C06B14112007D06AB0208008006B64102008106002508008406BB4102008506002508008806C04108008C06C54108009006CA4108009406CF4108009806D44108009C06D94102009D0600250800A006DE410800A406E3410800A806E8410800AC06ED410800B006F2410800B406F7410800B806FC410800BC0601420800C00606420800C4060B420800C80610420800CC0615420800D0061A420800D4061F420800D80624420800DC0629420800E0062E420800E40633420800E80638420800EC063D420800F00642420800F40647420800F8064C420800FC065142080000075642080004075B4208000807604208000C076542080010076A42080014076F4208001807744208001C077942080020077E4208002407834208002807884208002C078D42080030079242080034079742080038079C4208003C07A14208004007A64208004407AB4208004807B04208004C07B54208005007BA4208005407BF4208005807C44208005C07C94208006007CE4208006407D34208006807D84208006C07DD4208007007E24208007407E74208007807EC4208007C07F14208008007F64208008407FB4208008807004308008C070543080090070A43080094070F4308009807144308009C0719430800A0071E430800A40723430800A80728430800AC072D430800B00732430800B40737430800B8073C430800BC0741430800C00746430800C4074B430800C80750430800CC0755430800D0075A430800D4075F430800D80764430800DC0769430800E0076E430800E40773430800E80778430800EC077D430800F00782430800F40787430800F8078C430800FC079143080000089643080004089B4308000808A04308000C08A54308001008AA4308001408AF4308001808B44308001C08B94308002008BE4308002408C34308002808C84308002C08CD4308003008D24308003408D74308003808DC4308003C08E14308004008E64308004408EB4308004808F04308004C08F54308005008FA4308005408FF4308005508AB0208005808044408005C08094408005D08AB02080060080E4408006408134408006808184408006C081D44080070082244080074082744080078082C440E00F80882480E00FC0834490E000009E8490E0004098C4A0E000809284B0E000C09AC4B0E0010095C4C0E0014090E4D0E001809D04D0E001C099E4E0E002009404F0E002409E84F0E0028097C500E002C0900510E003009BE510E0034093B520E003809AA520E003C0915530E00400982530E004409E95312004509AB0208003D0AAB020800490AAB021200BD0AAB02200023002B002E0023002B002E006B1598542E007315A1542E007B15C7542E008315D0542E008B15EC542E0093151D552E009B1523552E00A315D0542E00AB153A552E00B3156A552E00BB151D552E00C31580552E00CB15AA552E00D315B5552E00DB152B00430023002B00830093002B00A30023002B00C30093002B00600123002B00630123002B00800123002B00830193002B00A00123002B00C00123002B00C30193002B00E00123002B00E10193002B00000223002B00010293002B00200223002B00210293002B00400223002B00410293002B00600223002B00610293002B00630293002B00230393002B00430393002B00600393002B00630393002B00800393002B00830393002B00A30393002B00C00393002B00C30393002B00E00393002B00E30393002B00000493002B00030493002B00200493002B00230493002B00400493002B00600493002B00800493002B00810493002B00A00493002B00A10493002B00A30493002B00C30493002B00E00423002B00E10493002B00E30493002B00000523002B00200523002B00400523002B00430593002B00600523002B00800523002B00A00523002B00C00523002B00C30593002B00E00523002B00010693002B00210693002B00410693002B00630693002B00800623002B00830693002B00A30693002B00A406FB012B00C30693002B00E30693002B00030793002B00230793002B00430793002B00630793002B00830793002B00A30793002B00C30793002B00E30793002B00030893002B00600893002B00800893002B00830893002B00A00893002B00A30893002B00C00893002B00C30893002B00E00893002B00000993002B00230993002B00430993002B00630993002B00A30923002B00600B93002B00800B93002B00A00B93002B00C00B93002B00E00B93002B00000C93002B00611693002B00011793002B00211793002B00411793002B00611793002B00202093002B00402093002B00602093002B00802093002B00A02093002B00C02093002B00E02093002B00002193002B00202193002B00402193002B00403393002B00603393002B00803393002B00A03393002B00E03393002B00003493002B00203493002B00403493002B00C03723002B00E03723002B00003823002B00203823002B00403823002B00603823002B00803823002B00A03823002B00C03823002B00E03823002B00003923002B00203923002B00403923002B00603923002B00803923002B00A03923002B00614693002B00814693002B00A14693002B00C14693002B00C44EFB012B000A0046001601DF010C0232025202B8020A032D0356038D03A803FC031C0442054705D106F4062907AD07EB07FD07A41FD31F412053207020BE20CD20F6201B25672509283528D129072A342A482A5F2A742ACF2A012B422B772BA12BB62BD52B3F2C292D422D2A2E432E242F5F2F892F982FB02FCA2FE32F0D301C3069307F309930EC30FE302F32F23210348A347736FD361E376A377F37AD37C837DC3730386038E1389D39E9397D3A913ADF3AFB3A733BB93B223C443C5B3CA53CDB3C113E524463446B447844E644FC441445584561456E458D45A346C246EB461747564772478347A147B347D547F247FF4777487A5408000100090002000A0004001100080014000B002C000E002D001500470016000000D002950100009004C20100009F04C60100001805C20100002205D70100009F04DB0100002705C2010000DC02EF070000F802F5070000FC02F9070000CC0235080000D00235080000D40235080000BA0BC2010000020CC20100002122E23700003122EC3700004722FC3700005222053800006522143800009203C2010000D0027B460000D4027F460000D802C2010000DC0285460000F8028B4602001900030002001B00050001001C00050002001D00070002001E00090001001F000900020020000B00010021000B00020022000D00010023000D00020024000F00010025000F0002004300110001004400110002004500130001004600130002004700150001004800150002005B00170001005C00170002005D00190001005E00190002005F001B00010060001B000200FF001D00020000011F0002000101210001000201210002000301230001000401230002000501250001000601250002000701270001000801270002000901290001000A01290002001D012B0002009A012D0001009B012D0002009C012F0001009D012F0002009E01310002009F0133000100A00133000200A10135000100A20135005B006C0081002C0167018601A301BA01EF01FC011D02CB0293039603BB03050415045A047F04A204DC06E40645075C07C9074F088920D420F8221C239923A123AA23EE236A247A24BA24C824D22443259626A626CC26D426EB26F326A027A927B527C327D027F627EF29EC2A1B2BF62B812CBA2CEE2C112DCC2D3C2E582E7C2EBA2EDE2EEC2E392F32303A304A30BD30D030D9304131BA315A3266326E328932CA3222333E335433A1335F34CA35D335DC35E535EE359D36B3363A374B3791373E384E3857388C389438EE3814394B397139B839C039C839153A313A523AC03A123B2B3B3C3B4F3B593B953B9D3B7C3CB63CAC3DE93DA944B444C444CC44F14637474D473D485D480480000001000000040000000000000000001C000000040000000000000000000000010033000000000004000000000000000000000001003C0000000000040000000000000000000000010048000000000004000000000000000000000001004F000000000004000300060005000C000B000E000D001200110013001100190018001A0018001B0018001C0018001D0018001E0018001F0018002000180021001800240023002500230026002300270023002A0029002E002D00330032003400320035003200360032003700320038003200390032003A0032003B0032003C0032003D0032003E0032003F00320040003200440043004500430046004300490048004A0048004B004800000000000E006400010000000E00330200000000100064000100000010003302000000001200353E000000004F00353E00000000C500353E00000000C700353E39004A018900F00289006304C7007A04CB007A04CF00D004D100E804C700E804C7005807090158072701E2078900B52389008524C7008D24CB00A026C700A0269302C726C700C726C7004227BB024227D102BD270D038D24CB004A01C7004A0115034A0117034A018900012C3B03A02C3B03C42C3B03F82C3B038D245D03C726CB006C2E8900972EC700AF2ECF00D02ECB00A02C1703A02C1703C726390044308900553017038D24CB004430BB034A0189007D32890098328900D8321703E80489004633E1037D331703863333044A01CB004838C700A02CCB00033989003139CF00623989007D39CB00253A8900433AD102483889001D3BC700253B8900353B8900473B3900253B390048388900643B3B03253B27014227D1028D245D03863C17034227C700863C0305863C11058D24170368463900FB460000005A2E45787072657373696F6E732E436F6D70696C65722E646C6C005A2E45787072657373696F6E732E436F6D70696C6572006D73636F726C69620053797374656D2E436F72650053797374656D0053797374656D2E44617461003C4D6F64756C653E00EE8080004F626A6563740054797065004765745479706546726F6D48616E646C650052756E74696D655479706548616E646C65006F705F457175616C69747900426F6F6C65616E0043686172005342797465004279746500496E7431360055496E74313600496E7433320055496E74333200496E7436340055496E7436340053696E676C6500446F75626C6500446563696D616C00537472696E6700456E756D004D656D626572496E666F0053797374656D2E5265666C656374696F6E006765745F4E616D65007468697300457874656E73696F6E4174747269627574650053797374656D2E52756E74696D652E436F6D70696C65725365727669636573002E63746F7200436F6D70696C65724D616E61676572005A2E45787072657373696F6E73004C69737460310053797374656D2E436F6C6C656374696F6E732E47656E65726963005475706C6560320056616C69646174654C6963656E7365006572726F724D65737361676500546F4C6F77657200457863657074696F6E0049734E756C6C4F72456D70747900507265646963617465603100457869737473005472696D00416464004164644C6963656E7365006C6963656E73654E616D65006C6963656E73654B6579002E6363746F7200EE8081006765745F4974656D31006765745F4974656D3200436F6D70696C657247656E6572617465644174747269627574650044696374696F6E61727960320054797065436F64650045787072657373696F6E0053797374656D2E4C696E712E45787072657373696F6E730044796E616D69630044796E616D696345787072657373696F6E0043616C6C5369746542696E64657200EE808200EE808300EE808400EE808500EE808600EE808700506172616D65746572496E666F004973446566696E656400EE808800EE80890047657447656E65726963417267756D656E747300476574496E74657266616365730047657454797065436F646500497341737369676E61626C6546726F6D004765744D6574686F6473004D6574686F64496E666F0042696E64696E67466C6167730046756E63603200456E756D657261626C650053797374656D2E4C696E7100416E790049456E756D657261626C65603100EE808A006765745F4973456E756D006765745F497347656E6572696354797065006765745F49735072696D697469766500547970654275696C6465720053797374656D2E5265666C656374696F6E2E456D69740043726561746554797065004461746554696D65006765745F52657475726E5479706500EE808B00EE8082603200EE8083603200EE808C006765745FEE8084004C617A7953696E676C6554687265616460310046756E636031005F76616C75650076616C7565466163746F7279006765745F497356616C756543726561746564007365745F497356616C7565437265617465640076616C756500496E766F6B65006765745F56616C756500497356616C7565437265617465640056616C7565005661726961626C65466163746F7279417267756D656E74006765745F497348616E646C6564007365745F497348616E646C6564007365745F4E616D65007365745F56616C7565006765745F497345787072657373696F6E56616C7565007365745F497345787072657373696F6E56616C756500497348616E646C6564004E616D6500497345787072657373696F6E56616C756500457874656E73696F6E4D6574686F6473005A2E45787072657373696F6E732E53716C5365727665722E4576616C0049456E756D657261746F720053797374656D2E436F6C6C656374696F6E730049446973706F7361626C650049456E756D657261626C6500476574456E756D657261746F72006765745F43757272656E74004D6F76654E65787400446973706F7365004173456E756D657261626C6500656E756D657261626C65004D617463680053797374656D2E546578742E526567756C617245787072657373696F6E73004D61746368436F6C6C656374696F6E00446174615461626C650053716C44617461416461707465720053797374656D2E446174612E53716C436C69656E740053716C436F6D6D616E6400446244617461416461707465720053797374656D2E446174612E436F6D6D6F6E0046696C6C0045786563757465446174615461626C650044617461526F77006765745F526F77730044617461526F77436F6C6C656374696F6E00496E7465726E616C44617461436F6C6C656374696F6E42617365006765745F4974656D00546F537472696E67005265676578005265706C6163650052656765785265706C61636500696E7075740064740066726F6D436F6C756D6E00746F436F6C756D6E0052656765784F7074696F6E73006F7074696F6E730053706C697400537472696E6753706C69744F7074696F6E7300736570617261746F72006F7074696F6E00736570617261746F727300506172616D41727261794174747269627574650053716C4D65746144617461004D6963726F736F66742E53716C5365727665722E53657276657200436F6E63617400456E7669726F6E6D656E74006765745F4E65774C696E650053656C656374004A6F696E00416C74657253716C5461626C65537472756374757265007461626C654E616D650053716C446254797065006765745F53716C446254797065006765745F507265636973696F6E006765745F5363616C65006765745F4D61784C656E6774680047657453716C547970654E616D65006D657461446174610044617461436F6C756D6E006765745F436F6C756D6E730044617461436F6C756D6E436F6C6C656374696F6E006765745F436F756E740045787472616374446174615461626C65436F6C756D6E4D6574614461746100757365546F537472696E67006765745F4461746154797065006765745F436F6C756D6E4E616D6500466F726D617400EE808D00EE808E0053716C42696E6172790053797374656D2E446174612E53716C54797065730053716C42797465730053716C537472696E670053716C436861727300477569640053716C426F6F6C65616E0053716C427974650053716C4461746554696D650053716C446F75626C650053716C477569640053716C496E7431360053716C496E7433320053716C496E7436340053716C4D6F6E65790053716C446563696D616C004D6178507265636973696F6E0053716C53696E676C650053716C586D6C00EE808F00EE809000EE8091003C3E63003C3E39003C3E395F5F385F3000EE80920053716C44796E616D69635069766F7400436F6C756D6E730044796E616D696356616C7565730053716C00456E756D657261746F72004765745069766F7453716C0053716C436F6E6E656374696F6E00496E6465784F6600537472696E67436F6D70617269736F6E00537562737472696E6700546F4C6973740057686572650053656C6563744D616E790044697374696E6374004462436F6E6E656374696F6E004F70656E005069766F740073716C003C3E395F5F345F30003C3E395F5F345F31003C3E395F5F345F3200EE809300EE809400EE80950053716C44796E616D69635069766F74436F6C756D6E00416C6961734E616D6500497344796E616D69630054656D706F726172794E616D650044796E616D696350617274730073006765745F596561720052616E646F6D004E657874006765745FEE8087007365745FEE8087006765745FEE8088007365745FEE8088006765745FEE8089007365745FEE8089004E756C6C61626C656031006765745F48617356616C756500537472696E674275696C6465720053797374656D2E5465787400456E636F64696E67006765745F41534349490047657442797465730053484135313243727970746F5365727669636550726F76696465720053797374656D2E53656375726974792E43727970746F6772617068790048617368416C676F726974686D00436F6D707574654861736800417070656E6400EE8096004D44350043726561746500EE809700436F6E7665727400546F496E74333200546F4368617241727261790053756D006765745F43686172730052656D6F766500457175616C73006F705F4C6573735468616E00EE809800EE809900EE809A00EE809B00EE809C006765745F4E6F7700466972737400EE809D006765745F4D6F6E7468006765745F446179003C3E395F5F32305F3000EE809E006765745FEE8083007365745FEE8083007365745FEE8084006765745FEE8085007365745FEE80850076616C75655F5F0046616B65416E6F6E796D6F757354797065005A2E45787072657373696F6E732E436F6465436F6D70696C65720050726F706572746965730047657456616C7565006E616D6500EE809F00EE80A0006765745F4C656E677468004D617468004D696E00EE80A100EE80A200EE80A300EE80A400EE80A500EE80A600EE80A700EE80A800EE80A900EE80AA00EE80AB00EE80AC006765745F5479706500436F6E7374616E7445787072657373696F6E00546F426F6F6C65616E00546F4368617200546F55496E74333200546F496E74363400546F55496E74363400546F53696E676C6500546F446F75626C6500546F446563696D616C00546F4461746554696D6500436F6E7374616E74006F705F496E657175616C697479004F766572666C6F77457863657074696F6E00546F4F626A65637400EE80AD00EE80AE00EE80AF00EE80B0006F705F496D706C6963697400EE80B100EE80B200EE80B300EE80B40046756E63603300EE80B500EE80B600EE80B70047657447656E6572696354797065446566696E6974696F6E00556E61727945787072657373696F6E006765745F4E6F6465547970650045787072657373696F6E5479706500EE80B800EE80B900EE80BA00EE80BB00EE80BC00EE80BD00EE80BE00EE80BF00EE818000EE818100EE818200436F6E646974696F6E616C45787072657373696F6E004D6574686F6443616C6C45787072657373696F6E00506172616D6574657245787072657373696F6E0050726F7065727479496E666F004D656D62657245787072657373696F6E0053776974636843617365004361746368426C6F636B0054727945787072657373696F6E0042696E61727945787072657373696F6E004C6162656C5461726765740043756C74757265496E666F0053797374656D2E476C6F62616C697A6174696F6E006765745F496E76617269616E7443756C74757265005472795061727365004E756D6265725374796C65730049466F726D617450726F766964657200566F69640054797065417300427265616B00476F746F45787072657373696F6E00436F6E74696E75650044656661756C740044656661756C7445787072657373696F6E004C6162656C004C6162656C45787072657373696F6E00456D7074790049665468656E456C7365004C6F6F70004C6F6F7045787072657373696F6E00426C6F636B00426C6F636B45787072657373696F6E004765744D6574686F640043616C6C0041737369676E0047657450726F70657274790050726F706572747900476F746F0049665468656E00547970654973005479706542696E61727945787072657373696F6E0052657475726E00546F4172726179005377697463680053776974636845787072657373696F6E005468726F770052657468726F770043617463680054727943617463680054727946696E616C6C7900547279436174636846696E616C6C79006765745F4C65667400456D70747954797065730041646441737369676E0041646441737369676E436865636B656400416E6441737369676E0044697669646541737369676E004578636C75736976654F7241737369676E004C656674536869667441737369676E004D6F64756C6F41737369676E004D756C7469706C7941737369676E004D756C7469706C7941737369676E436865636B6564004F7241737369676E005269676874536869667441737369676E00537562747261637441737369676E00537562747261637441737369676E436865636B6564004E6F74457175616C00436F6E646974696F6E006765745F4F706572616E64004F72456C736500416E64416C736F004F72004578636C75736976654F7200416E6400457175616C004C6573735468616E004C6573735468616E4F72457175616C00477265617465725468616E00477265617465725468616E4F72457175616C004C6566745368696674005269676874536869667400416464436865636B6564005375627472616374005375627472616374436865636B6564004D756C7469706C79004D756C7469706C79436865636B656400446976696465004D6F64756C6F004E6F740050726544656372656D656E7441737369676E00507265496E6372656D656E7441737369676E004E6567617465004E6567617465436865636B656400556E617279506C757300506F737444656372656D656E7441737369676E00506F7374496E6372656D656E7441737369676E006765745F497341727261790050617273650054696D655370616E0052657665727365006765745F4973436C617373004D616B6547656E657269635479706500EE818300EE818400EE818500EE818600EE818700EE818800EE818900EE818A00EE818B00EE818C00EE818D00EE818E00EE818F00EE8190006765745F46756C6C4E616D65004D616B6541727261795479706500EE819100EE819200EE819300EE819400EE819500436F6E7374727563746F72496E666F004E657745787072657373696F6E004D656D62657241737369676E6D656E7400476574436F6E7374727563746F7200476574436F6E7374727563746F7273004D6574686F644261736500476574506172616D657465727300536B697000416374696F6E603100466F724561636800537461727473576974680054727947657456616C75650041646452616E6765004E6577004765744669656C64004669656C64496E666F0042696E64004D656D626572496E6974004D656D626572496E697445787072657373696F6E004D656D62657242696E64696E67006765745F45787072657373696F6E7300526561644F6E6C79436F6C6C656374696F6E60310053797374656D2E436F6C6C656374696F6E732E4F626A6563744D6F64656C004C697374496E6974004C697374496E697445787072657373696F6E007365745F4974656D004E65774172726179496E6974004E6577417272617945787072657373696F6E00476574456C656D656E7454797065004E65774172726179426F756E6473004C61737400436F6E7461696E734B6579004D616B6547656E657269634D6574686F6400457870616E646F4F626A6563740053797374656D2E44796E616D696300456C656D656E74496E697400EE819600EE819700EE819800EE819900EE819A00EE819B00EE819C00EE819D00EE819E00EE819F00EE81A000EE81A100EE81A200EE81A300EE81A400EE81A500EE81A600EE81A700EE81A800EE81A900EE81AA00EE81AB00EE81AC00506F7700EE81AD00EE81AE00EE81AF00EE81B000EE81B100EE81B200EE81B300EE81B400EE81B500EE81B600EE81B700EE81B800EE81B900EE81BA00EE81BB00EE81BC00EE81BD00EE81BE00EE81BF00EE828000EE828100EE828200EE828300EE828400EE828500EE828600EE828700EE828800EE828900EE828A00EE828B00EE828C00EE828D00EE828E00EE828F00EE829000EE829100EE829200EE829300EE829400EE829500EE829600EE829700EE829800EE829900EE829A00EE829B00EE829C00EE829D00EE829E00EE829F00EE82A000EE82A100EE82A200EE82A300EE82A400EE82A500EE82A600EE82A700EE82A800EE82A900EE82AA006F705F4164646974696F6E006F705F5375627472616374696F6E006F705F4D756C7469706C79006F705F4469766973696F6E006F705F4D6F64756C7573006F705F477265617465725468616E006F705F4C6573735468616E4F72457175616C006F705F477265617465725468616E4F72457175616C00EE82AB00EE82AC00EE82AD00EE82AE00EE82AF00EE82B000EE82B100EE82B2006F705F556E6172794E65676174696F6E00EE82B300EE82B400EE82B500EE82B600EE82B700EE82B800EE82B900EE82BA00EE82BB00EE82BC00EE82BD00EE82BE00EE82BF00EE838000EE838100EE838200EE838300EE838400EE838500EE838600EE8387004944796E616D69634D6574614F626A65637450726F766964657200436F6E7461696E7300EE838800EE838900EE838A004D616B6542795265665479706500EE838B00EE838C00EE838D00EE838E00EE838F00EE839000EE839100EE839200EE839300556E696F6E00EE839400EE839500EE839600EE839700EE839800EE839900EE839A004C616D626461004C616D62646145787072657373696F6E00EE839B00EE839C00EE839D00EE839E00EE839F00EE83A0006765745F506172616D657465725479706500EE83A100EE83A200EE83A300EE83A400417272617941636365737300496E64657845787072657373696F6E00EE83A500EE83A600EE83A7004D616B65496E64657800EE83A800EE83A900EE83AA00496E766F636174696F6E45787072657373696F6E00EE83AB00EE83AC00EE83AD00EE83AE00EE83AF004576656E74496E666F0047657450726F706572746965730046697273744F7244656661756C74004765744669656C6473006765745F49734C69746572616C004669656C64006765745F4669656C6454797065004765744576656E7473004765744E6573746564547970657300EE83B000EE83B100EE83B200EE83B300EE83B400EE83B500EE83B600EE83B700EE83B800EE83B900EE83BA00EE83BB00EE83BC003C3E395F5F385F32003C3E395F5F385F33003C3E395F5F31335F31003C3E395F5F35385F3100EE83BD00EE83BE00EE83BF00EE8480006765745F49734F7074696F6E616C00EE848100EE848200416C6C00EE8483006765745F44656661756C7456616C756500EE848400EE848500EE848600EE848700EE848800EE848900EE848A00EE848B00EE848C00EE848D00EE848E00EE848F00EE849000EE849100496E73657274004B657956616C7565506169726032004B6579436F6C6C656374696F6E006765745F4B65797300EE849200EE849300EE849400EE849500EE849600EE849700EE8498006765745F4465636C6172696E6754797065006765745F497347656E657269634D6574686F6400EE849900EE849A00EE849B00EE849C00EE849D00EE849E006765745F43616E52656164006765745F43616E5772697465004765745365744D6574686F64004765744765744D6574686F6400EE849F00EE84A000EE84A100EE84A200EE84A300EE84A400EE84A500EE84A600EE84A700EE84A800EE84A9006765745F4973427952656600EE84AA00EE84AB00EE84AC00EE84AD00EE84AE00EE84AF00EE84B000EE84B100EE84B20049456E756D657261746F72603100EE84B300EE84B4004D617800EE84B5006765745F4B657900EE84B600EE84B700EE84B8003C3E395F5F305F31003C3E395F5F305F32003C3E395F5F315F30003C3E395F5F31305F30003C3E395F5F31305F31003C3E395F5F31305F32003C3E395F5F31335F30003C3E395F5F31335F3200EE84B9004361737400EE84BA00476574496E646578506172616D657465727300EE84BB00EE84BC00EE84BD00EE84BE00EE84BF00EE858000EE858100506172616D6574657245787072657373696F6E496E666F005A2E45787072657373696F6E732E436F6465436F6D70696C65722E43536861727000497342795265660049734F757441737369676E6D656E7400506172616D657465724E616D650054797065730056616C7565730065787072657373696F6E730074797065730044796E616D6963416E6F6E796D6F75735479706500417373656D626C794E616D65004D6F64756C654275696C6465720043726561746545787072657373696F6E0076616C756573006E6F646500EE85820047656E6572696354797065506172616D657465724275696C64657200494C47656E657261746F72004669656C644275696C646572004D6574686F6441747472696275746573004D6574686F644275696C64657200446566696E655479706500547970654174747269627574657300446566696E6547656E65726963506172616D657465727300446566696E65436F6E7374727563746F7200436F6E7374727563746F724275696C6465720043616C6C696E67436F6E76656E74696F6E7300476574494C47656E657261746F7200446566696E654669656C64004669656C644174747269627574657300446566696E6550726F70657274790050726F70657274794275696C6465720050726F70657274794174747269627574657300446566696E654D6574686F64004F70436F646573004C646172675F30004F70436F646500456D6974004C64666C6400526574005365744765744D6574686F64004C646172675F53005374666C64004D6F6E69746F720053797374656D2E546872656164696E6700456E746572006765745F4D65737361676500457869740047657444796E616D696354797065006669656C6473004C6F63616C4275696C646572004465636C6172654C6F63616C00446566696E654C6162656C004C646172675F31004973696E73740053746C6F63004C646C6F63004272747275655F53004C64635F49345F30004D61726B4C6162656C00457175616C697479436F6D7061726572603100456D697443616C6C0043616C6C76697274004C64635F49345F310047656E6572617465457175616C7300746200586F720047656E657261746548617368436F64650054687265616400476574446F6D61696E00417070446F6D61696E00446566696E6544796E616D6963417373656D626C7900417373656D626C794275696C64657200417373656D626C794275696C64657241636365737300446566696E6544796E616D69634D6F64756C65003C3E395F5F335F30003C3E395F5F335F31003C3E395F5F355F30003C3E395F5F355F31003C3E395F5F355F32003C3E395F5F365F30003C3E395F5F375F3000EE858300EE858400EE858500EE858600EE858700EE858800EE858900EE858A00EE858B0045787072657373696F6E50617273657200506172736553796E7461780073636F706500726573756C74547970650045787072657373696F6E53636F706500436F6E7374616E74730045787072657373696F6E7300536166654D6F646500496E7374616E63654D6574686F6473005573654361726574466F724578706F6E656E74006765745FEE8097006765745FEE8098006765745F5661726961626C65466163746F7279007365745F5661726961626C65466163746F7279006765745F416C696173457874656E73696F6E4D6574686F6473007365745F416C696173457874656E73696F6E4D6574686F6473006765745F416C6961734E616D6573007365745F416C6961734E616D6573006765745F416C6961735374617469634D656D62657273007365745F416C6961735374617469634D656D62657273006765745F416C6961735479706573007365745F416C696173547970657300496E7365727452616E6765006765745F56616C7565730056616C7565436F6C6C656374696F6E00437265617465426F64790069734D61696E0074526573756C7400EE858C00EE858D00EE858E00EE858F00EE859000EE859100EE859200EE859300EE8594004765745479706500EE859500EE85960047657456616C756545787072657373696F6E4F724E756C6C0064697361626C65416C696173004372656174654C617A795661726961626C65006C617A79005661726961626C65004372656174655661726961626C650074797065004E65774775696400437265617465506172616D65746572005661726961626C65466163746F727900416C696173457874656E73696F6E4D6574686F647300416C6961734E616D657300416C6961735374617469634D656D6265727300416C6961735479706573004170706C696361626C654D656D626572005A2E45787072657373696F6E732E436F6465436F6D70696C65722E4353686172702E4F7665726C6F61645265736F6C7574696F6E006765745FEE808A004372656174654F757441737369676E6D656E745661726961626C65004765744170706C696361626C65506172616D6574657273003C3E395F5F31325F3000EE8597004170706C696361626C654D656D62657247656E65726963417267756D656E74004170706C696361626C654D656D6265724B696E64004E6F726D616C00457874656E73696F6E0047656E6572696300457874656E73696F6E47656E65726963004170706C696361626C654D656D626572506172616D6574657200466F726D457870616E6461626C65506172616D6574657245787072657373696F6E7300466F726D457870616E6461626C6556616C756545787072657373696F6E7300466F726D4E6F726D616C506172616D6574657245787072657373696F6E00466F726D4E6F726D616C56616C756545787072657373696F6E004D6574686F64506172616D6574657200506F7765720056616C75655479706500EE859800EE859900EE859A00EE859B00EE859C00EE859D00EE859E00EE859F00EE85A000EE85A100EE85A200EE85A300EE85A40047657447656E657269634D6574686F64446566696E6974696F6E00EE85A500EE85A600EE85A700EE85A800EE85A900EE85AA00EE85AB00EE85AC00EE85AD00EE85AE0046696E6400EE85AF00EE85B000EE85B100EE85B2006765745F497347656E657269634D6574686F64446566696E6974696F6E00EE85B300EE85B400EE85B500EE85B600EE85B700EE85B800EE85B900EE85BA00EE85BB00EE85BC00EE85BD00EE85BE00EE85BF00EE868000EE868100EE868200EE868300EE868400EE8685006765745F497347656E65726963506172616D657465720047657452616E676500EE868600EE868700EE868800EE868900EE868A0046696E64496E64657800456C656D656E7441740052656D6F7665417400EE868B00EE868C00EE868D00EE868E00EE868F0045787072657373696F6E6031006765745F497356616C756554797065004E756C6C61626C6500476574556E6465726C79696E675479706500EE8690003C3E395F5F305F30003C3E395F5F315F31003C3E395F5F315F32003C3E395F5F315F36003C3E395F5F315F37003C3E395F5F385F31003C3E395F5F385F34003C3E395F5F385F35003C3E395F5F385F36003C3E395F5F31345F3000EE869100EE869200EE869300EE869400EE869500EE869600EE869700EE869800EE869900EE869A00EE869B00EE869C00EE869D00EE869E00EE869F00EE86A000EE86A100EE86A200EE86A300EE86A400436F756E7400EE86A500EE86A600EE86A700EE86A800EE86A900EE86AA00EE86AB00EE86AC00EE86AD00EE86AE00EE86AF00EE86B000EE86B100EE86B200EE86B300EE86B40053796E7461784B696E64005A2E45787072657373696F6E732E436F6465416E616C797369730054696C6465546F6B656E004578636C616D6174696F6E546F6B656E00446F6C6C6172546F6B656E0050657263656E74546F6B656E004361726574546F6B656E00416D70657273616E64546F6B656E00417374657269736B546F6B656E004F70656E506172656E546F6B656E00436C6F7365506172656E546F6B656E004D696E7573546F6B656E00506C7573546F6B656E00457175616C73546F6B656E004F70656E4272616365546F6B656E00436C6F73654272616365546F6B656E004F70656E427261636B6574546F6B656E00436C6F7365427261636B6574546F6B656E00426172546F6B656E004261636B736C617368546F6B656E00436F6C6F6E546F6B656E0053656D69636F6C6F6E546F6B656E00446F75626C6551756F7465546F6B656E0053696E676C6551756F7465546F6B656E004C6573735468616E546F6B656E00436F6D6D61546F6B656E00477265617465725468616E546F6B656E00446F74546F6B656E005175657374696F6E546F6B656E0048617368546F6B656E00536C617368546F6B656E00426F6F6C4B6579776F726400427974654B6579776F72640053427974654B6579776F72640053686F72744B6579776F7264005553686F72744B6579776F726400496E744B6579776F72640055496E744B6579776F7264004C6F6E674B6579776F726400554C6F6E674B6579776F726400446F75626C654B6579776F726400466C6F61744B6579776F726400446563696D616C4B6579776F726400537472696E674B6579776F726400436861724B6579776F726400566F69644B6579776F7264004F626A6563744B6579776F726400547970654F664B6579776F72640053697A654F664B6579776F7264004E756C6C4B6579776F726400547275654B6579776F72640046616C73654B6579776F72640049664B6579776F726400456C73654B6579776F7264005768696C654B6579776F726400466F724B6579776F726400466F72456163684B6579776F726400446F4B6579776F7264005377697463684B6579776F726400436173654B6579776F72640044656661756C744B6579776F7264005472794B6579776F72640043617463684B6579776F72640046696E616C6C794B6579776F7264004C6F636B4B6579776F726400476F746F4B6579776F726400427265616B4B6579776F726400436F6E74696E75654B6579776F72640052657475726E4B6579776F7264005468726F774B6579776F7264005075626C69634B6579776F726400507269766174654B6579776F726400496E7465726E616C4B6579776F72640050726F7465637465644B6579776F7264005374617469634B6579776F726400526561644F6E6C794B6579776F7264005365616C65644B6579776F726400436F6E73744B6579776F72640046697865644B6579776F726400537461636B416C6C6F634B6579776F726400566F6C6174696C654B6579776F7264004E65774B6579776F7264004F766572726964654B6579776F72640041627374726163744B6579776F7264005669727475616C4B6579776F7264004576656E744B6579776F72640045787465726E4B6579776F7264005265664B6579776F7264004F75744B6579776F726400496E4B6579776F72640049734B6579776F72640041734B6579776F726400506172616D734B6579776F7264004172674C6973744B6579776F7264004D616B655265664B6579776F726400526566547970654B6579776F72640052656656616C75654B6579776F726400546869734B6579776F726400426173654B6579776F7264004E616D6573706163654B6579776F7264005573696E674B6579776F726400436C6173734B6579776F7264005374727563744B6579776F726400496E746572666163654B6579776F726400456E756D4B6579776F72640044656C65676174654B6579776F726400436865636B65644B6579776F726400556E636865636B65644B6579776F726400556E736166654B6579776F7264004F70657261746F724B6579776F7264004578706C696369744B6579776F726400496D706C696369744B6579776F726400456E644F664C696E6554726976696100576869746573706163655472697669610053696E676C654C696E65436F6D6D656E74547269766961004D756C74694C696E65436F6D6D656E7454726976696100446F63756D656E746174696F6E436F6D6D656E744578746572696F725472697669610053696E676C654C696E65446F63756D656E746174696F6E436F6D6D656E74547269766961004D756C74694C696E65446F63756D656E746174696F6E436F6D6D656E745472697669610044697361626C6564546578745472697669610050726570726F63657373696E674D65737361676554726976696100496644697265637469766554726976696100456C696644697265637469766554726976696100456C736544697265637469766554726976696100456E64496644697265637469766554726976696100526567696F6E44697265637469766554726976696100456E64526567696F6E44697265637469766554726976696100446566696E6544697265637469766554726976696100556E646566446972656374697665547269766961004572726F72446972656374697665547269766961005761726E696E67446972656374697665547269766961004C696E6544697265637469766554726976696100507261676D615761726E696E6744697265637469766554726976696100507261676D61436865636B73756D446972656374697665547269766961005265666572656E63654469726563746976655472697669610042616444697265637469766554726976696100536B6970706564546F6B656E735472697669610041646445787072657373696F6E00537562747261637445787072657373696F6E004D756C7469706C7945787072657373696F6E0044697669646545787072657373696F6E004D6F64756C6F45787072657373696F6E004C656674536869667445787072657373696F6E005269676874536869667445787072657373696F6E004C6F676963616C4F7245787072657373696F6E004C6F676963616C416E6445787072657373696F6E00426974776973654F7245787072657373696F6E0042697477697365416E6445787072657373696F6E004578636C75736976654F7245787072657373696F6E00457175616C7345787072657373696F6E004E6F74457175616C7345787072657373696F6E004C6573735468616E45787072657373696F6E004C6573735468616E4F72457175616C45787072657373696F6E00477265617465725468616E45787072657373696F6E00477265617465725468616E4F72457175616C45787072657373696F6E00497345787072657373696F6E00417345787072657373696F6E00436F616C6573636545787072657373696F6E0053696D706C654D656D62657241636365737345787072657373696F6E00506F696E7465724D656D62657241636365737345787072657373696F6E00436F6E646974696F6E616C41636365737345787072657373696F6E00506172656E74686573697A656445787072657373696F6E00456C656D656E7441636365737345787072657373696F6E00417267756D656E744C69737400427261636B65746564417267756D656E744C69737400417267756D656E74004E616D65436F6C6F6E004361737445787072657373696F6E00416E6F6E796D6F75734D6574686F6445787072657373696F6E0053696D706C654C616D62646145787072657373696F6E00506172656E74686573697A65644C616D62646145787072657373696F6E004F626A656374496E697469616C697A657245787072657373696F6E00436F6C6C656374696F6E496E697469616C697A657245787072657373696F6E004172726179496E697469616C697A657245787072657373696F6E00416E6F6E796D6F75734F626A6563744D656D6265724465636C617261746F7200436F6D706C6578456C656D656E74496E697469616C697A657245787072657373696F6E004F626A6563744372656174696F6E45787072657373696F6E00416E6F6E796D6F75734F626A6563744372656174696F6E45787072657373696F6E0041727261794372656174696F6E45787072657373696F6E00496D706C6963697441727261794372656174696F6E45787072657373696F6E00537461636B416C6C6F6341727261794372656174696F6E45787072657373696F6E004F6D6974746564417272617953697A6545787072657373696F6E00496E746572706F6C61746564537472696E6745787072657373696F6E00496D706C69636974456C656D656E744163636573730053696D706C6541737369676E6D656E7445787072657373696F6E0041646441737369676E6D656E7445787072657373696F6E00537562747261637441737369676E6D656E7445787072657373696F6E004D756C7469706C7941737369676E6D656E7445787072657373696F6E0044697669646541737369676E6D656E7445787072657373696F6E004D6F64756C6F41737369676E6D656E7445787072657373696F6E00416E6441737369676E6D656E7445787072657373696F6E004578636C75736976654F7241737369676E6D656E7445787072657373696F6E004F7241737369676E6D656E7445787072657373696F6E004C656674536869667441737369676E6D656E7445787072657373696F6E005269676874536869667441737369676E6D656E7445787072657373696F6E00556E617279506C757345787072657373696F6E00556E6172794D696E757345787072657373696F6E00426974776973654E6F7445787072657373696F6E004C6F676963616C4E6F7445787072657373696F6E00507265496E6372656D656E7445787072657373696F6E0050726544656372656D656E7445787072657373696F6E00506F696E746572496E646972656374696F6E45787072657373696F6E00416464726573734F6645787072657373696F6E00506F7374496E6372656D656E7445787072657373696F6E00506F737444656372656D656E7445787072657373696F6E00417761697445787072657373696F6E00547970654F6645787072657373696F6E0053697A654F6645787072657373696F6E00436865636B656445787072657373696F6E00556E636865636B656445787072657373696F6E004D616B6552656645787072657373696F6E0052656656616C756545787072657373696F6E005265665479706545787072657373696F6E00436865636B6564466163746F727900547279466163746F727900556E636865636B6564466163746F7279004461746554696D6545787072657373696F6E0054696D6545787072657373696F6E00427265616B5F416C6C00427265616B5F4F7574657200436865636B65645F4E756C6C004578636C75736976654F7241737369676E6D656E74416C7465726E617469766545787072657373696F6E004578636C75736976654F72416C7465726E617469766545787072657373696F6E004578706F6E656E7445787072657373696F6E004578706F6E656E7441737369676E6D656E7445787072657373696F6E004E6F74457175616C73416C7465726E617469766545787072657373696F6E0048657861646563696D616C004C69746572616C004E756D626572004F70657261746F720054726976696100556E69636F6465005265616C00526F6F7400416E6F6E796D6F7573426F6479436F6E7461696E65720042696E617279436F6E7461696E657200426F6479436F6E7461696E65720045787072657373696F6E436F6E7461696E65720047726F75704172726179436F6E7461696E65720047726F7570436F6E7461696E657200526F6F74436F6E7461696E657200556E617279436F6E7461696E6572004E756D62657255004E756D6265724C004E756D626572554C004E756D62657246004E756D62657244004E756D6265724D004D6574686F6441636365737345787072657373696F6E00526567756C6172537472696E6753696E676C6551756F746500526567756C6172537472696E67446F75626C6551756F746500566572626174696D537472696E6753696E676C6551756F746500566572626174696D537472696E67446F75626C6551756F746500496E746572706F6C61746564537472696E6753696E676C6551756F746500496E746572706F6C61746564537472696E67446F75626C6551756F746500436865636B656447726F757045787072657373696F6E00436865636B6564426F647945787072657373696F6E00436865636B65644E756C6C45787072657373696F6E00556E636865636B656447726F757045787072657373696F6E00556E636865636B6564426F647945787072657373696F6E0047656E657269635479706545787072657373696F6E00506C7573506C7573546F6B656E004D696E75734D696E7573546F6B656E004E756C6C61626C655479706545787072657373696F6E00436F6C6F6E436F6C6F6E546F6B656E004D696E7573477265617465725468616E546F6B656E00547279436F6D70696C6545787072657373696F6E00466163746F7269616C45787072657373696F6E00446973706F7365547970654F72426974776973654E6F7445787072657373696F6E00427265616B416C6C4B6579776F726400427265616B4F757465724B6579776F7264004949464B6579776F72640052616E6765417272617945787072657373696F6E004D656D626572416363657373416C7465726E617469766545787072657373696F6E00436F6E646974696F6E616C4D656D62657241636365737345787072657373696F6E00436F6E646974696F6E616C4D6574686F6441636365737345787072657373696F6E00436F6E646974696F6E616C4D6574686F6447656E6572696341636365737345787072657373696F6E00436F6E646974696F6E616C496E64657841636365737345787072657373696F6E00496E64657841636365737345787072657373696F6E004D6574686F6445787072657373696F6E00436F6D6D61436F6E7461696E65720047726F7570506172616D65746572436F6E7461696E657200426F647945787072657373696F6E004D6574686F645661726961626C654F725374617469634D656D62657241636365737345787072657373696F6E00416E6F6E796D6F7573426F64794F72506172616D6574657245787072657373696F6E004861736848617368546F6B656E004E6F6E65004D6574686F6447656E6572696341636365737345787072657373696F6E0053796E7461784E6F646500EE86B500EE86B600EE86B700EE86B800EE86B900EE86BA00EE86BB00EE86BC00EE86BD00EE86BE00EE86BF00EE878000EE878100EE878200EE878300EE878400EE878500EE878600EE878700EE878800EE878900EE878A00EE878B00EE878C00EE878D00EE878E00EE878F00EE879000EE879100EE879200EE879300EE879400EE879500EE879600EE879700EE879800EE879900EE879A00EE879B00EE879C00EE879D00EE879E00EE879F00EE87A000EE87A100EE87A200EE87A300EE87A400EE87A500EE87A600EE87A700EE87A800EE87A900EE87AA00EE87AB00EE87AC00EE87AD00EE87AE00EE87AF00EE87B000EE87B100EE87B200EE87B300EE87B400EE87B500EE87B600EE87B700EE87B800EE87B900EE87BA00EE87BB00EE87BC00EE87BD00EE87BE00EE87BF00EE888000EE888100EE888200EE888300EE888400EE888500EE888600EE888700EE888800EE888900EE888A00EE888B00EE888C0053796E746178506172736572005A2E45787072657373696F6E732E436F6465416E616C797369732E43536861727000EE888D006765745FEE808600EE888E00EE888F00EE889000EE889100EE889200EE889300EE889400506172736554657874007465787400EE88950044656C656761746500436F6D62696E6500EE889600EE889700EE889800EE889900EE889A00EE889B00EE889C00EE889D00EE889E00EE889F00EE88A000EE88A100EE88A20049734C657474657200556E65736361706500EE88A300EE88A400EE88A500EE88A600EE88A700EE88A800EE88A900EE88AA00EE88AB00EE88AC00EE88AD0052656D6F766552616E676500EE88AE00EE88AF00EE88B000EE88B100EE88B200EE88B300EE88B400EE88B500EE88B600EE88B700EE88B800EE88B900EE88BA00EE88BB00EE88BC00EE88BD00EE88BE00EE88BF00EE898000EE898100EE898200EE898300EE898400EE8985005400436F6D70696C6174696F6E52656C61786174696F6E734174747269627574650052756E74696D65436F6D7061746962696C6974794174747269627574650044656275676761626C654174747269627574650053797374656D2E446961676E6F737469637300446562756767696E674D6F64657300417373656D626C795469746C6541747472696275746500417373656D626C794465736372697074696F6E41747472696275746500417373656D626C79436F6E66696775726174696F6E41747472696275746500417373656D626C79436F6D70616E7941747472696275746500417373656D626C7950726F6475637441747472696275746500417373656D626C79436F7079726967687441747472696275746500417373656D626C7954726164656D61726B41747472696275746500436F6D56697369626C654174747269627574650053797374656D2E52756E74696D652E496E7465726F705365727669636573004775696441747472696275746500417373656D626C7946696C6556657273696F6E417474726962757465005461726765744672616D65776F726B4174747269627574650053797374656D2E52756E74696D652E56657273696F6E696E67005375707072657373496C6461736D4174747269627574650000000D6F0062006A00650063007400000962006F006F006C0000096300680061007200000B7300620079007400650000096200790074006500000B730068006F0072007400000D7500730068006F0072007400000769006E0074000009750069006E00740000096C006F006E006700000B75006C006F006E006700000B66006C006F0061007400000D64006F00750062006C006500000F64006500630069006D0061006C00000D73007400720069006E006700000965006E0075006D0000176C006900630065006E00730065006E0061006D006500001B5B006C006900630065006E00730065006E0061006D0065005D000080CD54006800650020004C006900630065006E007300650020006E0061006D0065002000630061006E006E006F0074002000620065002000740068006500200070006C0061006300650068006F006C00640065007200200027005B006C006900630065006E00730065004E0061006D0065005D002E0020004D0061006B00650020007300750072006500200074006F002000750073006500200074006800650020006C006900630065006E007300650020006E0061006D0065002000700072006F00760069006400650064002E0001156C006900630065006E00730065006B006500790000195B006C006900630065006E00730065006B00650079005D000080C754006800650020004C006900630065006E007300650020006B00650079002000630061006E006E006F0074002000620065002000740068006500200070006C0061006300650068006F006C00640065007200200027005B006C006900630065006E00730065004B00650079005D002E0020004D0061006B00650020007300750072006500200074006F002000750073006500200074006800650020006C006900630065006E007300650020006B00650079002000700072006F00760069006400650064002E00015354006800650020004C006900630065006E007300650020004E0061006D0065002000630061006E006E006F00740020006200650020006E0075006C006C0020006F007200200065006D007000740079002E00005154006800650020004C006900630065006E007300650020004B00650079002000630061006E006E006F00740020006200650020006E0075006C006C0020006F007200200065006D007000740079002E00008145540068006500200073007500700070006F007200740020006F007200200074007200690061006C00200070006500720069006F006400200069007300200065007800700069007200650064002E00200050006C0065006100730065002000620075007900200061002000700072006F00640075006300740020006C006900630065006E007300650020006F007200200067006F00200074006F0020002700680074007400700073003A002F002F006700690074006800750062002E0063006F006D002F007A007A007A00700072006F006A0065006300740073002F004500760061006C002D00530051004C002E004E00450054002700200061006E006400200064006F0077006E006C006F0061006400200074006800650020006C0061007400650073007400200074007200690061006C002000760065007200730069006F006E002E0001176F0070005F0049006D0070006C006900630069007400001B41004C0054004500520020005400410042004C00450020005B00000F5D00200041004400440020000A0000032C000001000D42004900470049004E005400000742004900540000114400410054004500540049004D004500001144004500430049004D0041004C00280000032900000F44004500430049004D0041004C00000B46004C004F0041005400000749004E005400000B4D004F004E004500590000134E005600410052004300480041005200280000074D0041005800002155004E0049005100550045004900440045004E00540049004600490045005200001153004D0041004C004C0049004E005400000F540049004E00590049004E0054000015560041005200420049004E0041005200590028000017530051004C005F00560041005200490041004E005400000758004D004C00001755006E0073007500700070006F007200740065006400003555006E0073007500700070006F00720074006500640020005400790070006500200043006F00640065003A0020007B0030007D00003355006E0073007500700070006F007200740065006400200043006C007200200054007900700065003A0020007B0030007D00001D5B007B0030007D005D0020007B0031007D0020004E0055004C004C00000D530045004C004500430054000009460052004F004D00000D2000460052004F004D0020000021530045004C004500430054002000440049005300540049004E00430054002000003363006F006E007400650078007400200063006F006E006E0065006300740069006F006E0020003D002000740072007500650000095400650073007400000F530045004C004500430054002000000F2000460052004F004D00200028000003220000032700015B2900200041005300200053006F0075007200630065005400610062006C00650020005000490056004F0054002000280020004D00410058002800490044002900200046004F0052002000510074007900200049004E002000280000212900290020004100530020005000690076006F0074005400610062006C0065000009200041005300200000032000000F49006E00760061006C006900640000037B00000751007400790000055800320000032D00010D3000300030003000300030000081B34500520052004F0052005F003000300032003A0020005400680065002000700072006F007600690064006500640020006C006900630065006E007300650020006B0065007900200069007300200069006E00760061006C006900640020006F007200200074007200690061006C00200070006500720069006F006400200069007300200065007800700069007200650064002E00200050006C0065006100730065002000620075007900200061002000700072006F00640075006300740020006C006900630065006E007300650020006F007200200067006F00200074006F00200068007400740070003A002F002F007700770077002E007A007A007A00700072006F006A0065006300740073002E0063006F006D00200061006E006400200064006F0077006E006C006F0061006400200074006800650020006C0061007400650073007400200074007200690061006C002000760065007200730069006F006E002E0020004C006900630065006E007300650020004E0061006D0065003A00200027007B0030007D0027003B004C006900630065006E007300650020004B00650079003A00200027007B0031007D0027000181C94500520052004F0052005F003000300033003A0020005400680065002000700072006F007600690064006500640020006C006900630065006E007300650020006B0065007900200069007300200069006E00760061006C006900640020006F007200200074007200690061006C00200070006500720069006F006400200069007300200065007800700069007200650064002E00200050006C0065006100730065002000620075007900200061002000700072006F00640075006300740020006C006900630065006E007300650020006F007200200067006F00200074006F00200068007400740070003A002F002F007700770077002E007A007A007A00700072006F006A0065006300740073002E0063006F006D00200061006E006400200064006F0077006E006C006F0061006400200074006800650020006C0061007400650073007400200074007200690061006C002000760065007200730069006F006E002E0020004C006900630065006E007300650020004E0061006D0065003A00200027007B0030007D0027003B004C006900630065006E007300650020004B00650079003A00200027007B0031007D0027003B004D00440035002000490073007300750065003B000181DF4500520052004F0052005F003000300034003A0020005400680065002000700072006F007600690064006500640020006C006900630065006E007300650020006B0065007900200069007300200069006E00760061006C006900640020006F007200200074007200690061006C00200070006500720069006F006400200069007300200065007800700069007200650064002E00200050006C0065006100730065002000620075007900200061002000700072006F00640075006300740020006C006900630065006E007300650020006F007200200067006F00200074006F00200068007400740070003A002F002F007700770077002E007A007A007A00700072006F006A0065006300740073002E0063006F006D00200061006E006400200064006F0077006E006C006F0061006400200074006800650020006C0061007400650073007400200074007200690061006C002000760065007200730069006F006E002E0020004C006900630065006E007300650020004E0061006D0065003A00200027007B0030007D0027003B004C006900630065006E007300650020004B00650079003A00200027007B0031007D0027003B00450078007000690072006100740069006F006E0044006100740065003A00200027007B0032007D002700011579007900790079002D004D004D002D00640064000181954500520052004F0052005F003000300035003A00200054006800650020006D006F006E00740068006C007900200074007200690061006C00200070006500720069006F006400200069007300200065007800700069007200650064002E00200059006F0075002000630061006E00200065007800740065006E006400200079006F0075007200200074007200690061006C00200062007900200064006F0077006E006C006F006100640069006E006700200074006800650020006C00610074006500730074002000760065007200730069006F006E002000610073002000740068006500200062006500670069006E006E0069006E00670020006F00660020006500760065007200790020006D006F006E00740068002E0020004D006F0072006500200069006E0066006F0072006D006100740069006F006E002000630061006E00200062006500200066006F0075006E006400200068006500720065003A00200068007400740070003A002F002F006500760061006C002D00730071006C002E006E00650074002F0074007200690061006C000180C54500520052004F0052003A002000410020006D006500740068006F0064002000730074006100720074006500640020007400680065002000630075007200720065006E00740020006D006F006E0074006800200074007200690061006C0020006200650066006F007200650020007400680065002000560061006C00690064006100740065004C006900630065006E007300650020006D006500740068006F006400200068006100730020006200650065006E002000630061006C006C00650064002E0000434500520052004F0052003A0020004E006F0020006C006900630065006E0073006500200068006100730020006200650065006E002000610064006400650064002E000080B34500520052004F0052003A00200054006800650020005B006C006900630065006E00730065004E0061006D0065005D00200070006C0061006300650068006F006C006400650072002000200068006100730020006E006F00740020006200650065006E0020007200650070006C006100630065006400200062007900200074006800650020006C006900630065006E007300650020006E0061006D0065002000700072006F00760069006400650064002E000080AD4500520052004F0052003A00200054006800650020005B006C00690065006E00630065004B00650079005D00200070006C0061006300650068006F006C006400650072002000200068006100730020006E006F00740020006200650065006E0020007200650070006C006100630065006400200062007900200074006800650020006C006900630065006E007300650020006B00650079002000700072006F00760069006400650064002E000007340030003000004143006F006D00700069006C00650072002000450078007000720065007300730069006F006E002E004E004500540020002D002000420075006E0064006C006500010735003000300000274500760061006C002000450078007000720065007300730069006F006E002E004E0045005400000736003000300000194500760061006C002000530051004C002E004E004500540000137B0030007D007B0031007D007B0032007D0000053000300000177B0030007D003B007B0031007D003B007B0032007D00001F7B0030007D003B007B0031007D003B007B0032007D003B007B0033007D00002B7B0030007D003B007B0031007D007B0032007D007B0033007D003B007B0034007D003B007B0035007D0000317B0030007D007B0031007D003B007B0032007D007B0033007D007B0034007D003B007B0035007D003B007B0036007D0000808B2E00200054006800650020006500720072006F00720020006F006300630075007200720065006400200066006F0072002000650078007000720065007300730069006F006E00200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0000055C00220000808754006800650020006500720072006F00720020006F006300630075007200720065006400200066006F0072002000650078007000720065007300730069006F006E00200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0000694500760061006C0075006100740069006F006E0020006F0066002000740068006500200064006500630069006D0061006C00200063006F006E007300740061006E0074002000650078007000720065007300730069006F006E0020006600610069006C0065006400006F54006800650020006F007000650072006100740069006F006E0020006F0076006500720066006C006F0077007300200061007400200063006F006D00700069006C0065002000740069006D006500200069006E00200063006800650063006B006500640020006D006F00640065000080894F00700065007200610074006F007200200027007B0030007D0027002000630061006E006E006F00740020006200650020006100700070006C00690065006400200074006F0020006F0070006500720061006E006400730020006F00660020007400790070006500200027007B0031007D002700200061006E006400200027007B0032007D0027000107760061007200003D49006E00740065006700720061006C00200063006F006E007300740061006E007400200069007300200074006F006F0020006C006100720067006500001B47006500740045006E0075006D0065007200610074006F00720000114D006F00760065004E00650078007400000F430075007200720065006E0074000071430061006E006E006F0074002000740061006B00650020007400680065002000730069007A00650020006F0066002000610020007600610072006900610062006C00650020006F0066002000610020006D0061006E0061006700650064002000740079007000650020007B0030007D00000F44006900730070006F00730065000021520075006E00740069006D0065004500760065006E00740049006E0066006F000081294F006F00700073002100200073006F006D0065007400680069006E00670020006900730020006E006F0074002000790065007400200073007500700070006F0072007400650064002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00010B560061006C0075006500001154006F0053007400720069006E00670000037D000007300030003A00007B4F006F0070007300210020005400680065002000720061006E00670065002000650078007000720065007300730069006F006E00200069007300200069006E00760061006C00690064002E002000560061006C0069006400200066006F0072006D00610074003A002000270031002E002E00310030003000270001076F00750074000080F94F006F00700073002100200057006500200066006F00720067006F007400200074006F00200069006D0070006C0065006D0065006E0074002000610020006D006500740068006F006400200072006500710075006900720065006400200062007900200079006F007500720020007300630065006E006100720069006F002E00200050006C00650061007300650020007200650070006F007200740020007500730020007400680065002000660075006C006C00200073007400610063006B002000740072006100630065003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000081254F006F00700073002100200054006800650020007400790070006500200063006F0075006C00640020006E006F007400200062006500200066006F0075006E0064002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000181454F006F0070007300210020005400680065002000650078007000720065007300730069006F006E002000630061006E006E006F007400200068006100760065002000610020006C006500660074002000650078007000720065007300730069006F006E002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000181454F006F00700073002100200041006C006C002000650078007000720065007300730069006F006E00200061007400200074006800650020007200690067006800740020006D0075007300740020006200650020007200650073006F006C007600650064002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000181254F006F00700073002100200041002000670065006E006500720061006C0020006500720072006F007200200068006100730020006F0063006300750072007200650064002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0001032E0000032B00000360000081B14F006F00700073002100200054006800650020007400790070006500200063006F0075006C00640020006E006F007400200062006500200066006F0075006E0064002E0020004F006E006C007900200063006F006D006D006F006E00200074007900700065002000610072006500200072006500670069007300740065007200650064002000620079002000640065006600610075006C0074002E0020004D0061006B00650020007300750072006500200074006800650020007400790070006500200079006F007500200061007200650020007500730069006E006700200069007300200072006500670069007300740065007200650064003A002000680074007400700073003A002F002F006700690074006800750062002E0063006F006D002F007A007A007A00700072006F006A0065006300740073002F004500760061006C002D00450078007000720065007300730069006F006E002E004E00450054002F00770069006B0069002F004500760061006C0043006F006E0074006500780074002D00520065006700690073007400650072002D0026002D0055006E007200650067006900730074006500720001253C003E0066005F005F0041006E006F006E0079006D006F00750073005400790070006500000741006400640000196F0070005F0042006900740077006900730065004F007200001D6F0070005F004500780063006C00750073006900760065004F007200001B6F0070005F00420069007400770069007300650041006E00640000176F0070005F0045007100750061006C00690074007900001B6F0070005F0049006E0065007100750061006C0069007400790000176F0070005F004C006500730073005400680061006E0000256F0070005F004C006500730073005400680061006E004F00720045007100750061006C00001D6F0070005F0047007200650061007400650072005400680061006E00002B6F0070005F0047007200650061007400650072005400680061006E004F00720045007100750061006C0000196F0070005F004C0065006600740053006800690066007400001B6F0070005F00520069006700680074005300680069006600740000176F0070005F004100640064006900740069006F006E00001D6F0070005F005300750062007400720061006300740069006F006E0000176F0070005F004D0075006C007400690070006C00790000176F0070005F004400690076006900730069006F006E0000156F0070005F004D006F00640075006C00750073000081314F006F00700073002100200041006E00200061006D0062006900670069006F007500730020006D0065006D00620065007200200068006100730020006200650065006E00200066006F0075006E0064002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0001196F0070005F00440065006300720065006D0065006E00740000196F0070005F0049006E006300720065006D0065006E00740000196F0070005F0055006E0061007200790050006C007500730000216F0070005F0055006E006100720079004E00650067006100740069006F006E00001B6F0070005F004C006F0067006900630061006C004E006F00740000236F0070005F004F006E006500730043006F006D0070006C0065006D0065006E007400000B460075006E00630060000081274F006F007000730021002000540068006500200070006100720061006D006500740065007200200063006F0075006E007400200069007300200069006E00760061006C006900640043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000109460075006E0063000017520075006E00740069006D006500540079007000650000053F002E000011470065007400560061006C007500650000734F00700065007200610074006F007200200027007B0030007D0027002000630061006E006E006F00740020006200650020006100700070006C00690065006400200074006F0020006F0070006500720061006E00640020006F00660020007400790070006500200027007B0031007D002700010750006F007700000D43006F006E0063006100740000033B0000035F0000096700650074005F00000D45007100750061006C00730000176700650074005F00440065006600610075006C0074000017470065007400480061007300680043006F0064006500000554005F000081194500720072006F0072003A00200030003000310033003A0020004F006F00700073002100200041002000670065006E006500720061006C0020006500720072006F007200200068006100730020006F0063006300750072007200650064002E00200050006C00650061007300650020007200650070006F00720074002000740068006500200069007300730075006500200069006E0063006C007500640069006E0067002000740068006500200073007400610063006B00200074007200610063006500200074006F0020006F0075007200200073007500700070006F007200740020007400650061006D003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0000809754006800650020006C006100620065006C00200027007B0030007D002700200073006800610064006F0077007300200061006E006F00740068006500720020006C006100620065006C0020006200790020007400680065002000730061006D00650020006E0061006D006500200069006E0020006100200063006F006E007400610069006E00650064002000730063006F0070006500013555006E0065007800700065006300740065006400200075006E007200650073006F006C0076006500640020006A0075006D0070000080A955006E0065007800700065006300740065006400200075006E007200650073006F006C0076006500640020006A0075006D007000200066006F00720020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E00000F530079007300740065006D002E0000812D410020006C006F00630061006C0020006F007200200070006100720061006D00650074006500720020006E0061006D0065006400200027007B0030007D0027002000630061006E006E006F00740020006200650020006400650063006C006100720065006400200069006E00200074006800690073002000730063006F0070006500200062006500630061007500730065002000740068006100740020006E0061006D00650020006900730020007500730065006400200069006E00200061006E00200065006E0063006C006F00730069006E00670020006C006F00630061006C002000730063006F0070006500200074006F00200064006500660069006E0065002000610020006C006F00630061006C0020006F007200200070006100720061006D00650074006500720001794F006F0070007300210020004E006F0020006100700070006C0069006300610062006C00650020006D0065006D00620065007200200068006100730020006200650065006E00200066006F0075006E006400200066006F00720020007400680065002000650078007000720065007300730069006F006E00004D4F006F00700073002100200041006D0062006900670075006F007500730020006D006100740063006800200066006F0075006E006400200066006F0072003A00200027007B0030007D002700010F49006E00640065007800650072000017450078007000720065007300730069006F006E006000003357006800650072006500530065006C006500630074004C006900730074004900740065007200610074006F0072006000320000174900470072006F007500700069006E00670060003200000761006C006C00000B6F00750074006500720000053E003E00006755006E0073007500700070006F007200740065006400200074006F006B0065006E00200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000080B14D0069007300730069006E00670020006C006500660074002000650078007000720065007300730069006F006E00200066006F0072002000620069006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000080B34D0069007300730069006E0067002000720069006700680074002000650078007000720065007300730069006F006E00200066006F0072002000620069006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000080A155006E006500780070006500630074006500640020006D0061006E007900200022007B0030007D0022002000650078007000720065007300730069006F006E00200069006E0020007300770069007400630068002000730074006100740065006D0065006E007400200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000080CD55006E00650078007000650063007400650064002000670065006E006500720061006C0020006500720072006F00720020006F0063006300750072006500640020007700690074006800200074006F006B0065006E00200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E002000530065006500200069006E006E0065007200200065007800630065007000740069006F006E003A0020007B0033007D00006D55006E0073007500700070006F007200740065006400200070006100720061006D00650074006500720020006C00690073007400200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0000808355006E0065007800700065006300740065006400200075006E00680061006E0064006C00650064002000650078007000720065007300730069006F006E00200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000080AF4D0069007300730069006E00670020006C006500660074002000650078007000720065007300730069006F006E00200066006F007200200075006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000080BD55006E006500780070006500630074006500640020006C006500660074002000650078007000720065007300730069006F006E00200066006F0072002000700072006500200075006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000080B14D0069007300730069006E0067002000720069006700680074002000650078007000720065007300730069006F006E00200066006F007200200075006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E00006B55006E0073007500700070006F00720074006500640020006B006500790077006F0072006400200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E00006D55006E0073007500700070006F00720074006500640020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000080C14D0069007300730069006E00670020007700680069006C00650020006B006500790077006F0072006400200069006E002000220064006F0022002000730074006100740065006D0065006E0074002E00200046006F0075006E006400200069006E007300740065006100640020006B006500790077006F0072006400200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0000809B4D0069007300730069006E006700200063006F006C006F006E0020006F00700065007200610074006F007200200027003A002700200066006F00720020007400650072006E006100720079002000650078007000720065007300730069006F006E00200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000180A34D0069007300730069006E006700200063006F006C006F006E0020006F00700065007200610074006F007200200027003A002700200066006F0072002000730077006900740063006800200063006100730065002000650078007000720065007300730069006F006E00200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000180A755006E00650078007000650063007400650064002000700061007200730065007200200065006E006400200020007700690074006800200075006E007200650073006F006C00760065006400200074006F006B0065006E0020006C00650066007400200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E00000B660061006C007300650000096E0075006C006C0000097400720075006500000976006F0069006400000561007300000B62007200650061006B0000096300610073006500000B63006100740063006800000F63006800650063006B0065006400000B63006F006E0073007400001163006F006E00740069006E0075006500000F640065006600610075006C007400000564006F00000965006C0073006500000F660069006E0061006C006C007900000766006F007200000F66006F0072006500610063006800000967006F0074006F00000569006600000569006E0000056900730000076E00650077000007720065006600000D720065007400750072006E00000D730069007A0065006F006600000D730077006900740063006800000B7400680072006F0077000007740072007900000D74007900700065006F006600001375006E0063006800650063006B0065006400000B7500730069006E006700000B7700680069006C00650000116100620073007400720061006300740000096200610073006500000B63006C006100730073000011640065006C0065006700610074006500000B6500760065006E00740000116500780070006C006900630069007400000D650078007400650072006E00000B66006900780065006400001169006D0070006C006900630069007400001369006E007400650072006600610063006500001169006E007400650072006E0061006C0000096C006F0063006B0000136E0061006D0065007300700061006300650000116F00700065007200610074006F00720000116F007600650072007200690064006500000D70006100720061006D007300000F70007200690076006100740065000013700072006F00740065006300740065006400000D7000750062006C0069006300001172006500610064006F006E006C007900000D7300650061006C0065006400001573007400610063006B0061006C006C006F006300000D730074006100740069006300000D73007400720075006300740000097400680069007300000D75006E007300610066006500000F7600690072007400750061006C00001176006F006C006100740069006C00650000037E00000321000003280000033D0000035B0000035D0000033A0000033C0000033E0000033F0000052B002B0000052D002D0001052B003D0000052D003D0001052A003D0000052F003D00000525003D00000526003D0000055E003D0000057C003D0000073C003C003D0000073E003E003D0000053F003F0000053D003E0000057C007C0000052600260000037C0000035E000003260000053D003D00000521003D0000053C003D0000053E003D0000053C003C0000032A0000032F000003250000053F005B0000054000270001054000220000052400270001052400220000052F002F0000052F002A000003230000053A003A0000052D003E0001055E007C0000075E007C003D0000055E005E0000075E005E003D0000053C003E0000052E002E00000740002400270001074000240022000007240040002700010724004000220000052300230000097B00230075007D0000097B00230055007D0000097B0023006C007D0000097B0023004C007D00000B7B00230075006C007D00000B7B00230075004C007D00000B7B00230055006C007D00000B7B00230055004C007D00000B7B0023006C0075007D00000B7B0023006C0055007D00000B7B0023004C0075007D00000B7B0023004C0055007D0000097B00230066007D0000097B00230046007D0000097B00230064007D0000097B00230044007D0000097B0023006D007D0000097B0023004D007D0000057B00230000809355006E0065007800700065006300740065006400200065006E00640020006F006600200073007400720069006E00670020007700690074006800200075006E0063006C006F00730065006400200073007400720069006E006700200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E00007D55006E007200650063006F0067006E0069007A006500640020006500730063006100700065002000730065007100750065006E0063006500200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0000055C005C0000035C0000055C0030000003000000055C0061000003070001055C0062000003080001055C00660000030C0000055C006E0000030A0000055C00720000030D0000055C0074000003090000055C00760000030B00000D46006F0072006D0061007400006F55006E0073007500700070006F0072007400650064002000630068006100720061006300740065007200200027007B0030007D002700200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0001000034309C5FBC4D814DB7AE50511BD51F500008B77A5C561934E0890307010E0600011209110D07000202120912090320000E0500010E12090320000104010000000B0615125501151259020E0E0300000205000102100E0407011210050002020E0E042001010E040001020E0A15126101151259020E0E052002011C180A15125501151259020E0E0920010215126101130006151259020E0E0720020113001301052001011300050002010E0E0300000102060E0420001300042000130109200102151259020E0E0906151269021209116D0A000312751279120912710A000312711279120912710C0004127512791209127112710C0004127112791209127112710620020212090208000302127D1209020520001D12090700011D12091209060001116D12090507021218020520010212090920011D12808111808509151280890212808102131001020215128091011E0015128089021E0002050A01128081032000020500010212090420001209070001120912809508151269021209116D03061209062001021280810306130002060203061301081512200213001301052001011301042800130108061512809D011300061512240113000A2001011512809D0113000420010102071512809D01130003280002042800130002061C0320001C042001011C0328000E0328001C0F0704151255011E001280A11C1280A506151255011E000520001280A1021E000C100101151255011E001280A9100704151255011280AD1280A11C1280A507151255011280AD0C0001151255011280AD1280B10807021280B51280B9062001011280BD062001081280B50800011280B51280BD0B07031280A11280C51280A50520001280C90420011C0E0600030E0E0E0E0900040E0E1280B50E0E0900040E0E0E0E1180D50C00050E0E1280B50E0E1180D50520020E0E0E0920021D0E1D0E1180D90900031D0E0E0E1180D904000000000700021D0E0E1D0E0807021D021D1280E10300000E0500020E0E0E0915128089021280E10E1A10020215128091011E0115128091011E0015128089021E001E01060A021280E10E0A00020E0E15128091010E0700020E1280B50E0707030E1180E90A0520001180E9032000050500010E1D1C0320000A0600010E1280E10A07031D1280E1081280ED0520001280F1032000080620011280ED080C00021D1280E11280B5101D020A07041280E11209116D0E072002010E1180E9082003010E1180E90A092004010E1180E905050500020E0E1C0A00021280E11280ED10020507011280E1021D05021D030206050B00031280E10E1280ED1209120704151255011280C51280A11280C51280A507151255011280C50C0001151255011280C51280B5030612300A0615128089021280E10E0600030E0E1C1C0620010E1280E1070615125501123C0606151255010E08070115118139010E05151255010E092000151181390113000615118139010E23070C0E0E1280B5151255010E15118139010E0E0E12813D1280BD1280A11280C51280A5072002080E1181410420010E080520020E08080620011D0E1D030815128089020E123C050A020E123C10100101151255011E0015128091011E00040A01123C081512808902123C021910010215128091011E0015128091011E0015128089021E00020D1512808902123C15128091010E1F10020215128091011E0115128091011E0015128089021E0015128091011E01050A02123C0E1110010115128091011E0015128091011E00030A010E072002010E12813D0420011C080500010E1D0E040001010E03061238090615128089020E123C09061512808902123C020E061512808902123C15128091010E052001123C0E05200102123C0A200115128091010E123C0407011D0E0507011180990520020808088144540068006500200073007500700070006F007200740020006F007200200074007200690061006C00200070006500720069006F006400200069007300200065007800700069007200650064002E00200050006C0065006100730065002000620075007900200061002000700072006F00640075006300740020006C006900630065006E007300650020006F007200200067006F00200074006F0020002700680074007400700073003A002F002F006700690074006800750062002E0063006F006D002F007A007A007A00700072006F006A0065006300740073002F004500760061006C002D00530051004C002E004E00450054002700200061006E006400200064006F0077006E006C006F0061006400200074006800650020006C0061007400650073007400200074007200690061006C002000760065007200730069006F006E002E000706151269020E0E04061180990206080306125008061512809D0112500500001180990600010111809903000008040001010804000101020A070212501511814D0102071512809D011250061511814D01020800001511814D01020A07041D051D05128151080500001281550520011D050E0620011D051D050420010E0E0620011281510E0400010E0E05000012816111070C0E11809912480E0E0E0E0E080808030420010803040001080E06151269020E0E062001130113000420001D03030A01030715128089020308131001020815128091011E0015128089021E0008042001030806200301080808080003020E0E118141090002021180991180990700040E0E1C1C1C070003020E0E10080500020108021B07051511814D01021511813901151259020E0E151259020E0E08020B1511813901151259020E0E0C1001011E0015128091011E00080A01151259020E0E030701020508001180990308000803080002030701080600020E0E1D1C0306124C080615128089020308042000125007061511814D01020820001511814D0102092001011511814D01020828001511814D01020306115404020000000706151269020E1C06151269020E1C063001011E000E07300102010E1E0080DE43006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0081244F006F00700073002100200041002000670065006E006500720061006C0020006500720072006F007200200068006100730020006F0063006300750072007200650064002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0081284F006F00700073002100200073006F006D0065007400680069006E00670020006900730020006E006F0074002000790065007400200073007500700070006F0072007400650064002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0081244F006F00700073002100200054006800650020007400790070006500200063006F0075006C00640020006E006F007400200062006500200066006F0075006E0064002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0081444F006F0070007300210020005400680065002000650078007000720065007300730069006F006E002000630061006E006E006F007400200068006100760065002000610020006C006500660074002000650078007000720065007300730069006F006E002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0081444F006F00700073002100200041006C006C002000650078007000720065007300730069006F006E00200061007400200074006800650020007200690067006800740020006D0075007300740020006200650020007200650073006F006C007600650064002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0081304F006F00700073002100200041006E00200061006D0062006900670069006F007500730020006D0065006D00620065007200200068006100730020006200650065006E00200066006F0075006E0064002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0081264F006F007000730021002000540068006500200070006100720061006D006500740065007200200063006F0075006E007400200069007300200069006E00760061006C006900640043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0081264F006F00700073002100200054006800650020006D006500740068006F006400200063006F0075006C00640020006E006F007400200062006500200066006F0075006E0064002E0043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E0020006F007200200069006600200079006F0075002000620065006C00690065007600650020006900740027007300200061006E0020006500720072006F00720020006F006E0020006F0075007200200070006100720074003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00808654006800650020006500720072006F00720020006F006300630075007200720065006400200066006F0072002000650078007000720065007300730069006F006E00200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080A855006E0065007800700065006300740065006400200075006E007200650073006F006C0076006500640020006A0075006D007000200066006F00720020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E003455006E0065007800700065006300740065006400200075006E007200650073006F006C0076006500640020006A0075006D00700070430061006E006E006F0074002000740061006B00650020007400680065002000730069007A00650020006F0066002000610020007600610072006900610062006C00650020006F0066002000610020006D0061006E0061006700650064002000740079007000650020007B0030007D007E4F00700065007200610074006F007200200027007B0030007D002700200069007300200061006D0062006900670075006F007500730020006F006E0020006F0070006500720061006E006400730020006F00660020007400790070006500200027007B0031007D002700200061006E006400200027007B0032007D0027003C49006E00740065006700720061006C00200063006F006E007300740061006E007400200069007300200074006F006F0020006C006100720067006500724F00700065007200610074006F007200200027002D0027002000630061006E006E006F00740020006200650020006100700070006C00690065006400200074006F0020006F0070006500720061006E00640020006F006600200074007900700065002000270075006C006F006E006700270080884F00700065007200610074006F007200200027007B0030007D0027002000630061006E006E006F00740020006200650020006100700070006C00690065006400200074006F0020006F0070006500720061006E006400730020006F00660020007400790070006500200027007B0031007D002700200061006E006400200027007B0032007D00270080D6430061006E006E006F007400200069006D0070006C0069006300690074006C007900200063006F006E007600650072007400200074007900700065002000270064006500630069006D0061006C002700200074006F0020002700620079007400650027002E00200041006E0020006500780070006C006900630069007400200063006F006E00760065007200730069006F006E00200065007800690073007400730020002800610072006500200079006F00750020006D0069007300730069006E00670020006100200063006100730074003F0029006E54006800650020006F007000650072006100740069006F006E0020006F0076006500720066006C006F0077007300200061007400200063006F006D00700069006C0065002000740069006D006500200069006E00200063006800650063006B006500640020006D006F0064006500724F00700065007200610074006F007200200027007B0030007D0027002000630061006E006E006F00740020006200650020006100700070006C00690065006400200074006F0020006F0070006500720061006E00640020006F00660020007400790070006500200027007B0031007D002700684500760061006C0075006100740069006F006E0020006F0066002000740068006500200064006500630069006D0061006C00200063006F006E007300740061006E0074002000650078007000720065007300730069006F006E0020006600610069006C0065006400812C410020006C006F00630061006C0020006F007200200070006100720061006D00650074006500720020006E0061006D0065006400200027007B0030007D0027002000630061006E006E006F00740020006200650020006400650063006C006100720065006400200069006E00200074006800690073002000730063006F0070006500200062006500630061007500730065002000740068006100740020006E0061006D00650020006900730020007500730065006400200069006E00200061006E00200065006E0063006C006F00730069006E00670020006C006F00630061006C002000730063006F0070006500200074006F00200064006500660069006E0065002000610020006C006F00630061006C0020006F007200200070006100720061006D006500740065007200809654006800650020006C006100620065006C00200027007B0030007D002700200073006800610064006F0077007300200061006E006F00740068006500720020006C006100620065006C0020006200790020007400680065002000730061006D00650020006E0061006D006500200069006E0020006100200063006F006E007400610069006E00650064002000730063006F007000650080AE4E0061006D0065006400200061007200670075006D0065006E0074002000730070006500630069006600690063006100740069006F006E00730020006D007500730074002000610070007000650061007200200061006600740065007200200061006C006C00200066006900780065006400200061007200670075006D0065006E00740073002000680061007600650020006200650065006E002000730070006500630069006600690065006400784F006F0070007300210020004E006F0020006100700070006C0069006300610062006C00650020006D0065006D00620065007200200068006100730020006200650065006E00200066006F0075006E006400200066006F00720020007400680065002000650078007000720065007300730069006F006E004C4F006F00700073002100200041006D0062006900670075006F007500730020006D006100740063006800200066006F0075006E006400200066006F0072003A00200027007B0030007D0027007A4F006F0070007300210020005400680065002000720061006E00670065002000650078007000720065007300730069006F006E00200069007300200069006E00760061006C00690064002E002000560061006C0069006400200066006F0072006D00610074003A002000270031002E002E00310030003000270080BA4F006F007000730021002000540068006500200066006F006C006C006F00770069006E00670020006D0065006D00620065007200200027007B0030007D00270020006900730020006E006F007400200073007500700070006F007200740065006400200069006E002000730061006600650020006D006F00640065002E00200054006800650020006D0065006D0062006500720020006D007500730074002000620065002000720065006700690073007400650072006500640081B04F006F00700073002100200054006800650020007400790070006500200063006F0075006C00640020006E006F007400200062006500200066006F0075006E0064002E0020004F006E006C007900200063006F006D006D006F006E00200074007900700065002000610072006500200072006500670069007300740065007200650064002000620079002000640065006600610075006C0074002E0020004D0061006B00650020007300750072006500200074006800650020007400790070006500200079006F007500200061007200650020007500730069006E006700200069007300200072006500670069007300740065007200650064003A002000680074007400700073003A002F002F006700690074006800750062002E0063006F006D002F007A007A007A00700072006F006A0065006300740073002F004500760061006C002D00450078007000720065007300730069006F006E002E004E00450054002F00770069006B0069002F004500760061006C0043006F006E0074006500780074002D00520065006700690073007400650072002D0026002D0055006E007200650067006900730074006500720080F84F006F00700073002100200057006500200066006F00720067006F007400200074006F00200069006D0070006C0065006D0065006E0074002000610020006D006500740068006F006400200072006500710075006900720065006400200062007900200079006F007500720020007300630065006E006100720069006F002E00200050006C00650061007300650020007200650070006F007200740020007500730020007400680065002000660075006C006C00200073007400610063006B002000740072006100630065003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000700020E0E12810807070312813C080E0500020808080900030E0E12810812090700030E0E0E12090900040E0E0E12091209040612808112070812711209116D116D116D125D125D125D040001021C040001031C040001081C040001091C0400010A1C0400010B1C0400010C1C0400010D1C05000111411C0600011180991C06000112816D1C062002010E125D0600021C12091C10000412711280B012810812816D12816D0B07051271116D08125D125D0500011141080607021271127115000312711280B012810815128175031271127112710E0705127112816D12816D12091209090002128179127112090B151281750312711271127108200213021300130105200011817D19000512711280B01281081271127115128175031271127112710E070512711271127112816D12816D060702127112090B151281750312711209127115000312711280B01281081512817503127112091271818407808F1268021271118104020815125501151259021281081271120908090A0B08090A0B0C0D11410C0D114111541280B012818112711280B0127112711271127112711280B012808112818512818912808112818D12819112091281891280B01271127112711281811271127112711209116D12641271127115125501128195151181390112810812810812819515128089021281081271127102151255011281990212711281081209127111541280B01271127112818512819D12818512819D1280B012711271128181127112711271127112818D12711271127112091271127112816D12816D128081128081120912816D12816D12816D151255011209127112711280B01281A11281081281A51280B01281A51280B01281A11271127115125501127108128108127112816D12816D080815125501127108081280B0128108151255011271128108128108128108081281081281A11281A11281A112810815118139011512590212810812711512590212810812711271127112091271127112090E0500001281A90C0004020E1181AD1281B110080C0004020E1181AD1281B110090C0004020E1181AD1281B1100A0C0004020E1181AD1281B1100B0C0004020E1181AD1281B1100C0C0004020E1181AD1281B1100D0D0004020E1181AD1281B11011410800011281B91281A50700011281BD12090800011281C11281A5061512550112710500001281BD0B00031281811271127112710A00021281C512711281A507151255011281080520011300080900021281C9127112710620011280810E090002021280811280810A000212818512711280810900021281A11271127106200112818D0E0A0002128191127112818D0D00031281C512711281A51281A5090002128181127112710900021281CD127112090A00021281B91281A5127107151255011281950815118139011281080A15128089021281081271070A0212810812710E00021281951271151280910112710520001D13000D00031281D1127112711D12819507000112817912710500001281790715125501128199090002128199120912710B000212819D12711D12819909000212819D127112710D000312819D127112711D128199042000127104061D12090E000412818512710E1D12091D12710800011281C91D12710C00031281A1127112711280810920021280810E1D12090C000312818512808112711271091512808902127112710520020103080A15128089021281081209070A021281081209040A0112090900021180990E1281B10900021181D50E1281B10C00011281C915128091011271060002020E10080D15125501151259021281081271091512590212810812710E151181390115125902128108127107200112091D120908000212816D1C12090D000412711280B012810812710201000C000312091280B012810810080B000312091280B01281080227070B12091181041281081512550112090215118139011281081281081512550112090212810808061512550112090500020E1C1C05200112090810000512091280B01281081281511008028113074F12741271120912810812810812701281D9151255011281D91D1281D91281081D127D151269020E1271151255011271151181390112810812810812810812711D127D08127D12711281081281DD151255011271151255011281E1128108128108124D12711281E1151255011281E1128108128108124D12711281E11512550112711281081271080808127112816D127815125501151259020E12711280B01281D91281891280810E1281080E1511813901151259020E1271151259020E12711281D91281081281081281D91D1281D91281081D127D151269020E12711512550112711281081281081271127D12711281081281DD151255011281E1128108128108124D12711281E11512550112711281DD0820011281D91D1209090002021281D91281D90620001D1281D90915128089021281D902050A011281D907151255011281D90520001D127D1210010215128091011E0015128091011E0008040A01127D07151281E901127D0615125501127D0A200101151281E9011300042001020E07151255011281E107151269020E12710820020213001013010A200101151280910113000800011281DD1281D907000202124D124D0620011281ED0E0900021281E1124D12711000021281F11281DD15128091011281F5040A011271092000151281F90112710F00021281FD1281DD151280910112711810010215128091011E0015128091011E0015128091011E000F00021281DD1281D915128091011271062002010813000E000212820112091512809101127108151281E9011281080B15125501151259020E127107151259020E1271050A011281080C1511813901151259020E127107151269020E12090520010213000820011280811D12090E000412818512711280811271127107151255011282090A000212711280B01281082B070C127112711512550112711282011209151181390112810812810812711271120915125501127112810807070212711181040C000412711280B012810802020C000412711280B012810802080B000312711280B0128108020C000412711280B012810803030C000412711280B012810803080500020D0D0D0C000412711280B012810808080B000312711280B0128108080C000412711280B012810809090C000412711280B012810809080B000312711280B0128108090C000412711280B01281080A0A0C000412711280B01281080A080B000312711280B01281080A0C000412711280B01281080B0B0C000412711280B01281080B080B000312711280B01281080B0C000412711280B01281080C0C0B000312711280B01281080C0C000412711280B01281080D0D0B000312711280B01281080D08000211411141114107000202114111410E000412711280B012810811411141060001114111410C000312711280B012810811410B00021181D511809911809910000412711280B01281081180991180990C000412711280B01281080E0E0C000412711280B01281080E080B000312711280B01281080E0B0003011280B0124D1281080D1001020215128091011E001E001D0706151255011280A015118139011281081281081280A011810412810807151255011280A00F0002151255011280A01280B01281082007071512550112711512550112091511813901128108128108127112091181040B00021280A01280B01281080A0704116D116D1209116D0800021209120912090B0705116D116D1C116D116D0A0002116D12816D12816D040701127C0F0003151255011280811280B012090E2D070A12711209120915125501128081151255011280811512550112711D120915128091011280811280881181040D1001011D1E0015128091011E000F0002128185128081151280910112710E000412711280B0128108127112711C070712711209151255011280811512550112711D120912808811810407151255011280810C000312711280B012810812711907091280B01D1209081512550112818912710812090E12818907151255011281891100031282111209127115128091011281890C000312711280B012091281081307061280B0151255011281890812090E1281890F00021282111271151280910112818910000312711280B01281081512550112091907091D12091280B0151255011281890812710812090E1281890F000412711280B0128108128081127D0507011280A00E00021282151271151280910112710C0702151255011280A01280B4110003128215127112818D1512809101127120070912808012816D151255011280A00E127112711512809101127112711280B40A15128089021280A01271070A021280A012710E000212821912711512809101127111000312818512711280811512809101127114000512711280B01281081209127115125501120929070D12808411808512711D12818D12818D12091280811D1281ED1281ED1D12821D12821D1D120912090D000312818512711280811D12710920011D12818D11808509151280890212818D02141001021E0015128091011E0015128089021E0002050A0112818D0900020212818D12818D0920011D1281ED1180850915128089021281ED02050A011281ED090002021281ED1281ED0A000212819112711281ED0420011C1C0920011D12821D11808509151280890212821D02050A0112821D0900020212821D12821D0820011D12091180850815128089021209020E000412711280B0128108120912710A07041271116D125D125D0D000312711280B012810812816D070702127112816D15000412711280B0128108127115128089021271127104061280B00B0615128089021281081271072001127112810807200112091281080306126C0C06151281750312711271127109061512808902127D020B0615128089021280A0127108200212711271127105200102127D07200112711280A004061280A00706151255011271081512808902127D02062001021281D905200101127D0306127406200101128108040612810804061181410620010212818D072002020E118141062001021281ED0620010212821D04061D127D040612818D0706151269020808030612710807011512550112710820001512550112710615126902080814070312809415125501128081151269021280810513151280890215118221020E15126902124D05020F0A0115118221020E15126902124D051A151280890215118221020E15126902124D051512822502124D05170A0215118221020E15126902124D051512822502124D050A0A011512822502124D051515128089021512822502124D0515128091011280810D0A021512822502124D051280810D151269020E15126902128081050815126902128081050B2000151282250213001301110005151255011280811280B01C12090E020620001D12818D0900021D12818D12090E140705151255011280881D1280810812808112808807151255011280881D000615125501128088120912711D1280811D12091512550112711280B0140705151255011280811D12818D0812818D1280810520001280810E0002151255011280811D12818D020507011D127D0800011D127D1280880607011D12818D10000312808812091D120915125501127106070212808808120003128088151255011280881D12091281080C0706081280880808081280880B00021280881280881280881D07091512550112711512550112710208127D12091512550112710812710B0001151255011271128088060702116D116D0700020812091209150706151255011280901D12091D1209081209128090071512550112809009151280890212809002050A011280900A15128089021280901209070A0212809012090B00021280811280881D12090B07051D127D08127D08127D090002011280811280901007061D12090812091281081D1209120908000201120912809023070C021512822901128090128090081281081D1209021D12091280811282110812809C0815128091011280900920001512822901130008151282290112809007151261011280900A000101151255011280900807011512550112090800011280811280882507121D127D1D12090208127D02081209120912816D081209120912710812816D128108127106000102128088080615125501128108040612808807061512550112090D15118221020E15126902124D051020010215118221020E15126902124D0504061280981B06151280890215118221020E15126902124D051512822502124D05160615128089021512822502124D0515128091011280810A06151280890212818D020A061512808902128090020B06151280890212809012090715126902124D051720011512822502124D0515118221020E15126902124D050D10010115128091011E001280A912200115128091011280811512822502124D050620010212809007200112091280900C2002011512550112711D1209040612822D04061282310D06151269020E151259020E12092A070615125501151259020E12091D12091281D91D12818D1511813901151259020E1271151259020E12710B15125501151259020E120907151259020E12090E1512808902151259020E120912090B0A02151259020E120912090E1512808902151259020E127112710B0A02151259020E127112711200031281DD1281D9151280910112711D124D120002127115125501151259020E12711281080D1512808902151259020E12090E0A0A02151259020E12090E0E00010E15125501151259020E12092F070F0E0E1280951D0E1D1282351282391512550112823D120908128235151259020E120912823D118241128245125D0C151269020E151259020E12090E20041280950E11824912091D12090715128089020E0E040A020E0E0820011D1282351D0E0C1512817503128235081282351B10020215128091011E0115128091011E0015128175031E00081E01080A02128235128235050A011282350E200312824D1182411182511D1209052000128239071512550112823D0B200312823D0E12091182550E20041282590E11825D12091D12090E20041282450E11824112091D1209040611826506200101118265092002011182651281ED062001011282450720020111826508040001011C120002120915125501151259020E12091281081C070712823912826D118271151181390112823D1281ED12808112808107200112826D12090520001182710820020111826512090920020111826512826D092002011182651182710620010111827108151181390112823D0C2003011182651280811D12090620001D1280810D0002011280951512550112823D160705128239151181390112823D1281ED12808112808105000012827D0B200212828112822D1182850620011282310E04061280A80F061512808902151259020E120912090F061512808902151259020E127112710E061512808902151259020E12090E080615128089020E0E0D061512817503128235081282350A061512808902128081020B20011209151259020E12090B20011271151259020E12710A20010E151259020E1209092002128235128235080C000312711280B012810812090906151269020E1281A504061281A50906151269020E12816D0906151269020E1281890806151269020E12710906151269021280810E0806151269020E12090806151281E901122804061180850806151224011281A50E06151269020E15126902128081050D06151269020E15126902124D050C06151269020E15122401127108151269020E1281A508151269020E12816D08151269020E12818908151269021280810E0B151269020E151224011271092000151281E90112280A200101151281E90112280F2000151269020E151269021280810510200101151269020E1512690212808105082000151269020E0E09200101151269020E0E0E2000151269020E15126902124D050F200101151269020E15126902124D05092000151269020E12090A200101151269020E1209190704127115118289020E12818915118221020E1281891281A50B20001511828902130013010915118289020E1281890B20001511822102130013010915118221020E1281890B20020108151280910113000A00021281C11281A512710B20001512828D02130013011400021281C915128091011281891512809101127107200212710212090807021281A51280B00600011281A50E0620011281A50E0920021281A50E1281080507011281A50700011281A512090500001281A50720011281A5120907151224011281A50820011281A5128108081512809D011281A50720021280B002020720011280B011540520001280B0040702020E07000312090E0202072002020E101209110705127112818912816D0E1512240112710615122401127109200312711280B00E020A2002010E1512240112710807021281891280B008000212818912090E08200212818912090E0507011181050500001181050720011281891209050701128189092800151281E90112280F2800151269020E1512690212808105082800151269020E0E0E2800151269020E15126902124D05092800151269020E120904061180C00306124D0806151255011280C40D070215128229011280C41280C40915128089021280C402050A011280C40815128091011280C40815128229011280C42B070C15125501127115118139011280C41280C415125501127112091D127108127112816D120912816D120907151255011280C40815118139011280C40B200115125501127112810804061280B80A0615128089021280C402062001021280C4040300000005061D1280A004061D12710306127D0C00021512550112818D1209020C07021280D01512550112808114151280890215118221020E151269021280810502100A0115118221020E15126902128081051C151280890215118221020E1512690212808105151282250212808105190A0215118221020E151269021280810515128225021280810516151280890215128225021280810515128091011280810E0A021512822502128081051280810B1512808902128081128081080A02128081128081160005151255011280811280B012090E021512550112091A07051280B4151255011280B4151181390112818D12818D1280B407151255011280B4071512550112818D08151181390112818D1700061280B41280B012711209151255011280A0021281082B070B1280D4151255011280811280B4151255011280B41280D8020E127115118139011280811280811280B40F151280890215118221021280810E020B0A0115118221021280810E11151280890215118221021280810E1280810E0A0215118221021280810E1280810815118139011280812100091280B41280B0127112090E151255011280A0021512550112091281081012710607021280B4080C00011280B4151255011280B42E0711081280B4081280C41280C41280B415118139011280C41280DC1280C41280B41280B408081D127D1D127D020807151261011280C40A200113001512610113000B00021280B41280B41280B40707031280B402021300041280B41280B01271124D151255011280A0160706151255011280BC1D12091D12091D12091D127D080A151280890212091280BC070A0212091280BC050A011280BC091512808902127D1209060A02127D12090A15128089021280C41209070A021280C412090915128089021280BC020A15128089021280BC1209070A021280BC1209060001021280B421070C081280E0120912091D12091D12091280E41D12091280BC1280E81280BC120907151261011280BC07151255011280BC130004011280B41D12091D1209151255011280BC50071B15118139011280C41280C412091280EC12711D12091280BC0215125501120912816D081280F01280BC12711280F41D12091280BC020215125501120912816D081280F81280BC1280FC1280BC1271170004011280B41D1209151255011280C4151255011280BC1307061D127D151255011280C40808127D1280C40D0002021280B4151255011280A0040701127D110004011280B4151255011280C41D127D0815070708127D1D1280A01280A012816D1280C41280C40A200215125501130008080915128089021280A002050A011280A0180005081280B4151255011280C41D127D151255011280A008100704151255011280A0128100081280C407151261011280A0092001081512610113000D1001021E0015128091011E0008042001010836071415118139011280C41280C41280C41280C4120908127112816D120912816D12710212816D120912816D127112711209120912816D0600011209120904061280CC1D06151280890215118221020E15126902128081051512822502128081051706151280890215128225021280810515128091011280811206151280890215118221021280810E1280810B06151280890212091280BC0A061512808902127D12090B0615128089021280C412090A0615128089021280BC020B0615128089021280BC12090A0615128089021280A0020E15118221020E151269021280810519200115128225021280810515118221020E151269021280810513200115128091011280811512822502128081050915118221021280810E0E200112808115118221021280810E0720011280BC12090620011209127D05070112816D07200112091280C4062001021280BC07200112091280BC062001021280A01120010215118221020E15126902128081050B1001010815128091011E0008200112808112808104061280D40C20010215118221021280810E04061280C40406118104040120000004022000000403200000040420000004052000000406200000040720000004082000000409200000040A200000040B200000040C200000040D200000040E200000040F2000000410200000041120000004122000000413200000041420000004152000000416200000041720000004182000000419200000041A200000041B200000041C200000041D2000000470200000047120000004722000000473200000047420000004752000000476200000047720000004782000000479200000047A200000047B200000047C200000047D200000047E200000047F2000000480200000048120000004822000000483200000048420000004852000000486200000048720000004882000000489200000048A200000048B200000048C200000048D200000048E200000048F2000000490200000049120000004922000000493200000049420000004952000000496200000049720000004982000000499200000049A200000049B200000049C200000049D200000049E200000049F20000004A020000004A120000004A220000004A320000004A420000004A520000004A620000004A720000004A820000004A920000004AA20000004AB20000004AC20000004AD20000004AE20000004AF20000004B020000004B120000004B220000004B320000004B420000004B520000004B620000004B720000004B820000004B920000004BA20000004BB20000004BC20000004BD20000004BE20000004BF20000004C0200000045B210000045C210000045D210000045E210000045F2100000460210000046121000004622100000463210000046421000004652100000466210000046721000004682100000469210000046A210000046B210000046C210000046D210000046E210000046F210000047021000004712100000472210000047321000004DC21000004DD21000004DE21000004DF21000004E021000004E121000004E221000004E321000004E421000004E521000004E621000004E721000004E821000004E921000004EA21000004EB21000004EC21000004ED21000004EE21000004EF21000004F021000004F121000004F221000004F321000004B821000004B921000004BA21000004BB21000004BC21000004BD21000004BE21000004BF21000004C021000004C121000004C221000004C321000004C421000004C521000004C621000004C721000004C821000004C921000004CA21000004CB21000004CC21000004CD21000004CE21000004CF21000004D0210000040A220000040B220000040C220000040D220000040E220000040F22000004102200000411220000041222000004132200000414220000041A220000041B220000041C220000041D220000041E220000041F2200000420220000042122000004222200000423220000042422000004382200000439220000043A220000043B220000043C220000043D220000043E220000043F22000004C832000004C932000004CA32000004CB32000004CC32000004CD32000004CE32000004CF32000004D032000004D132000004D232000004D332000004D432000004D532000004D632000004D732000004D832000004D932000004DA32000004DB32000004DC32000004DD32000004DE32000004DF32000004E032000004E132000004E232000004E332000004E432000004E532000004E632000004E732000004E832000004E932000004EA32000004EB32000004EC32000004ED32000004EE32000004EF32000004F032000004F132000004F232000004F332000004F432000004F532000004F632000004F732000004F832000004F932000004FA32000004FB32000004FC32000004FD32000004FE32000004FF3200000400330000040133000004023300000403330000040433000004053300000406330000040733000004083300000409330000040A330000040B330000040C330000040D330000040E330000040F3300000410330000041133000004123300000413330000041433000004153300000416330000040612813C062001011181040D200201118104151255011281080620010112813C08070402080812813C0700020212811C08070703020812813C05070112813C0600010212811C30070F12811012810815121C0212811C12810811810412810812813C128120128108128108128108128108128151080E080A15121C0212811C1281080F151281E90115121C0212811C128108071512809D01125D09151280890212811C020F000412810812811C128120128108020507011281080F000412810812811C128120128108080807021281081281080E00031281081281081281081281082A070C1281141281201281201281080215125501128108021281081512809D01125D1281081281081281080B000212810812811C1281200C00030112811C1281201281080807021281081281200C0702128120151255011281080907011512550112810808000112810812811C0B000212810812811C1281080C0702151255011281081281080F00021512550112810812811C1281200F000412810812811C128120021281080E000312810812811C1281201281080B000212810812810812810811000412810812811C128120128108128108040612811C042000125D0620010212811C08061512809D01125D04061281180A06151280890212811C02040612815105061D12813C05200012813C052000128151062001011281510620001D12813C072001011D12813C0D2002011181041512809D01125D062001021181040D2002021181041512809D01125D0600011281080E050A0112813C05200012810806200112813C080328000805280012813C0528001281510628001D12813C1006151281E90115121C0212811C1281080807021281241281200B00021282991282991282990900011281201D11810405070112812C0E0001128120151280890212811C0205061D1181040D20010115121C0212811C12810805070112812809151280890211810402050A011181040B0615121C0212811C1281080906151269020E1181041F07071512550112813C0812813C021181041512550112813C1512550112813C071512550112813C0D0001151280910112813C12815108151269020E1181040A070412813C12815108030620011281510309000212813C1281510810070812813C1281511281510E0802020310070812813C128151080202030E1181040400010203072002128151080311070912813C1281511281510802020202030E070612813C12815108030E11810407200212815108080A000312813C12815108080E07041512550112813C030312813C0D00021512550112813C128151080C070612813C12815108030E0E3D070E151255011512550112813C1281511512550112813C128151080808031512550112813C080812813C15118139011512550112813C1512550112813C0B151255011512550112813C062001128151080620011281511C0520020108080C15118139011512550112813C0C00011512550112813C12813C0A0704080312813C12813C80B04D0069007300730069006E00670020006C006500660074002000650078007000720065007300730069006F006E00200066006F0072002000620069006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080B24D0069007300730069006E0067002000720069006700680074002000650078007000720065007300730069006F006E00200066006F0072002000620069006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080A24D0069007300730069006E006700200063006F006C006F006E0020006F00700065007200610074006F007200200027003A002700200066006F0072002000730077006900740063006800200063006100730065002000650078007000720065007300730069006F006E00200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E00809A4D0069007300730069006E006700200063006F006C006F006E0020006F00700065007200610074006F007200200027003A002700200066006F00720020007400650072006E006100720079002000650078007000720065007300730069006F006E00200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080824D0069007300730069006E00670020006F00700065007200610074006F007200200027003E002700200066006F0072002000670065006E00650072006900630020007400790070006500200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080AE4D0069007300730069006E00670020006C006500660074002000650078007000720065007300730069006F006E00200066006F007200200075006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080B04D0069007300730069006E0067002000720069006700680074002000650078007000720065007300730069006F006E00200066006F007200200075006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080C04D0069007300730069006E00670020007700680069006C00650020006B006500790077006F0072006400200069006E002000220064006F0022002000730074006100740065006D0065006E0074002E00200046006F0075006E006400200069006E007300740065006100640020006B006500790077006F0072006400200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080CC55006E00650078007000650063007400650064002000670065006E006500720061006C0020006500720072006F00720020006F0063006300750072006500640020007700690074006800200074006F006B0065006E00200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E002000530065006500200069006E006E0065007200200065007800630065007000740069006F006E003A0020007B0033007D0080A055006E006500780070006500630074006500640020006D0061006E007900200022007B0030007D0022002000650078007000720065007300730069006F006E00200069006E0020007300770069007400630068002000730074006100740065006D0065006E007400200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080A655006E00650078007000650063007400650064002000700061007200730065007200200065006E006400200020007700690074006800200075006E007200650073006F006C00760065006400200074006F006B0065006E0020006C00650066007400200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E00809255006E0065007800700065006300740065006400200065006E00640020006F006600200073007400720069006E00670020007700690074006800200075006E0063006C006F00730065006400200073007400720069006E006700200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E00808255006E0065007800700065006300740065006400200075006E00680061006E0064006C00650064002000650078007000720065007300730069006F006E00200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E0080BC55006E006500780070006500630074006500640020006C006500660074002000650078007000720065007300730069006F006E00200066006F0072002000700072006500200075006E0061007200790020006B006500790077006F007200640020006F00720020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E007C55006E007200650063006F0067006E0069007A006500640020006500730063006100700065002000730065007100750065006E0063006500200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E006E55006E0073007500700070006F0072007400650064002000630068006100720061006300740065007200200027007B0030007D002700200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E006A55006E0073007500700070006F00720074006500640020006B006500790077006F0072006400200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E006C55006E0073007500700070006F00720074006500640020006F00700065007200610074006F007200200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E006655006E0073007500700070006F007200740065006400200074006F006B0065006E00200022007B0030007D002200200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E006C55006E0073007500700070006F007200740065006400200070006100720061006D00650074006500720020006C00690073007400200061007400200070006F0073006900740069006F006E0020007B0031007D0020006E00650061007200200022007B0032007D0022002E000700020E0E12813C0800030E0E12813C0E0900030E0E125D12813C0800030E0E12815108040702080E0B00050E0E1281510E08125D0C2005011181040E12815108080801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F777301062001011182A90801000200000000001B0100165A2E45787072657373696F6E732E436F6D70696C657200003001002B436F6D70696C65202E4E455420636F646520616E642065787072657373696F6E2061742072756E74696D650000050100000000160100115A5A5A2050726F6A6563747320496E632E00002F01002A436F7079726967687420C2A9205A5A5A2050726F6A6563747320496E632E2032303134202D203230313600001501001053514C2026202E4E455420546F6F6C7300002901002464666332346530372D313938332D343666382D623163642D64306166643165633633323300000A010005312E302E3400004701001A2E4E45544672616D65776F726B2C56657273696F6E3D76342E300100540E144672616D65776F726B446973706C61794E616D65102E4E4554204672616D65776F726B203400000000AC020000000000000000001EAC020000200000000000000000000000000000000000000000000010AC020000000000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF25002000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000001800008000000000000000000000000000000100010000003000008000000000000000000000000000000100000000004800000058C00200480400000000000000000000480434000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000001000000040000000100000004003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B004A8030000010053007400720069006E006700460069006C00650049006E0066006F00000084030000010030003000300030003000340062003000000070002C00010043006F006D006D0065006E0074007300000043006F006D00700069006C00650020002E004E0045005400200063006F0064006500200061006E0064002000650078007000720065007300730069006F006E002000610074002000720075006E00740069006D006500000044001200010043006F006D00700061006E0079004E0061006D006500000000005A005A005A002000500072006F006A006500630074007300200049006E0063002E000000560017000100460069006C0065004400650073006300720069007000740069006F006E00000000005A002E00450078007000720065007300730069006F006E0073002E0043006F006D00700069006C0065007200000000002C0006000100460069006C006500560065007200730069006F006E000000000031002E0030002E003400000056001B00010049006E007400650072006E0061006C004E0061006D00650000005A002E00450078007000720065007300730069006F006E0073002E0043006F006D00700069006C00650072002E0064006C006C000000000078002A0001004C006500670061006C0043006F007000790072006900670068007400000043006F0070007900720069006700680074002000A90020005A005A005A002000500072006F006A006500630074007300200049006E0063002E002000320030003100340020002D002000320030003100360000004A00110001004C006500670061006C00540072006100640065006D00610072006B00730000000000530051004C002000260020002E004E0045005400200054006F006F006C007300000000005E001B0001004F0072006900670069006E0061006C00460069006C0065006E0061006D00650000005A002E00450078007000720065007300730069006F006E0073002E0043006F006D00700069006C00650072002E0064006C006C00000000004E0017000100500072006F0064007500630074004E0061006D006500000000005A002E00450078007000720065007300730069006F006E0073002E0043006F006D00700069006C006500720000000000300006000100500072006F006400750063007400560065007200730069006F006E00000031002E0030002E003400000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000031002E0030002E0034002E00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A002000C000000303C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - WITH PERMISSION_SET = SAFE; - - CREATE ASSEMBLY [Z.Expressions.SqlServer.Eval] - AUTHORIZATION [dbo] - FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010300A887605B0000000000000000E00002210B010B000060010000080000000000001E7F010000200000008001000000001000200000000200000400000000000000040000000000000000C001000002000000000000030040850000100000100000000010000010000000000000100000000000000000000000D07E01004B00000000800100280500000000000000000000000000000000000000A001000C000000987D01001C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000245F0100002000000060010000020000000000000000000000000000200000602E7273726300000028050000008001000006000000620100000000000000000000000000400000402E72656C6F6300000C00000000A0010000020000006801000000000000000000000000004000004200000000000000000000000000000000007F0100000000004800000002000500A0A40000F8D8000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001A731800000A2A00133003008800000001000011027E130000042D1114FE0605000006731900000A80130000047E13000004731A00000A7D040000040220000000807D0700000402177D0C00000402281B00000A02281C00000A0A1200FE164A0000016F1D00000A7D050000040273750100067D1000000402731E00000A7D110000040273750100067D12000004021F1073C20100067D0F0000042A1B3003004E000000020000117E1F0000047C43000004286501000602257B0700000417587D07000004027B070000042D0E02257B0700000417587D07000004027B070000040ADE107E1F0000047C430000042866010006DC062A000001100000020000003C3C0010000000001B3003007D0000000300001173BA0100060C08037D63000004080A027B0F000004066FC301000626027B120000046F79010006163151027B120000046F850100060D2B25096F1F00000AA5360000010B067B640000041201282000000A1201282100000A6F81010006096F2200000A2DD3DE1409754B000001130411042C0711046F2300000ADC062A00000001100000020036003167001400000000133003001D00000004000011027B0F0000040312006FC50100062D0B7201000070732400000A7A062A1E0228F40000062A1E0228060000062A1E0228060000062A0000001330020024000000050000110228F40000060A062C14067E2800000A2E0C06282900000A732A00000A2A7E2B00000A2A1E0228090000062A1E0228090000062A1330020024000000050000110228F40000060A062C14067E2800000A2E0C06282C00000A732D00000A2A7E2E00000A2A1E02280C0000062A1E02280C0000062A1330020024000000050000110228F40000060A062C14067E2800000A2E0C06282F00000A733000000A2A7E3100000A2A1E02280F0000062A1E02280F0000062A1330020024000000050000110228F40000060A062C14067E2800000A2E0C06283200000A733300000A2A7E3400000A2A1E0228120000062A1E0228120000062A1330030046000000060000110228060000060A7E1600000428740000060C12027E16000004283500000A0628540000060D1203287D0000060B120128650000060228650000067B0D0000047D0D000004072A1E0228150000062A1E0228150000062A00001330020024000000050000110228F40000060A062C14067E2800000A2E0C06283600000A733700000A2A7E3800000A2A1E0228180000062A1E0228180000062A1330020024000000050000110228F40000060A062C14067E2800000A2E0C06283900000A733A00000A2A7E3B00000A2A1E02281B0000062A1E02281B0000062A4E022865000006177D010000040271030000022A1B30030087010000070000110F0028650000067B020000042C120F0028650000067B06000004283D00000A2A0F0028650000067B030000042C170F0028650000067B0300000474300000010A38FE0000000F0028650000067B0100000439E50000000F0028060000060A0F002865000006067D030000040674300000010F0028650000067B040000046F3E00000A166F3F00000A284000000A0B7202010070734100000A0C086F4200000A0708734300000A0D096F4400000A26DE0A092C06096F2300000ADCDE0A082C06086F2300000ADC0F002865000006167D01000004067430000001130411046F4500000A72360100706F4600000A2611046F4500000A72360100706F4700000A166F4800000A1613052B2111046F4900000A11056F4A00000A1611058C5D0000016F4B00000A110517581305110511046F4900000A6F4C00000A32CF2A0F0028060000060A062C08067E2800000A33012A0675300000012C0C06743000000128580100062A06752F0000012C1006742F0000011306110628570100062A06285E01000628580100062A00011C00000200A70009B0000A000000000200990023BC000A00000000133001000F000000050000110F0028060000060A06285F0100062A001330030011000000080000110274330000010A0306166F4E00000A512A000000133001000F000000050000110F0028060000060A06285F0100062A00133003001A000000080000110274330000010A0306166F4E00000A510406176F4E00000A512A0000133001000F000000050000110F0028060000060A06285F0100062A001330030023000000080000110274330000010A0306166F4E00000A510406176F4E00000A510506186F4E00000A512A00133001000F000000050000110F0028060000060A06285F0100062A00133003002D000000080000110274330000010A0306166F4E00000A510406176F4E00000A510506186F4E00000A510E0406196F4E00000A512A000000133001000F000000050000110F0028060000060A06285F0100062A001330030037000000080000110274330000010A0306166F4E00000A510406176F4E00000A510506186F4E00000A510E0406196F4E00000A510E05061A6F4E00000A512A320228650000067B090000042A320228650000067B090000042A320228650000067B090000042A320228650000067B060000042A320228650000067B060000042A320228650000067B060000042A320228650000067B0D0000042A320228650000067B0D0000042A320228650000067B0D0000042A1330030028000000050000110228650000067B120000040312006F880100062C02062A724A01007003284F00000A732400000A7A22020328330000062A22020328330000062A0000133002002600000009000011020328330000060A067E2800000A2E0C06282900000A735000000A2A1201FE150500001B072A22020328360000062A22020328360000062A13300200260000000A000011020328330000060A067E2800000A2E0C06282C00000A735100000A2A1201FE150600001B072A22020328390000062A22020328390000062A13300200260000000B000011020328330000060A067E2800000A2E0C06282F00000A735200000A2A1201FE150700001B072A220203283C0000062A220203283C0000062A13300200260000000C000011020328330000060A067E2800000A2E0C06283200000A735300000A2A1201FE150800001B072A220203283F0000062A220203283F0000062A133002002300000005000011020328330000060A067E2800000A2E0C066F1D00000A733700000A2A14283500000A2A22020328420000062A22020328420000062A00000013300200260000000D000011020328330000060A067E2800000A2E0C06283900000A735400000A2A1201FE150900001B072A22020328450000062A22020328450000062A260203285500000A172A22020328480000062A22020328480000062A4E022865000006177D090000040271030000022A1E02284B0000062A1E02284B0000062A033003005E0000000000000003726D0200706F5600000A2C1F03728B0200706F5600000A2D127E1800000472B1020070036F5700000A1001030228650000067B06000004285800000A2C18022865000006147D08000004022865000006037D060000040271030000022A220203284E0000062A220203284E0000062A4E022865000006177D0D0000040271030000022A1E0228510000062A1E0228510000062A5E04285C01000610020203046F5900000A0428F30000062A2602030428540000062A2602030428540000062A2602030428540000062A2602030428570000062A2602030428570000062A660203D00A00001B285A00000A0F02285B00000A28F30000062A52020F01285C00000A283500000A04285A0000062A52020F01285C00000A283500000A04285A0000062A0000133004001C000000050000110F027E1600000428330000060A0203066F5900000A0628F30000062A26020304285D0000062A26020304285D0000062A660203D060000001285A00000A0F02285C00000A28F30000062A2602030428600000062A2602030428600000062A120203582A1E027B150000042A0013300300210000000E0000117E1C000004027B1400000412006F5D00000A2D0B7201000070732400000A7A062A0A162A133001000A0000000F0000111200FE1503000002062A2E7E1B0000046F5E00000A2A1A28680000062A1A28680000062A2E7E1C0000046F5F00000A2A133004003D0000000E0000110228650000060A067E1D000004067B06000004067B110000046F6000000A6F050100067D0800000406177D0B00000402287D000006260271030000022A1E02286C0000062A1E02286C0000062A2E7E1E0000047B240000042A1E027B140000042A1A28030100062A1A28710000062A1A28710000062A0000133003006B0000001000001102726D0200706F5600000A2C1F02728B0200706F5600000A2D127E1800000472B1020070026F5700000A10001202FE150300000212027E1E0000046F3A0100067D14000004080A73010000060D09027D06000004090B7E1C00000412007B14000004076F6100000A26062A1E0228740000062A1E026F6200000A2A1E026F6300000A2A000330030073000000000000007E1B0000047B6400000A280100002B7E190000042D1114FE06FF000006736600000A80190000047E190000046F6700000A7E1C0000047B6800000A280200002B7E1A0000042D1114FE0600010006736900000A801A0000047E1A0000046F6A00000A7E1F0000047C440000042866010006172A1A28760000062A1A28760000062A000000133003003F000000110000110228650000067B080000042C1D7E1B0000040228650000067B080000047B2000000412006F6B00000A267E1C000004027B1400000412016F6C00000A26172A1E0228790000062A1E0228790000062A001330040042000000120000110F00285C00000A178D650000010C08161F3B9D086F6D00000A0A1201FE1503000002120106169A286E00000A7D14000004120106179A286E00000A7D15000004072A0000133002004700000013000011027B150000042C380228650000060A06027B150000046F040000060B06077B640000047D120000040228650000067B0F000004076FC401000602167D150000040271030000022A1E02287D0000062A1E02287D0000062A86027B140000048C5D00000172CD020070027B150000048C5D000001286F00000A2A0000001B3002004E0000001400001172D1020070734100000A0A066F4200000A720103007006734300000A0B071A6F7000000A076F4400000A26DE0A072C06076F2300000ADCDE0A062C06066F2300000ADC170CDE0526160CDE00082A00000128000002001D00102D000A0000000002000B002E39000A00000000000000004747000501000001133004005E000000150000110F02285C00000A6F7100000A722B0300706F7200000A2D1372390300700F02285C00000A287300000A2B070F02285C00000A0A0228650000067B100000040F01285C00000A066F780100060203D030000001285A00000A1428F30000062A3A020304283500000A28820000062A3A020304283500000A28820000062A7A0203D05D000001285A00000A0F02287400000A8C5D00000128F30000062A2602030428850000062A2602030428850000062A7A0203D067000001285A00000A0F02287500000A8C6700000128F30000062A2602030428880000062A2602030428880000062A7A0203D00C000001285A00000A0F02287600000A8C0C00000128F30000062A26020304288B0000062A26020304288B0000062A7A0203D04A000001285A00000A0F02287700000A8C4A00000128F30000062A26020304288E0000062A26020304288E0000062A7A0203D068000001285A00000A0F02287800000A8C6800000128F30000062A2602030428910000062A2602030428910000062A620203D00A00001B285A00000A046F7900000A28F30000062A2602030428940000062A2602030428940000062A7A0203D069000001285A00000A0F02287A00000A8C6900000128F30000062A2602030428970000062A2602030428970000062A7A0203D06A000001285A00000A0F02287B00000A8C6A00000128F30000062A26020304289A0000062A26020304289A0000062A00001330040037000000160000110203D00500001B285A00000A0F02287C00000A2D0E0F02287B00000A735000000A2B091200FE150500001B068C0500001B28F30000062A26020304289D0000062A26020304289D0000062A001330040037000000170000110203D01300001B285A00000A0F02287D00000A2D0E0F02287600000A737E00000A2B091200FE151300001B068C1300001B28F30000062A2602030428A00000062A2602030428A00000062A001330040037000000180000110203D00700001B285A00000A0F02287F00000A2D0E0F02287400000A735200000A2B091200FE150700001B068C0700001B28F30000062A2602030428A30000062A2602030428A30000062A001330040037000000190000110203D00900001B285A00000A0F02288000000A2D0E0F02287A00000A735400000A2B091200FE150900001B068C0900001B28F30000062A2602030428A60000062A2602030428A60000062A00133004009D0000001A00001104285C01000610020F01285C00000A72570300706F5600000A2C710F01285C00000A178D600000010C08167257030070A208176F8100000A0B078E6917331C046F5900000A0A0F01285C00000A6F7100000A283500000A10012B38078E6918331507169A28600100060A07179A283500000A10012B1D725B030070038C12000001284F00000A732400000A7A046F5900000A0A0203060428F30000062A2602030428A90000062A2602030428A90000062A2602030428A90000062A2602030428AC0000062A2602030428AC0000062A1E0228060000062A1E0228AF0000062A1E0228AF0000062A1E0228090000062A1E0228B20000062A1E0228B20000062A1E02280C0000062A1E0228B50000062A1E0228B50000062A1E02280F0000062A1E0228B80000062A1E0228B80000062A1E0228120000062A1E0228BB0000062A1E0228BB0000062A1E0228150000062A1E0228BE0000062A1E0228BE0000062A1E0228180000062A1E0228C10000062A1E0228C10000062A1E02281B0000062A1E0228C40000062A1E0228C40000062A00133001000F000000050000110F0028060000060A06285F0100062A00133003001F000000080000110274330000010A0306166F4E00000A7460000001733700000A81120000012A001330020024000000050000110228F40000060A062C14067E2800000A2E0C06740A00001B738200000A2A288300000A2A1E0228C90000062A1E0228C90000062A1330020024000000050000110228F40000060A062C14067E2800000A2E0C06740A00001B738400000A2A7E8500000A2A1E0228CC0000062A1E0228CC0000062A1330020024000000050000110228F40000060A062C14067E2800000A2E0C06288600000A738700000A2A7E8800000A2A1E0228CF0000062A1E0228CF0000062A1330020024000000050000110228F40000060A062C14067E2800000A2E0C06A54A000001738900000A2A7E8A00000A2A1E0228D20000062A1E0228D20000062A1E0228C90000062A1E0228D50000062A1E0228D50000062A1E0228CF0000062A1E0228D80000062A1E0228D80000062A1E0228D20000062A1E0228DB0000062A1E0228DB0000062A1E0228CC0000062A1E0228DE0000062A1E0228DE0000062A660203D00A00001B285A00000A0F02285B00000A28F30000062A52020F01285C00000A283500000A0428E10000062A52020F01285C00000A283500000A0428E10000062A620203D00A00001B285A00000A046F7900000A28F30000062A2602030428E40000062A2602030428E40000062A00000013300400370000001B0000110203D01400001B285A00000A0F02288B00000A2D0E0F02287700000A738C00000A2B091200FE151400001B068C1400001B28F30000062A2602030428E70000062A2602030428E70000062A7A0203D067000001285A00000A0F02287500000A8C6700000128F30000062A2602030428EA0000062A2602030428EA0000062A000013300400370000001C0000110203D00800001B285A00000A0F02288D00000A2D0E0F02287800000A735300000A2B091200FE150800001B068C0800001B28F30000062A2602030428ED0000062A2602030428ED0000062A660203D060000001285A00000A0F02285C00000A28F30000062A2602030428F00000062A2602030428F00000062A00000013300300B10000001D0000110F01285C00000A0A0228650000060B0271030000020C027B150000042D60077B1100000406046F8E00000A2C0F077B1200000406056F810100062B731204FE15030000021204027B140000047D140000041204076F020000067D1500000411040C0712027B150000046F030000060D097B6400000406056F780100062B31077B0B0000042D0E077B1100000406046F8E00000A260712027B150000046F040000060D097B6400000406056F78010006082A0000001B300400510200001E0000110228650000060A288F00000A0B06077D0E000004067B080000042C0C067B08000004077D23000004077E1D0000047B28000004289000000A2C06280301000626067B060000040C067B100000046F79010006163EE400000072B60400700D731800000A1304067B100000046F85010006130A3884000000110A6F1F00000AA53600000113051104728B0700701205282100000A289100000A72BB070070287300000A6F9200000A11041205282000000A72C1070070289100000A6F9200000A11041A8D01000001130B110B161205282000000AA2110B1772FF070070A2110B187E17000004A2110B19722B080070A2110B289300000A6F9200000A110A6F2200000A3A70FFFFFFDE15110A754B000001130C110C2C07110C6F2300000ADC0972B1020070289400000A1104289500000A6F5700000A08287300000A0C027B150000042C1006027B150000046F0400000613062B1473BA01000613061106067B120000047D64000004067B0D0000042C6C141308289600000A2C10289600000A130911096F9700000A1308067B080000042D23067E1D00000408067B110000046F6000000A6F050100067D0800000406177D0B000004067B080000047B2100000411067B640000046F9800000A1307DE5011082C0711086F9900000ADC067B080000042D23067E1D00000408067B110000046F6000000A6F050100067D0800000406177D0B000004067B080000047B2100000411067B640000046F9800000A1307027B150000042C120228650000067B0F00000411066FC40100060228650000067B090000042C070228790000062611072A000000011C000002007200970901150000000002008A0146D0010C0000000013300200260000000E0000110228650000060A06177D01000004067B040000046F3E00000A036F9200000A0271030000022A22020328F50000062A22020328F50000062A1B3004007E0000001F0000110F02285C00000A6F7100000A722B0300706F7200000A2D1372390300700F02285C00000A287300000A2B070F02285C00000A0A7202010070734100000A0C086F4200000A0608734300000A0D09289A00000A0BDE0A092C06096F2300000ADCDE0A082C06086F2300000ADC0203D030000001285A00000A0728F30000062A0000011C000002004C000955000A0000000002003E002361000A000000003A020304283500000A28F80000062A3A020304283500000A28F80000062A4E022865000006177D020000040271030000022A1E0228FB0000062A1E0228FB0000062A00001B3003009D010000200000110F0028650000067B020000042C120F0028650000067B06000004283D00000A2A0F0028650000067B030000042C130F0028650000067B0300000474300000010A2A0F0028650000067B0100000439420100000F0028060000060A0F002865000006067D030000040674300000010F0028650000067B040000046F3E00000A166F3F00000A284000000A0B7202010070734100000A0C086F4200000A0708734300000A0D096F4400000A26DE0A092C06096F2300000ADCDE0A082C06086F2300000ADC0F002865000006167D01000004067430000001130411046F4500000A72360100706F4600000A2611046F4500000A72360100706F4700000A166F4800000A1613052B2111046F4900000A11056F4A00000A1611058C5D0000016F4B00000A110517581305110511046F4900000A6F4C00000A32CF7202010070734100000A130611066F4200000A725D080070028C0300000272B3080070286F00000A1106734300000A13071107176F7000000A11076F4400000A26DE0C11072C0711076F2300000ADCDE0C11062C0711066F2300000ADC2A0F0028060000060A2A000000013400000200A30009AC000A000000000200950023B8000A00000000020067011279010C00000000020042014587010C000000007E72230900708016000004722F0900708017000004725D09007080180000042AF61F64739B00000A801B0000041F64739C00000A801C0000047368010006801F0000047327010006801D0000047E1D000004801E0000042881000006262A00001B30030033020000210000117E1F0000047C44000004286701000639070200007E1D000004288F00000A130B120B7E1D0000047B25000004289D00000A7D28000004288F00000A130C120C7E1D0000047B26000004289E00000A0A731800000A0B7E1B0000047B6400000A130D16130E38A6000000110D110E9A0C086F9F00000A086FA000000A6FA100000A130F2B29120F28A200000A0D120328A300000A7B230000040628A400000A2C0D07120328A500000A6F9200000A120F28A600000A2DCEDE0E120FFE161700001B6F2300000ADC076FA700000A13102B17121028A800000A1304086FA000000A11046FA900000A26121028AA00000A2DE0DE0E1210FE161900001B6F2300000ADCDE07086F6200000ADC110E1758130E110E110D8E693F4FFFFFFF288F00000A131112117E1D0000047B27000004289E00000A130573AB00000A13067E1C0000047B6800000A131216131338BC000000111211139A130711076FAC00000A11076FAD00000A6FAE00000A13142B39121428AF00000A1308120828B000000A7B0E000004110528A400000A2C1B120828B000000A167D0A0000041106120828B100000A6FB200000A121428B300000A2DBEDE0E1214FE161C00001B6F2300000ADC11066FB400000A13152B18121528B500000A130911076FAD00000A11096FB600000A26121528B700000A2DDFDE0E1215FE161E00001B6F2300000ADCDE0811076F6300000ADC111317581313111311128E693F39FFFFFF17130ADE1516130ADE107E1F0000047C440000042866010006DC110A2A0041AC0000020000008200000036000000B80000000E0000000000000002000000CE00000024000000F20000000E00000000000000020000006F00000093000000020100000700000000000000020000006B01000046000000B10100000E0000000000000002000000C801000025000000ED0100000E000000000000000200000056010000A7000000FD01000008000000000000000200000000000000200200002002000010000000000000008202281B00000A02037D2000000402047D2100000402288F00000A7D230000042A4E020304D001000001285A00000A284C0100062A52020314D001000001285A00000A16280300002B2A3A020304280400002B28080100062A00000013300500460000002200001173B900000A0A160B2B2206725E0B0070078C5D00000172620B0070286F00000A04079A6FBA00000A0717580B07048E6932D8020306D001000001285A00000A18280500002B2A52020304D001000001285A00000A17280600002B2A00133005002600000023000011020373B900000A0A0672660B0070046FBA00000A06D001000001285A00000A1B280700002B2A0000133005003200000023000011020373B900000A0A0672660B0070046FBA00000A06726E0B0070056FBA00000A06D001000001285A00000A1B280800002B2A0000133005003F00000023000011020373B900000A0A0672660B0070046FBA00000A06726E0B0070056FBA00000A0672760B00700E046FBA00000A06D001000001285A00000A1B280900002B2A00133005004C00000023000011020373B900000A0A0672660B0070046FBA00000A06726E0B0070056FBA00000A0672760B00700E046FBA00000A06727E0B00700E056FBA00000A06D001000001285A00000A1B280A00002B2A133005005900000023000011020373B900000A0A0672660B0070046FBA00000A06726E0B0070056FBA00000A0672760B00700E046FBA00000A06727E0B00700E056FBA00000A0672860B00700E066FBA00000A06D001000001285A00000A1B280B00002B2A000000133005006600000023000011020373B900000A0A0672660B0070046FBA00000A06726E0B0070056FBA00000A0672760B00700E046FBA00000A06727E0B00700E056FBA00000A0672860B00700E066FBA00000A06728E0B00700E076FBA00000A06D001000001285A00000A1B280C00002B2A0000133005007300000023000011020373B900000A0A0672660B0070046FBA00000A06726E0B0070056FBA00000A0672760B00700E046FBA00000A06727E0B00700E056FBA00000A0672860B00700E066FBA00000A06728E0B00700E076FBA00000A0672960B00700E086FBA00000A06D001000001285A00000A1B280D00002B2A00133005008000000023000011020373B900000A0A0672660B0070046FBA00000A06726E0B0070056FBA00000A0672760B00700E046FBA00000A06727E0B00700E056FBA00000A0672860B00700E066FBA00000A06728E0B00700E076FBA00000A0672960B00700E086FBA00000A06729E0B00700E096FBA00000A06D001000001285A00000A1B280E00002B2A133005008D00000023000011020373B900000A0A0672660B0070046FBA00000A06726E0B0070056FBA00000A0672760B00700E046FBA00000A06727E0B00700E056FBA00000A0672860B00700E066FBA00000A06728E0B00700E076FBA00000A0672960B00700E086FBA00000A06729E0B00700E096FBA00000A0672A60B00700E0A6FBA00000A06D001000001285A00000A1B280F00002B2A8A02282E0100060304281000002B2D1172AE0B007003284F00000A732400000A7A022AEA026FBB00000A72E30C0070285800000A2C26026FBB00000A723B0D0070285800000A2C14026FBB00000A727F0D00706F7200000A16FE012A162A00133003004C00000024000011030C160D2B3E08099A0A066FBC00000A7E320000042D1114FE064501000673BD00000A80320000047E32000004281100002B280400002B0B0207281C010006260917580D09088E6932BC022A1E026FBC00000A2AEA026FBB00000A72E30C0070285800000A2C26026FBB00000A723B0D0070285800000A2C14026FBB00000A727F0D00706F7200000A16FE012A162A0013300300600000002500001128BF00000A6FC000000A0A067E330000042D1114FE064601000673C100000A80330000047E33000004281200002B7E340000042D1114FE064701000673BD00000A80340000047E34000004281100002B280400002B0B0207281C01000626022A4A02D048000001285A00000A166FC300000A2A00133003004E00000026000011030C160D2B4008099A0A061F386FC400000A7E350000042D1114FE064801000673C500000A80350000047E35000004281300002B281400002B0B02072817010006260917580D09088E6932BA022A1E02281B00000A2A000013300300160000002700001173C600000A0A06027B6A00000417281500002B26062A4204027B6A00000417281500002B26042A00133005006300000028000011030D1613042B53140A140B73CE0100060C080911049A7D6A000004022828010006087B6A0000046FC700000A062D0D08FE06CF01000673C800000A0A06072D0D08FE06D001000673C900000A0B07281600002B261104175813041104098E6932A6022A9E02282A010006030428CA00000A281700002B2D1172AE0B007003284F00000A732400000A7A022A8A02282C0100060304281800002B2D1172AE0B007003284F00000A732400000A7A022A00001330020051000000290000110313041613052B3F110411059A0A061F186FCB00000A0B061F186FCC00000A0C061F186FC400000A0D0207281B010006260208281B010006260209281B01000626110517581305110511048E6932B9022A1E02281B00000A2A00000013300300160000002A00001173CD00000A0A06027B6B00000417281900002B26062A4204027B6B00000417281900002B26042A0013300500630000002B000011030D1613042B53140A140B73D10100060C080911049A7D6B000004022830010006087B6B0000046FC700000A062D0D08FE06D201000673CE00000A0A06072D0D08FE06D301000673CF00000A0B07281A00002B261104175813041104098E6932A6022A1E02281B00000A2A1E027B6C0000042A1E027B6C0000042A0013300500860000002C000011030D1613042B76140A140B73D40100060C080911049A7D6C000004022832010006087B6C0000046FC700000A087B6C000004062D0D08FE06D501000673D000000A0A06281B00002B26022832010006087B6C0000046FBB00000A087B6C000004072D0D08FE06D601000673D000000A0B07281B00002B261104175813041104098E693283022A000013300300250000002D000011030C160D2B1708099A0A02282E010006061201281C00002B260917580D09088E6932E3022A0000000330010044000000000000000228280100066FD100000A02282A0100066FD200000A02282C0100066FD300000A02282E0100066FD400000A0228300100066FD500000A0228320100066FD600000A022A133002002500000024000011030C160D2B1708099A0A066FBC00000A0B02072826010006260917580D09088E6932E3022A4A02D048000001285A00000A166FC300000A2A133003004E00000026000011030C160D2B4008099A0A061F386FC400000A7E360000042D1114FE064901000673C500000A80360000047E36000004281300002B281400002B0B02072821010006260917580D09088E6932BA022A0000133003003A0000002E000011030D1613042B2A0911049A0A022828010006066FC700000A12016FD700000A2C0A07061202281D00002B261104175813041104098E6932CF022A000013300300250000002F000011030C160D2B1708099A0A02282A010006061201281E00002B260917580D09088E6932E3022A000000133003002500000030000011030C160D2B1708099A0A02282C010006061201281F00002B260917580D09088E6932E3022A0000001330020051000000290000110313041613052B3F110411059A0A061F186FCB00000A0B061F186FCC00000A0C061F186FC400000A0D020728250100062602082825010006260209282501000626110517581305110511048E6932B9022A000000133003003A00000031000011030D1613042B2A0911049A0A022830010006066FC700000A12016FD800000A2C0A07061202282000002B261104175813041104098E6932CF022A0000133003003E00000032000011030C160D2B3008099A0A022832010006066FC700000A1201282100002B26022832010006066FBB00000A1201282100002B260917580D09088E6932CA022A000013300300CF000000330000110220000000807D240000040223000000000000144028D900000A7D250000040223000000000000004028DA00000A7D260000040223000000000000084028D900000A7D2700000402281B00000A0273DB00000A28290100060273DC00000A282B0100060273DD00000A282D0100060273DE00000A282F0100060273DF00000A28310100060273B900000A2833010006021F7028350100060202285900000A6FBB00000A28370100060216283901000602283B01000602288F00000A0A1200027B25000004289D00000A7D280000042A1E027B290000042A2202037D290000042A1E027B2A0000042A2202037D2A0000042A1E027B2B0000042A2202037D2B0000042A1E027B2C0000042A2202037D2C0000042A1E027B2D0000042A2202037D2D0000042A1E027B2E0000042A2202037D2E0000042A1E027B2F0000042A2202037D2F0000042A1E027B300000042A2202037D300000042A1E027B310000042A2202037D310000042A1B30030038000000020000117E1F0000047C43000004286501000602257B2400000417587D24000004027B240000040ADE107E1F0000047C430000042866010006DC062A01100000020000002626001000000000133004003C1500003400001102178D0D0000010A0616D064000001285A00000AA20628160100062602178D0D0000010B0716D076000001285A00000AA20728160100062602178D0D0000010C0816D077000001285A00000AA208281A0100062602178D0D0000010D0916D067000001285A00000AA209281C0100062602178D0D0000011304110416D069000001285A00000AA21104281C0100062602178D0D0000011305110516D065000001285A00000AA21105281C0100062602178D0D0000011306110616D078000001285A00000AA21106281C0100062602178D0D0000011307110716D079000001285A00000AA21107281C0100062602178D0D0000011308110816D05D000001285A00000AA21108281C0100062602178D0D0000011309110916D07A000001285A00000AA21109281C0100062602178D0D000001130A110A16D06A000001285A00000AA2110A281C0100062602178D0D000001130B110B16D001000001285A00000AA2110B281C0100062602178D0D000001130C110C16D07B000001285A00000AA2110C281C0100062602178D0D000001130D110D16D068000001285A00000AA2110D281C0100062602178D0D000001130E110E16D060000001285A00000AA2110E281C0100062602178D0D000001130F110F16D07C000001285A00000AA2110F281C0100062602178D0D0000011310111016D07D000001285A00000AA21110281C0100062602178D0D0000011311111116D07E000001285A00000AA21111281C0100062602178D0D0000011312111216D04C000001285A00000AA21112281C0100062602178D0D0000011313111316D07F000001285A00000AA21113281C0100062602178D0D0000011314111416D035000001285A00000AA21114281C0100062602178D0D0000011315111516D080000001285A00000AA21115281C0100062602178D0D0000011316111616D00C000001285A00000AA21116281C0100062602178D0D0000011317111716D081000001285A00000AA21117281C0100062602178D0D0000011318111816D082000001285A00000AA21118281C0100062602178D0D0000011319111916D009000001285A00000AA21119281C0100062602178D0D000001131A111A16D06C000001285A00000AA2111A281C0100062602178D0D000001131B111B16D083000001285A00000AA2111B281C0100062602178D0D000001131C111C16D084000001285A00000AA2111C281C0100062602178D0D000001131D111D16D077000001285A00000AA2111D281C0100062602178D0D000001131E111E16D085000001285A00000AA2111E281C0100062602178D0D000001131F111F16D00D000001285A00000AA2111F281C0100062602178D0D0000011320112016D086000001285A00000AA21120281C0100062602178D0D0000011321112116D087000001285A00000AA21121281C0100062602178D0D0000011322112216D088000001285A00000AA21122281C0100062602178D0D0000011323112316D006000001285A00000AA21123281C0100062602178D0D0000011324112416D029000001285A00000AA21124281C0100062602178D0D0000011325112516D089000001285A00000AA21125281C0100062602178D0D0000011326112616D01C000001285A00000AA21126281C0100062602178D0D0000011327112716D00B000001285A00000AA21127281C0100062602178D0D0000011328112816D08A000001285A00000AA21128281C0100062602178D0D0000011329112916D08B000001285A00000AA21129281C0100062602178D0D000001132A112A16D08C000001285A00000AA2112A281C0100062602178D0D000001132B112B16D08D000001285A00000AA2112B281C0100062602178D0D000001132C112C16D08E000001285A00000AA2112C281C0100062602178D0D000001132D112D16D08F000001285A00000AA2112D281C0100062602178D0D000001132E112E16D090000001285A00000AA2112E281C0100062602178D0D000001132F112F16D091000001285A00000AA2112F281C0100062602178D0D0000011330113016D092000001285A00000AA21130281C0100062602178D0D0000011331113116D093000001285A00000AA21131281C0100062602178D0D0000011332113216D094000001285A00000AA21132281C0100062602178D0D0000011333113316D095000001285A00000AA21133281C0100062602178D0D0000011334113416D096000001285A00000AA21134281C0100062602178D0D0000011335113516D097000001285A00000AA21135281C0100062602178D0D0000011336113616D098000001285A00000AA21136281C0100062602178D0D0000011337113716D099000001285A00000AA21137281C0100062602178D0D0000011338113816D09A000001285A00000AA21138281C0100062602178D0D0000011339113916D09B000001285A00000AA21139281C0100062602178D0D000001133A113A16D09C000001285A00000AA2113A281C0100062602178D0D000001133B113B16D09D000001285A00000AA2113B281C0100062602178D0D000001133C113C16D09E000001285A00000AA2113C281C0100062602178D0D0000010A0616D09F000001285A00000AA206281C0100062602178D0D0000010A0616D0A0000001285A00000AA206281C0100062602178D0D0000010A0616D0A1000001285A00000AA206281C0100062602178D0D0000010A0616D0A2000001285A00000AA206281C0100062602178D0D0000010A0616D0A3000001285A00000AA206281C0100062602178D0D0000010A0616D0A4000001285A00000AA206281C0100062602178D0D0000010A0616D0A5000001285A00000AA206281C0100062602178D0D0000010A0616D0A6000001285A00000AA206281C0100062602178D0D0000010A0616D0A7000001285A00000AA206281C0100062602178D0D0000010A0616D0A8000001285A00000AA206281C0100062602178D0D0000010A0616D0A9000001285A00000AA206281C0100062602178D0D0000010A0616D0AA000001285A00000AA206281C0100062602178D0D0000010A0616D0AB000001285A00000AA206281C0100062602178D0D0000010A0616D0AC000001285A00000AA206281C0100062602178D0D0000010A0616D0AD000001285A00000AA206281C0100062602178D0D0000010A0616D0AE000001285A00000AA206281C0100062602178D0D0000010A0616D0AF000001285A00000AA206281C0100062602178D0D0000010A0616D0B0000001285A00000AA206281C0100062602178D0D0000010A0616D0B1000001285A00000AA206281C0100062602178D0D0000010A0616D0B2000001285A00000AA206281C0100062602178D0D0000010A0616D0B3000001285A00000AA206281C0100062602178D0D0000010A0616D0B4000001285A00000AA206281C0100062602178D0D0000010A0616D076000001285A00000AA206281C0100062602178D0D0000010A0616D0B5000001285A00000AA206281C0100062602178D0D0000010A0616D074000001285A00000AA206281C0100062602178D0D0000010A0616D025000001285A00000AA206281C0100062602178D0D0000010A0616D0B6000001285A00000AA206281C0100062602178D0D0000010A0616D075000001285A00000AA206281C0100062602178D0D0000010A0616D027000001285A00000AA206281C0100062602178D0D0000010A0616D026000001285A00000AA206281C0100062602178D0D0000010A0616D02E000001285A00000AA206281C0100062602178D0D0000010A0616D0B7000001285A00000AA206281C0100062602178D0D0000010A0616D0B8000001285A00000AA206281C0100062602178D0D0000010A0616D0B9000001285A00000AA206281C0100062602178D0D0000010A0616D0BA000001285A00000AA206281C0100062602178D0D0000010A0616D0BB000001285A00000AA206281C0100062602178D0D0000010A0616D0BC000001285A00000AA206281C0100062602178D0D0000010A0616D0BD000001285A00000AA206281C0100062602178D0D0000010A0616D0BE000001285A00000AA206281C0100062602178D0D0000010A0616D0BF000001285A00000AA206281C0100062602178D0D0000010A0616D0C0000001285A00000AA206281C0100062602178D0D0000010A0616D0C1000001285A00000AA206281C0100062602178D0D0000010A0616D0C2000001285A00000AA206281C0100062602178D0D0000010A0616D0C3000001285A00000AA206281C0100062602178D0D0000010A0616D06E000001285A00000AA206281C0100062602178D0D0000010A0616D0C4000001285A00000AA206281C0100062602178D0D0000010A0616D0C5000001285A00000AA206281C0100062602178D0D0000010A0616D0C6000001285A00000AA206281C0100062602178D0D0000010A0616D0C7000001285A00000AA206281C0100062602178D0D0000010A0616D0C8000001285A00000AA206281C0100062602178D0D0000010A0616D0C9000001285A00000AA206281C0100062602178D0D0000010A0616D0CA000001285A00000AA206281C0100062602178D0D0000010A0616D0CB000001285A00000AA206281C0100062602178D0D0000010A0616D0CC000001285A00000AA206281C0100062602178D0D0000010A0616D0CD000001285A00000AA206281C0100062602178D0D0000010A0616D0CE000001285A00000AA206281C0100062602178D0D0000010A0616D0CF000001285A00000AA206281C0100062602178D0D0000010A0616D0D0000001285A00000AA206281C0100062602178D0D0000010A0616D0D1000001285A00000AA206281C0100062602178D0D0000010A0616D0D2000001285A00000AA206281C0100062602178D0D0000010A0616D0D3000001285A00000AA206281C0100062602178D0D0000010A0616D0D4000001285A00000AA206281C0100062602178D0D0000010A0616D0D5000001285A00000AA206281C0100062602178D0D0000010A0616D0D6000001285A00000AA206281C0100062602178D0D0000010A0616D0D7000001285A00000AA206281C0100062602178D0D0000010A0616D0D8000001285A00000AA206281C0100062602178D0D0000010A0616D0D9000001285A00000AA206281C0100062602178D0D0000010A0616D0DA000001285A00000AA206281C0100062602178D0D0000010A0616D0DB000001285A00000AA206281C0100062602178D0D0000010A0616D032000001285A00000AA206281C0100062602178D0D0000010A0616D033000001285A00000AA206281C0100062602178D0D0000010A0616D02F000001285A00000AA206281C0100062602178D0D0000010A0616D030000001285A00000AA206281C0100062602178D0D0000010A0616D0DC000001285A00000AA206281C0100062602178D0D0000010A0616D05A000001285A00000AA206281C0100062602178D0D0000010A0616D058000001285A00000AA206281C0100062602178D0D0000010A0616D0DD000001285A00000AA206281C0100062602178D0D0000010A0616D0DE000001285A00000AA206281C0100062602178D0D0000010A0616D0DF000001285A00000AA206281C0100062602178D0D0000010A0616D059000001285A00000AA206281C0100062602178D0D0000010A0616D057000001285A00000AA206281C0100062602178D0D0000010A0616D0E0000001285A00000AA206281C0100062602178D0D0000010A0616D0E1000001285A00000AA206281C0100062602178D0D0000010A0616D0E2000001285A00000AA206281C0100062602178D0D0000010A0616D0E3000001285A00000AA206281C0100062602178D0D0000010A0616D0E4000001285A00000AA206281C0100062602178D0D0000010A0616D0E5000001285A00000AA206281C0100062602178D0D0000010A0616D0E6000001285A00000AA206281C0100062602178D0D0000010A0616D0E7000001285A00000AA206281C0100062602178D0D0000010A0616D0E8000001285A00000AA206281C0100062602178D0D0000010A0616D0E9000001285A00000AA206281C0100062602178D0D0000010A0616D0EA000001285A00000AA206281C0100062602178D0D0000010A0616D0EB000001285A00000AA206281C0100062602178D0D0000010A0616D0EC000001285A00000AA206281C0100062602178D0D0000010A0616D0ED000001285A00000AA206281C0100062602178D0D0000010A0616D0EE000001285A00000AA206281C0100062602178D0D0000010A0616D0EF000001285A00000AA206281C0100062602178D0D0000010A0616D0F0000001285A00000AA206281C0100062602178D0D0000010A0616D0F1000001285A00000AA206281C0100062602178D0D0000010A0616D0F2000001285A00000AA206281C0100062602178D0D0000010A0616D0F3000001285A00000AA206281C0100062602178D0D0000010A0616D0F4000001285A00000AA206281C0100062602178D0D0000010A0616D0F5000001285A00000AA206281C0100062602178D0D0000010A0616D0F6000001285A00000AA206281C0100062602178D0D0000010A0616D0F7000001285A00000AA206281C0100062602178D0D0000010A0616D0F8000001285A00000AA206281C0100062602178D0D0000010A0616D0F9000001285A00000AA206281C0100062602178D0D0000010A0616D0FA000001285A00000AA206281C0100062602178D0D0000010A0616D0FB000001285A00000AA206281C0100062602178D0D0000010A0616D0FC000001285A00000AA206281C0100062602178D0D0000010A0616D0FD000001285A00000AA206281C0100062602178D0D0000010A0616D0FE000001285A00000AA206281C0100062602178D0D0000010A0616D0FF000001285A00000AA206281C0100062602178D0D0000010A0616D000010001285A00000AA206281C0100062602178D0D0000010A0616D001010001285A00000AA206281C0100062602178D0D0000010A0616D002010001285A00000AA206281C0100062602178D0D0000010A0616D003010001285A00000AA206281C0100062602178D0D0000010A0616D004010001285A00000AA206281C0100062602178D0D0000010A0616D005010001285A00000AA206281C0100062602178D0D0000010A0616D004000002285A00000AA206281C0100062602178D0D0000010A0616D015000002285A00000AA206281C0100062602178D0D0000010A0616D066000001285A00000AA206281C0100062602178D0D0000010A0616D006010001285A00000AA206281C0100062602178D0D0000010A0616D007010001285A00000AA206281C0100062602178D0D0000010A0616D017000002285A00000AA20628160100062602178D0D0000010A0616D056000001285A00000AA20628160100062602178D0D0000010A0616D0C6000001285A00000AA206281A010006262A220203282200002B2A26020304282300002B2A26020304282400002B2A66020314D02F00001B285A00000A16282500002B6FE000000A2A001B300500B00000003500001173B900000A0C0872660B0070046F5900000A6FBA00000A080A0475040000012C750474040000016FE100000A0D2B2A096F1F00000AA5360000010B061201282000000A6F1D00000A1201282100000A6F5900000A6FBA00000A096F2200000A2DCEDE1409754B000001130411042C0711046F2300000ADC020306D02F00001B285A00000A19282600002B0474040000016FE200000A2A020306D02F00001B285A00000A1B282700002B046FE300000A2A0110000002002D00366300140000000013300500630000003600001173DD00000A0A73B900000A0B160C2B33725E0B0070088C5D00000172620B0070286F00000A0D060904089A6FE400000A070904089A6F5900000A6FBA00000A0817580C08048E6932C7020307D02F00001B285A00000A17282600002B066FE200000A2A26020314282800002B2A3A020304282900002B282800002B2A133005009D0000003700001173B900000A0AD02F00001B285A00000A0B076FE500000A0C076FBB00000A72D30D00706F7200000A0D092D0808282A00002B2B01141304092D07088E6917592B03088E6913051613062B40042C171106048E693010060411069A0811069A6FBA00000A2B2006725E0B007011068C5D00000172620B0070286F00000A0811069A6FBA00000A1106175813061106110532BA02030611041A282B00002B2A1E026FBB00000A2A000000133006007B000000380000111D8D600000010A0616026F36010006A2061772CD020070A2061804A2061972CD020070A2061A036FBB00000AA2061B72CD020070A2061C052C3472CD020070056FE700000A7E380000042D1114FE065401000673E800000A80380000047E38000004282C00002B289500000A2B0572EF0D0070A20628EA00000A2A00133002005F00000039000011042D02142A030B0717594505000000020000000C00000016000000200000002A0000002B320204284F0100060A2B2E020428500100060A2B24020428510100060A2B1A020428520100060A2B10020428530100060A2B0673EB00000A0A062A1E02281B00000A2A1E02281B00000A2A0013300300650000003A000011027B6E0000047B6D000004027B6F0000040C120228EC00000A6F5900000A027B6F0000040D120328ED00000A6FEE00000A0A06027B6F0000041304120428EC00000A28CA00000A28EF00000A0B027B6E0000047B6D0000047BF000000A076FF100000A062A0000001B300400860100003B00001173D7010006130A02D01500001B285A00000A0304284A0100060A7E1B0000040612016FF200000A2C02072A110A73F300000A13091109026F280100066FF400000A1109026F2E0100066FF500000A1109026F300100066FF600000A1109026F320100066FF700000A1109026F340100067DF800000A1109026F380100067DF900000A11097D6D000004026F2A0100066FFA00000A163117110A7B6D000004026F2A01000673FB00000A7DFC00000A026F2C0100066FFD00000A163176026F2C0100066FFE00000A130B2B4E140C73D80100060D09110A7D6E00000409120B28FF00000A7D6F000004110A7B6D000004097B6F000004130C120C28ED00000A082D0D09FE06D9010006730001000A0C08730101000A6F0201000A120B280301000A2DA9DE0E120BFE163800001B6F2300000ADC110A7B6D0000041704284B010006130403280401000A1305110A7B6D000004110505280501000A130611061104282D00002B6F0701000A1307061107730401000613087E1B0000040611086F0801000A2611082A0000011000000200C9005B24010E000000001E02281B00000A2A1E02281B00000A2A13300300650000003A000011027B0901000A7B0A01000A027B0B01000A0C120228EC00000A6F5900000A027B0B01000A0D120328ED00000A6FEE00000A0A06027B0B01000A1304120428EC00000A28CA00000A28EF00000A0B027B0901000A7B0A01000A7BF000000A076FF100000A062A0000001B300400A10100003C000011730C01000A130A02D01500001B285A00000A0304284A0100060A7E1B0000040612016FF200000A2C0C077B22000004A52F00001B2A110A73F300000A13091109026F280100066FF400000A1109026F2E0100066FF500000A1109026F300100066FF600000A1109026F320100066FF700000A1109026F340100067DF800000A1109026F380100067DF900000A11097D0D01000A110A7B0D01000A0E0404284B0100060C026F2A0100066FFA00000A163117110A7B0D01000A026F2A01000673FB00000A7DFC00000A026F2C0100066FFD00000A16317B026F2C0100066FFE00000A130B2B53140D730E01000A13041104110A7D0F01000A1104120B28FF00000A7D1001000A110A7B0D01000A11047B1001000A130C120C28ED00000A092D0E1104FE061101000A730001000A0D09730101000A6F0201000A120B280301000A2DA4DE0E120BFE163800001B6F2300000ADC03280401000A1305110A7B0D01000A110505280501000A1306110608282E00002B6F1201000A1307061473040100061308110811078C2F00001B7D220000047E1B0000040611086F0801000A2611072A000000011000000200E3006043010E000000001E02281B00000A2A1E02281B00000A2A1E02281B00000A2A3E026F1301000A282F00002B16FE012A13300500780000003D000011027B750000047B73000004027B760000046F1501000A027B760000046FC700000A6FEE00000A0A06027B750000047B73000004027B750000047B73000004027B750000047B74000004166F1601000A027B76000004281701000A28EF00000A0B027B750000047B730000047BF000000A076FF100000A062A13300500780000003D000011027B770000047B73000004027B780000046F1801000A027B780000046FC700000A6FEE00000A0A06027B770000047B73000004027B770000047B73000004027B770000047B74000004166F1601000A027B78000004281901000A28EF00000A0B027B770000047B730000047BF000000A076FF100000A062A13300400580100003E00001173DD01000613061106027D730000041106047D7400000405281A01000A174034010000056F1B01000A7E390000042D1114FE0655010006731C01000A80390000047E39000004283000002B283100002B0A056F1D01000A0B0613071613082B6A140C73DE0100060D0911067D7500000409110711089A7D7600000403097B760000046FC700000A097B760000046F1501000A6F1E01000A11067B73000004097B760000046FC700000A082D0D09FE06DF010006730001000A0C08730101000A6F0201000A110817581308110811078E69328E07130916130A2B7514130473E00100061305110511067D7700000411051109110A9A7D780000040311057B780000046FC700000A11057B780000046F1801000A6F1E01000A11067B7300000411057B780000046FC700000A11042D0F1105FE06E1010006730001000A13041104730101000A6F0201000A110A1758130A110A11098E6932832A1E02281B00000A2A1E02281B00000A2A13300500C40000003F000011027B7B0000047B7A000004027B7C0000040C1202281F01000A027B7C0000040D1203282001000A6FEE00000A0A027B7B0000047B790000047E37000004178D740000011304110416027B7C00000413051205282001000A28CA00000AA21104282101000A0B076F2201000A027B7C00000413061206281F01000A282301000A2D09060728EF00000A2B1B0607027B7C00000413071207281F01000A282401000A28EF00000A0B027B7B0000047B7A0000047BF000000A060728EF00000A6FF100000A062A1B300400A90000004000001173E20100060D09027D7A00000473EB00000A0A09097B7A000004D004000001285A00000A6F2501000A7D7900000406097B790000046F2601000A036F2701000A13042B4C140B73E30100060C08097D7B0000040811046F2801000A7D7C000004097B7A000004087B7C00000413051205282001000A072D0D08FE06E4010006730001000A0B07730101000A6F0201000A11046F2200000A2DABDE0C11042C0711046F2300000ADC062A0000000110000002004200599B000C000000001E02281B00000A2A1E02281B00000A2A13300500C40000003F000011027B7F0000047B7E000004027B800000040C1202281F01000A027B800000040D1203282001000A6FEE00000A0A027B7F0000047B7D0000047E37000004178D740000011304110416027B8000000413051205282001000A28CA00000AA21104282101000A0B076F2201000A027B8000000413061206281F01000A282301000A2D09060728EF00000A2B1B0607027B8000000413071207281F01000A282401000A28EF00000A0B027B7F0000047B7E0000047BF000000A060728EF00000A6FF100000A062A1B300400190100004100001173E501000613071107027D7E00000473EB00000A0A11077B7E000004D006000001285A00000A6F2501000A0B06076F2601000A110711077B7E000004D02C00001B285A00000A6F2901000A7D7D000004D007000002285A00000A72F10D00701F28282A01000A0C08178D74000001130811081607A21108282B01000A0D11077B7D0000040928EF00000A130411077B7E0000047BF000000A11046FF100000A036F2701000A13092B5714130573E60100061306110611077D7F000004110611096F2801000A7D8000000411077B7E00000411067B80000004130A120A282001000A11052D0F1106FE06E7010006730001000A13051105730101000A6F0201000A11096F2200000A2DA0DE0C11092C0711096F2300000ADC062A000000011000000200A700640B010C000000001E02281B00000A2A1E02281B00000A2A13300500C40000003F000011027B830000047B82000004027B840000040C1202281F01000A027B840000040D1203282001000A6FEE00000A0A027B830000047B810000047E37000004178D740000011304110416027B8400000413051205282001000A28CA00000AA21104282101000A0B076F2201000A027B8400000413061206281F01000A282301000A2D09060728EF00000A2B1B0607027B8400000413071207281F01000A282401000A28EF00000A0B027B830000047B820000047BF000000A060728EF00000A6FF100000A062A1B300400AE0000004200001173E80100060D09027D8200000473EB00000A0A09097B82000004D004000001285A00000A72660B00706F2C01000A7D8100000406097B810000046F2601000A036F2701000A13042B4C140B73E90100060C08097D830000040811046F2801000A7D84000004097B82000004087B8400000413051205282001000A072D0D08FE06EA010006730001000A0B07730101000A6F0201000A11046F2200000A2DABDE0C11042C0711046F2300000ADC062A0000011000000200470059A0000C000000001B3004007A0000004300001173EB00000A0A036F2701000A0D2B21096F2801000A0B06021201281F01000A1201282001000A6F2C01000A6F2601000A096F2200000A2DD7DE0A092C06096F2300000ADC036F2D01000A17332B03283200002B0C1202281F01000A281A01000A17331502031202282001000A1202281F01000A284E010006062A00000110000002000D002D3A000A000000001E02281B00000A2A1E02281B00000A2A1E02281B00000A2A13300300AA00000044000011027B880000047B85000004027B870000047B860000040C1202281F01000A027B870000047B860000040D1203282001000A6FEE00000A0A027B890000046F2201000A027B870000047B8600000413041204281F01000A282301000A2D0E06027B8900000428EF00000A2B2506027B89000004027B870000047B8600000413051205281F01000A282401000A28EF00000A0B027B880000047B850000047BF000000A16076F2F01000A062A00001B300400F10000004500001173EB01000613041104027D8500000473EB00000A0A036F2701000A13052B7C73EC0100060C0811056F2801000A7D8600000473ED0100060B07087D870000040711047D880000040711047B85000004D001000001285A00000A6F2501000A7D8900000406077B890000046F2601000A11047B85000004087B8600000413061206282001000A07FE06EE010006730001000A730101000A6F0201000A11056F2200000A3A78FFFFFFDE0C11052C0711056F2300000ADC036F2D01000A17333103283200002B0D1203281F01000A281A01000A17331B11047B85000004031203282001000A1203281F01000A284E010006062A0000000110000002001D008CA9000C00000000133005002F00000046000011D004000001285A00000A722B0E0070178D0D0000010A0616D060000001285A00000AA206283001000A80370000042A001B3001004A00000047000011022D0B72350E0070732400000A7A026F3101000A6F3201000A0B2B12076F1F00000A74300000010A062858010006076F2200000A2DE6DE1107754B0000010C082C06086F2300000ADC2A00000110000002001A001E380011000000001B300300B600000048000011022D0B72350E0070732400000A7A02120028590100060B07733301000A0C283401000A0D09086F3501000A026F4900000A6F3201000A13072B5211076F1F00000A743300000113041613052B2E110411056F4E00000A130611062C0F061105902C0911066F1D00000A130608110511066F3601000A1105175813051105086F3701000A32C809086F3801000A11076F2200000A2DA5DE151107754B000001130811082C0711086F2300000ADCDE07096F3901000ADC2A0000011C0000020038005F9700150000000002002B0083AE000700000000133005005900000049000011026F4500000A6F4C00000A8D310000010A03026F4500000A6F4C00000A8D6700000151160B2B22026F4500000A076F3A01000A0C0607080350078F67000001285A010006A20717580B07026F4500000A6F4C00000A32D0062A000000133004004E0100004A000011031652026F3B01000A0B07281A01000A0C026F3C01000A0D08130411044513000000B700000096000000B70000000500000020000000B7000000120000005A000000B700000065000000B70000006F000000B7000000790000004D0000003D00000030000000CD0000008400000038C80000000918733D01000A0A38CC000000091F14733D01000A0A38BE000000091F0C176A733E01000A0A38AE000000091A733D01000A0A38A1000000091B1F1216733F01000A0A3891000000091C733D01000A0A3884000000091F10733D01000A0A2B79091E733D01000A0A2B6F0916733D01000A0A2B65091F0D733D01000A0A2B5A091F0C026F4001000A6A733E01000A0A2B48090207285B0100060A062D3C091F0C026F4001000A6A733E01000A0A0317522B27723C0F0070088C0F010001284F00000A732400000A7A72A510007007284F00000A732400000A7A062A000013300400360200004B00001104D00A00001B285A00000A284101000A2D5A04D015000001285A00000A284101000A2D4804D018000001285A00000A284101000A2D3604D04600001B285A00000A284101000A2D2404D012000001285A00000A284101000A2D1204D018010001285A00000A284101000A2C15021F15036F4001000A6A733E01000A0A38B301000004D04A000001285A00000A284101000A2C0E021F0E733D01000A0A389301000004D001000001285A00000A284101000A2C0E021F17733D01000A0A387301000004D00F000001285A00000A284101000A2C0D0218733D01000A0A385401000004D013000001285A00000A284101000A2C0E021F14733D01000A0A383401000004D016000001285A00000A284101000A2C0D021A733D01000A0A381501000004D019010001285A00000A284101000A2C0D021C733D01000A0A38F600000004D017000001285A00000A284101000A2C0E021F0E733D01000A0A38D600000004D011000001285A00000A284101000A2C0E021F10733D01000A0A38B600000004D010000001285A00000A284101000A2C0D021E733D01000A0A389700000004D00E000001285A00000A284101000A2C0A0216733D01000A0A2B7B04D01A010001285A00000A284101000A2C0B021F09733D01000A0A2B5E04D01B010001285A00000A284101000A2C10021B7E4201000A16733F01000A0A2B3C04D01C010001285A00000A284101000A2C0B021F0D733D01000A0A2B1F04D01D010001285A00000A284101000A2C0B021F19733D01000A0A2B02140A062A000013300400F50300004C000011020A026F5900000A6FC700000A25131139DE030000FE137E8A0000043AE20000001F11734301000A2572F811007016284401000A25720C12007017284401000A25722212007018284401000A25723212007019284401000A2572441200701A284401000A2572561200701B284401000A25726E1200701C284401000A2572841200701D284401000A2572981200701E284401000A2572A81200701F09284401000A2572BA1200701F0A284401000A2572CC1200701F0B284401000A2572DE1200701F0C284401000A2572F01200701F0D284401000A2572041300701F0E284401000A2572181300701F0F284401000A2572261300701F10284401000AFE13808A000004FE137E8A00000411111212284501000A39DB02000011124511000000050000001F0000004D0000007B00000096000000B1000000E00000000F0100003E0100006D0100009C010000CB010000FA0100002902000058020000730200008E020000388B02000002A5150000010B1201284601000A2D081201285B00000A2A142A02A50F0000010C1202284701000A2D0E1202287500000A735100000A2B0A1213FE150600001B11138C0600001B2A02A5130000010D1203288000000A2D0E1203287A00000A735400000A2B0A1214FE150900001B11148C0900001B2A027418000001130411046F4801000A2D0811046F7900000A2A142A027418010001130511056F4901000A2D0811056F4A01000A2A142A02A51600000113061206287D00000A2D0E1206287600000A737E00000A2B0A1215FE151300001B11158C1300001B2A02A51B01000113071207284B01000A2D0E1207284C01000A734D01000A2B0A1216FE154800001B11168C4800001B2A02A51901000113081208284E01000A2D0E1208284F01000A735001000A2B0A1217FE154900001B11178C4900001B2A02A51700000113091209288B00000A2D0E1209287700000A738C00000A2B0A1218FE151400001B11188C1400001B2A02A511000001130A120A288D00000A2D0E120A287800000A735300000A2B0A1219FE150800001B11198C0800001B2A02A510000001130B120B287F00000A2D0E120B287400000A735200000A2B0A121AFE150700001B111A8C0700001B2A02A50E000001130C120C287C00000A2D0E120C287B00000A735000000A2B0A121BFE150500001B111B8C0500001B2A02A51A010001130D120D285101000A2D0E120D285201000A734D01000A2B0A121CFE154800001B111C8C4800001B2A02A51C010001130E120E285301000A2D0E120E285401000A735501000A2B0A121DFE154A00001B111D8C4A00001B2A02A512000001130F120F285601000A2D08120F285C00000A2A142A02741D010001131011106F5701000A2D0811106F5801000A2A142A142A062A00000013300400200200004D000011026F5900000A6FC700000A250A3903020000FE137E8B0000043AE20000001F11734301000A2572F811007016284401000A25720C12007017284401000A25722212007018284401000A25723212007019284401000A2572441200701A284401000A2572561200701B284401000A25726E1200701C284401000A2572841200701D284401000A2572981200701E284401000A2572A81200701F09284401000A2572BA1200701F0A284401000A2572CC1200701F0B284401000A2572DE1200701F0C284401000A2572F01200701F0D284401000A2572041300701F0E284401000A2572181300701F0F284401000A2572261300701F10284401000AFE13808B000004FE137E8B000004061201284501000A390101000007451100000005000000100000001B00000026000000310000003C00000047000000520000005D00000068000000730000007E00000089000000940000009F000000AA000000B500000038B2000000D00A00001B285A00000A2AD00600001B285A00000A2AD00900001B285A00000A2AD00A00001B285A00000A2AD04600001B285A00000A2AD01300001B285A00000A2AD04800001B285A00000A2AD04900001B285A00000A2AD01400001B285A00000A2AD00800001B285A00000A2AD00700001B285A00000A2AD00500001B285A00000A2AD04800001B285A00000A2AD04A00001B285A00000A2AD060000001285A00000A2AD060000001285A00000A2A142AD001000001285A00000A2A1B3005008E0600004E00001102752F0000012C167234130070026F5900000A284F00000A732400000A7A0275300000012C0C0274300000010A385A06000002754B00001B2C5702744B00001B0B735901000A0A170C076F5A01000A131F2B24111F6F5B01000A0D082C12096F5C01000A130411046F5D01000A0A160C06096F5E01000A111F6F2200000A2DD3DD07060000111F2C07111F6F2300000ADC02754D00001B39ED00000002744D00001B1305171306735901000A0A11056F5F01000A132038B100000011206F6001000A130711062C4811077B6101000A6FFE00000A13212B1C122128FF00000A1308066F4500000A120828ED00000A6F4600000A261221280301000A2DDBDE0E1221FE163800001B6F2300000ADC161306066F6201000A1309066F4900000A11096F6301000A11077B6101000A6FFE00000A13222B1E122228FF00000A130A1109120A28ED00000A120A28EC00000A6F6401000A1222280301000A2DD9DE0E1222FE163800001B6F2300000ADC11206F2200000A3A43FFFFFFDD0F05000011202C0711206F2300000ADC0275060000013941030000026F5900000A6F6501000A3931030000026F5900000A6FE500000A8E6917401E030000026F5900000A6FE500000A169A130B110B6F6501000A39AE010000110B6F6601000AD0FD000001285A00000A284101000A3AC9000000110B6F6601000AD0FE000001285A00000A284101000A3AAE000000110B6F6601000AD0FF000001285A00000A284101000A3A93000000110B6F6601000AD000010001285A00000A284101000A2D7B110B6F6601000AD001010001285A00000A284101000A2D63110B6F6601000AD002010001285A00000A284101000A2D4B110B6F6601000AD003010001285A00000A284101000A2D33110B6F6601000AD004010001285A00000A284101000A2D1B110B6F6601000AD005010001285A00000A284101000A39CA000000027406000001130C110B6F1B01000A130D735901000A0A110D13231613242B20112311249A130E066F4500000A110E6FC700000A6F4600000A26112417581324112411238E6932D8110C6F0100000A13252B5411256F1F00000A130F066F6201000A1310066F4900000A11106F6301000A110D13261613272B25112611279A1311111011116FC700000A1111110F146F6701000A6F6401000A112717581327112711268E6932D311256F2200000A2DA3DD210300001125754B000001132811282C0711286F2300000ADC110B6F6801000A39D70000000274060000011312735901000A0A11126F0100000A1329389500000011296F1F00000A13131113744F00001B131411148E69066F4500000A6F4C00000A313C066F4500000A6F4C00000A13152B25066F4500000A7263140070111517588C5D000001289100000A6F4600000A26111517581315111511148E6932D3066F6201000A1316066F4900000A11166F6301000A1613172B1411161117111411179A6F4B00000A111717581317111711148E6932E411296F2200000A3A5FFFFFFFDD3E0200001129754B000001132A112A2C07112A6F2300000ADC0274060000011318735901000A0A066F4500000A72711400706F4600000A2611186F0100000A132B2B25112B6F1F00000A1319066F4900000A178D01000001132C112C161119A2112C6F6901000A26112B6F2200000A2DD2DDCC010000112B754B000001132D112D2C07112D6F2300000ADC0275060000013992000000026F5900000A6F6501000A3982000000026F5900000A6FE500000A8E69173172027406000001131A735901000A0A066F4500000A72711400706F4600000A26111A6F0100000A132E2B25112E6F1F00000A131B066F4900000A178D01000001132F112F16111BA2112F6F6901000A26112E6F2200000A2DD2DD2F010000112E754B000001133011302C0711306F2300000ADC0275060000012C7F026F5900000A6F6A01000A2C72027406000001131C735901000A0A066F4500000A72711400706F4600000A26111C6F0100000A13312B2511316F1F00000A131D066F4900000A178D010000011332113216111DA211326F6901000A2611316F2200000A2DD2DDA80000001131754B000001133311332C0711336F2300000ADC02751F0100012C75735901000A0A066F4500000A72711400706F4600000A2602741F0100016F6B01000A13342B2F11346F1F00000A7406010001131E066F4900000A178D010000011335113516111E6F6C01000AA211356F6901000A2611346F2200000A2DC8DE2B1134754B000001133611362C0711366F2300000ADC7234130070026F5900000A284F00000A732400000A7A062A0000017C0000020051003485000C000000000200D60029FF000E00000000020033012B5E010E000000000200B600C77D010C0000000002000703646B0315000000000200A303AB4E04150000000002008B0435C004150000000002002805355D0515000000000200AF0535E4051500000000020025063C61061500000000133004003F0000004F00001102285E0100060A066F4900000A6F4C00000A8D330000010B160C2B130708066F4900000A086F4A00000AA20817580C08066F4900000A6F4C00000A32DF072A0013300400FC0100005000001102250B39E7010000FE137E8C0000043AEF0000001F12734301000A25728114007016284401000A25728D14007017284401000A25729F14007018284401000A2572AB14007019284401000A2572B71400701A284401000A2572C51400701B284401000A2572D31400701C284401000A2572DD1400701D284401000A2572EB1400701E284401000A2572F71400701F09284401000A2572051500701F0A284401000A2572131500701F0B284401000A2572231500701F0C284401000A2572331500701F0D284401000A2572431500701F0E284401000A2572551500701F0F284401000A2572671500701F10284401000A25727B1500701F11284401000AFE13808C000004FE137E8C000004071202284501000A39D80000000845120000000500000005000000150000001500000022000000220000002F0000002F0000003C0000003C000000490000004900000056000000560000006300000063000000700000007D0000003885000000D00600001B285A00000A0A3880000000D00900001B285A00000A0A2B73D00800001B285A00000A0A2B66D00700001B285A00000A0A2B59D00500001B285A00000A0A2B4CD04A00001B285A00000A0A2B3FD04900001B285A00000A0A2B32D04800001B285A00000A0A2B25D01300001B285A00000A0A2B18D030000001285A00000A0A2B0B728F150070732400000A7A062A133003002900000051000011020312006F6D01000A2C140503066F6E01000A10020203046F6F01000A2B080203046F7001000A042A000000133003003000000052000011020312016F6D01000A2C130503076F6E01000A0A0203066F6F01000A2B1004036F7101000A0A0203066F7001000A062A4E02036F7201000A2D080203046F7001000A172A1330030016000000530000110203046F6D01000A0A062C0802036F7301000A26062A2E021716287401000A2DF62A2A021617287401000A262A3216021716287401000AFE012A1E02281B00000A2A4A02281B00000A02737501000A287601000A2A3202287701000A6F7801000A2A1E027B7901000A2A2202037D7901000A2A32027C7A01000A28650100062A1B300300490000005400001102287B01000A02287701000A0312006F7C01000A2C190503066F7D01000A100202287701000A03046F7E01000A2B0D02287701000A03046F7F01000A040BDE0702288001000ADC072A000000011000000200000040400007000000001B300300500000005500001102287B01000A02287701000A0312016F7C01000A2C180503076F7D01000A0A02287701000A03066F7E01000A2B1504036F8101000A0A02287701000A03066F7F01000A060CDE0702288001000ADC082A011000000200000047470007000000000B3001001B0000000000000002287B01000A02287701000A6F8201000ADE0702288001000ADC2A000110000002000000131300070000000032027C7A01000A28660100062A0000001B300300390000005300001102287B01000A02287701000A036F8301000A2D0F02287701000A03046F7F01000A2B04160ADE10170ADE0C26160ADE0702288001000ADC062A000000011C0000000000002B2B0005010000010200000030300007000000001B300300310000005600001102287B01000A02287701000A03046F7C01000A0A062C0D02287701000A036F8401000A26060BDE0702288001000ADC072A000000011000000200000028280007000000001B3003004C0000005600001102287701000A03046F7C01000A0ADE0C2604FE155700001B160ADE00062D2902287B01000A02287701000A03046F7C01000A0BDE152604FE155700001B160BDE0902288001000ADC172A072A01280000000000001010000C0100000100001F001635000C4C00000102001F0022410007000000001E02281B00000A2A3A02281B00000A02037D470000042A00133003007600000057000011032D1072A715007072AF150070738801000A7A027B490000040A027B470000042D4F2B21067B580000040B072C1007036F8901000A2C07067B5A0000042A067B590000040A062DDC2B2A067B580000040C082C16027B4700000408036F8A01000A2D07067B5A0000042A067B590000040A062DD6142A000013300300A300000058000011032D1072A715007072AF150070738801000A7A02257B4B00000417587D4B000004140A027B490000040B2B33077B580000040C027B470000042C12027B4700000408036F8A01000A16FE012B0708036F8901000A2D0C070A077B590000040B072DCA072C0807047D5A0000042A739A0100060D09037D5800000409047D5A000004062C0906097D590000042B0702097D49000004022528790100061758287A0100062A1E027B4C0000042A2202037D4C0000042A22021773900100062A0A162A0A162A0A162A86027B480000042D12027C48000004731B00000A14288B01000A26027B480000042A22021673900100062A00000013300400B100000058000011032D1072BB15007072A7150070738801000A7A02257B4B00000417587D4B000004140A027B490000040B2B4C077B580000040C027B470000042C12027B4700000408036F8A01000A16FE012B0708036F8901000A2C1972EB150070030208287701000604288C01000A738D01000A7A070A077B590000040B072DB1739A0100060D09037D5800000409047D5A000004062C0906097D590000042B0702097D49000004022528790100061758287A0100062A760216287A01000602147D4900000402257B4B00000417587D4B0000042A00133003005400000059000011032D1072A715007072AF150070738801000A7A027B490000040A2B33067B580000040B027B470000042C12027B4700000407036F8A01000A16FE012B0707036F8901000A2C02172A067B590000040A062DCA162A13300300730000005A000011032D0B7265160070738E01000A7A04162F10727116007072AF150070738F01000A7A036F9001000A04590228790100062F0B72AF150070738D01000A7A027B490000040A2B2903067B58000004067B5A000004739101000A8C36000001046F9201000A0417581002067B590000040A062DD42A1E0273890100062A1E0273890100062A0013300300980000005B000011032D1072A715007072AF150070738801000A7A02257B4B00000417587D4B000004140A027B490000040B2B33077B580000040C027B470000042C12027B4700000408036F8A01000A16FE012B0708036F8901000A2D0C070A077B590000040B072DCA072D012A07027B49000004330E02077B590000047D490000042B0C06077B590000047D59000004022528790100061759287A0100062A133003007F00000057000011032D1072A715007072AF150070738801000A7A027B490000040A027B470000042D552B24067B580000040B072C1307036F8901000A2C0A04067B5A00000451172A067B590000040A062DD92B2D067B580000040C082C19027B4700000408036F8A01000A2D0A04067B5A00000451172A067B590000040A062DD3041451162AA202281B00000A02037D4D00000402037B4B0000047D4E00000402177D5000000402147D4F0000042A3202288B0100068C360000012ABE027B4F0000042D0B72AF150070739301000A7A027B4F0000047B58000004027B4F0000047B5A000004739101000A2A7E027B4F0000042D0B72AF150070739301000A7A027B4F0000047B580000042A7E027B4F0000042D0B72AF150070739301000A7A027B4F0000047B5A0000042A000000033002006600000000000000027B4E000004027B4D0000047B4B0000042E0B72AF150070739301000A7A027B500000042C1A02027B4D0000047B490000047D4F00000402167D500000042B19027B4F0000042C1102027B4F0000047B590000047D4F000004027B4F00000414FE0116FE012AB6027B4E000004027B4D0000047B4B0000042E0B72AF150070739301000A7A02177D5000000402147D4F0000042A5602281B00000A02037D5200000402047D510000042A0000133003005D0000005A000011032D0B7265160070738E01000A7A04162F10727116007072AF150070738F01000A7A027B520000047B490000040A2B2903027B510000042D08067B5A0000042B06067B58000004046F9201000A0417581002067B590000040A062DD42A00000013300200200000005C000011160A027B520000047B490000040B2B0B0617580A077B590000040B072DF2062A0A162A32027B520000046F7F0100062A4A027B52000004027B5100000473960100062ABE02281B00000A02037D5400000402047D5300000402037B4B0000047D5500000402177D5700000402147D560000042ACE027B560000042D0B72AF150070739301000A7A027B530000042D0C027B560000047B5A0000042A027B560000047B580000042A00033002006600000000000000027B55000004027B540000047B4B0000042E0B72AF150070739301000A7A027B570000042C1A02027B540000047B490000047D5600000402167D570000042B19027B560000042C1102027B560000047B590000047D56000004027B5600000414FE0116FE012AB6027B55000004027B540000047B4B0000042E0B72AF150070739301000A7A02177D5700000402147D560000042A1E02281B00000A2A327E1E000004026F060100062A367E1E00000402036F070100062A367E1E00000402036F080100062A367E1E00000402036F090100062A367E1E00000402036F0A0100062A3A7E1E0000040203046F0B0100062A3E7E1E000004020304056F0C0100062A467E1E000004020304050E046F0D0100062A4E7E1E000004020304050E040E056F0E0100062A567E1E000004020304050E040E050E066F0F0100062A0330090017000000000000007E1E000004020304050E040E050E060E076F100100062A0003300A0019000000000000007E1E000004020304050E040E050E060E070E086F110100062A00000003300B001B000000000000007E1E000004020304050E040E050E060E070E080E096F120100062A327E1E000004026F3300002B2A367E1E00000402036F3400002B2A367E1E00000402036F2800002B2A327E1E000004026F3C0100062A367E1E00000402036F3D0100062A367E1E00000402036F3E0100062A327E1E000004026F3500002B2A367E1E00000402036F3600002B2A367E1E00000402036F3700002B2A00001B300200570000005D000011026F9401000A7E170000046F9501000A6F1D00000A0A7202010070734100000A0B0607739601000A0C08739701000A26076F4200000A08026F9801000A26DE0A082C06086F2300000ADCDE0A072C06076F2300000ADC2A00011C0000020029001740000A00000000020021002B4C000A000000002602031628B30100062A00001B3003002A0100005E000011043923010000020328B40100060A7202010070734100000A0B076F4200000A0607734300000A0C086F4400000A26DE0A082C06086F2300000ADCDE0A072C06076F2300000ADC727D16007028740000060D026F9901000A130411046F4500000A72360100706F4600000A2611046F4500000A72360100706F4700000A166F4800000A1613052B2111046F4900000A11056F4A00000A1611058C5D0000016F4B00000A110517581305110511046F4900000A6F4C00000A32CF1203727D160070283500000A11042854000006267202010070734100000A130611066F4200000A725D080070098C0300000272B3080070286F00000A1106734300000A13071107176F7000000A11076F4400000A26DE0C11072C0711076F2300000ADCDE0C11062C0711066F2300000ADC2A000001340000020027000930000A0000000002001900233C000A000000000200FD00120F010C000000000200D800451D010C000000005E7283160070026F9A01000A0228B5010006289B01000A2A133005005A0000005F00001102120028B60100060B72A11600700372BD160070289C01000A0C0872CD160070289400000A287300000A077E620000042D1114FE06B9010006739D01000A80620000047E62000004283800002B289500000A287300000A0C082A000013300300D80100006000001172EF0D00700A026F9E01000A0B07451A000000050000005001000010000000500100001B000000260000008800000050010000930000009E0000005001000050010000A90000005B010000E800000050010000F0000000500100005001000050010000F80000000001000050010000400100005001000048010000384B01000072D11600700A384B01000072DF1600700A384001000072E71600700A3835010000026F9F01000A2C4F026FA001000A2C471B8D010000010C081672F9160070A20817026F9F01000A8C69000001A2081872CD160070A20819026FA001000A8C69000001A2081A720B170070A208289300000A0A38DE000000720F1700700A38D3000000721F1700700A38C8000000722B1700700A38BD00000072331700700A38B2000000723F170070026FA101000A156A2E1E026FA101000A20401F00006A3010026FA101000A0D120328A201000A2B057253170070720B170070289C01000A0A2B73725B1700700A2B6B727D1700700A2B63728F1700700A2B5B729F170070026FA101000A156A2E1F026FA101000A20401F00006A3011026FA101000A1304120428A201000A2B057253170070720B170070289C01000A0A2B1B72B51700700A2B1372CD1700700A2B0B728F150070732400000A7A062A133005005900000049000011026F4500000A6F4C00000A8D310000010A03026F4500000A6F4C00000A8D6700000151160B2B22026F4500000A076F3A01000A0C0607080350078F6700000128B7010006A20717580B07026F4500000A6F4C00000A32D0062A000000133004004E0100004A000011031652026F3B01000A0B07281A01000A0C026F3C01000A0D08130411044513000000B700000096000000B70000000500000020000000B7000000120000005A000000B700000065000000B70000006F000000B7000000790000004D0000003D00000030000000CD0000008400000038C80000000918733D01000A0A38CC000000091F14733D01000A0A38BE000000091F0C176A733E01000A0A38AE000000091A733D01000A0A38A1000000091B1F1216733F01000A0A3891000000091C733D01000A0A3884000000091F10733D01000A0A2B79091E733D01000A0A2B6F0916733D01000A0A2B65091F0D733D01000A0A2B5A091F0C026F4001000A6A733E01000A0A2B4809020728B80100060A062D3C091F0C026F4001000A6A733E01000A0A0317522B2772D5170070088C0F010001284F00000A732400000A7A720B18007007284F00000A732400000A7A062A000013300400360200004B00001104D00A00001B285A00000A284101000A2D5A04D015000001285A00000A284101000A2D4804D018000001285A00000A284101000A2D3604D04600001B285A00000A284101000A2D2404D012000001285A00000A284101000A2D1204D018010001285A00000A284101000A2C15021F15036F4001000A6A733E01000A0A38B301000004D04A000001285A00000A284101000A2C0E021F0E733D01000A0A389301000004D001000001285A00000A284101000A2C0E021F17733D01000A0A387301000004D00F000001285A00000A284101000A2C0D0218733D01000A0A385401000004D013000001285A00000A284101000A2C0E021F14733D01000A0A383401000004D016000001285A00000A284101000A2C0D021A733D01000A0A381501000004D019010001285A00000A284101000A2C0D021C733D01000A0A38F600000004D017000001285A00000A284101000A2C0E021F0E733D01000A0A38D600000004D011000001285A00000A284101000A2C0E021F10733D01000A0A38B600000004D010000001285A00000A284101000A2C0D021E733D01000A0A389700000004D00E000001285A00000A284101000A2C0A0216733D01000A0A2B7B04D01A010001285A00000A284101000A2C0B021F09733D01000A0A2B5E04D01B010001285A00000A284101000A2C10021B7E4201000A16733F01000A0A2B3C04D01C010001285A00000A284101000A2C0B021F0D733D01000A0A2B1F04D01D010001285A00000A284101000A2C0B021F19733D01000A0A2B02140A062A4A02281B00000A0273750100067D640000042A4A02281B00000A0273A301000A7D660000042A32027B660000046FA401000A2A32027C6500000428650100062A32027C6500000428660100062A001B3002001F000000530000110228BD010006027B66000004036FA501000A170ADE070228BE010006DC062A00011000000200000016160007000000000B3002001D000000000000000228BD010006027B66000004036FA601000A26DE070228BE010006DC2A000000011000000200000015150007000000001E02281B00000A2A3E037B63000004027B8D000004FE012A1B300400AB00000061000011140D73EF01000613041104037D8D000004027B660000046FA401000A0B160C2B3508027B660000046FA401000A2F2304027B66000004086FA701000A5104507B6300000411047B8D0000043305171305DE560817580C080732C7160A041451DE0826041451160ADE00062D3A0228BD01000604027B66000004092D0E1104FE06F001000673A801000A0D096FA901000A51171305DE1226041451161305DE090228BE010006DC172A11052A000128000000001100506100080100000100006C002A9600094C00000102006C00339F000700000000133003002C0000000200001102281B00000A02038D190000027D67000004160A2B11027B670000040673BB010006A20617580A060332EB2A133002002900000002000011037B63000004027B670000048E695D0A06163203062B0206650A027B67000004069A036FBF0100062A000000133002002900000002000011037B63000004027B670000048E695D0A06163203062B0206650A027B67000004069A036FC00100062A00000013300300250000000200001103027B670000048E695D0A06163203062B0206650A027B67000004069A03046FC10100062A000000133003002C0000000200001102281B00000A02038D5400001B7DAA01000A160A2B11027BAA01000A0673AB01000AA20617580A060332EB2A1E026FAC01000A2AA6027BAA01000A7EAD01000A2D1114FE06AE01000A73AF01000A80AD01000A7EAD01000A283900002B2A00001330040032000000020000110F01FE165D00001B6FB101000A027BAA01000A8E695D0A06163203062B0206650A027BAA01000A069A0304056FB201000A2A00001330040032000000020000110F01FE165D00001B6FB101000A027BAA01000A8E695D0A06163203062B0206650A027BAA01000A069A0304056FB301000A2A00001330030031000000020000110F01FE165D00001B6FB101000A027BAA01000A8E695D0A06163203062B0206650A027BAA01000A069A03046FB401000A2A0000001330030031000000020000110F01FE165D00001B6FB101000A027BAA01000A8E695D0A06163203062B0206650A027BAA01000A069A03046FB501000A2A0000001330030031000000020000110F01FE165D00001B6FB101000A027BAA01000A8E695D0A06163203062B0206650A027BAA01000A069A03046FB601000A2A00000042534A4201000100000000000C00000076342E302E33303331390000000005006C000000784C0000237E0000E44C0000903F000023537472696E677300000000748C00004018000023555300B4A40000100000002347554944000000C4A400003434000023426C6F620000000000000002000001571FA20B090E000000FA253300160000010000002A010000300000008D000000F00100004802000009000000B601000011000000DD0000006100000009000000200000002C000000060000005D0000000100000007000000180000001B0000003900000000000A000100000000000600D601CF010600DD01CF010A000802F301060031021E0206003D021E02060049021E02060055021E0206006B021E0206007702CF010E00C60266000600F402D90206007203CF010600A403CF010A001504F3010A003F04F3010A006204F3010A008304F3010A00D404F3010A00FF04F30106009D06CF010A003E08F3010A00C50AF3010A00FB0AF3010A006F0BF30106008813CF0106009D13D9020600B913CF010600C013D9020600CE13CF010600D513CF010600DC13CF010600E313CF010600EA13CF010600F113CF010600F813CF0112000B14CF0106003314211406007E1421140600CC14211406009815CF010600FB15D902120054163C160600351721141200CF193C160E00051AE3190600261A21140A00D51BE7010A00E91BE7010A001C1C011C0A00471CE7010A00AF1CE7010600BA1D1E020600571ECF010600171F1E020A004321011C06008621672106001622CF0106008E2321140600A52321140600C22321140600E12321140600FA23211406001324211406002E24211406004924211406006224211406007B2421140600AB2498241301BF2400000600EE24CE2406000E25CE2412002C25CE2406007225CE2406008D25CF0106009A25CF010600A625CF010A00B025011C0A00CC25011C0600D32567210600E92567210A00F425011C06000726CF0106000E26CF010A004B26011C0E00612636000E00772636000A009E2688260A00BF26AC260A00D12688260A00DC26AC260A00F626E7010A002227E70106003D27CF010A004327E7010A005E27011C06007327CF010E007A2766000600A827CF010600DF27CF011200B420492806006428CF010A007628E7010600A228CF010600AA28CF010600B028CF010600B528CF010600BB28CF010600F028CF010A000D29011C060032291829060056291829A700982900000600A329D9022F00982900000600AC2ACF011200A02B3C160600B42B21141200C62C49280600D02CCF010600D52CCF010600DD2CCF010600E42CCF010600EB2CCF010600F12CCF010600F82CCF010600FF2CCF010600062DCF010600182DCF010600202DCF0106002A03CF0106002F2DCF011200482D392D0600562DCF011600632DCF010600672D1E020600712D1E0212007B2DD9021600852DD90216008D2DD9021600AB2D952D1600B52D952D1600C32D98241600C92D98241200D22D98241600EB2D98241600F32D98241600F92D952D1200252E092E1200332E092E1200712E4E2E1200852E4E2E1200942E4E2E1200A32E4E2E1200B32E4E2E1200BF2E4E2E1200F32ED02E1200FF2ED02E06001F2F0A2F0600282F0A2F0600342F0A2F06003F2F0A2F0600522F482F06005C2F482F06006A2F482F06006F2F482F0600782F482F0600832F482F0600882F482F06008F2F482F06009C2F482F1600BF2FA92F0600E42FCA2F12000430F42F12001E30F42F12003830F42F12004E30F42F12006430F42F12007130F42F16008C307C301200973049281200A4303C160600B13021140600D830C1300600E830C1300600F630C13006001331023106003331233106004031233106006E3150310600793150310600863150311200B23195310600BB3195310600C03195311600F831CA3106000E32023206001732023216004432253212005B324A32160070324A3206007A324A32060081324A32160097328C3216009B328C321600A9328C321600B6328C321600C5328C321600DF32CF321600EB32CF3216001433F63216002533F63216003333F63216004C33383316005C33383316007933663316008733663316008E3366331600983366331600A43366330A00AE33E7010A00B733AC260A00C533AC260A00D233AC260A00E43388260A00F33388261A000C3401341A00193401341A00253401341A00303401341A00383401341A00423401341E005C344C341E0067344C341E0071344C341E007A344C341E0080344C341E008B344C341E0091344C341A00A93497341A00B33497341A00C03497341A00EC34D3341A000B35FA341A001935FA341A002935FA341A00473538351A005C35383516006D35D90212007935492806008C354A3206009C354A320600BC35A5350600C535CF010600CB35CF010600D335CF010600DB35CF010600E335CF010600EB35CF010600F335CF010600FB35CF0106000336CF0116000B3625320A001136882606005236D9021200C9363C160E002C370A370E00543739370E006937E3190600AC3821141200FB383C1606002939CF011200B7393C161200D0393C160600F039D9021200713A3C160A00963BE7010A00B53B011C0A00C33B011C0A00373CE7010A005B3CF3010A00643CF3010A006E3CF3010A00773CF3010A008F3CF3010A00993CF3010E00423D273D1600B03D25321600C03D25320600E83D4A320600043ECF0106001A3E21140600313ECF010600483ECF0106006D3ECF0106007F3ECF010600A63ECF010A00C03EE70106005E3FCF010000000001000000000001000100010010002B0036000500010001000901100053003600090014000600810100005A00660005001B00020101001000740066000500200004010100100081006600050024000501800110008D006600050037004A01810110009A00660005003A00570180011000AB00360005004300570181011000BC003600050043005C0181011000CA003600050043005E0181011000DA00360005004300600181011000E500360005004300610101001000F000360005004300650101001000FB0036000500450069010120100009016600050047007501030010001801000005004D0089010300100027010000050051009001030010003E0100000500530096010320100055010000050058009A01810110006401660005005B009B01010100006901660025005B00B10181011000E500000005006200B101010010008301360005006300BA01010010009601360005006500BB0101001000A101360005006700C20101001000B201360005006800C601030110003C2B000005006A00CE0103011000D62B000005006B00D10103011000292C000005006C00D401030110006736000005006D00D701030110007A36000005006E00D801030110008D37000005007000DA0103011000A237000005007100DB0103011000D537000005007300DD0103011000E937000005007500DE01030110003438000005007700E001030110003E39000005007900E201030110006639000005007B00E30103011000FE39000005007D00E50103011000203A000005007F00E601030110008B3A000005008100E801030110009F3A000005008300E90103011000F23A000005008500EB0103011000063B000005008600EC01030110001A3B000005008700ED0100000000A03C000005008A00EF0103011000393F000005008D00EF0106007C020A0006008B020A0006009A020D000600FB021000060014031B0006001D031B00060022031E0006002A032100060033030A00060041030A0006004A030A00060055030A00060064030A0006007B032500060086032900060094032D000600A90331000600B8032D0011004B2517140600BD081E000600CF081E003600EE081B00360000091B0031001D091B001100E8277A2011002228932036004C13CB0136005A13D40136006413DD0133007213DD013600F000E101060014031B0006002A03E90106008F130D0006007B032500060087151E000600A1155F030600B2155F030600CC155F030600E2152500010001185904010028186A0401004E187504010074187E040100901887040100B41898040100D018A2040100EE181B0001000E190A001100DD29D92511003F2A21261100852AD9251100FF2A80261100882C80263100331A260511004B25662A11008438492C5680E51A1B005680F61A1B005680071B1B005680221B1B0056803E1B1B005680571B1B005680771B1B005680971B1B005680B41B1B000600F01C1E000600FE1C1E000600351D1E000100831D9D112100C41DB8118100CD1D0D000100D71DBD110600351D1E000100DC1D1E000100A61E1E002100F81E2D002100DC1D1E000100FD1EBD110100051F0A002100641F0A002100F81E2D002100641F0A002100F81E2D002100DC1D1E000100FD1EBD110100051F0A00060093200D0006009720BD11060032080D0006069C201E005680A4207D135680A9207D135680B4207D135680BF207D135680D0207D135680D6207D1311004B25353206001B211E000600B8032D000600351D1E0006002621BF1306003021DB1306003021E01311004B25B9320600502BB7260600EA2B9B270600E02143280600C922C62A06008D36CB2A06009D36CF2A0600C922C62A0600B737CA2B06009D36CF2A0600C922C62A0600E8221B000600FD37382C06000E3826050600FD37382C060048383D2C06005239E82C0600C922C62A06007A39ED2C06008B39F22C0600123AE82C0600C922C62A0600343AB62D06008B39F22C06005239E82C0600C922C62A0600B33A0E2E06008B39F22C0600C922C62A06008B39F22C06002E3B7F2E06003F3B842E0600503BE82C1300E53C802F1300F93C802F1300C83D802F060093201E005820000000008618C8033A000100EC20000000008600CE033E0001005821000000008600E90342000100F421000000008600FA034200020050200000000091003F250F1403001D2200000000860064014800030025220000000086000B04480003002D2200000000860010044800030038220000000086001E044C000300682200000000860029044C000300702200000000860034044C00030078220000000086004A0451000300A822000000008600520451000300B0220000000086005A0451000300B8220000000086006B0456000300E822000000008600730456000300F0220000000086007B0456000300F8220000000086008C045B000300282300000000860099045B0003003023000000008600A6045B0003003823000000008600B304600003008A23000000008600BE04600003009223000000008600C904600003009C23000000008600DE0465000300CC23000000008600E90465000400D423000000008600F40465000500DC2300000000860007056A0006000C2400000000860013056A00060014240000000086001F056A0006001C240000000086002B0560000600302400000000960038056F000600E0250000000096004D0575000700FC250000000096005E057C0008001C26000000009600740575000A003826000000009600850583000B0060260000000096009B0575000E007C26000000009600AC058C000F00AC26000000009600C20575001300C826000000009600D305970014000427000000009600E905750019002027000000009600FA05A4001A0063270000000086001006B300200070270000000086001F06B30020007D270000000086002E06B30020008A270000000086003D06B700200097270000000086004506B7002000A4270000000086004D06B7002000B1270000000086005506B3002000BE270000000086006406B3002000CB270000000086007306B3002000D8270000000086008206BB0020000C280000000086008B06BB00210015280000000086009406BB0022002028000000008600A806C00023005228000000008600B706C00024005B28000000008600C606C00025006428000000008600D506C90026009628000000008600E106C90027009F28000000008600ED06C9002800A828000000008600F906D2002900DA280000000086000507D2002A00E3280000000086001107D2002B00EC280000000086001D07DB002C001E290000000086002E07DB002D0027290000000086003F07DB002E0030290000000086005007E4002F005F290000000086005F07E400310068290000000086006E07E400330074290000000086007D07EA003500A6290000000086008D07EA003600AF290000000086009D07EA003700B829000000009600AD07F3003800C229000000009600B807F3003A00CB29000000009600C307F3003C00D429000000008600CE0760003E00E829000000008600DA0760003E00F029000000008600E60760003E00F8290000000086001D03F9003E00622A000000008600F207F9003F006B2A000000008600F707F9004000742A000000008600FC0760004100882A000000008600080860004100902A000000008600140860004100982A0000000086002008FF004100B02A0000000086002408FF004300BA2A0000000086002808FF004500C42A0000000086002C08FF004700CE2A0000000086003208FF004900D82A0000000086003808FF004B00E22A000000008600480807014D00FC2A000000008600540807014F00112B000000008600600807015100282B0000000086006C0810015300502B0000000086007808100155005A2B000000008600840810015700642B0000000086009008190159007E2B0000000086009C0819015B00882B000000008600A80819015D00922B000000009600B40822015F00972B000000008600DD083E006100A02B000000008608140928016100CD2B00000000E6093009B3006100D02B0000000096083B092D016100E62B000000009600440932016100F22B000000009600570932016100F92B0000000096006A0932016100002C0000000096007D09320161000C2C0000000086008C0960006100552C0000000086009409600061005D2C0000000086009C0960006100652C000000009600220332016100712C000000008600A4093E006100792C000000009600B40936016100802C000000009600C00936016100872C000000009600CC0936016100902C000000009600D8093A016100072D000000009600DC093A016200202D000000009600E009360163009F2D000000009600ED0936016300A62D000000009600F90936016300B02D000000008600050AB3006300FB2D0000000086000D0AB3006300032E000000008600150AB30063000C2E0000000096001D0A400163005C2E000000008600230A60006400AF2E000000008600280A60006400B72E0000000086002D0A60006400BF2E00000000C600320AB7006400E42E0000000096003B0A36016400682F0000000086004D0A19016400D22F000000008600630A47016600E12F000000008600790A47016800F02F0000000086008F0A4F016A000F30000000008600980A4F016C001930000000008600A10A4F016E002330000000008600AA0A580170004230000000008600B30A580172004C30000000008600BC0A580174005630000000008600D10A610176007530000000008600DF0A610178007F30000000008600ED0A61017A008930000000008600030B6A017C00A830000000008600190B6A017E00B2300000000086002F0B6A018000BC30000000008600450B73018200DB30000000008600530B73018400E530000000008600610B73018600EF30000000008600780B7C0188000831000000008600870B7C018A001231000000008600960B7C018C001C31000000008600A50B85018E003B31000000008600B20B850190004531000000008600BF0B850192004F31000000008600CC0B8E0194006E31000000008600D80B8E0196007831000000008600E40B8E0198008431000000008600F00B8E019A00C731000000008600040C8E019C00D131000000008600180C8E019E00DC310000000086002C0C6101A0001F32000000008600420C6101A2002932000000008600580C6101A40034320000000086006E0C4F01A60077320000000086007F0C4F01A8008132000000008600900C4F01AA008C32000000008600A10C8501AC00CF32000000008600B60C8501AE00D932000000008600CB0C8501B000E432000000008600E00CFF00B2008D33000000008600EC0CFF00B4009733000000008600F80CFF00B600A133000000008600040DFF00B800AB33000000008600120DFF00BA00B533000000008600200DFF00BC00BF330000000086002E0D4800BE00C7330000000086003D0D4800BE00CF330000000086004C0D4800BE00D7330000000086005B0D4C00BE00DF33000000008600700D4C00BE00E733000000008600850D4C00BE00EF330000000086009A0D5100BE00F733000000008600AC0D5100BE00FF33000000008600BE0D5100BE000734000000008600D00D5600BE000F34000000008600E20D5600BE001734000000008600F40D5600BE001F34000000008600060E5B00BE0027340000000086001D0E5B00BE002F34000000008600340E5B00BE0037340000000086004B0E6000BE003F34000000008600600E6000BE004734000000008600750E6000BE004F340000000086008A0E6500BE0057340000000086009F0E6500BF005F34000000008600B40E6500C0006734000000008600C90E6A00C1006F34000000008600DF0E6A00C1007734000000008600F50E6A00C10080340000000096000B0F7500C1009C34000000009600210F9701C200C8340000000086003C0F9F01C400F834000000008600470F9F01C4000035000000008600520F9F01C40008350000000086005D0FA401C40038350000000086006B0FA401C4004035000000008600790FA401C4004835000000008600870FA901C4007835000000008600940FA901C4008035000000008600A10FA901C4008835000000008600AE0FAE01C400B835000000008600C30FAE01C400C035000000008600D80FAE01C400C835000000008600ED0F9F01C400D03500000000860002109F01C400D83500000000860017109F01C400E0350000000086002C10A901C400E8350000000086004310A901C400F0350000000086005A10A901C400F8350000000086007110AE01C40000360000000086009010AE01C4000836000000008600AF10AE01C4001036000000008600CE10A401C4001836000000008600E610A401C4002036000000008600FE10A401C400283600000000860016110701C40042360000000086002A110701C60057360000000086003E110701C8006C3600000000860052117C01CA00853600000000860069117C01CC008F3600000000860080117C01CE009C3600000000860097116A01D000DF36000000008600B5116A01D200E936000000008600D3116A01D400F336000000008600F1115801D600123700000000860002125801D8001C3700000000860013125801DA00283700000000860024127301DC006B370000000086003A127301DE00753700000000860050127301E0007F3700000000860066121901E20099370000000086007A121901E400A3370000000086008E121901E600B037000000008600A212B301E8007038000000008600B0124800EB00EC3A0000000086007C02F900EB001E3B000000008600BD12F900EC00273B000000008600CC12F900ED00303B000000008600DB121901EE00D83B000000008600EA124701F000E73B000000008600F9124701F200F63B00000000860008136000F4000A3C00000000860015136000F400123C00000000860022136000F4001C3C0000000096002F136F00F4000F2D000000009100CC276F20F500172D0000000091000F288820F600FC3D0000000091188113E501F7001C3E0000000091188113E501F7005C3E000000009600B4093601F7004841000000008618C803F201F7006941000000008600AB13FE01F9007D410000000086008C090B02FB0092410000000086008C091402FC00A4410000000086008C092502FE00F6410000000086008C09330200010C420000000086008C094502020140420000000086008C095102040180420000000086008C0960020701CC420000000086008C0972020B0124430000000086008C09870210018C430000000086008C09A002160100440000000086008C09BC021D0180440000000086008C09DB0225010C450000000086008C09FD022E01A54500000000860013142203380104460000000086003C1429033A01A0460000000086004D1432033B012047000000008600661437033B01B84700000000860066143F033C012748000000008600891448033D014F48000000008600A01448033F017448000000008600B714370341011049000000008600B7144F0342019849000000008600D714370343012C4A000000008600E41458034401604A000000008600F41432034501B04A000000008600021529034501F44A000000008600151537034601504B00000000860015153F034701984B0000000086002F1558034801CC4B000000008600481558034901004C000000008600611537034A01604C00000000860061154F034B01A84C000000008600781537034C01F44C000000008618C8033A004D01CF4D000000008608081664034D01D74D000000008608221676034D01E04D000000008608671689034E01E84D000000008608801695034E01F14D0000000086089916A2034F01F94D000000008608B216AC034F01024E000000008608CB16B70350010A4E000000008608DA16C1035001134E000000008608E916CC0351011B4E0000000086080017DE035101244E0000000086081717F10352012C4E0000000086082617FC035201354E0000000086084217080453013D4E00000000860853170E045301464E0000000086086417B70054014E4E000000008608771715045401574E0000000086088A17B30055015F4E000000008608A2171A045501684E000000008600BA173E005601BC4E000000008600D2173A0056010464000000008600E717BB0056010D64000000008600E7171F0457011764000000008600E717250459012164000000008600E7172C045B013C64000000008600E71733045C010865000000008600E7173B045E0177650000000086008C092C04600181650000000086008C094404610190650000000086008C0950046301C845000000009100C629D32565015C46000000009100202A152666016446000000009100662AD32567010C47000000009100E12A79266801E14A000000009100672C792669014466000000009100BF1900056A01CC66000000009100151A10056E01BC67000000009300AB132B057101E4690000000093008C093C057501D46C0000000091004E1A50057A01186F000000009100601A61057E01C0700000000091007B1A61058001D872000000009100961A61058201A473000000009100B71A610584010C75000000009100CD1A6105860139660000000091003C36602A8801BC6B0000000091006B38422C89011C760000000091188113E5018A015876000000009300DD1B81108A01C076000000009300F31B88108B01A077000000009600281C8F108C010878000000009100521C9C108E016479000000009100681CA7109001A87B000000009600841CB3109301AC7F000000009600921CB8109401D881000000009600A21CBE109501F088000000009600B71CC51096013C89000000009600C31CD0109701448B000000009600D31CD61098017C8B000000009600D31CF3109C01B88B000000009600DF1C1611A001CC8B000000009600E61C2811A301EE8B0000000096000E1D3B11A601FA8B0000000096001A1D3B11A701058C000000009600261D4111A801128C000000008618C8033A00A9011A8C000000008618C8033A00A9012D8C0000000086083F1D3E00A9013A8C000000008608491D4711A901428C0000000086085D1D5311A9014B8C0000000086000E1D3A00AA01588C000000008600D31C6011AA01C08C000000008600D31C7311AD012C8D000000008600711D3A00B001648D0000000086001A1D3A00B001748D000000008600DF1C8C11B001D88D000000008600E61C9411B201288E000000008600771D9411B401A88E000000008618C8033A00B601B08E000000008618C803C111B601C08E00000000E6091409C811B701448F00000000E609E41DCD11B801F38F00000000E6093F1D3E00BA01FB8F000000008108ED1DD311BA01049000000000E609F71DD811BB010D9000000000E609001EB300BB01109000000000E6090F1EB300BB01139000000000E6091F1EB300BB01169000000000E609321E4800BB01389000000000E6093F1ED811BB01449000000000E6014A1ECD11BB01019100000000E601711D3A00BD01209100000000E6014E1EDD11BD01809100000000E6015D1EE211BE01FF9100000000E601641EEA11C001079200000000E101721EEF11C001109200000000E6019F1EF411C001B492000000008600771DF911C1013F93000000008618C8030E12C301689300000000E6090B1F4800C401759300000000E609271F1412C401A59300000000E609311F4800C401C59300000000E609391F4800C401E89300000000E601431FB300C4015A9400000000E6014C1F3A00C4018894000000008618C8032012C401A09400000000E1016B1FE211C6010C9500000000E109911F3E00C801389500000000E109BA1FB300C8013B9500000000E109EC1F4800C801489500000000E101721EEF11C8015B95000000008618C8032012C8018B9500000000E6090B1F4800CA01C09500000000E601431FB300CA01329600000000E6014C1F3A00CA016096000000008618C8033A00CA0168960000000096008C092712CA0175960000000096008C093012CB0183960000000096008C094112CD0191960000000096008C094F12CF019F960000000096008C096112D101AD960000000096008C096D12D301BC960000000096008C097C12D601CC960000000096008C098E12DA01DE960000000096008C09A312DF01F2960000000096008C09BC12E50108970000000096008C09D812EC012C970000000096008C09F712F40154970000000096008C091913FD017B970000000096008C093E13070288970000000096008C094513080296970000000096008C0951130A02A497000000009600E7175A130C02B197000000009600E7175F130D02BF97000000009600E71765130F02CD97000000009600E7173E131102DA97000000009600E7176C131202E897000000009600E71774131402F897000000009600DE20881016027898000000009600EA209F1317028498000000009600EA20A7131902089A000000009100F520B0131C02709A0000000091000C21B8131E02549C000000009100281C8F101F02BC9C000000009100521C9C102102189E000000009100681CA7102302F099000000009100F63EB81326025AA0000000008618C8033A0027026DA0000000008618C8033A00270280A00000000086083F1D3E0027028DA00000000086000E1D3A0027029AA00000000086001A1D3A002702A8A0000000008600DF1CC7132702E4A0000000008600E61CCD13280238A1000000008600771DD313290218A2000000008618C803D3112B0250A2000000008600DF1CC7132C0288A2000000008600E61CCD132D02C0A2000000008600771DD3132E02F4A2000000008618C803D311300234A30000000086083F1D3E00310260A3000000008600D31C60113102A0A3000000008600D31C73113402E0A3000000008600DF1C8C11370220A4000000008600E61C9411390260A4000000008600771D94113B022CA30000000091006F3FAD323D027A47000000008618C8033A003E028447000000008600572BBC263E02A647000000008600762BC9263F02D148000000008618C8033A004102DC48000000008600F12BA0274102FE480000000086000D2CAD2742027F49000000008618C8033A00440287490000000086003D2C472844028F49000000008600512C472846023767000000008618C8033A0048023F67000000008618C8033A0048024867000000008600A636D82A48026069000000008618C8033A0048026869000000008618C8033A0048027069000000008600C737D82A4802A46B000000008618C8033A004802AC6B000000008618C8033A004802CC6B0000000086001B38D82A4802B46B000000008618C8033A004802506C0000000086005238D82A4802386E000000008618C8033A004802406E000000008618C8033A004802486E0000000086009539D82A4802E06F000000008618C8033A004802E86F000000008618C8033A004802F06F000000008600453AD82A4802F871000000008618C8033A0048020072000000008618C8033A0048020872000000008600C43AD82A48023C74000000008618C8033A0048024474000000008618C8033A0048024C74000000008618C8033A0048025474000000008600643BD82A480220A1000000008618C8033A00480228A10000000086004C3FC7134802000001003821000001003821000000000000000000000000000000000000000001005521000001005521000001005C21020002006021000001005521000001005C21020002006021020003009321000001005521000001005C21020002006021020003009321020004009A21000001005521000001005C21020002006021020003009321020004009A2102000500A121000001005521000001005C21020002006021020003009321020004009A2102000500A12102000600A82100000100932000000100932000000100932000000100932000000100932000000100932000000100932000000100932000000100932000000100932000000100932000000100932000000100932000000100932000000100932000000000000000000100932000000000000000000100932000000000000000000100932000000100932000000100932000000100932000000100AF2100000200BB2100000100AF2100000200BB2100000100AF2100000200BB2100000100F20700000100F20700000100F20700000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100C62100000200C82100000100F20700000100F20700000100320800000100CA2100000200D421000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000001009320000002003208000000000000000000000000000000000000000001005521000001005C2102000200602100000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100932000000200320800000100CA2100000200E02100000300320800000100E52100000100E52100000100E52100000100CA2100000200D42100000100932000000200320800000100932000000200320800000100552100000100C62100000100C62100000100EF2100000200F82100000100F20700000200072200000100F20700000100F20700000200072200000100F20700000200072200000100F20700000200072200000100F207000002002A2200000100F207000002002A2200000300302200000100F207000002002A2200000300302200000400362200000100F207000002002A22000003003022000004003622000005003C2200000100F207000002002A22000003003022000004003622000005003C2200000600422200000100F207000002002A22000003003022000004003622000005003C2200000600422200000700482200000100F207000002002A22000003003022000004003622000005003C22000006004222000007004822000008004E2200000100F207000002002A22000003003022000004003622000005003C22000006004222000007004822000008004E2200000900542200000100F207000002002A22000003003022000004003622000005003C22000006004222000007004822000008004E2200000900542200000A005A22000001006022000002006622000001006B22000001007622000001007C22000001006622000002003208000001006622000002003208000001007622000001008D22000001007622000001009522000001006B22000001007622000001007C22000001009522000001009522000001007622000001008D2200000100762200000100320800000100320800000100320800000100320800000100320800000100320800000100320800000100320800000100320800000100F20700000100F207000002009D2200000100F207000002009D2200000100F20700000100F207000002009D2200000100F207000002009D2200000100F20700000100F20700000200A82200000100F20700000200A82200000100C62100000100C62100000100C62100000100C62100000100C62100000100B72200000200BF2200000300F20700000400072200000100C92200000200CF2200000300072200000100B72200000200F20700000300072200000400DD2200000100B72200000200F20700000300072200000400DD2200000500CF2200000100C92200000200072200000300E82200000400F62200000100C92200000200072200000100C92200000200072200000100C92200000200072200000100C92200000200072200000100C92200000200072200000100C62100000100C621000001000123000001000423000001000423020002000723000001001323020002000723000001006622000002001323000003001A23000001003208000001003208000001003208000001003208000001006622000001002223000002009320000003003208000004002D23000001002223000002009320000003004023000004002D23000001002223000002009320000003003208000001002223000002009320020003003208000001005023000001005023000001005023000001003208000001009320000002003208000003002D23000001009320000002004023000003002D2300000100932000000200320800000100932002000200320800000100932002000200320800000100C41D000001009320000001009320000002003208000001003208000001009320000002003208000001009320000001005A2300000200602300000100932000000100932002000200320800000100F81E00000100F81E00000200641F000001005A2300000200602300000100F81E00000200641F00000100F20700000100F20700000200072200000100F20700000200072200000100F20700000200072200000100F207000002002A2200000100F207000002002A2200000300302200000100F207000002002A2200000300302200000400362200000100F207000002002A22000003003022000004003622000005003C2200000100F207000002002A22000003003022000004003622000005003C2200000600422200000100F207000002002A22000003003022000004003622000005003C2200000600422200000700482200000100F207000002002A22000003003022000004003622000005003C22000006004222000007004822000008004E2200000100F207000002002A22000003003022000004003622000005003C22000006004222000007004822000008004E2200000900542200000100F207000002002A22000003003022000004003622000005003C22000006004222000007004822000008004E2200000900542200000A005A2200000100F20700000100F20700000200A82200000100F20700000200A82200000100F20700000100F207000002009D2200000100F207000002009D2200000100F20700000100F207000002009D2200000100F207000002009D2200000100662300000100042300000200E52100000100042300000200E521000003006B2300000100042300000200E521000001007A23000001000423020002000723000001001323020002000723000001006622000002001323000003001A2300000100C621000001003208000001003208000001009320020002003208101001008323000001003208000001003208000001009320020002003208101001008323000001009320000002003208000003002D23000001009320000002004023000003002D2300000100932000000200320800000100932002000200320800000100932002000200320800000100C62100000100952B00000100952B00000200F81E00000100952B00000100952B00000200F81E00000100952B00000200652C00000100952B00000200652C00000100C62103000D0010001100100015001000190011001D00110021001200150012001900130021003100641EEF1129005D1EE21129003F1D3E0029001F1EB3002900321E4800B901C8033A00C101C8033A00C901C8033A00D101C8031504D901C8031504E101C8031504E901C8031504F101C8031504F901C80315040102C80315040902C80315041102C80315041902C80315042102C80308143102C803D3113902C8033A004102C8033A004902C8033A000C00C8033A001400C80332141C00C80342140900C8033A00510292254C140900320AB7002400C8033A0041000B1F4800B101311F4800B101391F48004100431FB3005902050A3A006102C80315046902C80378147902C80399148902C8033A0091022C08C81599021626CD157100C803D21571004713D71599021E26DF157900C8031A0479004713E41599022826E8158100C803D31181004713ED1599023026F1158900C803F61589004713FB1591003826FF159902320A0F169100C80315049100471314169902442618169900C8031D16990047132216A102C8033A00A902712626161C00391F2B160C0014093016B102F520B013B902C8031504C102CC263A00C902C8033616D102E6263E0081010B273E16D9024A1E4416D9021409441691011727D311810134274B16E102140951169901E41D5816F1023F1D3E00F902C8033A0099011409E8170103CC25A51E2C00C803B11E3400C803B11E3C00C803B11E4400C803B11E4C00C803B11E0903AD07FC1E01034E1E021F01038A27071F01039227F3000900A0270D1F6900BA27151FA900391F1D1F9100391FB7005C00771D941164003F1D3E005C003F1D3E002400491D47115C00DF1C8C116C001A1D3A0074001A1D3A0064003021E01321035528B1207C00C803321484005C28E4205C003021E0138C00C803321494005C28E4206400E61C94115C00E61C9411010369282C2199022826332101036F284821D10282284F2101039228B70001039728021F01036F2860218100391F3E007900391FB300B100391F6A21B900391F6F218900391F7521C100391F1D1F9900391F79217100391F7D2171003009B300B1003009B3009C00C803B11E81003009B30099003009B30001036928A921C100C8033B23C1003B094123A900C8033B23A900471346239902CE284A23B100C8035023B10047135623B900C8035A23B90047136123B9003009B300A400C803B11E89003009B3002400DF1C8C116100D9288B236100E128902301036F2898230C004A1EB11E01036F289E236103FC28A42301030829A82369034229B2237103FC07B823AC007229C623790379293A00B1027E29EE236400C803D3115C00C803D31161004A1E192461008F2919246C000E1D3A006C00491D4711B400641E2A24BC000B1F3F24C400391F54246100B2299023C400311F2B16BC00431FB3000C00641E5924CC000B1F2B16B4009F1E6A24CC00431FB300D400C8033A0074000E1D3A007400491D4711DC00641E2A24E4000B1F3F24EC00391F5424EC00311F2B16D4004A1EB11EE400431FB300D400641E5924F4000B1F2B16DC009F1E6A24F400431FB3002103BE290625FC00C8033A00FC004A1E21256900042AB7002901112AE2250401C803321421031A2AF0259903B62A30269903C82A36260C01C80332142103D62A4B263901272B8A266900312B91261401C80332141C01C8033A003901972BB7002401C80332142C01C8033214A103AB2B5F276900BE2B72276900C82B7C273401C8033A003C01C80332144401C80332144C01C80332145401711D3A005C01711D3A006401711D3A006C01711D3A007401711D3A00FC00711D3A005401771D94117401771D94114101B02C03294101BC2C03295401C8033A005C01C8033A006401C8033A006C01C8033A007401C8033A00840172292B162100641EEA118C017229C62394017229C62364014A1E212569002336E225210337363F2A9C013F1E772AA401C803321421036036892A01036F28A72AAC01C8033A00B401391F5424B401311F2B166901BA36E62AA103DA36EF2A6901E136FB2ABC014A1EB11E6400771D94116901C8033A006901221676036901DA16C10369010017DE0369012617FC0369013517A2046901AB190A005C013F1D3E005C01C8032A2B6901ED366A0464013F1D3E006401641E2A24C4010B1F3F24CC01C8033214D401C80342146901F7364E2BC401431FB30051085F375A2B61087A37612BA10386376F2BDC018C092B166400DF1C8C11E401B737CA2BEC01C922C62AE4019D36CF2AF401C8033A00F401C922C62AFC01C8033A00FC01B737CA2BFC019D36CF2AFC01C737D82A04028C092B167101BA38532C2103CD385A2C7101D1380D1F6901E2386B2CA1030C39762CA90315390D1FA10323398B2C69003239972C6900C82B9F2C0C02C80332146900BE2BB52C9C014A1E21251402391F54241402311F2B16A1030C39052DA103C7390D1F69009227152DA1030E261D2D6901E0395D2DAC014A1EB11E1C02641E722D24020B1F2B166901BA365D2D6900673ABB2DA103863AC52D6901E039E62A2C023F1D3E002103EC3A3F2ABC01833B892E69008A3BE92E7901AA3BF92EF102641EEF11A908C8030A2F6903CB3B122FB108D43B182FA908E53B5816A908EE3B3E00B108FD3B182FB1080C3C3A00D9021409382F91011B3C0D1F9101283CB7008901C8034A2F8901C803522F8901C8035B2F9101413C3E0069004F3C152DD908823C772F3C02C803D3113C024A1E21253C02771D9411A9003009B30079003009B300C1003009B300C1083009B300C108391F912FD9083009B300D908391F962F4402C803B11EC9083009B300C908391FA42F4C02C803B11ED1083009B300D108391F962FE1083009B300E108391FAE2F5402C803B11E91003009B300E9083009B300E908391FB7008101C8033A005C02641E722D64020B1F2B1699010D3D38308101173D383081011D3D3E306C02641E722D74020B1F2B16F108543D750481015F3D5630E1024A1E3E309901E41D5C306900663DB3006900783D0D1F7101820662306900913DB300E1024A1E6C3069009D3DB300F908641EEF110109391FB7008402771D94118C02722942318402E41D212584024A1E212594027229C6238402DC3D6A2484029F1E6A240909F43D64319C02C8033A00A4025D1D5311A402491D47119C023F1D3E00A402831D9D11A402351D1E00A4020E1D3A009C02771D9411AC02722942319C02E41D21259C024A1E2125A4021A1D3A00B4027229C6239C02711D3A009C02DC3D6A249C029F1E6A241109C8033A001909C80315042109C8033A002909C803B53109005E3EDD11A101653EBB310909F43DD2310103CC25DA313109C80315042909C80315043909C803B531A9019B3E3E00B101C803CD11A901E53BE8314109C80315048101D33E013241041409C8110107C80336163908C8030732E906EA3E0E328101F13E38308901972BB7000103CC253F3201036F284632C402C80332148901133F67328901213F792189012F3F79218901413C7D215103320AB700CC02C8033A00CC023F1D3E00CC024A1EB11ECC029F1E6A24CC0214093016D402C8033214CC026A3F8732DC023021E013A402C8033A00A4023F1D3E00DC024B25B932DC026F3FAD32E402C803321421037F3FD6320900833F3E00A402D31C6011A402D31C7311A402DF1C8C11A402E61C9411A402771D94110E00E80075050E00EC0075060E00F000CF070E00F40003090E00F800710A0E00FC00770B0E000001990C0E000401C70D0E000801190F080070018113080074018613080078018B1308007C019013080080019513080084019A130800AD08FE130800C10803142E007B00E1332E009300F7332E009B0002342E007300B1332E00B30086132E00630088332E00A3000B342E00AB0014342E006B009F332E004B00F6322E00530018332E005B00823363002B017F1464003300EB1384003300EB13A000BB008613A4003300EB13C0003B01A014E0003B01A01400013B01A01420013B01A01440013B01A01460013B01A01480013B01A014A0013B01A014A301B3008613C0013B01A014E0013B01A01400023B01A0140302330CAB3120023B01A01440023B01A01460023B01A0146102BB00861380023B01A014A0023B01A014C0023B01A014E0023B01A014E302B300861300033B01A01420033B01A0142103BB00861340033B01A0144103BB00861360033B01A01480033B01A0148303BB008613A0033B01A014A303BB008613C303BB008613E003E3018613E303BB00861300046B0270160304BB0086132304BB00861340046B02F3174304BB0086136304BB00861380046B0280198304BB008613A304BB008613C0046B02221BC304BB008613E304BB00861300056B02D91C0305BB0086132105BB0086132305BB0086134105BB0086134305BB0086136105BB0086136305BB0086138105BB0086138305BB008613A105BB008613A305BB008613C105BB008613C305BB008613E105BB008613E305BB008613E4053300EB130106BB0086130306BB0086132106BB00861324063300EB134106BB0086136106BB00861364063300EB138106BB008613A106BB008613C106BB0086130107BB0086132107BB008613C108BB0086138109BB008613410CBB008613210DBB008613800E3B013C1FA00E3B013C1F800F3B01192120103B013C1FE0153B013C1F00163B013C1F20163B013C1F40163B013C1F60163B013C1F80163B013C1FA0163B013C1FC0163B013C1FE0163B013C1F00173B013C1F20173B013C1F40173B013C1F60173B013C1F80173B013C1FA0173B013C1FC0173B013C1FC4173300EB13E0173B013C1FE4173300EB1300183B013C1F04183300EB1320183B013C1F40183B013C1F60183B013C1F80183B013C1FA0183B013C1FC0183B013C1FE0186B02BC2120193B01A01440193B01A01460193B01A01480193B01A014A0193B01A014C0193B01A014E0193B01A014001A3B01A014201A3B01A014401A3B01A014601A3B01A014801A3B01A014A01A3B013C1FC01A3B013C1FE01A3B013C1F001B3B013C1F201B3B013C1F401B3B013C1F601B3B013C1F801B3B013C1FA01B3B013C1FC01B3B013C1FE01B3B013C1F001C3B013C1F001F3B013C1F201F3B013C1F401F3B013C1FC01FE3018613E01FBB008613E41F430086130020BB0086130025BB0086132025BB0086134025BB0086136025BB0086138025BB008613A025BB008613C025BB008613E025BB0086130026BB0086132026BB0086134026BB0086136026BB0086138026BB008613A026BB008613C026BB008613E026BB0086130027BB0086132027BB008613442743008613642743008613842743008613242843008613442843008613642843008613842843008613A028BB008613A42843008613C028BB008613C42843008613E028BB008613E428430086130029BB0086130429430086132029BB008613242943008613442943008613642943008613842943008613802ABB008613A02ABB008613442B43008613E42B43008613202CB3008613402CB3008613602CB3008613802CB3008613842C43008613602DBB008613802DBB008613202FBB008613402FBB0086132036B30086134036B30086136036B30086138036B30086132037BB008613A039BB008613C43943008613644143008613044243008613A442430086135A14601464147314DB1505165E16ED17B71EC61ED51EE41EF31E2A1F2F1F642012213821412156216621812190219921A121B3216D2377237F23CD23F723042498243325522507266F26AA26F02630278627D42714285F287A28BC28D128DB28E328F8280A290F29072A222A4B2AAD2ABA2A0C2B912BFB2B822CBC2C282D8A2DD22D132E582E902EB92EF32EFF2E1F2F3F2F652F7A2FB82F223074301B3126314B31593160318A319A31A331C131C831E231EE31F331FB3115321F325D326D32933203000100060004000F000D0010000F001100170012001B0013001E0019001F001B00200000003B13BD0100004013C20100004713C60100003319A70400004919B90400005E19C50400007319CF0400007E19D90400009119EB0400003517F60400009C19FC040000AB19C2010000A41DA8110000AA1DAC1100003B1300120000A41DA8110000BD1E05120000C21EC2010000CD1EC2010000D91EC2010000E81E0A120000F11E05120000521F0A1200005A1F1A120000601F0A1200002C080A1200001820A81100003D20C20100006B200A120000521F0A120000A41DA8110000A41DA81102006500030002006600050002006700070001002901090002002801090001002B010B0002002A010B0002002C010D0001002D010D0001002F010F0002002E010F0001003101110002003001110002003201130001003301130002003401150001003501150001003701170002003601170002003801190001003901190002006A011B0002006B011D0001006C011D00020077011F00010078011F0002007901210001007A01210002007B01230002007C01250002007D01270002007E01290002007F012B00020080012D0002008A012F0002008B01310002008C01330002008D013500020092013700020093013900020094013B00020097013D000200BC013F000200C701410010000C030300120024030700120022030500120026030900120028030B0012002A0303002214281438145214AB1EC01ECF1EDE1EED1E121F221F341FA120A920CB20D820F920062189216523BE23212436244B246324702476247F24882491241825E8253D269B26DF26FC260B27C327E027EF274F28822892289C28A428AC28CE29DA29EC29FF296F2A812AB22ADE2A042B362B3E2B462B842BD32BDB2BE32BEB2BF32BA62CFC2C652D7C2D3F2E742F892F9C2FA82FB22F27302F3045304D3069302D31373150316C3176317F319131A8314D3278327F32A432C832F332048000000100000000000000000000000000360000000400000000000000000000000100C601000000000400000000000000000000000100E701000000000100000004000000000000000000AF02000000000400000000000000000000000100FF13000000000400000000000000000000000100CF0100000000040000000000000000000000010001340000000004000000000000000000000001004C3400000000110010001200100013001200140010001C0006001D0006001E0006001F000700200007002100070022000700230007002400070025000700260007002700070028000700290007002A0007002B0007002C0007002D0007002E00070030001900000000001E001202010000001E00170200000000360012020100000036001702000000004200F717000000004400F717000000007F02EF17000000008102EF17000000008302EF17000000008502F717000000008702F717000000008902F717000000009B02F71700000000C302120201000000C302170200000000C502120201000000C502170200000000C702120201000000C702170200000000C902120201000000C9021702000000005103F717000000005303F717000000005503F717000000005D03EF17000000005F03EF17000000006103EF17CB00C120CB00EF209A02FE24710113259A0229259A023F259A0249259A025D259A0267259A0272259A027E259A028C259A029B259A02AB259A02BC25C602CE257D011325850167267D01A4267101A426C602E926C4022327C6026627C6026D27C602CD27C4020728C2025928C802CE25C802E926C8026627C8026D27C802CD27C80259287E02CA298002CA298202CA299A02D1299A02E1299A02F5298802362A71013B2ACD0113259A02362AD301A12A0D023F250D02362A2902652C7D01AF2C7101AF2C5D024D2E8402362A8602362A7E02362A8002362A8202362AD30156326103E8320000003C4D6F64756C653E005A2E45787072657373696F6E732E53716C5365727665722E4576616C2E646C6C0053514C4E45544974656D005A2E45787072657373696F6E732E53716C5365727665722E4576616C0053514C4E4554004576616C4D616E61676572005A2E45787072657373696F6E73004576616C44656C6567617465004576616C436F6E74657874004576616C436F6D70696C657200457863657074696F6E4D6573736167650053716C436F6E7465787448656C7065720053716C5479706548656C70657200446174615461626C6548656C706572005479706548656C70657200457874656E73696F6E73005368617265644C6F636B0053686172656443616368656032004C69737444696374696F6E617279004E6F6465456E756D657261746F72004E6F64654B657956616C7565436F6C6C656374696F6E004E6F64654B657956616C7565456E756D657261746F720044696374696F6E6172794E6F6465004576616C004576616C436F6D70696C6572506172616D657465724B696E640053514C4E4554506172616C6C656C4974656D005368617265644C697374005368617265644275636B65744C697374005368617265644275636B656443616368656032006D73636F726C69620053797374656D004F626A6563740056616C7565547970650053797374656D2E446174610053797374656D2E446174612E53716C547970657300494E756C6C61626C6500544B6579005456616C75650053797374656D2E436F6C6C656374696F6E73004944696374696F6E6172790049436F6C6C656374696F6E0049456E756D657261626C65004944696374696F6E617279456E756D657261746F720049456E756D657261746F7200456E756D00416C74657253747275637475726500497344796E616D69635069766F7400416C746572537472756374757265526573756C74005A2E45787072657373696F6E732E436F6D70696C6572004C617A7953696E676C6554687265616460310053797374656D2E436F6C6C656374696F6E732E47656E65726963004C697374603100416C7465725374727563747572655461626C654E616D65730043616368654B657900436F646500436F756E7465720044656C65676174650049734175746F446973706F7365004973436163686564004973436F6D70696C65640049734669727374436F756E746572004973496D706572736F6E617465004461746554696D65004C61737441636365737300506172616C6C656C4974656D7300506172616D657465725461626C6573005479706500506172616D65746572547970657300506172616D6574657256616C756573002E63746F72004765744E657874436F756E74416E64416464506172616C6C656C00416464506172616C6C656C56616C756500476574506172616C6C656C56616C7565006576616C004556414C0053716C496E743634004576616C426967496E74006576616C626967696E74004556414C424947494E540053716C426F6F6C65616E004576616C426974006576616C626974004556414C4249540053716C496E743332004576616C496E74006576616C696E74004556414C494E540053716C496E743136004576616C536D616C6C496E74006576616C736D616C6C696E74004556414C534D414C4C494E54004576616C53514C4E4554006576616C73716C6E6574004556414C53514C4E45540053716C537472696E67004576616C537472696E67006576616C737472696E67004556414C535452494E470053716C42797465004576616C54696E79496E74006576616C74696E79696E74004556414C54494E59494E5400437265617465536368656D610053514C4E45545F4576616C526573756C745365740053514C4E45545F4576616C5456465F310046696C6C5F53514C4E45545F4576616C5456465F310053514C4E45545F4576616C5456465F320046696C6C5F53514C4E45545F4576616C5456465F320053514C4E45545F4576616C5456465F330046696C6C5F53514C4E45545F4576616C5456465F330053514C4E45545F4576616C5456465F340046696C6C5F53514C4E45545F4576616C5456465F340053514C4E45545F4576616C5456465F350046696C6C5F53514C4E45545F4576616C5456465F35004765744175746F446973706F7365006765746175746F646973706F7365004745544155544F444953504F534500476574436F646500676574636F646500474554434F444500476574496D706572736F6E61746500676574696D706572736F6E61746500474554494D504552534F4E4154450047657456616C75650067657476616C75650047455456414C5545004E756C6C61626C6560310047657456616C7565426967496E740067657476616C7565626967696E740047455456414C5545424947494E540047657456616C75654269740067657476616C75656269740047455456414C55454249540047657456616C7565496E740067657476616C7565696E740047455456414C5545494E540047657456616C7565536D616C6C496E740067657476616C7565736D616C6C696E740047455456414C5545534D414C4C494E540047657456616C7565537472696E670067657476616C7565737472696E670047455456414C5545535452494E470047657456616C756554696E79496E740067657476616C756574696E79696E740047455456414C554554494E59494E54004164644C6963656E7365006164646C6963656E7365004144444C4943454E5345004175746F446973706F7365006175746F646973706F7365004155544F444953504F534500636F646500434F444500496D706572736F6E61746500696D706572736F6E61746500494D504552534F4E4154450056616C0076616C0056414C0056616C75650076616C75650056414C55450053716C42696E6172790056616C756542696E6172790076616C756562696E6172790056414C554542494E4152590056616C756553514C4E45540076616C756573716C6E65740056414C554553514C4E45540056616C7565537472696E670076616C7565737472696E670056414C5545535452494E470041646456616C75650056616C756553657269616C697A61626C650056616C7565506172616C6C656C0047657456616C7565506172616C6C656C00496E7465726E616C56616C75654E616D6500496E7465726E616C53656C6563745461626C65006765745F4974656D0054656D706C617465436F6E6E656374696F6E006765745F49734E756C6C006765745F4E756C6C00436163686544656C6567617465436F756E7400636163686564656C6567617465636F756E7400434143484544454C4547415445434F554E540043616368654974656D436F756E7400436F6D70696C6500636F6D70696C6500434F4D50494C4500496E7374616E6365436F756E746572004578706972654361636865006578706972656361636865004558504952454341434845004E6577004E45570052656C656173654C6F636B730072656C656173656C6F636B0052454C454153454C4F434B00446973706F736500646973706F736500444953504F534500506172736500526F6F7400726F6F7400524F4F5400546F537472696E67004C6F6164436F6E66696775726174696F6E0056616C756544796E616D6963446174615461626C650076616C756564796E616D6963646174617461626C650056414C554544594E414D4943444154415441424C450056616C7565496E740076616C7565696E740056414C5545494E540056616C75654269740076616C75656269740056414C55454249540053716C4461746554696D650056616C75654461746554696D650076616C75656461746574696D650056414C55454441544554494D450053716C477569640056616C7565556E697175654964656E7469666965720076616C7565756E697175656964656E7469666965720056414C5545554E495155454944454E5449464945520056616C7565536D616C6C496E740076616C7565736D616C6C696E740056414C5545534D414C4C494E540053716C42797465730056616C756556617242696E6172790076616C756576617262696E6172790056414C554556415242494E4152590056616C756554696E79496E740076616C756574696E79696E740056414C554554494E59494E540056616C7565426967496E740076616C7565626967696E740056414C5545424947494E540056616C75654E756C6C61626C65426967496E740076616C75656E756C6C61626C65626967696E740056414C55454E554C4C41424C45424947494E540056616C75654E756C6C61626C654461746554696D650076616C75656E756C6C61626C656461746574696D650056414C55454E554C4C41424C454441544554494D450056616C75654E756C6C61626C65496E740076616C75656E756C6C61626C65696E740056414C55454E554C4C41424C45494E540056616C75654E756C6C61626C6554696E79496E740076616C75656E756C6C61626C6574696E79696E740056414C55454E554C4C41424C4554494E59494E540056616C4E756C6C61626C650076616C6E756C6C61626C650056414C4E554C4C41424C450056616C75654E756C6C61626C650076616C75656E756C6C61626C650056414C55454E554C4C41424C45004576616C52656164416363657373006576616C72656164616363657373004556414C52454144414343455353004576616C52656164416363657373426967496E74006576616C72656164616363657373626967696E74004556414C52454144414343455353424947494E54004576616C52656164416363657373426974006576616C72656164616363657373626974004556414C52454144414343455353424954004576616C52656164416363657373496E74006576616C72656164616363657373696E74004556414C52454144414343455353494E54004576616C52656164416363657373536D616C6C496E74006576616C72656164616363657373736D616C6C696E74004556414C52454144414343455353534D414C4C494E54004576616C5265616441636365737353514C4E4554006576616C7265616461636365737373716C6E6574004556414C5245414441434345535353514C4E4554004576616C52656164416363657373537472696E67006576616C72656164616363657373737472696E67004556414C52454144414343455353535452494E47004576616C5265616441636365737354696E79496E74006576616C7265616461636365737374696E79696E74004556414C5245414441434345535354494E59494E540053514C4E45545F4576616C5456465F537472696E670046696C6C5F53514C4E45545F4576616C5456465F537472696E67004576616C42696E617279006576616C62696E617279004556414C42494E415259004576616C56617242696E617279006576616C76617262696E617279004556414C56415242494E415259004576616C4461746554696D65006576616C6461746574696D65004556414C4441544554494D45004576616C556E697175654964656E746966696572006576616C756E697175656964656E746966696572004556414C554E495155454944454E544946494552004576616C5265616441636365737342696E617279006576616C7265616461636365737362696E617279004556414C5245414441434345535342494E415259004576616C526561644163636573734461746554696D65006576616C726561646163636573736461746574696D65004556414C524541444143434553534441544554494D45004576616C52656164416363657373556E697175654964656E746966696572006576616C72656164616363657373756E697175656964656E746966696572004556414C52454144414343455353554E495155454944454E544946494552004576616C5265616441636365737356617242696E617279006576616C7265616461636365737376617262696E617279004556414C5245414441434345535356415242494E4152590056616C75654E756C6C61626C6542696E6172790076616C75656E756C6C61626C6562696E6172790056414C55454E554C4C41424C4542494E4152590056616C75654E756C6C61626C6556617242696E6172790076616C75656E756C6C61626C6576617262696E6172790056414C55454E554C4C41424C4556415242494E4152590056616C75654E756C6C61626C65556E697175654964656E7469666965720076616C75656E756C6C61626C65756E697175656964656E7469666965720056414C55454E554C4C41424C45554E495155454944454E5449464945520056616C75654E756C6C61626C654269740076616C75656E756C6C61626C656269740056414C55454E554C4C41424C454249540056616C75654E756C6C61626C65536D616C6C496E740076616C75656E756C6C61626C65736D616C6C696E740056414C55454E554C4C41424C45534D414C4C494E540056616C75654E756C6C61626C65537472696E670076616C75656E756C6C61626C65737472696E670056414C55454E554C4C41424C45535452494E4700496E7465726E616C56616C756500496E7465726E616C4576616C00616C74657273747275637475726500414C5445525354525543545552450056616C7565446174615461626C650076616C7565646174617461626C650056414C5545444154415441424C450044796E616D69635069766F740064796E616D69637069766F740044594E414D49435049564F540053514C4E45545F4576616C004974656D0049734E756C6C004E756C6C00436163686544656C65676174650043616368654974656D00436F6E66696775726174696F6E0044656661756C74436F6E74657874002E6363746F720046756E63603200496E6E657244656C6567617465004944696374696F6E617279603200436F6D70696C6553514C4E45540046756E6360310049456E756D657261626C6560310046756E6360330046756E6360340046756E6360350046756E6360360046756E6360370046756E6360380046756E6360390053797374656D2E436F72650046756E63603130005265676973746572416C6961730053797374656D2E5265666C656374696F6E00417373656D626C79005265676973746572417373656D626C79005265676973746572446F6D61696E417373656D626C696573005265676973746572457874656E73696F6E4D6574686F64004D6574686F64496E666F005265676973746572476C6F62616C436F6E7374616E74005265676973746572476C6F62616C5661726961626C650052656769737465725374617469634D656D626572004D656D626572496E666F0052656769737465725479706500556E7265676973746572416C69617300556E7265676973746572416C6C00556E7265676973746572417373656D626C7900556E7265676973746572457874656E73696F6E4D6574686F6400556E7265676973746572476C6F62616C436F6E7374616E7400556E7265676973746572476C6F62616C5661726961626C6500556E72656769737465725374617469634D656D62657200556E7265676973746572547970650043616368654974656D436F756E7465720054696D655370616E00457870697265436163686544656C617900536C6964696E6745787069726174696F6E44656C656761746500536C6964696E6745787069726174696F6E4974656D0045787069726543616368654E6578745363686564756C65640044696374696F6E6172796032006765745F416C696173457874656E73696F6E4D6574686F6473007365745F416C696173457874656E73696F6E4D6574686F64730053797374656D2E4C696E712E45787072657373696F6E7300436F6E7374616E7445787072657373696F6E006765745F416C696173476C6F62616C436F6E7374616E7473007365745F416C696173476C6F62616C436F6E7374616E7473006765745F416C696173476C6F62616C5661726961626C6573007365745F416C696173476C6F62616C5661726961626C6573006765745F416C6961734E616D6573007365745F416C6961734E616D6573006765745F416C6961735374617469634D656D62657273007365745F416C6961735374617469634D656D62657273006765745F416C6961735479706573007365745F416C69617354797065730042696E64696E67466C616773006765745F42696E64696E67466C616773007365745F42696E64696E67466C616773006765745F43616368654B6579507265666978007365745F43616368654B6579507265666978006765745F5573654361726574466F724578706F6E656E74007365745F5573654361726574466F724578706F6E656E74004765744E65787443616368654974656D436F756E74657200526567697374657244656661756C74416C69617300457865637574650054526573756C74005444656C6567617465003C416C696173457874656E73696F6E4D6574686F64733E6B5F5F4261636B696E674669656C64003C416C696173476C6F62616C436F6E7374616E74733E6B5F5F4261636B696E674669656C64003C416C696173476C6F62616C5661726961626C65733E6B5F5F4261636B696E674669656C64003C416C6961734E616D65733E6B5F5F4261636B696E674669656C64003C416C6961735374617469634D656D626572733E6B5F5F4261636B696E674669656C64003C416C69617354797065733E6B5F5F4261636B696E674669656C64003C42696E64696E67466C6167733E6B5F5F4261636B696E674669656C64003C43616368654B65795072656669783E6B5F5F4261636B696E674669656C64003C5573654361726574466F724578706F6E656E743E6B5F5F4261636B696E674669656C6400416C696173457874656E73696F6E4D6574686F647300416C696173476C6F62616C436F6E7374616E747300416C696173476C6F62616C5661726961626C657300416C6961734E616D657300416C6961735374617469634D656D6265727300416C69617354797065730043616368654B6579507265666978005573654361726574466F724578706F6E656E74005265736F6C766543616368654B657900506172616D6574657245787072657373696F6E005A2E45787072657373696F6E732E436F6465436F6D70696C65722E4353686172700045787072657373696F6E53636F7065005265736F6C7665506172616D657465720050726F7065727479496E666F0044696374696F6E6172794974656D50726F7065727479496E666F005265736F6C7A654C617A794D656D626572005265736F6C7665506172616D6574657244696374696F6E617279005265736F6C7665506172616D65746572456E756D657261626C65005265736F6C7665506172616D6574657253696E676C6544696374696F6E617279005265736F6C7665506172616D657465725479706564005265736F6C7665506172616D65746572556E74797065640047656E6572616C457863657074696F6E00496E76616C69645F56616C75654B657900556E65787065637465645F416C6961735265676973746572656400556E65787065637465645F43616368654974656D4578706972656400556E65787065637465645F4E756C6C526573756C7453657400556E65787065637465645F506172616D657465724B65794E6F74466F756E6400556E737570706F727465645F446174615461626C655F526573756C7453657400556E737570706F727465645F53716C4D657461446174615F5479706500556E737570706F727465645F53716C4D657461446174615F54797065436F646500446174615365740053656E644461746153657400446174615461626C650053656E64446174615461626C65004D6963726F736F66742E53716C5365727665722E5365727665720053716C4D657461446174610045787472616374446174615461626C65436F6C756D6E4D657461446174610044617461436F6C756D6E0053716C4D6574614461746146726F6D436F6C756D6E0053716C4D6574614461746146726F6D4F626A656374436F6C756D6E00436F6E76657274546F54797065004765744E756C6C61626C655479706500476574446174615461626C650044617461526F770047657444617461526F7773004765745479706546726F6D4E616D65004164644F72557064617465005472794164640054727952656D6F76650043616368654974656D4C6F636B0045787069726543616368654C6F636B00416371756972654C6F636B0052656C656173654C6F636B00547279416371756972654C6F636B004C6F636B56616C7565006765745F436F756E74006765745F496E6E657244696374696F6E617279007365745F496E6E657244696374696F6E61727900436C6561720054727947657456616C7565003C496E6E657244696374696F6E6172793E6B5F5F4261636B696E674669656C6400436F756E7400496E6E657244696374696F6E6172790049436F6D706172657200636F6D7061726572005F73796E63526F6F7400686561640076657273696F6E007365745F4974656D007365745F436F756E74006765745F4B657973006765745F4973526561644F6E6C79006765745F4973466978656453697A65006765745F497353796E6368726F6E697A6564006765745F53796E63526F6F74006765745F56616C7565730041646400436F6E7461696E7300417272617900436F7079546F00476574456E756D657261746F720053797374656D2E436F6C6C656374696F6E732E49456E756D657261626C652E476574456E756D657261746F720052656D6F7665003C436F756E743E6B5F5F4261636B696E674669656C64004B657973004973526561644F6E6C79004973466978656453697A6500497353796E6368726F6E697A65640053796E63526F6F740056616C756573006C6973740063757272656E74007374617274006765745F43757272656E740044696374696F6E617279456E747279006765745F456E747279006765745F4B6579006765745F56616C7565004D6F76654E6578740052657365740043757272656E7400456E747279004B65790069734B6579730053797374656D2E436F6C6C656374696F6E732E49436F6C6C656374696F6E2E436F7079546F0053797374656D2E436F6C6C656374696F6E732E49436F6C6C656374696F6E2E6765745F436F756E740053797374656D2E436F6C6C656374696F6E732E49436F6C6C656374696F6E2E6765745F497353796E6368726F6E697A65640053797374656D2E436F6C6C656374696F6E732E49436F6C6C656374696F6E2E6765745F53796E63526F6F740053797374656D2E436F6C6C656374696F6E732E49436F6C6C656374696F6E2E436F756E740053797374656D2E436F6C6C656374696F6E732E49436F6C6C656374696F6E2E497353796E6368726F6E697A65640053797374656D2E436F6C6C656374696F6E732E49436F6C6C656374696F6E2E53796E63526F6F74006B6579006E6578740076616C75655F5F004E6F6E650044696374696F6E61727900456E756D657261626C650053696E676C6544696374696F6E61727900547970656400556E747970656400536176654368616E6765730042756C6B496E7365727400416C74657253716C5461626C655374727563747572650047657453716C547970654E616D6500506172616C6C656C496400496E6E65724C697374004275636B65747300706172616C6C656C49640053716C46616365744174747269627574650073716C6E6574006F626A0076616C7565310053797374656D2E52756E74696D652E496E7465726F705365727669636573004F75744174747269627574650076616C7565320076616C7565330076616C7565340076616C756535006C6963656E73654E616D65006C6963656E73654B657900780079006B6579537472696E670076616C7565537472696E670074797065007461626C654E616D650063616368654B65790064656C6567617465416374696F6E00706172616D65746572547970657300506172616D417272617941747472696275746500747970653100747970653200747970653300747970653400747970653500747970653600747970653700747970653800747970653900616C696173006E616D6500617373656D626C69657300747970657300657874656E73696F6E4D6574686F6473006D656D6265727300616C696173657300706172616D657465727300706172616D657465724E616D657300636F6E74657874007464656C65676174650073636F706500706172616D657465724B696E6400726573756C745479706500706172616D657465724E616D65006D656D6265725479706500647300647400757365546F537472696E6700636F6C756D6E00636C72547970650064696374696F6E6172790075706461746556616C7565466163746F72790061646456616C7565466163746F7279006C6F636B56616C756500617272617900696E646578007468697300616C746572537472756374757265006D65746144617461006275636B657453697A6500417373656D626C795469746C6541747472696275746500417373656D626C794465736372697074696F6E41747472696275746500417373656D626C79436F6E66696775726174696F6E41747472696275746500417373656D626C79436F6D70616E7941747472696275746500417373656D626C7950726F6475637441747472696275746500417373656D626C79436F7079726967687441747472696275746500417373656D626C7954726164656D61726B41747472696275746500417373656D626C7943756C7475726541747472696275746500417373656D626C7956657273696F6E41747472696275746500417373656D626C7946696C6556657273696F6E4174747269627574650053797374656D2E446961676E6F73746963730044656275676761626C6541747472696275746500446562756767696E674D6F6465730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300436F6D70696C6174696F6E52656C61786174696F6E734174747269627574650052756E74696D65436F6D7061746962696C69747941747472696275746500457874656E73696F6E417474726962757465003C2E63746F723E625F5F30004353243C3E395F5F436163686564416E6F6E796D6F75734D6574686F6444656C65676174653100436F6D70696C657247656E6572617465644174747269627574650047756964004E6577477569640049446973706F7361626C6500457863657074696F6E0053716C55736572446566696E65645479706541747472696275746500466F726D6174005374727563744C61796F7574417474726962757465004C61796F75744B696E640053716C4D6574686F644174747269627574650044424E756C6C00436F6E7665727400546F496E74363400546F426F6F6C65616E00546F496E74333200546F496E743136006F705F496D706C6963697400546F427974650053716C50726F6365647572654174747269627574650053716C44796E616D69635069766F74005069766F7400457874656E73696F6E4D6574686F64730053797374656D2E446174612E53716C436C69656E740053716C436F6E6E656374696F6E0053797374656D2E446174612E436F6D6D6F6E004462436F6E6E656374696F6E004F70656E0053716C436F6D6D616E64004462436F6D6D616E6400457865637574654E6F6E51756572790044617461436F6C756D6E436F6C6C656374696F6E006765745F436F6C756D6E73005365744F7264696E616C0044617461526F77436F6C6C656374696F6E006765745F526F777300496E74333200496E7465726E616C44617461436F6C6C656374696F6E426173650053716C46756E6374696F6E41747472696275746500537472696E6700436F6D70696C65724D616E61676572005265706C616365006F705F496E657175616C69747900476574547970650052756E74696D655479706548616E646C65004765745479706546726F6D48616E646C65003C52656C656173654C6F636B733E625F5F3200416374696F6E6031004353243C3E395F5F436163686564416E6F6E796D6F75734D6574686F6444656C656761746534003C52656C656173654C6F636B733E625F5F33004353243C3E395F5F436163686564416E6F6E796D6F75734D6574686F6444656C6567617465350053797374656D2E4C696E7100546F4C69737400466F724561636800436861720053706C697400436F6E63617400436F6D6D616E6454797065007365745F436F6D6D616E6454797065005472696D005374617274735769746800426F6F6C65616E00496E743136004279746500496E74363400537472696E6753706C69744F7074696F6E7300546F4461746554696D65006765745F4E6F77006F705F477265617465725468616E00456E7669726F6E6D656E74006765745F4E65774C696E65004A6F696E0053716C436F6E746578740053797374656D2E53656375726974792E5072696E636970616C0057696E646F77734964656E74697479006765745F57696E646F77734964656E746974790057696E646F7773496D706572736F6E6174696F6E436F6E7465787400496E766F6B6500556E646F0045786563757465446174615461626C6500537562747261637400456E756D657261746F72004B657956616C7565506169726032006F705F4C6573735468616E00546F4172726179003C5265676973746572417373656D626C793E625F5F39004353243C3E395F5F436163686564416E6F6E796D6F75734D6574686F6444656C656761746561006765745F46756C6C4E616D65004765745479706573005768657265003C5265676973746572446F6D61696E417373656D626C6965733E625F5F62004353243C3E395F5F436163686564416E6F6E796D6F75734D6574686F6444656C656761746564003C5265676973746572446F6D61696E417373656D626C6965733E625F5F63004353243C3E395F5F436163686564416E6F6E796D6F75734D6574686F6444656C65676174656500417070446F6D61696E006765745F43757272656E74446F6D61696E00476574417373656D626C6965730053656C6563744D616E79003C5265676973746572457874656E73696F6E4D6574686F643E625F5F66004353243C3E395F5F436163686564416E6F6E796D6F75734D6574686F6444656C65676174653130004973446566696E6564004765744D6574686F6473003C3E635F5F446973706C6179436C6173733135006D6574686F64003C5265676973746572457874656E73696F6E4D6574686F643E625F5F3131003C5265676973746572457874656E73696F6E4D6574686F643E625F5F31320073006765745F4E616D650045787072657373696F6E00436F6E7374616E74004669656C64496E666F004765744669656C64730047657450726F70657274696573003C3E635F5F446973706C6179436C6173733162006D656D626572003C52656769737465725374617469634D656D6265723E625F5F3137003C52656769737465725374617469634D656D6265723E625F5F3138003C3E635F5F446973706C6179436C6173733231003C5265676973746572547970653E625F5F3164003C5265676973746572547970653E625F5F31650074003C556E7265676973746572457874656E73696F6E4D6574686F643E625F5F3233004353243C3E395F5F436163686564416E6F6E796D6F75734D6574686F6444656C656761746532340046726F6D4D696E757465730046726F6D486F75727300517565727961626C65004D61746800446563696D616C00446F75626C650053696E676C650053427974650055496E7433320055496E7436340055496E743136004F766572666C6F77457863657074696F6E00436F6E736F6C65004461746554696D654F6666736574004576656E74417267730053797374656D2E44796E616D696300457870616E646F4F626A6563740054696D655A6F6E65496E666F005572690041727261794C69737400486173687461626C6500486173685365746031005175657565603100537461636B60310053797374656D2E436F6D706F6E656E744D6F64656C00436F6D706F6E656E740054797065436F6E766572746572004465627567004576656E744C6F67004576656E74536368656D6154726163654C697374656E65720050726F63657373005472616365004576656E7444657363726970746F720053797374656D2E446961676E6F73746963732E4576656E74696E67004576656E7450726F7669646572004576656E7450726F766964657254726163654C697374656E65720053797374656D2E446961676E6F73746963732E4576656E74696E672E526561646572004576656E744C6F67496E666F726D6174696F6E004576656E744C6F67526561646572004576656E744C6F675265636F7264004576656E744C6F6757617463686572004576656E745265636F72640050726F76696465724D657461646174610053797374656D2E446961676E6F73746963732E506572666F726D616E63654461746100436F756E7465724461746100436F756E7465725365740053797374656D2E476C6F62616C697A6174696F6E0043616C656E6461720043756C74757265496E666F00526567696F6E496E666F0054657874496E666F0053797374656D2E494F004469726563746F7279004469726563746F7279496E666F0046696C650046696C65496E666F0046696C6553747265616D00506174680053747265616D0053747265616D5265616465720053747265616D5772697465720053797374656D2E494F2E436F6D7072657373696F6E00475A697053747265616D0053797374656D2E494F2E49736F6C6174656453746F726167650049736F6C6174656453746F726167650053797374656D2E494F2E506970657300416E6F6E796D6F757350697065436C69656E7453747265616D00416E6F6E796D6F75735069706553657276657253747265616D004E616D656450697065436C69656E7453747265616D004E616D65645069706553657276657253747265616D00506970655365637572697479005069706553747265616D0053797374656D2E494F2E506F7274730053657269616C506F72740049517565727961626C6560310045787072657373696F6E603100436F6E7374727563746F72496E666F0053797374656D2E5265666C656374696F6E2E456D697400417373656D626C794275696C646572004D6574686F644275696C64657200547970654275696C6465720053797374656D2E5265736F7572636573005265736F757263654D616E616765720053797374656D2E536563757269747900536563757265537472696E670053656375726974794D616E616765720053797374656D2E53656375726974792E416363657373436F6E74726F6C0041636365737352756C650046696C655365637572697479004F626A65637453656375726974790053797374656D2E53656375726974792E43727970746F677261706879004543447361436E67005348413100547269706C654445530053797374656D2E53656375726974792E43727970746F6772617068792E58353039436572746966696361746573005835303953746F72650053797374656D2E5465787400456E636F64696E6700537472696E674275696C6465720053797374656D2E546578742E526567756C617245787072657373696F6E730052656765780053797374656D2E546872656164696E67005265616465725772697465724C6F636B536C696D0053656D6170686F726500546872656164005761697448616E646C650053797374656D2E4E657400446E73004674705765625265717565737400487474704C697374656E657200487474705765625265717565737400576562436C69656E740053797374656D2E4E65742E4D61696C004D61696C4D65737361676500536D7470436C69656E740053797374656D2E4E65742E4E6574776F726B496E666F726D6174696F6E004E6574776F726B496E74657266616365004E6574776F726B4368616E67650050696E670053797374656D2E4E65742E5365637572697479004E65676F746961746553747265616D0053736C53747265616D0053797374656D2E4E65742E536F636B657473004E6574776F726B53747265616D00536F636B657400546370436C69656E74005463704C697374656E657200556470436C69656E7400446174615669657700446244617461416461707465720044624461746152656164657200446250726F7669646572466163746F72790053716C44617461416461707465720053716C446174615265616465720053797374656D2E586D6C00586D6C41747472696275746500586D6C446F63756D656E7400586D6C456C656D656E7400586D6C4E6F646500586D6C52656164657200586D6C5772697465720053797374656D2E586D6C2E4C696E7100584174747269627574650058446F63756D656E740058456C656D656E7400584E616D6500584E616D65737061636500584E6F64650058546578740053797374656D2E586D6C2E536368656D6100586D6C536368656D6100586D6C536368656D6153657400586D6C536368656D6156616C696461746F720053797374656D2E586D6C2E53657269616C697A6174696F6E00586D6C53657269616C697A65720053797374656D2E586D6C2E5850617468005850617468446F63756D656E7400585061746845787072657373696F6E0058506174684E6176696761746F720053797374656D2E586D6C2E58736C0058736C436F6D70696C65645472616E73666F726D0058736C74417267756D656E744C69737400536F72746564536574603100506172616C6C656C456E756D657261626C65004C617A79496E697469616C697A6572005370696E4C6F636B0053797374656D2E546872656164696E672E5461736B7300506172616C6C656C005475706C65005475706C656031005475706C656032005475706C656033005475706C656034005475706C656035005475706C656036005475706C656037005475706C656038004D617463680053716C436F6D6D616E644275696C6465720047657447656E65726963417267756D656E7473004C617374003C5265736F6C766543616368654B65793E625F5F300049436F6C6C656374696F6E60310053656C656374003C3E635F5F446973706C6179436C61737334003C3E635F5F446973706C6179436C61737337004353243C3E385F5F6C6F63616C7335006B657956616C7565003C436F6D70696C6553514C4E45543E625F5F33004372656174655661726961626C650042696E61727945787072657373696F6E0041737369676E0045787072657373696F6E7300436F6E7374616E7473004372656174654C617A795661726961626C65005A2E45787072657373696F6E732E436F6465416E616C797369732E4353686172700053796E746178506172736572005A2E45787072657373696F6E732E436F6465416E616C797369730053796E7461784E6F6465005061727365546578740045787072657373696F6E50617273657200506172736553796E746178004C616D626461003C3E635F5F446973706C6179436C617373626031003C3E635F5F446973706C6179436C617373656031004353243C3E385F5F6C6F63616C7363003C436F6D70696C653E625F5F61003C3E635F5F446973706C6179436C6173733134003C3E635F5F446973706C6179436C6173733137004353243C3E385F5F6C6F63616C7331350070726F7065727479496E666F003C5265736F6C7A654C617A794D656D6265723E625F5F3131003C3E635F5F446973706C6179436C6173733161006669656C64496E666F003C5265736F6C7A654C617A794D656D6265723E625F5F3132003C5265736F6C7A654C617A794D656D6265723E625F5F3130004353243C3E395F5F436163686564416E6F6E796D6F75734D6574686F6444656C6567617465313300506172616D65746572496E666F00476574496E646578506172616D657465727300416E79006765745F50726F7065727479547970650047657456616C756545787072657373696F6E4F724E756C6C004D656D62657245787072657373696F6E0050726F7065727479006765745F4669656C6454797065004669656C640054797065436F64650047657454797065436F6465003C3E635F5F446973706C6179436C617373316400706172616D6574657244696374696F6E617279003C3E635F5F446973706C6179436C6173733230004353243C3E385F5F6C6F63616C73316500706172616D65746572003C5265736F6C7665506172616D6574657244696374696F6E6172793E625F5F316300496E64657845787072657373696F6E006765745F5479706500556E61727945787072657373696F6E00437265617465506172616D657465720049456E756D657261746F726031003C3E635F5F446973706C6179436C61737332330064696374506172616D65746572003C3E635F5F446973706C6179436C6173733236004353243C3E385F5F6C6F63616C733234003C5265736F6C7665506172616D65746572456E756D657261626C653E625F5F3232004765744D6574686F64004D6574686F6443616C6C45787072657373696F6E0043616C6C003C3E635F5F446973706C6179436C6173733239003C3E635F5F446973706C6179436C6173733263004353243C3E385F5F6C6F63616C733261003C5265736F6C7665506172616D6574657253696E676C6544696374696F6E6172793E625F5F3238004669727374003C3E635F5F446973706C6179436C6173733266003C3E635F5F446973706C6179436C6173733331003C3E635F5F446973706C6179436C6173733333004353243C3E385F5F6C6F63616C733332004353243C3E385F5F6C6F63616C73333000706172616D6574657245787072657373696F6E003C5265736F6C7665506172616D65746572556E74797065643E625F5F326500496E736572740047657450726F706572747900446174615461626C65436F6C6C656374696F6E006765745F5461626C65730053716C446174615265636F72640053716C50697065006765745F506970650053656E64526573756C747353746172740053657456616C7565006765745F4669656C64436F756E740053656E64526573756C7473526F770053656E64526573756C7473456E64006765745F4461746154797065006765745F436F6C756D6E4E616D650053716C446254797065006765745F4D61784C656E677468006F705F457175616C6974790053716C43686172730053716C446F75626C650053716C4D6F6E65790053716C446563696D616C004D6178507265636973696F6E0053716C53696E676C650053716C586D6C003C50726976617465496D706C656D656E746174696F6E44657461696C733E7B30363144333234342D413744312D344144452D413541452D3243384541393442323732397D0024246D6574686F643078363030303135302D310024246D6574686F643078363030303135312D31006765745F5461626C6500436C6F6E6500496D706F7274526F77005A2E45787072657373696F6E732E436F6465436F6D70696C65720046616B65416E6F6E796D6F7573547970650050726F70657274696573004E6577526F77006765745F497347656E65726963547970650047657447656E6572696354797065446566696E6974696F6E006765745F49734172726179006765745F486173456C656D656E7454797065004D61746368436F6C6C656374696F6E00436170747572650024246D6574686F643078363030303135342D3100436F6E7461696E734B657900496E7465726C6F636B656400436F6D7061726545786368616E67650053657269616C697A61626C654174747269627574650044656661756C744D656D626572417474726962757465004E6F6E53657269616C697A656441747472696275746500417267756D656E744E756C6C457863657074696F6E00457175616C7300436F6D7061726500417267756D656E74457863657074696F6E00417267756D656E744F75744F6652616E6765457863657074696F6E006765745F4C656E67746800496E76616C69644F7065726174696F6E457863657074696F6E0050726F7065727479436F6C6C656374696F6E006765745F457874656E64656450726F706572746965730055706461746500436F7079003C416C74657253716C5461626C655374727563747572653E625F5F30006765745F53716C446254797065006765745F507265636973696F6E006765745F5363616C65003C3E635F5F446973706C6179436C61737332003C54727947657456616C75653E625F5F300050726564696361746560310046696E64003C6765745F436F756E743E625F5F300053756D0047657448617368436F646500000080FF4F006F00700073002100200041002000670065006E006500720061006C0020006500720072006F007200200068006100730020006F0063006300750072007200650064002E00200050006C00650061007300650020007200650070006F00720074002000740068006500200069007300730075006500200069006E0063006C007500640069006E0067002000740068006500200073007400610063006B00200074007200610063006500200074006F0020006F0075007200200073007500700070006F007200740020007400650061006D003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00003363006F006E007400650078007400200063006F006E006E0065006300740069006F006E0020003D002000740072007500650000135A005A005A005F0049006E0064006500780000812154006800650020006B0065007900200027007B0030007D002700200063006F0075006C00640020006E006F007400200062006500200066006F0075006E0064002C00200079006F0075002000630061006E0020006F006E006C00790020006700650074002000760061006C00750065002000660072006F006D0020006500780069007300740069006E00670020006B006500790073002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00011D640065006600610075006C00740043006F006D006D0061006E00640000256E00650077002000530071006C0043006F006E006E0065006300740069006F006E002800001B5B00530051004C004E00450054005F0043006F00640065005D0000033B00002F63006F006E007400650078007400200063006F006E006E0065006300740069006F006E003D0074007200750065000029530051004C004E00450054005F0043006F006E00660069006700750072006100740069006F006E00000D530045004C00450043005400001D530045004C0045004300540020002A002000460052004F004D00200000032000008159540068006500200073007000650063006900660069006500640020006B0065007900200069007300200069006E00760061006C00690064002E00200059006F00750020006D007500730074002000630068006F006F007300650020006200650074007700650065006E0020002700780027002C002000270069006E00740020007800270020006F0072002000270069006E0074003F00200078002700200066006F0072006D00610074002E002000430075007200720065006E00740020006B00650079003A0020007B0030007D002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000182D30D000A002000200020002000200020002000200020002000200020007500730069006E00670020002800530071006C0043006F006E006E0065006300740069006F006E00200063006F006E006E0065006300740069006F006E0020003D0020006E00650077002000530071006C0043006F006E006E0065006300740069006F006E002800220063006F006E007400650078007400200063006F006E006E0065006300740069006F006E0020003D00200074007200750065002200290029000D000A002000200020002000200020002000200020002000200020007B000D000A0020002000200020002000200020002000200020002000200020002000200020007500730069006E00670020002800530071006C0043006F006D006D0061006E006400200063006F006D006D0061006E00640020003D0020006E00650077002000530071006C0043006F006D006D0061006E00640028002900290020000D000A0020002000200020002000200020002000200020002000200009007B000D000A002000200020002000200020002000200020002000200020000900090063006F006D006D0061006E0064002E0043006F006E006E0065006300740069006F006E0020003D00200063006F006E006E0065006300740069006F006E003B000D000A002000200020002000200020002000200020002000200020002000200020002000200020002000200063006F006E006E0065006300740069006F006E002E004F00700065006E00280029003B000D000A00200020002000200020002000200020002000200020002000200020002000200020002000200020005B00530051004C004E00450054005F0043006F00640065005D000D000A0020002000200020002000200020002000200020002000200020002000200020007D000D000A002000200020002000200020002000200020002000200020007D000D000A00200020002000200020002000200020002000200020002000002F63006F006D006D0061006E0064002E0043006F006D006D0061006E006400540065007800740020003D0020002200000522003B00003D20003D00200063006F006D006D0061006E0064002E00450078006500630075007400650044006100740061005400610062006C006500280029003B00002B2E0045007800740065006E00640065006400500072006F0070006500720074006900650073005B002700013127005D0020003D00200063006F006D006D0061006E0064002E0043006F006D006D0061006E006400540065007800740001550D000A004400450043004C0041005200450020004000730071006C006E00650074002000530051004C004E004500540020003D002000530051004C004E00450054003A003A005000610072007300650028002700016F27002900200049004E005300450052005400200049004E0054004F00200023007A00200045005800450043002000640062006F002E00530051004C004E00450054005F004500760061006C0052006500730075006C00740053006500740020004000730071006C006E0065007400010B760061006C0075006500002D4500760061006C00530051004C004E00450054005F00530065006C006500630074005400610062006C0065000081FF0D000A007500730069006E00670020002800530071006C0043006F006E006E0065006300740069006F006E00200063006F006E006E0065006300740069006F006E0020003D0020006E00650077002000530071006C0043006F006E006E0065006300740069006F006E002800220063006F006E007400650078007400200063006F006E006E0065006300740069006F006E0020003D00200074007200750065002200290029000D000A007B000D000A0020002000200020007500730069006E00670020002800530071006C0043006F006D006D0061006E0064002000640065006600610075006C00740043006F006D006D0061006E00640020003D0020006E00650077002000530071006C0043006F006D006D0061006E00640028002900290020000D000A0009007B000D000A0009000900640065006600610075006C00740043006F006D006D0061006E0064002E0043006F006E006E0065006300740069006F006E0020003D00200063006F006E006E0065006300740069006F006E003B000D000A002000200020002000200020002000200063006F006E006E0065006300740069006F006E002E004F00700065006E00280029003B000D000A00200020002000200020002000200020005B00530051004C004E00450054005F0043006F00640065005D000D000A0020002000200020007D000D000A007D000D000A0000037B0000037D0000077B0030007D0000077B0031007D0000077B0032007D0000077B0033007D0000077B0034007D0000077B0035007D0000077B0036007D0000077B0037007D0000077B0038007D00008133540068006500200061006C006900610073003A00200027007B0030007D002700200069007300200061006C0072006500610064007900200072006500670069007300740065007200650064002C00200079006F00750020006D00750073007400200073007000650063006900660069007900200061006E00200075006E007200650067006900730074006500720065006400200061006C0069006100730020006E0061006D0065002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000157530079007300740065006D002E004400650070006C006F0079006D0065006E0074002E004100700070006C00690063006100740069006F006E002E004D0061006E00690066006500730074002E00460069006C0065000043530079007300740065006D002E004E00650074002E0057006500620052006500710075006500730074004D006500740068006F00640073002B00460069006C0065000053530079007300740065006D002E00440079006E0061006D00690063002E005500740069006C0073002E0043006F006C006C0065006300740069006F006E0045007800740065006E00730069006F006E007300001B530079007300740065006D002E0041006300740069006F006E00000100395200650073006F006C007600650054006F0050006100720061006D006500740065007200440069006300740069006F006E0061007200790000094900740065006D00008105410020006E006F006E002D006E0075006C006C00200044006100740061005300650074002F0044006100740061005400610062006C006500200069007300200072006500710075006900720065006400200074006F002000720065007400750072006E002000740068006500200072006500730075006C0074002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000181675400680065002000740079007000650020002800540079007000650043006F00640065002900200027007B0030007D00270020006900730020006E006F007400200073007500700070006F007200740065006400200069006E002000530051004C0020005300650072007600650072002C0020006D0061006B00650020007300750072006500200074006F00200063006F006E007600650072007400200079006F0075007200200072006500730075006C007400200074006F0020006100200073007500700070006F007200740065006400200074007900700065002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0001815154006800650020007400790070006500200027007B0030007D00270020006900730020006E006F007400200073007500700070006F007200740065006400200069006E002000530051004C0020005300650072007600650072002C0020006D0061006B00650020007300750072006500200074006F00200063006F006E007600650072007400200079006F0075007200200072006500730075006C007400200074006F0020006100200073007500700070006F007200740065006400200074007900700065002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D000113530071006C00420069006E006100720079000015530071006C0042006F006F006C00650061006E00000F530071006C0042007900740065000011530071006C00420079007400650073000011530071006C00430068006100720073000017530071006C004400610074006500540069006D0065000015530071006C0044006500630069006D0061006C000013530071006C0044006F00750062006C006500000F530071006C0047007500690064000011530071006C0049006E007400310036000011530071006C0049006E007400330032000011530071006C0049006E007400360034000011530071006C004D006F006E00650079000013530071006C00530069006E0067006C0065000013530071006C0053007400720069006E006700000D530071006C0058006D006C00000D440042004E0075006C006C0000812D540068006500200072006500730075006C007400200063006F0075006C00640020006E006F007400200062006500200063006F006E00760065007200740065006400200074006F0020006100200052006500730075006C0074005300650074002C00200074006800650020007400790070006500200027007B0030007D00270020006900730020006E006F007400200073007500700070006F0072007400650064002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00010D560061006C00750065005F00000F560061006C00750065005F003100000B62006F006F006C003F00001142006F006F006C00650061006E003F00000B62007900740065003F00000B42007900740065003F00000D730068006F00720074003F00000D49006E007400310036003F00000969006E0074003F00000D49006E007400330032003F00000B6C006F006E0067003F00000D49006E007400360034003F00000D66006C006F00610074003F00000F530069006E0067006C0065003F00000F64006F00750062006C0065003F00000F44006F00750062006C0065003F00001164006500630069006D0061006C003F00001144006500630069006D0061006C003F0000134400610074006500540069006D0065003F00001344006100740061005400610062006C006500001755006E0073007500700070006F00720074006500640000076B0065007900000B6500720072006F007200002F41007200670075006D0065006E0074002000630061006E006E006F00740020006200650020006E0075006C006C0000794400750070006C006900630061007400650020006B006500790073003A0020006E006500770020006B00650079003A0020007B0030007D002C0020006F006C0064002000760061006C00750065003A0020007B0031007D002C0020006E00650077002000760061006C00750065003A0020007B0032007D00000B61007200720061007900000B69006E00640065007800000564007400001D5B007B0030007D005D0020007B0031007D0020004E0055004C004C00001B41004C0054004500520020005400410042004C00450020005B00000F5D00200041004400440020000A0000032C00000D42004900470049004E005400000742004900540000114400410054004500540049004D004500001144004500430049004D0041004C00280000032900000F44004500430049004D0041004C00000B46004C004F0041005400000749004E005400000B4D004F004E004500590000134E005600410052004300480041005200280000074D0041005800002155004E0049005100550045004900440045004E00540049004600490045005200001153004D0041004C004C0049004E005400000F540049004E00590049004E0054000015560041005200420049004E0041005200590028000017530051004C005F00560041005200490041004E005400000758004D004C00003555006E0073007500700070006F00720074006500640020005400790070006500200043006F00640065003A0020007B0030007D00003355006E0073007500700070006F007200740065006400200043006C007200200054007900700065003A0020007B0030007D00000044321D06D1A7DE4AA5AE2C8EA94B27290008B77A5C561934E08902060202061C0A061512290115122D010E02060E02060803061214030611310306126803061240080615123C020E123503200001032000080520011260080320001C0420001139042000113D04200011410420001145042000110C0420001149042000114D05000101110C0600011219110C060002011C101C080003011C101C101C0A0004011C101C101C101C0C0005011C101C101C101C101C0E0006011C101C101C101C101C101C032000020320000E0420011C0E082001151151010A0E08200115115101020E08200115115101080E08200115115101060E05200111490E08200115115101050E050002020E0E052001110C0E072002110C11491C082002110C11491155082002110C1149110C082002110C114911490500020808080420001208040000110C0300000803000002050001110C0E060001110C1149072002110C11490E082002110C11491141082002110C1149113D082002110C11491159082002110C1149115D082002110C11491145082002110C11491261082002110C1149114D082002110C11491139070002011C101149042000126104200011550420001159042000115D092003110C114912351C042800120803280002040800110C080615126C020E1214080615126C0208120803061218030612380300000108061512650212111C0B2002010E1512650212111C0C200212140E151269020E123508200115126D011C0E1020021512650212191C0E1512710112350D20021512650212191C0E1D12351120021512650212111C0E151269020E12350B2002151265021C1C0E12350E2003151275031C1C1C0E12351235112004151279041C1C1C1C0E12351235123514200515127D051C1C1C1C1C0E123512351235123518200615128081061C1C1C1C1C1C0E123512351235123512351B200715128085071C1C1C1C1C1C1C0E1235123512351235123512351E200815128089081C1C1C1C1C1C1C1C0E12351235123512351235123512352120091512808D091C1C1C1C1C1C1C1C1C0E1235123512351235123512351235123524200A151280910A1C1C1C1C1C1C1C1C1C1C0E12351235123512351235123512351235123506200212180E0E08200112181D128095042000121807200112181D123508200112181D12809906200212180E1C08200112181D12809D06200112181D0E04061180A1112000151280A5020E151280A5021280990512200101151280A5020E151280A502128099050B2000151280A5020E1280A90C200101151280A5020E1280A9092000151280A5020E1C0A200101151280A5020E1C092000151280A5020E0E0A200101151280A5020E0E112000151280A5020E151280A50212809D0512200101151280A5020E151280A50212809D050A2000151280A5020E12350B200101151280A5020E12350520001180AD062001011180AD042001010E04200101020520021C0E1C0620021C0E1D1C063001011E000E073001021E000E1C083001021E000E1D1C0B3001021E000E151271010E083001021E000E1D0E1006151280A5020E151280A502128099050A06151280A5020E1280A90806151280A5020E1C0806151280A5020E0E1006151280A5020E151280A50212809D050906151280A5020E123504061180AD112800151280A5020E151280A502128099050B2800151280A5020E1280A9092800151280A5020E1C092800151280A5020E0E112800151280A5020E151280A50212809D050A2800151280A5020E12350528001180AD0328000E0F00040E121812350E151269020E123515000315122D011280B11280B51158151269020E123504061280B9100004121412180E151269020E12351235131001051E0012180E151269020E123512351158100004011280B5151269020E12350E123513000215122D011280B11280B5151269020E123580FE4F006F00700073002100200041002000670065006E006500720061006C0020006500720072006F007200200068006100730020006F0063006300750072007200650064002E00200050006C00650061007300650020007200650070006F00720074002000740068006500200069007300730075006500200069006E0063006C007500640069006E0067002000740068006500200073007400610063006B00200074007200610063006500200074006F0020006F0075007200200073007500700070006F007200740020007400650061006D003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D008158540068006500200073007000650063006900660069006500640020006B0065007900200069007300200069006E00760061006C00690064002E00200059006F00750020006D007500730074002000630068006F006F007300650020006200650074007700650065006E0020002700780027002C002000270069006E00740020007800270020006F0072002000270069006E0074003F00200078002700200066006F0072006D00610074002E002000430075007200720065006E00740020006B00650079003A0020007B0030007D002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D008132540068006500200061006C006900610073003A00200027007B0030007D002700200069007300200061006C0072006500610064007900200072006500670069007300740065007200650064002C00200079006F00750020006D00750073007400200073007000650063006900660069007900200061006E00200075006E007200650067006900730074006500720065006400200061006C0069006100730020006E0061006D0065002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00816C540068006500200063006100630068006500640020006900740065006D002000680061007300200065007800700069007200650064002E0020004900740065006D00730020006100750074006F006D00610074006900630061006C006C007900200065007800700069007200650020006100660074006500720020006100200070006500720069006F00640020006F0066002000740069006D0065002C00200079006F0075002000630061006E0020006300680061006E006700650020007400680069007300200063006F006E00660069006700750072006100740069006F006E002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D008104410020006E006F006E002D006E0075006C006C00200044006100740061005300650074002F0044006100740061005400610062006C006500200069007300200072006500710075006900720065006400200074006F002000720065007400750072006E002000740068006500200072006500730075006C0074002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00812054006800650020006B0065007900200027007B0030007D002700200063006F0075006C00640020006E006F007400200062006500200066006F0075006E0064002C00200079006F0075002000630061006E0020006F006E006C00790020006700650074002000760061006C00750065002000660072006F006D0020006500780069007300740069006E00670020006B006500790073002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00812C540068006500200072006500730075006C007400200063006F0075006C00640020006E006F007400200062006500200063006F006E00760065007200740065006400200074006F0020006100200052006500730075006C0074005300650074002C00200074006800650020007400790070006500200027007B0030007D00270020006900730020006E006F007400200073007500700070006F0072007400650064002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00815054006800650020007400790070006500200027007B0030007D00270020006900730020006E006F007400200073007500700070006F007200740065006400200069006E002000530051004C0020005300650072007600650072002C0020006D0061006B00650020007300750072006500200074006F00200063006F006E007600650072007400200079006F0075007200200072006500730075006C007400200074006F0020006100200073007500700070006F007200740065006400200074007900700065002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D0081665400680065002000740079007000650020002800540079007000650043006F00640065002900200027007B0030007D00270020006900730020006E006F007400200073007500700070006F007200740065006400200069006E002000530051004C0020005300650072007600650072002C0020006D0061006B00650020007300750072006500200074006F00200063006F006E007600650072007400200079006F0075007200200072006500730075006C007400200074006F0020006100200073007500700070006F007200740065006400200074007900700065002E00200043006F006E00740061006300740020006F0075007200200073007500700070006F007200740020007400650061006D00200066006F00720020006D006F0072006500200069006E0066006F0072006D006100740069006F006E003A00200069006E0066006F0040007A007A007A00700072006F006A0065006300740073002E0063006F006D00060001011280BD060001011280C10C00021D1280C51280C1101D020A00021280C51280C910020B00031280C50E1280C912350400011C1C05000112351C0600011280C11C0A0001151271011280CD1C05000112350E1C1002041E01151280A5021E001E011E001E01151275031E001E011E01221002041E01151280A5021E001E011E00151265021E001E01151275031E001E011E011110020302151280A5021E001E011E001E011210020302151280A5021E001E011E00101E010500010110080500010210080B2000151280A502130013010C200101151280A50213001301122003130113001301151275031300130113011820031301130015126502130013011512750313001301130107200202130013010820020213001013010A06151280A50213001301032800080B2800151280A5021300130104061280D103061250062001011280D10420011C1C052002011C1C04200101080420001215042001021C072002011280D508042000121D0420001221042001011C062002021C101C0428011C1C04280012150328001C0520010112400520001180D90528001180D90620020112400208000115126D011C0E1000021512650212191C0E1512710112350D00021512650212191C0E1D12351100021512650212111C0E151269020E12350B0002151265021C1C0E12350E0003151275031C1C1C0E12351235110004151279041C1C1C1C0E12351235123514000515127D051C1C1C1C1C0E123512351235123518000615128081061C1C1C1C1C1C0E123512351235123512351B000715128085071C1C1C1C1C1C1C0E1235123512351235123512351E000815128089081C1C1C1C1C1C1C1C0E12351235123512351235123512352100091512808D091C1C1C1C1C1C1C1C1C0E1235123512351235123512351235123524000A151280910A1C1C1C1C1C1C1C1C1C1C0E123512351235123512351235123512351235061001011E000E0B1001021E000E151271010E081001021E000E1D0E0400011C0E0500021C0E1C0600021C0E1D1C071001021E000E1C081001021E000E1D1C03061158040000000004010000000402000000040300000004040000000405000000070002011280C10E080003011280C10E020700020E1280C10E0600010E1280C5070615122D011260052001021260052001011260072002020810126004061D12640A061D15123C021300130112010001005408074D617853697A65FFFFFFFF041000000004640000000620010111811507000015122D010E0A0615126D0115122D010E0515122D010E0915126D0115122D010E052002011C18091512290115122D010E0920010115126D0113000500001181290715123C020E1235050701118129030701080E070512601180D91260121D12812D04070112600620010111813919010001000000010054020D4973427974654F72646572656401062001011181418126010002005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D446174614163636573730000000004061281490400010A1C042001010A030611390307011C040001021C0306113D040001081C03061141040001061C04200101060306114505000111490E0907041C110C110C110C0400010E1C03061149040001051C04200101050306114D040001010E0420001300052001130008072002010E12815D05200012816D0620011280C90E0520001281710620011280CD0805200201081C1107071C0E12815D1281651280C1081280BD8176010004005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D4461746141636365737300000000540E1146696C6C526F774D6574686F644E616D651546696C6C5F53514C4E45545F4576616C5456465F31540E0F5461626C65446566696E6974696F6E1356616C75655F312073716C5F76617269616E740420011C080507011280CD818B010004005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D4461746141636365737300000000540E1146696C6C526F774D6574686F644E616D651546696C6C5F53514C4E45545F4576616C5456465F32540E0F5461626C65446566696E6974696F6E2856616C75655F312073716C5F76617269616E742C2056616C75655F322073716C5F76617269616E7481A0010004005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D4461746141636365737300000000540E1146696C6C526F774D6574686F644E616D651546696C6C5F53514C4E45545F4576616C5456465F33540E0F5461626C65446566696E6974696F6E3D56616C75655F312073716C5F76617269616E742C2056616C75655F322073716C5F76617269616E742C2056616C75655F332073716C5F76617269616E7481B5010004005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D4461746141636365737300000000540E1146696C6C526F774D6574686F644E616D651546696C6C5F53514C4E45545F4576616C5456465F34540E0F5461626C65446566696E6974696F6E5256616C75655F312073716C5F76617269616E742C2056616C75655F322073716C5F76617269616E742C2056616C75655F332073716C5F76617269616E742C2056616C75655F342073716C5F76617269616E7481CA010004005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D4461746141636365737300000000540E1146696C6C526F774D6574686F644E616D651546696C6C5F53514C4E45545F4576616C5456465F35540E0F5461626C65446566696E6974696F6E6756616C75655F312073716C5F76617269616E742C2056616C75655F322073716C5F76617269616E742C2056616C75655F332073716C5F76617269616E742C2056616C75655F342073716C5F76617269616E742C2056616C75655F352073716C5F76617269616E740500020E0E1C05151151010A0520010113000807021C151151010A0515115101020807021C15115101020515115101080807021C15115101080515115101060807021C15115101060515115101050807021C1511510105050002010E0E042001020E0520020E0E0E0420001235021D0507000112351181890420001D050715126C020812080407011208040701110C0715126C020E12148126010002005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730100000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D44617461416363657373010000000A0704110C1208110C12080A00010115123C020E12140D061512818D0115123C020E12140A00010115123C020812080D061512818D0115123C020812080715123C020E12140715123C020812080F10010115122D011E00151271011E00090A0115123C020E12140C1512818D0115123C020E12140B15122D0115123C020E12140A2001011512818D011300090A0115123C020812080C1512818D0115123C020812080B15122D0115123C0208120806070212141208120100010054020A4F6E4E756C6C43616C6C000620011D0E1D03040001080E0807031D0E110C1D03060702120812600600030E1C1C1C0620010111819909070312815D128165020500020E0E0E0307010E042000113105200011812903200006032000050320000A070701151151010A06151151011131080701151151011131070701151151010807070115115101050920021D0E1D0E1181AD08070312351D0E1D0E817D010004005455794D6963726F736F66742E53716C5365727665722E5365727665722E446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038390A446174614163636573730000000054557F4D6963726F736F66742E53716C5365727665722E5365727665722E53797374656D446174614163636573734B696E642C2053797374656D2E446174612C2056657273696F6E3D342E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D623737613563353631393334653038391053797374656D4461746141636365737300000000540E1146696C6C526F774D6574686F644E616D651A46696C6C5F53514C4E45545F4576616C5456465F537472696E67540E0F5461626C65446566696E6974696F6E1556616C75655F31204E56415243484152284D415829052001011D0504000012610306115505000111311C05200101113103061159062001011181290306115D07151151011181290907011511510111812907070115115101060B07050E1208110C1260110C040000113107000202113111310500020E1C1C0500010E1D1C0300000E0900020E0E151271010E0500001281B90520001281BD071512650212111C0620011301130020070D120811310E0E15122D010E1180D912601C1281BD1281B9121D1D1C12812D0800011280C11281650C07040E1280C112815D1281651407081C0E12815D1281651280C10812815D12816507200111311180A108151280A5020E12140B2000151181C1021300130108151181C1020E12140B2000151181C5021300130108151181C5020E12140420001301092000151181C901130006151181C9010E0520010213000515122D010808151280A50208120808151181C10208120808151181C50208120806151181C90108650716113115122D010E15123C020E1214151181C5020E12140E113115122D010815123C02081208151181C5020812080802113111311D15123C020E121408151181C1020E1214151181C9010E11311D15123C0208120808151181C102081208151181C90108070A0115126D011C0C1001011D1E00151271011E00040A01123508151280A5020E12350720020113001301090A011512650212191C0B0702151280A5020E123508090A011512650212111C080A01151265021C1C0A0701151280A5020E1235090A01151275031C1C1C0A0A01151279041C1C1C1C0B0A0115127D051C1C1C1C1C0D0A0115128081061C1C1C1C1C1C0E0A0115128085071C1C1C1C1C1C1C0F0A0115128089081C1C1C1C1C1C1C1C100A011512808D091C1C1C1C1C1C1C1C1C110A01151280910A1C1C1C1C1C1C1C1C1C1C040A020E0E0500010212350806151265021235020520001D1235071512650212350216100102151271011E00151271011E00151265021E00020D07041280951D12351D128095080B00011512710112351280950E06151265021280951512710112350500001281CD0620001D1280950D151265021280951512710112351B100202151271011E01151271011E00151265021E00151271011E01070A0212809512350907021D1280951D12350600010212809909061512650212809902062002021235020920011D1280991180AD081512650212809902050A011280990C070412351D1280991D12350804061280990C2001151280A502128099050E152002151280A502128099050E151280A5021280990509151280A50212809905060A02128099050B0701151280A502128099050E151265020E151280A5021280990517151275030E151280A50212809905151280A502128099050C0A020E151280A502128099052E0705151265020E151280A50212809905151275030E151280A50212809905151280A5021280990512701D128099080600011280A91C060A020E1280A9040A020E1C0920011D1281D51180AD0920011D1280B91180AD14070612351D1281D51D1280B91D1280991D123508040612809D0C2001151280A50212809D050E152002151280A50212809D050E151280A50212809D0509151280A50212809D05060A0212809D050B0701151280A50212809D050E151265020E151280A50212809D0517151275030E151280A50212809D05151280A50212809D050C0A020E151280A50212809D052E0705151265020E151280A50212809D05151275030E151280A50212809D05151280A50212809D0512741D12809D080306123507200212350E123509151275030E12351235050A020E12351A0705151275030E12351235151275030E1235123512781D1235080707040E0E1D0E080F151280A5020E151280A5021280990509151280A5020E1280A907151280A5020E1C07151280A5020E0E0F151280A5020E151280A50212809D05140705128099151280A50212809905051D128099080907040E1280A91D0E080707040E1C1D0E0814070512809D151280A50212809D05051D12809D080A0704123512351D1235080600011180A10D040701113180B9073D1D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D12351D1235030A011C021E00080A0115126D011E000615126D011E000A0A011512650212111E00081512650212111E00090A01151265021C1E0007151265021C1E001A0705151280A5020E12351180D9151280A5020E1235121D12812D130704151280A5020E1C151280A5020E1235080E040A011E00030A010E0B1001011E00151271011E00140707151280A5020E123512351D123502123508080500010E123508061512650212350E07151269020E123509200015128421011301071512650212350E17100202151271011E01151271011E00151265021E001E01050A0212350E0500010E1D0E0407011D0E0715122D011280B10B070215122D011280B1115804061280B50306127C0806151181C5020E1C0520001281D107151181C5020E1C0820021280B112350E0B00021284251281D11281D1080615122D011281D10715122D011281D11D07051280B1128425151181C5020E1C151181C5020E1C151181C5020E1C0B200101151269021300130107151181C1020E1C0715126D011281D107151229011281D10B2002010E151229011281D106000112842D0E0D00031281D11280B512842D123514100102151282D5011E001281D1151271011280B10C151282D5011512650212111C38070D0E121415126D011281D112808015122D011280B112842D1281D11512650212111C12141280B5127C151181C1020E1C151181C5020E1C080615128084011300071512808801130007151280840113000715128084011E000715128088011E0007151282D5011E003C070D0E121415122D011280B115126D011281D115128088011E0012842D1281D11E0012141280B515128084011E00151181C1020E1C151181C5020E1C040612808C04061281D5060001021280B90906151265021280B9020620001D1284350A10010102151271011E00050A011284350A20031281D11280B50E020B00021284391281D11280B90807021280B11284250B00021284391281D11281D507000111843D12350620001D1280B908151265021280B902050A011280B90620001D1281D52B070B1D1280B91D1281D515126D011281D112809015126D011281D112809412808C1D1280B9081D1281D50804061280B104061280980906151181C5020E123508151181C5020E12350F00031284411281D11280B91D1281D107000202123512350A00021284451281D112353407081280B11281D1151181C5020E1235151181C5020E12351D1281D1151181C5020E1235151181C5020E1235151181C5020E12350720011280B112350C15127101151181C5020E1235092000151284490113000D1512844901151181C5020E12352B070615122D011280B115126D011281D112809C1280981512844901151181C5020E1235151181C5020E123504061280A00920021280990E1180AD0C000212844D1280991D1281D13B070B15122D011280B11280B112809912844D12842515126D011281D11280A41280A01D1281D11512844901151181C5020E1235151181C5020E123504061280A82B070615122D011280B115126D011281D11280AC1280A81512844901151181C5020E1235151181C5020E12350D1512842101151181C5020E12350A0A01151181C5020E123526070415122D011280B1151181C5020E1235151181C5020E12351512844901151181C5020E123504061280B404061280B0062002010813002807061280B1128425151181C5020E1235151181C5020E1235151181C5020E1235151181C5020E12352F070715122D011280B11280B81280B4151181C5020E12351280B01512844901151181C5020E1235151181C5020E12350920021280B90E1D12350507011D12350520001284510A07031280C1122112812D072001011D1280C5050000128459062001011284551807091D021D1280C51284551284591280CD081C122112812D0620011280C9080A07031D1280C5081280C9072002010E11845D082003010E11845D0A092004010E11845D05050E07051280C5123511843D0E11843D021D030206050507011280C50806151280A5020E0807151280A5020E080420001D030520001181E107151151011181E10320000D05151151010D0320000C05151151010C69071E1C1155113D114D1261128461115911846D118465115D11451141113911846911847111491284750E0815115101021511510105151151011131151151011181E1151151010D1511510111812915115101061511510108151151010A151151011181E1151151010C0407020E0807151271011280CD0815128449011280CD0520001280C1062001011280CD07151271011284790815128449011284790520001280CD052002010E1C0620021C1C1D1C021D1C0720011280CD1D1C80A507371280C1151271011280CD021280CD1280C11512710112847902128479151181C5020E1C1280CD151181C5020E1C123512191D1280B91280B91C1280CD1280B912191C1D1C081280CD0812191C12191C12191C12841915128449011280CD1512844901128479151181C1020E1C151181C1020E1C1D1280B90812211D1280B90812812D122112812D12211D1C12812D12211D1C12812D12211D1C12812D12211D1C12812D0A07031280C11D1280CD0806070312350E0809151280A5021E001E010A151275031E001E011E010820021302130013010407011E0108151265021E001E010607021E011E0103070102070003081008080809151280A502130013010815123C02130013010A15127503130013011301060702130113010815126502130013010807031301130113010407020202021301090100044974656D0000052002010E0E052002081C1C06070312501C1C090704125012501C12500700031C101C1C1C0700040E0E1C1C1C05070212501C052002011C080407011250070703125012501C0507020812500520001284A506200101128381062001081280C10907030E12815D1283811507080E12815D128165110C1280C10812815D1281650906151265021280C50E0600030E0E1C1C0600030E0E0E0E08151265021280C50E060A021280C50E0907031D021D1280C50E05200011845D0A07050E11845D1D1C0A0A0615122D01126007151284A90112600B20011300151284A9011300100706020808151284A90112601280C0020815126C02130013010B00010815123C02130013010E061512650215123C0213001301080D1512650215123C0213001301081110010208151271011E00151265021E00080A0A0115123C02130013010213002101001C5A2E45787072657373696F6E732E53716C5365727665722E4576616C00006901006453514C204576616C2046756E6374696F6E207C204576616C7561746520432320636F646520616E642065787072657373696F6E20696E20542D53514C2073746F7265642070726F6365647572652C2066756E6374696F6E20616E6420747269676765722E0000050100000000160100115A5A5A2050726F6A6563747320496E632E00001101000C4576616C2053514C2E4E455400002F01002A436F7079726967687420C2A9205A5A5A2050726F6A6563747320496E632E2032303134202D203230313600001501001053514C2026202E4E455420546F6F6C7300000A010005312E302E3000000801000200000000000801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F7773010000000000A887605B00000000020000001C010000B47D0100B45F01005253445311B3E9CAB4315F41AED81F110F5D99B601000000633A5C55736572735C4A6F6E617468616E5C4465736B746F705C5A5C5446535C4576616C5C5A2E45787072657373696F6E732E53716C5365727665722E4576616C5C5A2E45787072657373696F6E732E53716C5365727665722E4576616C5C6F626A5C52656C656173655C5A2E45787072657373696F6E732E53716C5365727665722E4576616C2E70646200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F87E010000000000000000000E7F0100002000000000000000000000000000000000000000000000007F01000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF25002000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000001800008000000000000000000000000000000100010000003000008000000000000000000000000000000100000000004800000058800100CC0400000000000000000000CC0434000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000001000000000000000100000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B0042C040000010053007400720069006E006700460069006C00650049006E0066006F000000080400000100300030003000300030003400620030000000E4006500010043006F006D006D0065006E00740073000000530051004C0020004500760061006C002000460075006E006300740069006F006E0020007C0020004500760061006C007500610074006500200043002300200063006F0064006500200061006E0064002000650078007000720065007300730069006F006E00200069006E00200054002D00530051004C002000730074006F007200650064002000700072006F006300650064007500720065002C002000660075006E006300740069006F006E00200061006E006400200074007200690067006700650072002E000000000044001200010043006F006D00700061006E0079004E0061006D006500000000005A005A005A002000500072006F006A006500630074007300200049006E0063002E00000064001D000100460069006C0065004400650073006300720069007000740069006F006E00000000005A002E00450078007000720065007300730069006F006E0073002E00530071006C005300650072007600650072002E004500760061006C00000000002C0006000100460069006C006500560065007200730069006F006E000000000031002E0030002E003000000064002100010049006E007400650072006E0061006C004E0061006D00650000005A002E00450078007000720065007300730069006F006E0073002E00530071006C005300650072007600650072002E004500760061006C002E0064006C006C000000000078002A0001004C006500670061006C0043006F007000790072006900670068007400000043006F0070007900720069006700680074002000A90020005A005A005A002000500072006F006A006500630074007300200049006E0063002E002000320030003100340020002D002000320030003100360000004C00110001004C006500670061006C00540072006100640065006D00610072006B00730000000000530051004C002000260020002E004E0045005400200054006F006F006C007300000000006C00210001004F0072006900670069006E0061006C00460069006C0065006E0061006D00650000005A002E00450078007000720065007300730069006F006E0073002E00530071006C005300650072007600650072002E004500760061006C002E0064006C006C00000000003C000D000100500072006F0064007500630074004E0061006D006500000000004500760061006C002000530051004C002E004E004500540000000000300006000100500072006F006400750063007400560065007200730069006F006E00000031002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000031002E0030002E0030002E003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007001000C000000203F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 - WITH PERMISSION_SET = SAFE - -- WITH PERMISSION_SET = EXTERNAL_ACCESS - -- WITH PERMISSION_SET = UNSAFE - ; - - CREATE TYPE [dbo].[SQLNET] EXTERNAL NAME [Z.Expressions.SqlServer.Eval].[Z.Expressions.SqlServer.Eval.SQLNET]; - EXEC('CREATE PROCEDURE [SQLNET_EvalResultSet] @sqlnet [SQLNET] AS EXTERNAL NAME [Z.Expressions.SqlServer.Eval].[Z.Expressions.SqlServer.Eval.SQLNET].[SQLNET_EvalResultSet]') - EXEC('CREATE FUNCTION [dbo].[SQLNET_EvalTVF_1] (@sqlnet [dbo].[SQLNET]) RETURNS TABLE ([Value_1] SQL_VARIANT NULL) AS EXTERNAL NAME [Z.Expressions.SqlServer.Eval].[Z.Expressions.SqlServer.Eval.SQLNET].[SQLNET_EvalTVF_1]') - EXEC('CREATE FUNCTION [dbo].[SQLNET_EvalTVF_2] (@sqlnet [dbo].[SQLNET]) RETURNS TABLE ([Value_1] SQL_VARIANT NULL, [Value_2] SQL_VARIANT NULL) AS EXTERNAL NAME [Z.Expressions.SqlServer.Eval].[Z.Expressions.SqlServer.Eval.SQLNET].[SQLNET_EvalTVF_2]') - EXEC('CREATE FUNCTION [dbo].[SQLNET_EvalTVF_3] (@sqlnet [dbo].[SQLNET]) RETURNS TABLE ([Value_1] SQL_VARIANT NULL, [Value_2] SQL_VARIANT NULL, [Value_3] SQL_VARIANT NULL) AS EXTERNAL NAME [Z.Expressions.SqlServer.Eval].[Z.Expressions.SqlServer.Eval.SQLNET].[SQLNET_EvalTVF_3]') - EXEC('CREATE FUNCTION [dbo].[SQLNET_EvalTVF_4] (@sqlnet [dbo].[SQLNET]) RETURNS TABLE ([Value_1] SQL_VARIANT NULL, [Value_2] SQL_VARIANT NULL, [Value_3] SQL_VARIANT NULL, [Value_4] SQL_VARIANT NULL) AS EXTERNAL NAME [Z.Expressions.SqlServer.Eval].[Z.Expressions.SqlServer.Eval.SQLNET].[SQLNET_EvalTVF_4]') - EXEC('CREATE FUNCTION [dbo].[SQLNET_EvalTVF_5] (@sqlnet [dbo].[SQLNET]) RETURNS TABLE ([Value_1] SQL_VARIANT NULL, [Value_2] SQL_VARIANT NULL, [Value_3] SQL_VARIANT NULL, [Value_4] SQL_VARIANT NULL, [Value_5] SQL_VARIANT NULL) AS EXTERNAL NAME [Z.Expressions.SqlServer.Eval].[Z.Expressions.SqlServer.Eval.SQLNET].[SQLNET_EvalTVF_5]') - EXEC('CREATE FUNCTION [dbo].[SQLNET_EvalTVF_String] (@sqlnet [dbo].[SQLNET]) RETURNS TABLE ( [Value_1] NVARCHAR (MAX) NULL) AS EXTERNAL NAME [Z.Expressions.SqlServer.Eval].[Z.Expressions.SqlServer.Eval.SQLNET].[SQLNET_EvalTVF_String]') - - COMMIT; - PRINT N'Completed!' - -END TRY -BEGIN CATCH - /* - * CATCH ERROR - */ - PRINT 'An error occured: ' + ERROR_MESSAGE() - IF ( @@TRANCOUNT > 0 ) - BEGIN - PRINT 'Rolling back the TRANSACTION...' - ROLLBACK TRAN - PRINT 'Done.' - END -END CATCH - -/* -* ROLLBACK UNCATCH ERROR -*/ -IF ( @@TRANCOUNT > 0 ) - BEGIN - PRINT 'An error occured and the CATCH Block was skipped; Rolling back the TRANSACTION...' - ROLLBACK TRAN - PRINT 'Done.' - END \ No newline at end of file diff --git a/docs/images/arrow-down1.png b/docs/images/arrow-down1.png deleted file mode 100644 index d476391882b71e774f2454db02442b6957d70df8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4285 zcmaJ_c|4Ts-+nY2`5d7kH9KG$`9zxVyU?&psu`=Gm{l=yaW005+% zo$NgYZHnND5d{n08Q3|jpi!mm_n{r8gwSHKQ3SviPYEVKoJrVFf+qosk2~>#Uc3cB3b3WX5yR?wryZU{Fj zh7d+{Iu%7Ye9GMmcPavBhKE}3gILnd1p*`j4GW=@BFWL_bSvmzy5@rZ&uIfFoG!1;-(fNC+COk2Eqyqmg1aHNsBG1}bF1oHO< z6-0}|hnRcXJNz9>FtUP%(P&h21B2MuSp8U(J|!yD0BL4s_EW>q5H3K#qvOalEFDgc zhW%2oCq(0-h*TPpLWcZQ#0FDhXjV``rvF(2iTaN$Ir{Hy5^R_O9ZNMp>LY$G=@-z= z?f-|8NdKUtX`Y1t=KFsNM|;Il2?m~oXi7{JPEfcI*w0W@b4(NgOQS@2Q7DnWcJW{s zg+_@EqfjB3!)S=kQ6d>niH+9%3-9J;?o5uRVaYgxv%M8mprB7A;>}Ia7!z9~Gn5I^ z2!%xMH?gxrU>qhk8K5me~eEc3)~(h zu=U(FU%^?ELOR>qdeKJ~{Ur)798nyLg=n~4gPNsOXzek0=$RgL>`j)8`uwVmLcT&3 z!@J1$!2`7e&yEhdpsr>HZ!by3@Bds9WaF%|FN$uz2db5`%g)u|pw63h%MHpXIkY@} zxo>lMvwyumAmX;~!sXErw5$ngIxv~Qa1`H+ zP-GtBxRiKXt4_QZUr2AU)={gbhL(6*Gul?FMxX3Tag4Kvw6sc6g^3bZ#JqL6*ICIK zH&zRTg2v0?qKONNS8lLhB64|#ZCZvRCn9mFw~bw|wn_pb{U%ahHhgvsE7bH;z)u1u zmiUVk6+?#X5CV{UC)FxlMx*4x< zjqceFyi@T`-rFlIWEl#GCT^4LAFXHSBK&!%Hf`~>ULuC`eJA!NH~p1aUr^6LspFjc zhtJODOLvv$5=2Ux||*#j#wu{{I@;a+FC<^$24BuP=9*?dm$Dym-lV*3%3j$ zptJi)4{&Gc8)B8u!c9GU*=#?l#%Mmkj?a@*+PgSCC5K=QtX*SS$GIfbt!6rPnYyt3 z2AKx3G5M@_zM__8u~K?hK8W7fu5@u_gVOi_RASexzE;RlKF^6l=a?6*8bE+ zIOBG{dwAK)FK}+8zNBW^){lL11HPsk-lv?nMDb7CBX|DM5!fsIDwgYC!5+68KjPIg zwPR;UN~(CRRHDZz2dEIWD~ zUg4e&`i^4wpMFX&gYqRT+E&tl;aM@zhl`nWYWV{FFQUg)Uad3-+gYM%jD^*XjQk4K;K2Q5boNa3$WHB7Vb6^}T zUP=7^qz#yn1ATC9h|FDeE9m9u^P@_I45j5YZhlZ^v=FLBAAL-}Rj(#=UU)&i;@FGG zvjZY${g1y=bskK9p$KMc4sX+qY=+N|-Bjt~0i|Wcm-UD?G-l(fw46q0ix)`^>vtma zejwz*?I?zjE7o;%r{+HVh0?UXv?1$gIk z4X-tJ05unrG7H@0-S)I~j_ItnTk{J_x*U&BIJ4%CAy>;f9c>4L@@#-Q zo<@fyTJ$)4^^4%+m>rt3KdsQpEOj{{yPA@eGYx$*6V^NLIFo<>2KM&(dVYb#b?Jsc zR=TxrdW3V%G}>@ddkU7$RgaRrH&pU8BdN;5|8m9JEoG*5B!4`c*mpbcyOB%BcokLL zY`guXm%v(qS;x9LW7)lXgQ+}n=+^2oGDigSMn_@=soyhg;b*ORNoYdh$J5EuD}BNj zG9*175x@1H!CHzIK2(~56$3HCZ}Xq!MZ7pq3llyjd4t`Ul!xCv1k)};B{~0C!en#q zd~cVTOla>r4yK>!3(#{FuZzg^V*6`9^U}RV#`u&(-jUVN5AkvebW*pu09h@mFz6M# zARbe%JaT}r*2;`+JJpK{LRSr%@KBjz)g$c^(yI3pB zp?mW}wQ-s3Jw$I8Eblz)HNHhPQoKC1T(@%mv{7xit?c`EspDns_P2V!s?|T=G>W4m zGZYlWKMff5^8Gs-JA?=dfZM>BJi5T?==UDS1iZ5c-Y={8@wMTe=i~6}3^^O|q_n>3 zk1kTX#oj019ppdNn{nUONH7@G1LtE}Ha$@`JED1Ci$baJNR&rd%@&Kc-mSc3FQwUN zy_r8mW#YScD_+^p?D*dG8~}V8UcIOcZ?~4V;22`7i?)mzG+mOS_P>^D8uEaru=BJ- z?lvKdJ-0A^zZ;hy!zSQc_o@^~WXj8<4lzIeA>WLPH4Hqa?aU9opK{DUg{mynBGp;{ z`zZaQF7)I&-n+O#k;8Qt&y@ZF)6m1uvCPyQ0TZJqbcrn5&Z^#ll-m>>So;q$VR(`OTq{T-jMUiuF?NE=hn_D6kQ86NSf9_{p{|b0Xj3 zAj|30i{C=ppF}8y6yM6MR$`jaL$QeXUH5-4JNNwMEF4_3pYT<^=>SLa&biBW4N2RA zQL@@wA1B0PR)R39bA!@=gvPa$&Y1_#^3q+eh*)X;&>Ad#0pZ@&=8+2DQ0k&0?UuHU z+-B2;P7Ceou;Ge=8#{q+5Q0&xc{a8rQ&RRZruOUsLmT1iZ;}276&I{ zA&3}^M=eL#${da}Ebf&;B*L(3Aw_>?e`-7V$C}taLjX`lIThQy&11qoe-xXPftB54 z8a?{3k)QYGiAAm?U;}1vv(xBltzfnxnaQwlMQBS@+JN=$b8y=cF_VopfK4rPoUNr~ zS@YJaa&_z5h4dDT2&A>ADNyy;+1G$p=4&Ml6#)2(P_t`HPx5&lqHG($Jv(UoiALBC<{_Sm5+nDQe>H+lfT%kV}e_ky#-*YJkoJ=?H3>l*zQ z@_Lunmm+yPiRVI*a};@y-dd>;bW|k3FC$=PFP_s=zO$%<*;SioxYka8c-(_uEq%O@TZKBWol*c+>b7;A zIo5gltlExLb>%}{J(IAcVALG`{b-#xZ|&42Bc#oPZ+6eqVAYj#^H~RmOL6hTSfYrX?t(t4I1)xAq=-_RE$2ll!9wIMfq|MV>$ZEW zYOmQwkvFG=hXMD>6FJQ|HIW9c+FLZ*dmaY@4SxaYBqf4zB%zFpc1(4r)jM|R{89W) z6$lm>l1^3Zeu)WC|Il~m{u*9!Z?LqiV#sGD@74fMj?vu2g-^OzV?`8+L`r?2o52@F Z0Ma2btLTJXlRtkbIPZ72ueS?I`yc;mZ+ZX# diff --git a/docs/images/logo.png b/docs/images/logo.png deleted file mode 100644 index a25dd5370a993537f336388acc6c2825f7019cf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1439 zcma)6`B&0;6#bxxs9y+65K$>Jb1K}LQBljleanb&X>`;ktAl1Pm9{#Cg}Izu%G}B* zmu%5QElbC(2r)~HO2yrzNGTOFtyCPE`3L5m^X`4`{qWAc=biIXXuj?!O@bx>0Ojf7 zLRYfo&qS&!F>FBNfs)_{sN1Oka5J#1J}5XeFfho%!WM-ltia%(!(gti zUPR(XOG|PIgE1kK6>r)kEGg;s^_`!ZN&$ck!1DC8Qence)5hur~y2S6zR901lDo7V$iU}$P;x*4ObkJB}_w%L{sz~aI}1pp2X zE^h9={sF-xlC6)=uJ02QX#j+WGk4Mhtu{L}HnyrGagTAhv9b4mgoK-zm@dxFMnuGE zXrOZth<-M^+0XAah0-SIm=cNRB@%gGUxA59V&ZvmOw5~8ryA_+HlY(^rhxV0a1b3YarmzUoi;c~kR3$rg3q#799!(b{xLV7!1c=w#yska%BUQ72CbCo4F?2mFqmD{$jgZpi$AH_UujeUO9vy(=T zoYQBM$2x~Zxn133{K=Hp(+uh7^!$dA|IY9~P+{NKcN+ke@18DHhDY1y9BDuw4bN9) zm6NsShx}xd)hFx3Dy;NOOBYNR#}#v~KHx#;!@r`ZP+#Is)UI9{`C`&;*F5hye|o48 z{&ezaKq+0omdRwv`%*>AtsVPzsGMz?P@zqqub#2_n=yxPY2^r|^2?MB9nm38u&xcq z5{E_us}IiwU~Q+ds#c`Gr)*wnRDN25TaEMXN|dX$1mm&@L~kEND9fUgo~ zTjs9Ec}w)V+^A`hmCYQ4AN*-3H9{WO^KQUX56`^tTI=n%`IlqFS=y}CqFq>azfq02 zdSUBcioTw(T5IMyCQ0;rK@aO~g3}?}$jueEQ24z(^_VT(@#R4Osv80<(a}Mq$}Ovf z9gxf|x10?<_+!ah0HrqMS#J?DRYl{0bF|I97Iwpz4xx(^m;2*>qnGhY?W$jPW^-6e zS(mH(yswpolL$wD^h*Sp3+E<;Q=UmMMyCDX3B@P#iK`SvavX2X&1*be+zU=5`Dj$ZjbEH)Lek{^-Q6hfs~2GY*4fARUKi5XkB)p=*>BVsqQ3u0{owk; zhN80(_6ry5>S$eSPT{t3v)17??uBjNAMTvzl;02?J${7wFaxTwG$*g3y^A-_Vi{tk zTWb^eRDXJ~NT(GqOO>dtc9$>@#vqVn0^rBfK|A0Nh^W&i*H diff --git a/docs/images/logo256X256-opacity.png b/docs/images/logo256X256-opacity.png deleted file mode 100644 index 9e36e8c36380abcdb8b874fe3560fb9cbaa6d979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19064 zcmdpe^;=Zm7w#E`lx~o21f;tLq?Ht;Q>42ahAwI86ckVzq+1XW36ahrB&2(2?)iN0 zbN`9^!#ro6HG9rEd!N15de^(&nOIGACEO=Zp8x=WtD-Fb8UP^RTL^%O4jzo%%dNo! zmaDRX2LNCb|M!9bIe8SI5yMkOO#x#K4IP)6)b=a0(Em&d`ku00p0+OTz?bR~WzdA< z37X`sJS^SqTs`evoB?7i1}4z{sfzosF$0P>DYx4qEa4XLYx-_-`n^r=61( zAcVxn0zbj}?-OkoYfm2wcPqfe_3^*q*#A4Zork5P1vu0lXzuxz1e!7bGwWHnJKH(i z06kP&(Vz|E|9;=g-O>uUcnshBf5YTloSdwjJ%P)SjBe0|{@*YiJ5NU|p#1O;8vxJ) zD)O>AzIg}vK7k}w4}&o6ChJMLC;vial$AeKW+i{k zC!g)xNR59t&?3>{B1ypuB}h$9E;tZ4yL*^RT^`*(bbKW|zkN^SV{@53pS>R_jX2WY zqKqOyc@mkLRVx<+kUX*4DMFX|$jmzhuzx^}dJ06Q_Gm(jG>Ite0g{&}a=7ppD(2-7 zO?E6CA>av1=*Ryb1|Nen|1g)FpFg^D;jdUT%jX|NR5D>pS+GsfXgF#s_%vg~mlvmx z7e~gJN(=!WFl8`9nN|9on+YqXIk3WHDs?&Q^tt-q@uzfkN&ort=fxcjl;yz!^J6!{ zwd~WU2o((t8*Odv*1vz>>6T4;7*=I$zu^E+nqj3+25ej>5v>1iKMP4DN15G}k&(=U z;7PcWq+&A2r!uP$>=%z(la5+9*a}|8=I7I_Pm~<|S?i1bry!(SgwBie?D=!6`uh5o z{e4Gi7MAqcy$g;4JrAy5uBhgi5IN>`5m>F-AH1VOl2t?`b98icV{&p*M?By3 z^Xo5uQ5Iq^Fqu?PBb1@?cvo@lu-$;zMWy3I$D$AnS>(nF9h4Ub8fAgmC&Qd-+n_)4 z!pEn%v$IoeuI<9cj^N=PNu(w;M%&%pJ?ri+P#6X?OHWDpGGl*XpJCAhv`gqO7bl*~7hArD4930d&H`9^g(MfaBh`C3Y!sRf9 z;G!j8zs5c1;CO9imGEchLd8DHEp~;$mnX%)3z;_X3wuT4Pe9NX=N;q?0IL~G*la@H zNk>`q)N!qe>JljAZthIzI>^a|yB@E~`ZM4`rhs+$-Q9$$n;Vv%re?W{n%bl*bxlTI zvCs4x1i`*{h3N5@xQkz~xefKY*NouNThTi{ee*<*GRmUp^%wa>7TuD%*@ZuU91-)@ z3zKJEHl52Act>enP$=3F(MP?0pP)k)RmO&u#z>Cu;^^u1>(&2j&}AxnaX>bB@X;oXzKtcMrP;N<<@lI-?q#inw|Ns9b3UQZRi< zHE>i6E9muAFD`DK0xtJIk~@7ULMM=`Z)nJli+j@5(js3rvE!A>EEWknF2)GM3O4_Q zOZKsImXn}hANfpmO^##lxo1e!nzZ-N6jED3`)Bh-4OyzorBVUj*wOeR6Y(N1$|3zR zZEfPtOD!i0e?RDSG83)nUCF?A_Khi$4LM02AIH8E2gfj8ieJiDy&&uw31;3lFJtah z7o-p@ZE7MrLn1;n0&p4OPh~zlNDFROh^W#tr6AXukUkZUv zN7a43MU{ga0eS{|o$UnH?%f>{I%89N$SRi zPF+>w{5QKv)&;9_z#bsvwfn>DeRqYW!qF(KLV~I&Z7<78d|XI*j=f|?B9ECOrOfPTqAjV<-f(BsLLg}j?`t_?Gt{*U4WyB``z?tM&4vF~L;dgdb zT>R(V3yLb6VV=i@kdzzKZ(ZaMJ@F>$f!r29v0=$sP};&tl8$CCChP~Jx12>}T4gwhjCqsZPQYF+9!a^ooP{@BA1G*y?Op|^XF0YB48 z6$piGKIv6V4N>KXFD%4niTDV!s(lSrEE(8Hg2j)GahD6(pP!%CwIlUk55IiXqLRi+ zN!)6(DjYQdC4l%+0;2#4zq7HJwuwoFUd07^`|=n{0pYmz>O(}#amhCqgQQKF7d|wW zwl9!u>&KDR%yP;1RD>w9Bo++|GMKV2?fHja#`D#+5owpHfA9bL^6&PxY>h@3JLc8; zubSHZuT&O|3qAFTST!^UC^!QjNVE36EfLL#;9OUeNO11h^fWTt;Ss*s^x%E)T6{-s zYVxixu<#3?wzs5qAdQN5c@Vz;C&kMVKvJsuapT za;@z0s{EMN!IAIZ?9#Lh4ROMIfkbUqe+^Vw8M!`&yN$w{FlD?AD*C`##Qeq_Wkzp- z6o!!HAlc`UY=JVH`y0YstWPKebjIW$q0V)mE66iryx z<6Afg6sPchz$d~5-dCc9l#$Yy<{0qOF}}zt6i!( zN%;NqoTE274hd$LS-&d@zUDw{p$wyECRQE;DpA8M`-?~f>C!t%9K7K_9OWc*psCiieHS*zt$=o#V$J!j>BB~TDMK32Kq)dE8akpsAySN#W9eG zF}J&7_P1}R^##VUr4T{QZu0MmTSiX?Y0w7yLX0*IA5DJa^n`b4b!I4P!cg^WvMPhC0ZY`n3mtu8z*&_r6>2;D!xYKXv|4}NAZ@r<1PuDrm{$dD#E|+>%-4pEg>kXu1MPeLuZO6qXJrTRtkviG} zbuN1|gnUQl`~V(YEcri2btZc*E?YJE`BT;iSq6k2ayr3p{$W4qd?hS1b|mGAiN*b* z$OW#I(IY~`ym_9c>QJ19Rh1&z&%?&zp>D9q{k!j{vNE~PuNB^$7sM3PN5Jn$UYglF8Q&h`N z=aG~hiH5!XvD%vvggPH}9p2skD~V-R;eDE*-+5#8O^{ADmEot<&R_`osw6(_h!VXP z8>PW+lDqGl9dUnHSl}zmjoP5^b&y0hnMH83l2y8Xr;>4UdTwNB=)Cif?+X?t{g2mI z_vi%Ew+GNeo+07mG!{`a7L|x;`*3EJq2b~F_mtYTR}pBUTUpuc92{ZlWza#lRZ;FH z*au=+g5%`@y5q5KScGATn+7Ih?p8ov?p?q(znf(J$ehi)CgU8ifNFzyw?d6!_s^$;!46UmSE%pWas5P(sF6#{!x?}+W zC3h4rcRGq$j;K`qOW*g%GhUxV#}Dc0j6y;}#bkG`gbIY6Qd0Vjy9%B@UNRN0!hB}U z9>x3$^d1Ao&!}5Q+^NME7F&aEJ%4&^kCArY>{hJJNM+$Doo5192RCQTA90K7>t9+5 zE~M^<(YXG7fc_|x_awAI?V1od77k@>;!jH!(yq1``9$%CrjZ0; zc6Rn5*`0prRVaZ1#4PYyNZR+2>6oLcA!SDUZcOBu%{S@Hr-pIm7fy6kl-$>;Z|~$x zOq|BIMvbBrN{Y^$VT~RWM3pDw3g4ghEVX)EfBJO(u3>(N9|x+pK}OFbjkt0BjUyYo z8ZOxM?3UZgAQZMHQQV0uoJ;fN*|RK(AR=|+4uZ3-QAIa5K2Px~?ep-o^;W|PU^_dDHhimfva6`~O`Yzkg>PR?HN zd4RiPgV*gX>7U8T;u$l#=ki)T5=R|LjfFL6gAU8f!7_rVN6Zr&}=lW-LNb zom8n_>O57epSIu3^UFSveX;+tSxp(r{*1EZV0V8qE)^BMi!mx`HE5JRdG$lwY>7R< z&av2?a7%v|QZv{krELs`OmB%wU8>Y`@ewI&R&|LB`H@@^Dg}keL?g#&-XF+ldQ4k; z`|sKsFnleNo(i3@v-s52O>E41B}pes)npYF{g)I1G^l-W7f!|`=*;&rM$N^l+BXpwt%E2rAWnXez$~(5e)+z90LtjRvQ;pRVI=Y zaOFQTgzcvHF|*xb5gd1#muq$T-Fn$)1gL~$@n}yIo@$p)t)EY-_qz>_%BiRjp5J_u zJ?O$F*CLtt?TV=ZJJT3^qLHFxaxBe@6T|%WHW7N0vs)+JulGjgwr_X(*=_J$%JgLo z_A_uLtU({O6r`c)6c54Q!D(K5p5x{7BMiBWcb^Skc8>n>R>9DagNz17*DZdgGg2T# zV_;yQ`DMzD>LAE%`S5n3d!_f#1O|OyvF1WxA?oS<&Ew!;{szPg7JD;=8z1##EO&R5 zZ?6v9rO>z_ywPnX5q$7}lVxt`av3X*O}se2a0tYKtGzL8esk7$z33xkADj`7_xDxT z!XSFII9W#%J<}^IuC7LZ_Uzf=qEj?+F}pdU>)!XUm3)n2L0ZRkuCd)z!a=u@)FOs! zxE%5+DEO$;*1SEWZB&4LWRl4EZ*A^*T zw{j$C`%A4<tpxY2LWt{dAx#$uo^Iv2f_8--Rz9Mb~UvWEV)ah^i$ z(MA|?{UA60FQ&AmCFV<(W|f3zc{()DF1Y;p z@>-YVHnin+k*3DAJ|mY4C)_%ivhth=cY-Y#PM%o||Khw@ULNJ5K#x#f`JQC(Dk%Bj zT?Ef;6^5wNe)jWKQ8Iy2je+a!!h|$+!-%CN>gHo5qC}j*h>*JtQcoYDL6vi41h}jE z+T!Afuz?>;hu{032Lo4Emy2%STIXkpBSMg~#co zNA+QYJ-fhf*dFe$`Ya(2j^MLg7X5Fw5O?=_rBBBum|<|W+@{q8k;jCVxCd?uyaT00 zv34mlBYk~(YVj$G3N9J6!O1{TVD9mH`|7fFyC||`bNu>q+|kY1V2lvFxR?>-Q8-NW ze4?3d0@TP4hJm~n7{+lIyHEB*+-AD(v*0#j1o*N6AD9ktF-osjZW#`>0>H>O@aOZk zeNo|DB<>kglTMglCi zvPX4d-pI*|?VsS)K^Es>XTrIPJYV5;VafiITId;bB835TWC}-+-hLPA~Im9`{ZLg@hrO3Za94 zsmMMgQN@4G%!_Xr6NiGyVAb!<3rsp!`Nx6+TFH}s58hnybe#D&$3#TZ&z)>$?$ue3D(w_b@)xZA z{ZjAW4~`XYlf6oAvlg9|r-7 zN|=&mev%BSl0VCY@ro#VH54<&TsZsV?4DaM+V<)&XXby=&#;P&TBHNxI3k=qZs+iD zU~>G9ILsV1>(fW+PpiB*@)HB!8oeF9R%VZ7>>J;Ue%x{i={v-wLf46+ z=y4ArDTeW);F^Drcp@ytq+!Wt)Z<<$cUS)cm*fOPcM`B%-^N~VobSV^eH_dCm^ zULn0lvOyXVa`f;GhOAiDKyt7!I9RATo-Zqe7L+V*(2^xY8%?LNC9DxXgk>A*BFM$}b_>Ct*OZ z^FUVJX3Nbkr|YGG4LzsBhXD6cc?A*$Pj7Egwp(84h^z8rJ}=k%prFbhjCLS3vTxyu z#aa@=!6PD{dVE-K1%lMPj`urd# zFVC15uKDLw=gMw>?l`mCd^Xbz&-TjWo3%potcAQuXd0{9I*_kOfa*$3{-SePLkH=I z?MmiDio+WG0?3_yBJ;hNm~4H3D#LPX=*Z0gQ1dhDJswSH$C?$}?-E_sg!L z?w|5`p8wR6&4%#03SR!a^k{ON4@){~!?yQD>~8m8-m)u(m`6~`7#fOq`x^Y68uHe=veAKNmkY3EiNy|nKeOni*Dx$q@<@~C2EImL?NnL>p)Mv+lD#Rp0v9F z)}o3bqAsMu0-Zs+YIb&C8o_>srVu=`B+2aZQnB}KuSBK^di?zUn;xe7q|2=E6e}RY zb$4Y&I?65a&O;Y4eu8U`qDk*N?v2u;eO!MSgmybEKEU3NkpWSD>J$SfGtoE7L!mx zgf%r4@n*aW6Att((^I1B#%I^f%L}1PYinXCg%={y_ML5e{#!lK!JAw8U;?G{q@N8> zl-@&J^9-jaCkHQ^w=h)xZ7!fJ?cE}-h+#1$`Jn_%U;=Xk-E8fAQX{N4S#sZIBUUJk zeid;P9OJYoY;mO&LQd4yb^`+U^nIRgM<3iL{5=!X+vF4WKNiVNA`&ymTDf7f?o&7S zL6n5gUt11*;A3r2v#Oh0-F?i&grqPd8#ZF)^TJq?nNecTyV=H&^6ru>LycTw7=#y@ z9`{iB3G^4Jc_FVb?<%}D66PMzEseDkZGYkt+Stg1!S$!-7oX*?Ch*TqP|pD zTer2fy(W~u18PrB2J1YQ#lagOZwiph+k=rPMnJ%dy1~RGh~uZ+u`@9yy|0TF22qEG zSRMYeXXtk)N!^2%Nz(5@NDLA`Ij5X5B&c_{2s-myo?J+)k#W>>u0&cVO9%ViDZ0R8 zS${)A!{5@QrF6kPWwa&tfmOd-sngoJ;|aCUlwZEw%E`%<+PZ_%r>)$U9@934)YyNA zTOk2PEI3vg+j!4C5)s+zVIx;E@rNup5=_Pe1B#OEy9)2icQi2JraEubegq+x(_ZW7 zkO`@pT(pI-6W?rO!9X+!7+p8<2lgQ8}M9}o>N z&oK2Db8f%z{|~Z#evSLC7G7rjnkZ>YOQyuY3sU#((Qs*4h;pJV3EI>wU5@~m7nnY6VG$7HM0s*` z-}oCh?z_LU*=Dzg-rR&@)c&h#{(E?OCJ5P+;!Aw!!Q_RHjHs5jwxO}cV-FLY}J0*LmncMN;RZq`vQ*EhHfruJ-yauCA@Kd)``-dSPj17 z=}f%8^}$J641&ta1Je@ z{8z0A{KE$w=a8V>_6NF@RVfA(Kw`|mo%YbcPvYgPR~yosBDCTW1EAyfHm|(ci^Aol zN;oV})zU?mQ~8-pow-M7#?x^n4qs)Ab%>$lNXP4LKYe#0d8IkC!n!WsB(0` z;Xs%Z`cfJ}^Z&E}QF5Q!FaQE#clXniXxLITSZm^n=Sv?NUMs|-Rqf4uT+8?QUGM!| z+~*(+buj5ml#d`G@a{v#+wZ5Fa_*I3^ybJzsjF?6Szm3!!&rI9{HEU8fZK!l^ z?q0OnxsT%g*Vr`I?R=57PsAE<(;ECQkSu~QBu_g|`%JZ$$j#4~6|I?xFe!Gg5c0km zU~9avW}&hD*-x;rGG~;;wRwENV#^DIJzgW(d3cg?Z@M;z2nD;4w0IroLC51GYj(Sp$QIt3M6nc=551tqCP`Z3#Ai;p2n^zzrv<#y;1;#jop7* z>HCd44gDIWI$i6KCz)vTe!gqwkEM3hjc*xn3-|A=S(V~ppA{$T={Itr>1R5MCP1l} z{;!rHe*XNT&pgM4tsk!^s;%uy%k|b{p9c!y5ziyx-qvsqWoIA44;ULr2zd~YHmO75z(7=RbVZQc! z8>(y56OLcq|K}CAYx|w1>-k=d*5loo=-rqEueT>WQtqm&Icj+N=-vvzfyeqR@iF%~ znM^!>&NLfLVZvCKxRIy`iTcZx=P?%9a(5c9Wu$%J{D{Rye76R|)DV{rLP=_aEZABA zMf2tu#mX^pjD;02NE=XTzdfc1c7YNrS2R??dNBd^@DGybwe{t6?v_zZxm z<`-PijrSfW?FjB4=l`^qI;GciAt8bLe3jSTkI?9cQoGh~hz%bSh-b7P8KHn9j``_d zmCDgEszhorB7@FC3N1r%ypYFRGq993E}!0&b^3R-Qjc~~p||ndp{93k;R*VwT`+xU z`wH|Fy%$p6b$dvWFKf;m3-+v5>BhUmnwp}n;vXVL=O*(OWvO| zWr=$|ncDqrE0al7M8MtxID|Ggojvm z84{W#WbkIX2!UQ&5J3+^VAz*QYxDW~Uv7V5ceK)AgzZ|@T|-FkH5a!bd$=CpBmY4^+&$s2&rOD-=QTaD%(qNNe z@avnTk8N#FIMT&Smjj!cgsF`?pZ>QF1vmaaIY(_%A4;!2>OcXd<&gb(8z#%)54Ht~ zZ$VZQNfiRRaCbCA$WXLWe@$g2SVfbs>UE2gqM@OwuPJT+dHh#5c#I(U6O7-O>zvff z)%}rZ7M&ODnx>_sR3MsN%EVKLV1C1@mHwAnAYdENx!a0Drw%+6qtfj}&pYw zQs~4L4z53cY;U|5P*;%cwMDkv+df=U=~nlXBbT7G44?0-H@g<2L@#^@o6&h4W>l*` ze;zmIzl_WTmtVC&lDI-wDsFgqE(X!!Kz@0@$zvP%k40aN^_W6*^^M)Hpq3-ZAmE;$ z8;{kDpk1SkjAmBZ`FGe$9P)@UvQ^znbEd%zSOfN|xzbQ_6JKt1F)Kch#EbXu_X*68 z7|-At9AGQd5d^zU^TF5*atp`XD#lM`3=E#7`lE7QWH@6zG`Et1;93f!yJa3P9sJ4bnO@p>#9EgS0n zk>uRHZi8cT-k0ph)cD-!;cci5ln&gjsIcyb8#tC!*c4JKbAu6FgUtV&@$17$*|L94 zcjaqkI*@H#o427;c=N{dhl`jeCI)Q)4(_-l)WfHF|DgFJxciOEk63`VzwdN#CbB|Q zQh!fQhHvY3qiXRE2;UI*@U@5HQf8NcKw@wskHyAf;QR|%s-O-2IMmwPn$hj>S@D}g zUT+_cjcTf{v^sYA5tLp(iEI&ogB?VVDknub7Y(1CFEGAh`}KE~hNR2ru%B;xAEN0L z?-38^uauO2S4+}+*8OrS`P&H;tq*g4ar@_w zd!ERPmGF+N34t25t zIN8}0KKB=E`Nk0~#g7eOjn&>Max+ml2hs06K_AHxqqE8Pda5qE<_l^m#FShIg5S=R zUhJJb_-%jO`^_-VhD5!^m6G1;^utuTyJo7!q35ZQ>2%xhHW~7R)zM2x&}m3t>w(x* zjAQ+1p%xOLS1rHCRtQkA-^naX_O3)XBrHX;pil%%zxlnj73J$aAq%d@#k4=T9&9m& z=RQ6gu@pjIfp`sLILJKFfSjU&q9VF)0md)IW(5RY05~l=6aQyiK|%FM+beF2tEy2E zqPK|$6H!V_6g{8>re%!VDD@}F+X`4+Z*pGLAl)PJ*0==g`Zt98G5zIo2n?^r6jzp{ zlXV%B#s61&yeHK-k_i5H-|>Ct&2I8I-_w}lnCfb7$?K`J+QnPOqz8Gp+?C3VOOQXyKo$Mwc_`oc(LQ8MjOWSTffa zvvT?Ar0dy=7+}49!dAF3slil!ON>=5D`8+z;&<$`eIja6nONxJedmi*hacr>6u{@gMDB!x;Uc9dj1 zrZJQ1QiNb{j9!3=IPYvA?_*9})xV0G;}e(Q@I)vE`iMEf*pWQ2h#S%Gw0rb+2$x<& z#O!`~fQCW%j?!%_`<3hCJ?Gr{`TJVM0Gi+}%Kh$J=PV;b^d)oZ*yBy zshrL1{`zF_WLiz6*ShX1zXA3E5o<*e%R7>+c1rj}&K>|IJr)7}{mcztG_G-ApYR22 zMhEF0Tt({Z`Q^yE?Y7nTTOa(tRU1Ijp=DF(#cYAIHWQVM1i*$~B_M%{e+^JigpB5B zob(|PvS5hAO6(O!5zG-(%@rmt%X3FblyIgU{x$gBoVP^*Hid6U_?)b=``Y^Me9qDo z=^}qBp#ty^yeG^&oENb5xK;X|{1k3lSiIcf7k?^oA4B=siu7uc2_GcCFeT|0-lZjg z8SkD`w`XB`QyN589zDOa!t#f{WzRS1zrt><>=*X*320^%( z$JX)1g_BCLtsdEZEbg-}l)is!@Qa(87Uq}B_S?B`k(S8D+2V_PWTzn#a!ohqBQ{g` zj1O~mI~`vd(>jJ$mobh}`hFkVajAt6j!v%&c=Nue{qf_o{sNPwTz`QqJRzK76RAv;c9@ zozGjyyEktpaOepX6h40)HM;!Q5hOss%GG(^+;X*kmPf9C9K-lDVJ>7N!8UOBS+`eE z&#ltA3Em~;-G>BSVHwHc-Pf;q*FHw07wpjY^5QHkEb!UuuvWJ}SdZigLDTl^Q*tw* zjfNZQN6~GjM@iNB5+|ES!O>A(d+6s!N_##iK!RepRvN1o^jOL3LOz4Q>9vm@TN&34 za_vfi&2n>Dq|aPgS1?_B{N`e=!I849*%^0XXxs1-=_e?F#-hkX?#2vkICs^#nJ3eYv)|`d@Nm%|mYJM#-8#u3%;cmhKO-ZjfV-6J z?5c;ub~C{^Yb1;HhfIxrI=U{5)-fe-w32@*O0|zoi}c_l^$Mb|)ejG%t5{=&93x@_fpwI{1`N|gN zRtPrIxT8-4ySw%V@sZO;T&1hHA^muA?&1&UWeCgf5phN9+KG*KwIxcf=e~Qc4 zzQFVH<6S^!2K;OaaixVwNj9k;t}H9Nx1N4GSP)w6eHSWEV;AmpIrZgoC$D#vw;Vk= zBjd~b@#y$&(L|v#z`WGBPDb5*JXe$u+|(Cc=QP21zCTCkZ9+%LJ-9A_l^81>pUH!v zKzUg}d)MO568x}dMx*`NFOckIkTiApD)4tSM*&wR@r!n;YyPr#XZ@gGuIq#g_m9t+ zrl?-Wim(b02HC8%i{u{_W>doJ+k$I1KaPO+i)K@p@b@c+W|+s-M$*Z_#catzrdd%K z@<);2ZuI2UV2{?L#>-bs*>B$T4Fl*^;ktz%ip6}7YdL(+MJ!JL8tA)iCxC<|mhhh% za+&Dh@2I)VaYWF;q_u3$D{iL#P4n9{Bi+}+bKXGF>k7WDrbQX7_n)h9sWP7Tg^=?o z4)S!jU|gc!-l7NaAdRjAcpyVxt4PyM&!W|!^t{THJ)m5yrF6@*lYI_FDder3{Vu!Y z`R`?RZVr_3+bZNMS4qu@d-*qbwM0p0v5M#TP1Neb^m@9^5`;28(a3vvh zT#ZLk6obZ*AKw9z@FjzW^_v+pv9|?~kvy?92g#++OsVi5uMlF8-9+PV-+zJZA)<5y z+Ey`>O$k7yPE-oT3w?Uu<>iJEa~o*2Rmd$NgoMZBNsylyyR@p&-H7${@Q7LW2EVi3K<} zFko+8i-NFaBr6kLN+YS8mOSwN@#tueQA?Gz?`(CT^1!na#gy+q;yV{UMPc&^zzrI# z(UKl`*Ya4%QQLl&k;@dWA2Iho;P%Zy%EJ}BXWR6fNh4nC0-Ax#UYgr~aYUQtOAab( zYOlv6CcZh-=+pnr_DAOgHN7N--Z^S%1=5brkV|H3^d7gTY95m*zy#v`$%cdLY+P<~ zP7bS2ng%}g1WbooBQC;yA|NAHkm}e(*Pe(7kPDW65^Y;N?%V6T3N(QL^|HzoS1T3$ z;MuRWcK}diZJ=u06{xQmLa&I<3wBx$l`AGf&e<3RbC{QW5Hu7L-tUb&yQvcWLxyH_lX|OuN#NV^g%V5r?3ArIwJvflPJrDgj4xj>l zX>6~uy}YIX$q8GWoPmL$j>j)uTrIm_H$_kSH-ZMQiADSAF12;6i5P&bu{SNS6Y z>)LwAw$rDf?)4|F+D}geJ8n3dmVM~Nz4woEa>pZId7flI2ms4*7~(tcNUg)Y51|({ zOW5h@toPKXv^%v6h4)!f+xo@<2S-Jd|0MVBQ4^&fVwOJuti10N86p^@3nO!JeKTUc zg=K&b)%pN!A$|ghrPtI%=G<;RVFtH3r1||7JY8c(BJ?5 zo5MZF{Emj>e>m*usGX*@wY5MlsDw2b$a6ZZ%h+cUej-j3Xs|qI!z|gO6{XR`Vzf?W=Z-HElzUU zSqhT9z6uTCj!uQlK|VY;<$9-<&F@I{Xe>Vp z*xP?KXgB%XFh9aSfr!h?dt0gR#w1zrm#LTV+A`w>AC4tz^3&>`%^8J;Dmdt|$Yq&4 zwOpF#jt2*GkH~II1hGcZxEQAg{Tj6H6{64X?-{ZHsu?t?#_Icc*OyvODdX>7YQKS$ zu-dxuxJz*Eyb#|GeBdxA=*I`-Q%B4VpiC;pk13)tx{ER`iVOfnqc0!7y0}VjHV#ij z0quVbPXL`Cs#G*ys9cB%*TP$zG6)aRWF3@U@=%oTXwEV^=muZ@=YMK10ei2nV{e6r zL9(K`TqQrX&-+7!@#czT6`PQ#$xkx+o zC1d4EihQ#uQlFKWZ&QND)G*t1A378U>sm*mJSWIU`QTQsiE`E$z2CDU+z-c&Z>KnC*nTyCC z>3u9JFV|tmh9X$-hw6PnH@Sl|VPBbk-c7?)@i>d#}n;1IGz(p6SVbgHpMES6O07_t73R*hn>y%P@Xi4SN-U`{+`m0zb@r+9$=l= z#9#yeZC=2k!EbvnImTe}$$jrLq+|_SaXFsI>8~p6viF$uk0RZ&uhrBrZ3xWtb93Ex zuD9J*vu%C{toFbs0@j`wJLmfT1RQ~{++A}8LQV@Yu@5p4#9<^Pe+7gkzU9;8=gs!e zy_KDx;{d^r;-}J56$dch^PjX^WSR1g0J$jCu=*qakj)p%V+}ZvB6W4eiF_Xp(bcOy z9kV1Fk>v;;2m9KC%S8)m*B+_c>TSQ9fF$~(a3{LmTXRI&c_(U5az@lbI%fdi_ZW64 zD8AjgoNc!4T&GR}qWa<_oMk|Li|44&tf%zNPKlhfp?%J>^Q~!>Fk!n14|x@2Q_I9T zKb0Q^{vC0Tw~(4jkQ8kDZ?O)F@%Z2)*mcFo1!^+~_n;{Xf6W*1-=Nc@l(*h{zj|%4 zR-1RuL_kOhguV>;tDHNo22xT6{L+P_oNDx`X5Ri3YN zEEML@c|Epp9yBd8$>by2Pm=Ug3Snd*fyLB%*tXYR;J^FDmk3rm@AwDb(5Z$w?n^bg ztQhfev#I*|%LYt{%uieqnfzR;tqFWQke5h7uJnCmE9{@pfJI`qFa@(S;^~f=$r%X> zz?B;?uo9!X|0Tgz2JIUA+`lK8M>qi;FUy?m<~L4?@KK^HT=%MGRmLUHbdcH_Qly#x z{^-R2I1ksYNUzjIYL|S_#riw*>?Z{?5VijHed2~vAeM=VZSa8*wf~Ksr_%~f&&jX) znCfGb&0?Cy@B@*&eOWLZUQ9Rbi+Oy{&a&1g$bhKk=nP&`#_AFsm`;TBp0Fvm`#k}PUY#!BM@}OXV`*UfzKW)(Y zL`yf!|LZizL(#-}n8j->2B@?i(RF$?6YzQf}zUqj;CADc3BQH29&+MkQj{J zy1(7qT$o%ZV~mr+8Lx<;KTZ)uZ=310=|rUu8l!$!;GwRQC}OM{a9Ok&N&frv^w&;B z4aRS?Zj53ckb$TZj?t%xrjhyilPx~IdFf9iDm^olor}v{F^PNH+smuYTpvzg`%V0{ zZpLi0_km3x_nRF1=2x(Con`YZ9D?sdu@suL*Cu;XvzrKi&MbzOB8chLxx(94wg(%|d9N z^K`&ho*U8k68;OKx-=gABH!a~RbrwLV=YYI98`NB2k3~?Sa;vK*9ePOwl;H064|YB~boiry*%EoFf&` zKYJ^s

A~O;`RHwqyB;$4l*Ns=&b!_uee{x>YIzLsVb2(J&x*%HD7M1R}FD53I(p ziftEQ_nrTnfNA1`1WCz-+2f17ikjl1?LrLs0GWsHV2M;!pOO);DE#rAnfL#onr@rt zznH_*G`Tv+r_Wa9!B=k0C3{IR>~tan3zL(4j)wQ73@Z7R>Y2~7M@{9H(`S$-RyzJt zPY$~zSfkmWChXjtYg7BJp?LF69!7QM~O=%FLc<5 z2o%tHtyL-0a&k(9a^K?spFV$%pPzp=z%x@#qlL?&?I>LDba$nGo5Do-!UqZORx2t; zAUIIocb&ep{q?KF-?0-Bl2r0|L!S6>i{L$2+wKU7-I5xa1@8W`9H?RNM2|$%u0pl`hFD~q@3r}136^c_$S6nsN zV?5Y(FS~j$Je8VNuoTOfhcDTre83*0mj|Nm0{OR>eIzb^{9xiwe#TM``MbGQr>3SP z1V_zZk$D;C{@!6WSeWtX{pqK}9j)7$^>w@eZSAPN%QcyQ-Ka8VhH-hk&Q}a!@D-PC zh1*=0;1c z@qYjEdOzOp$LsYRk$F&{JFJ;X$?%oUg@=`x@z$svc?~a>m*B^25t4OvYNK`T`Wn4q z0hGusX&dG6gRg&JbBbYT9YRv= zqCqkDt$>^wcv0=ACdQkvx#{Fr#w=~C5N=5!`&cT9N~Jca#p3QrAr8gDhfWT8a~#gt zC$Jb3Uh(IUu^*o&2@-0>wkUT671|ET0Eh{RMS7_rJytAmb_xsYGv6CL&Hzb0VeRZh z{rcrItr71wI^yKaCy}Of1(ppoU7Q-BN{oO*c+{yTbs{x{eNuMw2b2-mPt==;| ze69!+zaJ%HU?9Ed?4)co9&*ngg@S7r}dDY&XTy%Ee4Rmh&N@@1~8Px;C{2{E${E>MA0qP z_ji9lN24>i3McjT(X8<{+{I`@%_gHlvTbCsw>l@MsWBxbsl9PH_x@aTR=|ad&D|NM z`0$$vJZK2b2a4_JqTyHKg6ra^?$9hR)Uk1i#(%QorjKq=rXYkk-|pz<^UFPnP< zV~Doiy5_Rf^2Z19s=H10YW7N8+`c!4SU~bed!B&yBpP&!CulV_?G4-8jnA1Jmesst zxxj&zN;&sW^_rQp*kiB1_wLcrT;mQ=#LTRKH&efte~Jh^GL|wk?J?OOnv%oz-1_!L ztsq1g>{1?(h7BAie6lF_cAf&dd9SHs1j!Ce_rsRkE_SR&!^c+1&kbO5mur<&)FRUlIN+VA)w| zljQx`<|jdnfPnG`zstJ~womS!p{e*VQ#BA-Q$8NGuc@!k%oG)~$T3nd8nQ3==?{YK z;G*OPU28twbnWvAQk@6R$GM|c7fA4DvCl`o;821dUs+zBC(k3nMm(G82vl+OB5J53WtG#YdT`LWB=>@im=DE%O>n&;q5s<^ zGI9axvC~4b)MBav0;izkWazQg#hcJm@A>BZW6{rkRHc46Ol@@)v2NMeGiZAsR62fnjG?fG)QTXbRY-bT4|o0qyr!|t6S8GpYc=N5Po5d+IZ z##9y2dJHnu?-Vp43&4XUYwq)K7Q90-YOT5J1tdpXac?KL*F@sC=!Ze{53X%FXh#~YyXM8|YAP;9c{^fuw*nCdwd zB#u;X5xMDaYR{jBnF06&bt5Iq>aVfePNmU&pKQjQQ8Cok3$5mG3oIej%0oe+u1os0 zHzSQZ86kBIRdaDRAOP1g4Nc`rm>q?UJ z?khLvmg?cM@CD^4_YxmCG7S8w zk$Ef{Br_$Sjz=on#b{_Rk66CL%r<#&qd2UC&mpzB!&c} zvuM|nK(RiOmz9uJ5@m%b_bTM^8@0Mw4tgka7z+CB1I7S^D;C>go~06PAE z9}tj{MFIe58Xsk4H8t(QpTX|-U>6!?Sy>tvH?Zx;Pc{JXZ7EyZPDlHINc?u~N=7vt z@?91Do)CrRy-XB@Ac2XE78OS&oHqY2p;i~JygUN=U|u+UY%C<2P>UTS5^WKAo33J6@bRz z0^p$3eV}!JrUwCceqv&8=sJ=bgO}HFj zFA9`T=tar{2HXIFt!l3@u*d;$E9=`T0o6@F=Qs{}Er5anaBGE!umT9)fW;s^{Wl;u z9UxG+&=)&@Q;D<32Aiq$TCrvZVfg@K6b@HpeSJ$eD#ynKVjHo{ISxCJUg@l?wqAB7%3P!XVB@pj)C)UT9T`Lv z3F7opz<7dSZ-$=t6J0I9M<=JvFkSP z)PMeT?M68lZ@9x86N^rS_9zA`vy%YGpT0@u>;@^@(zZu25R<7<}&Byaj-Z z7I4=r3kp2MK4@dYT0x&nZi90RA$aGm4;3INFE1+Z01lV5d_uy-O+ zbRn*Ep+8v&1j{h=cFW+%pnZT)xLL542gprjnLYMWoP_KEcjrC{GGFf}ZqEK5nHnK>)FkVX8oF|fvVO8^y>j@Lh->SK z8V>}#0QpW-0R#^j8cQl^B?C1B^+ly(8VZKDxJ#&lsPMsB-OO}J#j5p8e{k=6NvwEz z!VHwy>F4p{@VRij!)1E~8So-xd6}Ez;goBB=uG2HD@;4Tr$1mX$$YCsMxQja^ue(f zS@=6U&6~lH?dtZQ2WCv}`LW*B^Jd%UTl&~%viT4u z45KBhBr_$GvvKK^l>RDRD@E76)E&`@D>2jdtyIwE)7~mUolPmzEzQI>q!3aGklIfGVD?7(UAS2l~-fF)!I*kZcSSEjh)sJvn=#W0Dmu2&DdX`uWT)8 z&y+1u;-w||!m@lSeEN0oFTdMLB5$R+-erAON8Mv7O1<=pTq8JT-DD;I^;WH!$Hv65 zG$l2~piHSut4#5zO`!6)DEn8Ne2d{@0G9NC3bP5bqFvlLV)mZ)U+vW*v?8K+;v(0T zoTZLG$@5#}JUX0UNKCX$s_zcp zon*X!*Zhn1m#CVk+Q8W8Si#tQI)A1(&jRmW=3eGPCbY@I=$jFHV{zke8|B(l7-oD;VcnDq4zgi<;Gw)XQ?_?Ru)u8;2T8nn3drp$tl6?R8#ypE7V}||3Dx)-_^mDIwBM{LOS<4vDI+674yGl9WvNM># znONl8YQ!I5?fsaoojIduM{L*Z9&{NV6`>k9!kH?;nMvNiI@q?Y^7-1;bi-@zKKIFB8wt1EEr~5L!8P7BL-SF=&Zfbp5se;jj(G@F)}Q|M!>iZp6i@_V z1lhqy1V{%M!#&=4`OtR6N{TGo+|>R(mX6MAmL`;r3#8hZ$AN&_zL3_KGHl8s4 z5i3N~Z-0Ig*>cx1s>ct5IV3DZKU6Z-CES2)iYJxdV`@d#9V+)Amm;^8X~&}>T*aZn z&n8jI=^(Zw_~-2($$m~-!_hf|Yy;&_suaSUY?T7epW2~M$CqK7*_-HF-o$BKgQhN? z`QzPJAw@(boOtXaDN<_T>O$Yoq;c4aiJ}=V@I4q~(LB2;yY1+>rUa(K7iCS@sMIf% z*xq?1{!3`(_hjhf`^mo39L!u2->QbGwwfuDLzMBA#)(&4q>U#iF(KYnrj+(wQls6W z-LCD|k#d`m+Lu1(s3tC|WaJ^oy7+QLLk_e?nP2-lMl1_#$hCGh`nDZo5yQeMWjSxg zjz{Z;m*WMqPIF(6@w)Lg5*vSps_Ju48tk@}I|$c`xq2?6Z4n~A3DrX?7yBLA$mTSs zQFg4KTItuuX+ zCG=lpS^2g@9tIxnNMHG0UsBfF{9(d&+V)^~jU&exE2T7bHxD30yg*)e|6LRm?o45bwmW^9) zpCyLcmvuq9@8)dhY#x;#>ux10BT5hMQXZX5E7YA_j|bqV;h&M|u^JbeXXhxV#dY4t z&A&NP#2TP(f5|@e;J_5X)Q!pN-=ueu^V~kTMTOo{VTvq$jrK0zK%SxgN@+*QOo$+XFW&B5DRAOrWaLwyUahV!B>#dlfr^=t|Gnm^&SQJ`{UNn$Z|& z$!f`{Y&LOhKJjX6@V31@AkPsTU%hJcJSTdcpUV*zUv0be0^j!CUPFmi{oI(J$46TJ zdN7| zJ<1W15EkB)bbCH{Dw3V}Fu{~V{8I2TQb|n2<##uCv@kxEHkF@xk($)ur{duM(|QC5P>zooN~*3qeclhQ!zXVDW_P-$bjfJB62px0TsSVNjQZnNB>n5DIFy?L?i^z(9qZb0s;aZ0Cra~pb5J`u>1a>-S~eG(aIw5^Z~Ai`%0fQ z&0@4E)$&^o@<^>(>g}IE0H6(4N<@&x3E$zD@mINZL4{BNp=Pb2b|^Jm0KxNeVbait z=-k}E+e__XUAE+0m7h8#Ixir!klc(t;Sdu}Y)uw|E{cIi9*iD73=%6MU|zhI+o=|9s z@WC&VQO$~(0W>s}PHg}VJnbatM+nX|gYx?jnzYCmg&x*ybq|#?Ct+Q4bN%<)+Q!SX zv&Az9SAi^%c-JHkcQkaSCU9hMSDxJ?GBPr=8yg!u2?+^7@bE!yI&8XF6C*Q*DG`iP zIJ6ewa_kIDMDEV{Ux>SN?=?IwJP1J32a5tb7VNLqo!s^`!C80+Gk$ID*HVsUHwI2l z$LFP`rNjOG{dyI8j)@Ehf!nUGuDE0|Ok84On-s~z{$xGXq_%IsOg_wsA{+h2%szIi z(A7TX)ro~;A#ym2olDABsvhoj1HB2?e_C2^{fxA=ujdYCisE$j^cqPpkSuAu5n;RS zPr#n11TU{la$4GVGU{9xbxqB)PqAByD#0v_$_{ZGEyjk%t}T@BJsLJwt$g*v!N+%% z!A(@}>nVG9W0|15AeB8E_&D7|Sn%n>JFGY1*&1K7}EyN}ev=i)8n>`Q_}z@RBxR<8;8L z;Hka7{?0;K`D2iJ5jnRR2$m?$#3mfyX5?L6U1?2C)##59`t9LI1lKp;QEuI+^Y{?o zu99smD=iLfHnl+`(t3xFoN}vu)=FLKS*1M|)(+1pW52La5ov^3k_>LwdNpT39p2Xa z85kMWKF^jE9PaKCY5Nnyu>p2G+it?t#KgpDSy@@+u!*UV$!}FlRDv)l&u?8fE+`Sx ziQ<4B|9UwFPS1%f53+u~6U7oo4;xrILtEjj_V_pvkks?QCFm)+^kj#jfx+1kY&FSZ6q2M6A!t(ONaVP<`J;n_gKBDOMtPdW zmGKO$KPrg&ooiy~7naOIJB8b8J})uW>E~$&<9xEzh z9Al{^zvh*fw-P=VKc%5{{sk%gd_OcjGh>a6NhZcc!@Vz{%rImc0bURhRauJ5Cxql2Y`kf8sHt~yK!dM!44zh}4;L6y6g zS?67i*u_-V|Kej{%LZ`f;v;~Pb-yG%5nOD1{7C9ZM@OeeDe}2EucV{|Ize=`-}#dY zve#kx?b~m2v$g6PSJ(46oNm|{ryAHqjVo&@7gicD+I%lW+++E)V;UngL`I46$m!g7 zm&DN}mtvC`F296?ARS*_TIWi*ZZ2XMsb@RW246L=0M`Ig-bij*G3w~hPzyH$!#`AM z9Q-kDgB#v!_3v{=rUj1K_3HTT_@0#1N0r{rk7D}-XwBQSLU+c&I66A>vF}U1AI%`! zv{O(})ZR?y%kC%?YULGv_W~pWOgQ)W`1q`mv8mjO)J{B7Sx{8GZK~CA*G^`$j%Gf^ zMuD@0`%zE33CoUIwxC+<$DXvN@@NnS6$=9*9-fU%X^dB~Z)fY!>+9?Oc09aEhIIgU ztg}VJ)^A8)r@y@eqsA;MVJubj{ks)!c+ zwdODI)jP>RJOfLS#%V!? zAx#Y~T7mvsj^g`7B-Ha76japiMyHN~@>Z{6y)rY=4@&d+FE6Drig8qq2$N-X2r+G< zU!MUCP<1LA#M@$PYisWQ{@(rhIVgvh>|M=xWyCGZ*ITXR?4z2F+e>)8ON6fyZzAcU ziB!2#hj8)9LsnKksbvUZ^@Q$7<;Pp^3=3+RLxE^HmG z2hN1W9=SYt?5;nL8Z_Z_(Ma?tv?v&8o$Fm62dOe5aOp#7Mc?4Ny7Fk2Jkg@T`8^#F z`#k(5s;02Zp|k*k)&{ACjjp5|RD3@B`Mo50-=2ui84q=lMLka3`iS9y)0UNNdt zLpcI{d}6}<4{Rh!3WZa%-0si0YwK$-OGP<0b#HGE+5#KRmN*Ao zZ+GWi4rPA{;EcdMy_Bf~d_sI;AF;EulgAz(^itza$duRGPw_cAwDQ127RxYlXRADo zScK}mA5XScPQ7cd`)Makq@}enI5gCMcV5Ut=TDM|$FGT8+;z!Y&AuFS<%9#vG0B7m zP0sWf3iRLo{PYkyeK0W~Tg>XYsTp_^aTLN<=ehnbo}(7~hPW)J_xVqF5LrN76XcTf zWTK~MyS?6(9!G|`IactKKh^z5gTA}Q3KnL${@=fJ*;}nad$bTf!{?Jdp{+G|+yvag ziHW`+5!O7P3^?)lQP1?tmO0uASwG64s4>yE-)%bnTWKJMO^H?J5%i}maO^Y)*&5Io zQ+hYknwFdU>fhpVDzTPCHyKIAp^}DTApp4-XfrWFp3HuQrNk~z&z@AWciR#}8x$Sa z8BaMSjYkhnVrMv6>if+y-!A<{`>$|uEeFTO`g>8WdEB;L7?_!5D)fT3vgmyk)6|$? zcz*rR@il-xELL`-XkXpO;0-Swjy&qej~U?EmzB-cmRGSUZ8{vRb=$NitBV>O7vL*A z3Md|_6Jb&W2(#=^C`26{A8-C^Pv?Qo1X?9N`n>?mw7mJ(YSCbd%WQXnX`0hya|)v2 zrK4zWHcYdiZ4>^5?XonzT>GL>2s-tzCPl`k2z_s({Pd;Gmi&>P8zZPtG0N5kL;d0Q zY@;Xj-&$Ky9dq!U#XpmAojhc!s%Two;s!lx;_SN@DSCr?4@vz~N zrap}Sd6P`S`vHgP9YxfTHWQ8epaqP3NHHaOCSOs~Ml$_d_6JVeAOFK$qoRxrGi^aA zpUvGZIo`&jbhY~`g2{#1%EZK1e{U|kLD>}orqWlSY?Ya%r;fB~O|5b(F^*QXPCtr$cqbNUJNXvKahrw3=W1zhKC!@&(4Y@LV))gqb1&+ZQ>>@ zRUwWoPfCd>L0u@yi8xeLp;LvIJdV3>)zY|;$YPLGe&SIK1Z@4LYPJicS&z&1x4L9D zm#);T7euHz+!bYbB@M79L0TfJxabT>dL11jeP24~(8T}t?ZbzS9PGMJNubd>F|)mB zVs`;_pm555R#~~EiJ!m0jI;4r<3O(tT_XjGx2Jq$m7LwcYwR6S8$0s>w#yWPa99>jWT{t z0aT_-j)QZ;uZ?JqCQ3KW2Kjb;hNy5_@p*!2F=ho!RN6)AozbM)37MHO)z#HE80}o9 zK96uT>jSxdeW~U?@MgPq%F|yNI_SGSvM~3l*wV(}!e)x1E&~JMsVI0Etj}MbkxN^% zv5P@@lJ4?r7c8)BKYTH*2$Yrpix4%Yt-9LUP$j(EH1(ouJCa|IS1Ejk?p0&U-Ub-k zpA^l>H$S{3vwWL@LqHN9Q5d?hVmQO|aaxFhiAkp9sxCg~XwI7n1@7?h@T|Y|dh(z? z{*BHqW$+)hb79BhiV$?W&W%YZ^KKkv>ZP5J&l5Q#Bcl=6k2tAA(m**-x#$w@p48oU z>Z0*2DrBzmH>O?oQEpBS5g7r6AK27M8_C7?4clYNYLE;yv+_Tq{W{{ZU7XCU_0G56*YYomoRj3$z4cfBj{ zF?8qGX<1d(t6|xkSH*jm(fW@DSO4m`9U7>@;Ql;#eM;lo(+cXsu|6O1gF9m;1jxg~ zQEpXLRI-;fp}gkb8Mp>9e~QjHWhc6DsvrHuMz*M9n78Ncvf%DE|Je)MM=l%x z-2a;*`?sjOjE!yko6B`CHa0fjtmnMK3ji~wquTT0u;3;(I0~}EqXLx?8S2qd3OB2T zO3A1;LbPpc>e%8@wW=q9qDFAX8VyR52To#gB@@;-+k*dK{OG4PvsS3ZTNjKTsY3+` z?{u%<{NU4BG~ujtKe;eduL_N!>=M4}>^@0%r$h$nDnSTN;N2ZbG+BCFv%8)3_MlI2 zXy}!&BQ&`)(4u>H%zU%+#n(c(<7U)fFwi4rPaG+1i#hUF9C@bqI~kd$k-k1gjy0j9 zJn5j;%jNLRv0SL{t$QHLh1;d-0N|sH*ctk(=m$gC-6JwbX{mz}58%q+-j4Io54@YJw*p&>QysuBj`M{i+aOtAQ>V{PPTQ*o2M3C;4@VZs%tMc9 zX(T^>{P^ajOWZg=S8;z+GjNB6;EYf`HHV)~2-nGtA^Po%CT2?MWd7jFE!5@@ZrduN z2SJ&4HPM# zXrS=e*!Q6!@}^p5T7rR{t$VHBx?d}C*3>!L@mmmuuW&?g%&P>Y66G*dH2Sil#(T2R zC;HaAg4lJvd~#I}g&m(`6zB!oo@v!{MbNkp*IGzI1BQzCq9WN&$==#e#!9{{dUmfO z$|fs+!)N0j!<`W^py^q zDtS(%Nj$CLNA5L0f=Konp0=&U%af{0*F9hUls!%ANY|xLhuIQGBwQ?oaOm|B6p7{( z-kBk6bLMBy)|T5|U$0z;fu3IFu_cHEYh4=$?_o#$Rtc#vK{v}2{N_*n<1aW1X%mz3 zj$z5OjLpr`;ID$vonbNZ-Y>#_O^x*N;+s9gp(M7O?i67O^q1WJYm909jv||zR*$+q zVC-E(bn*Ghep5Mcdj>VY}iVP+wV^y)z#dv#cIABa0mH- zXxvUiF@@@#j1@27JJCEk<{(5sv&lGP(U0BvIRSIV$b!Cymc-7>^5OCH;B4*7+mz~` zW1AXj++>0#{)|i-IS|-^C?OuRmvc>A1BQY=EnR^|$(OE@Kj6ic4j;mzEbZRawPwIH zo2d1y8y%O5>ICb)0}iLKqOxCKHTCOQC?oaa?_F z{jzDCIqz5(Y8y3Sbyd9a`>=GxWzCZhhmvwm{V4#UE^H?9_2t&-t-$wN+#~1#n(M`f z16@*5W$Kial;ec)a`~H($J_-4Kj7{rKTK2GY)uyr8jRc~k5mr0Pz=EGH)chJQ`Q@m z#JNT2+=2MAC$P8Tp-AZ{Lex z(iWz!o#3SFU8sOL5QwO6IY0U_Jep#$7kv5E$hhH~`xw$&LEUTVBmaJM78dpvHy5wz zM;n`+$Lt|Q7;dNM=b!s4$&J;?%nd$3Oi~YFS9u*2TE6G&w7Bx>ooxyo_!fD&!AR9Xc6 zybq;12%4^54}Ifu@RL}&P#KsQ8Asb}GJO5@i>dYD&}iT2=%M-=oce|!RmU_V9_LkE zUcQfKu>|V_3DV{6nEUPz;?9-9y62J9leHM?9B-`1lL2Q0mq;{7GE`JTf;PXseFsmP zpsP{;xmm@BIqAzhnZ^=sY%C_LoK~>eLS*qii;4F!$M2J+dnMI(0cw>(j^X}HH-Z~Q zxsBE%DPW-ZAt*N@^5U?3dwZW1=7Pw_#5694!Aua#-f-Mlbs_4`R|ua;svNF4yAeXr z)S@yF-kdwAx^_nd@BAGR326`xUY3bcQcDCOSSrz?&b-}w#=Wt;`O8N2TAW#6r7m)^ zN=R8%PS~=uF{HJX;_m)FVC$~V8H}VwFtxZC4m)#@r6=K{{Uy2iFyy8Nb@chovS8Ej z(c0QNq(ZjnU1sRyq^7rB3t^`tchjZA0GO*I+FJDMXY^1K3qDAp4p7eg8fg5bKk7^)*Aj{OfT1+#N4)X$XD#BAV*R%M3cX%U?F zV0WxPRxAT7k5kEYEUXn|l0F89nmK!p2-4Lelpf1YO@Bp)f`FWp2dnFR*}Ib|#eAtI zr(Ont>)R1I1`B9iC^jZKdYJtUm_$Qr{2%UVUip0G&(lTw>0d=a=7`P&`xqfj+GnMA zsspATt1z>?4P|2k_jrtdLNB}^{NX`FwGNxIv-n}6kB_~cg9GH%_V$g4h=U?bV}`M= zxVR?4=UXv|_n&qp2Gra&SLAvlrq^!)3t9$u;2s=&j33&zGtB~<0th~j#{y4xTN=-! z54k*pJA@5<1qB6A7FJgAzx<@%Uhemdjh~r=JZECbE3#b&(7D$4H6*{NKBdcgoro4lIu~L-cGpZJOu*^L9lWxQof?CHE$xT(KIbhwq(18 z7HIO5uCA`Z{h<-g&}2usf7k~L8yhEExA(Is$ts4kOQlEKh$dbKKUduXx$VyEj75$6 zUY_r6rW9!h(tr9<66_cQqQ!tg01Pw-2FccHWR;VkoXuGZP)E_MS+k+MKQ2-SXR})+2=vS#~1YHQDD&A%q&2+ z3|hP0@KC4Nn^#-w>|^rjo0^uEmiF?xLA||};;kh1E*y2{4g|_&92&UVvJ6iC=iYd~tzI-PLN-^@EHbwZ_mGz8F2)sGFz1qvDVnVL{`73E?6zM^gFH)0}EyprqcJsw8 zf)k}pO|@-5{NQB~6>a&rJDOev`aM2X^tI9?f?o3VQ^iu1lgiWB&XB|<4TNY&+~bA4tl3SxIZ5?|WMmx1XJxh4nET!Dq;_?6VGWtz?By;lIrKXPRkQcNm;ysea;oE!iI3fF@F~voGSsTH4Wa}$8M)D;xK&a_)z=%bm8W?( zh0%dN-|^!I0=V)ocXhcWEs&9r%rEn@ofKC!Y5x|Bm~S6OI?wqRq@YV^h91*RF=LV> z?%Ft-plXn$BqMVYYv@}+N8RkwR})&F1xnlUVm+Zc2Re z#*-L)!e#-%vYQS`%;x00UUo?Idyflvfhf;%@l(GfV_YJl5JhTloCPy+>O;s&^8QT9 z_q>Z#a~$!Hcsj1GZCejfaA@dJ)n3=HNGjW?@p{E`v8Es9h%x`)d*8FCOC@pIjW7Jxe-K-v{CWUj<6{1~*+()^Wa zG}E7v%KQZb)<@eQ(;Kod}CITI^SUcYoGmb0w2g{Wz}S6yw13mgs~g2(>H2J zd2W(9a=KcCG1xfxwdE13cVIwNoU`=xg`67d0xzY+OkI3bPYuyvPxjXV{?XD%aaao* z!US<&29kLP57S%cS`cqDoGSHiYINckcv@Oo-^K!s*#pg&RS%*2n`M^QU2=PJvQC4n ze~n&l^bqN$6}a)Ly}gy?raKtUR*8(eH9rE^Jfs_X8r%#%3%$0IYL-4_!-}Wo4;_5C z!Bj?vhaz+LN#iNhy*@1|x3dd}6L6g{P#CtLBWP;HOGd&?(OT=u{!v~>hvMbBikZjb zBt(-<*OzmI>+rhx;odH5t(BBe@(J=#s7Pz*{HryJ9~TH_VzwUa4rz0%fGJrp&F&8R zx^~<#54E}m|G8IRY1k(LmRcANcURo~o|EXO z+Y(tGCu+qyY^ivi!8ksyGw*~R zda#d`CHuWru&vfMA4_tcBA?#_1Zar42|OS6r>y&K)1$qpqQlI4csnHBcM z%`Fgb`uf^1sz|(2$dd~eJS>=763ADlkPmo}DD@7n;{gn6*^xiqRPHw{zV6ppFD^o@ z{NVr*mn>=`_TPlJD|I+SL&`9Gz!?`&5k+i$D|-6bc*Bk!bO#5Sfkgtu#*mZQ&i>Q8 zn468^$Vi=uAuc%X%}{dZ?u!9xIknHx+SQXt6vrnZ^Fp%H{oE~7@B;+}7%wstu6Cg=Q6@bLM8w>;;* z_EvFqtbF`45qr%AoLOo3uf8w=qcGAOh(d5nCE??O)#>R|XPDCUjLqIBu6iP;saZXv zOlh9i@B@L7+6U5&Nv_%C0d9%ns>^+Q__lb7Dhk+SdM7g)P1kH zoxq^q-G&)!lT+ObxnNt|@Nhx9(=*3Lt_Tgq<*sQ^Cb*rdSy*=YQu5?mpnv-lZ+rW# z*%=YnDABnn%IzMv2O1n9u^;%30iMu^3zoDbIK0n>d?f>a+C!4R? zAc%WVv)En$M`+xb=dvm?`}FVz0exfVtCd%OEb`=e4XV`2ch>N9;X3`3WEvEq&-*9> zPEUaE*Dh>Yz=$@f%ymj$e|_Gcy|Y;B{I zc9~vVFfRQCZR&_O!;A(4YO=Y1Ot)^CW{nMcG?R8q1GB)Uw+A&kkZ3!hF#Dagjp*@o zwS^ko@eF#*e%lE3Pv~^vABObBi=&~nN7E5Z4dtTpNjX%=R30R@M`NWT}C(-whE#+r9OYI zUl6eQTW2NTvSUZFQiL^u%G2^<#0E4z`K9dC*7D*`$@}esIfGza%Xyb9Go1A*eJ8`PJS1RWR3ms?UQF1HyQt(ejTscz5qM;~LuFE-3ME z=YI9TL`})=XS=J(Zs5Yt+5ACZb8CyE_jY^|T4#mW{_wt}lbX%3?5{R)XGtB!QmAq#2J9+<|H8 z+cx74dus(y1CUHz5d&-MVBMas+%rqO{wrInc{v^uNBS%4?$UFuzfllnOD`eO*yaq) zy!9Kn*tt7DALwe?y=fBnj|3gU6#LK5q|UG&G77qfk&PNS9GXo0rvo>7U{9Q(AD@0e ze&HBL)i*?JCNv|*%Xj=# z|L19*u-3Z=J|19!hl`(5<$q0N$S)~DbzE=?X0i8md`7h};{?mu8?cW{o>IVo468yM zS-|=_jZ4;PqtSw{?#AVts@@@|(KcBA{RK_A*Ooj6r3isrv&W$Mc^9(K z{nbn{w5dwG>=eDWWebD@99DB<7}fsJuXxP_J41$M|M?zir~w%3-}w7u)1y_n+Hm;n za)N#^#QY4Lxs5R#X#@`t>zhS{Zd#Rz-U|H*qg-oA1r5VoJt--O5fMJVq$kYaT4?@v zi!V+`zjgL-#AVeRzF|h|-xEtIRO2ID3WK24GCtljVzE@-Z|<4llv*y;@8lI>JNZuW9R{&eiqba(0t*kmh-mDy2;%CkU(AH znm}ctB8Vn3JHz?6Ra>_5nkOET5&%a>pYV0TwC(#H{?z0oWC3b`omA52ex!kbe*PSv zDT*{J4#C}+Yx&0Un^!E3& z5TacZA|gIAH7odmc+)Xny>3uVT)Nof93CTvf;aWe`-X~gL)-uS@#Tb?-mWcJLJ(+t zhwuh_dc2kY6GT=8KCK=~|I=WoCp-=g8?ZX8kNAC8aLMERL?WjsfB)fSZR3`gy$=!9pim`DE~IkHhWf`<;2nRIWr!(nw1FzltWQ@+Xp$mCxp( zC{A&VKoHe8z(-07mY%BG*CL_*%NwoNV2^W82F4| z`QqX_@pI+pPo;5Nz8x0@Gcmm*!;WF1axyap3z|PW?x;MuL4COouLZnsTHJCCLO(KL zxWkXSr^0G#An!CZ;y5`fT2vR73fx3)m^n!JzVgDD!vM_j-sQbFj-%*0XH?Z}ut6vJ z3@$l-xA{mXM*|>n86(Y4RHY(Fb*69_pYK&lmK*!ib(xgYOXZ{V4<=ZIEv3o3`jNi`p<3`J2k2sN=$yERsD$+0~7Pue5I?j!VDkLF*gB_izW;C zeShg40~65Z4C-uU?T(5zWn&O6V=(pl4TsxU`v{(1Oh`A=6nLwid^U*j!bt|yWjmy;e{BweH5EB)7#6;vq@ z4m^NQq7c&C`(ZSV2eHofouc0hH%zjU;Y6Bq>1k=VfQR%#$JUw?T_6EUg7mw#V*jridzy7>kFuxub6>9&+bCsODTKm}c z&PTr$1d`g^Nu~E$sy8EL3C5|fueZ29Y_f2+!iO<;HMML3(9AFO?#X<^@TjN|nS5Zx z&DRatX2`yG+-9U2mOua@X!=m{V=o-a#IOind_15Gs}cSj0xN9%_;!f?_E^$Wwn<#e zN%6$MWlPfK`C8uyDa|^H&Y^+j_pRCY*7MLYgN~zj^@2EFJ>>fa7iAb2z43Or#|;79 z+!&>0j<~qEp?#_+1B*3xz>f)c6+l zKW0Z4iYZ!-f>r=$;Y0z`AcJAf2G^%g#c?j<4^8V?q+A}xDLVg33 z_F^ubmWdOT-Cior`W&$c7L&5r(#eU_j_@Hka4}3EFxUt_XK%^$v0d#!AZxK6wPVFs zu)d)|v-3O$?IhHZ4g$pd5}={Y2iVaY<6b$%IROyJ0anVpy)F52_b68M=Mj%`dZrFW zDyS6eZALg1S-cMz3B>Mb5Zchx^HzpSA*@PMMVh!8hsJt_odBQ!`IYNa)i;Ec7K~ck%%r6%wqN zDh_e~rQw=(#g~$@xgJewFXFR!Y(PyVaogvOHyR^>Pt5rv`YRsHr1@voPT}8nSJ14R z5ri|DNd+L&*#29D8a7j~(>`zB9lFQ85}Mc{W^W zQB@YV(QSd`RdgJ57V)=i=W`R7CqKG5eDWv2z$cf`f3$VOVvrVfP&Q!nn1w=fa9Eaq@>2l%j3^Id z;ilMPkcV!WvwexxqnMPVafw(`Nk8O~OQsU)XFmyI2uyPgQTvsl{oajzLgJngK){yt zq3(~PhBsrXBV;9j`wh1{r&ny!MussFlsqJn^!X30!?l?oxuR!%rJ*Ope9t-g6Ah|fombo8ufma*%{+_8HYBdlcmLvkg!i+W5#ZO*z zsMWdm;69in+4WA)bjHlU3b6$kh1Wy?{#XxaHhjb!4*%>u+Fr|B)V*0FVukV-Rfs&?>@s5+4af5;gFColZo4oPOwkFi$TGD>bYhg zVe(Pn)-xyDn~KrK$D(i|dWGnL9&8S2DahFG*EfJZyuH15zHJW@iU_69L^4m&V_(X3>atsh0AUlOP`+J}H3YlfYLuHsJ;zDL{+gb47UlMIkCXT4fzcNW zxnLg4`Eo9y5I9ZPyI2NRuRppA&>rWhE7AmC9lWD_UQo$fiUoY08yZsm>$Xu9Jl`Ok z={a|%TO$GyQN*%Tgz~G;=6+r6id52nCnSTewGt=DsURpc=iTTYEHW~&Nq*ILMMv-5 za#5t@WrtHiE8jDeobG^`*VThMSS-f$iR+I_=1`Ub+q7%2n18S12 zuh%62H%1Qwlf!0|YU%FZ`WLxinT!JSKai2wtqA)JKJT{%Phvn5$O(r zp-Z}(dw%zRzt8=6&p&XUbM}7se)rmIE#`}-KwFz4NJKuHN=i!p@w)bGaG_WF=KPd< z-ob623QTh!!Ze41$i}6#%A^Y{-j|d#CxFf~g2sEj zXDsys)kDY$43;*myNBEGo&9s!cFGCU(A10<6e?=arPGNW(QQ$Vd9#3>-D-3JTj~bW z@q560A@af&B~#^pJc)B9Xd(-Tj~>v^yl3=^TOOag8MDEJw*5j}S!?CeSl zdh>BYqeX9rfqr%sj24K=F;S81$eYoo>kOWXZPjv%_da#{BSrnrdusO!H%f^Z1ia)K zVKA|^?G~E&%I0~!nEk#MrZFot_oADM*%Y2&)(xEKag)h8Wk(15n`jmHR$ zkhx%nL6co8GGH~(qQpPJSYtXj!Mw&B_>dr?Iws?Kwc4 zbaQRzYA<~@??*d=w<4aeRJv2{IFh#E_M!oh8K`i0_;vsAfzz=iS~-Sd#XP#WtofE$ z{VmEL;-#^^yE?;%*-;cx0{n!yxtoiN!ovXvYy~N zMo8Xfde|WWsbgwQ5TYp!C#l-PZ|^m6!|kbzkA&2pL>H&w%`|?L_Nf2^?kfn_?u?+h z^|9gEgR{fi0hfnf^IaQIYZrfDOO_EpX8Aj7bRVph(a;YZ83Xh4^TUFs3rm7MaSB-_ zAhs0#lZyr)lc!YK+GVc;2)RXE0R0XA657?(r8k9OgKe%;H|XI1q)Ug_1zj+}tb-U* z$ZT|*G@+=O9XnRm@gFQpOGATqzENo>dk>iMr34;!*o@!Mdq|O+2ztz9uhfr^*TK;o zeAz=X!uV+ZvL<#T^EY=cE>fJ$u8t}<@ig8yP3ay_wSU{lQl?jHa6H8=QAGmtrH#~A zQc{;*{Y-zl9ybNbL>rc=x`Tt{x{QnG#HJQIhE{&`aEybJL&}Yc1on^)1I|vL212C{ zJr5sek)tEo@4Phe@tDAYJ3!~jZw_7D!JHSf-PEAGltjw#_dpY>@%*M{BoJQDLAg(; z6luV}9oaOqLjnbSH_E_3 zAM0IPChA)|h0gDwZ3(g3HHjJ8W5!&i{6yYktS|sM<;Q=Klyo-2`BEx?2@4(&Zr1zq z`0*FXC)spOU{OP0K18seb<4r$+$lvw3baUXJU{l0iHb7h=AmlXKE@vlZ!caYKkLpx z3tpY$jjE5Q+_yiKwOpM^WLqv4JkH-)wL-&Olb@iSiX^!#M~Zgb#k0$5`DnA?m? z%aVIwU(!uk2Zo!?x?>x{ydZX;g|iko+TsW5I$ zMFBpR?i$*kpBU!(7}Ncfn4}Air9w0g>2_y>WmmmnC0kZ6&{iyOZ@=&H#o52Yi3SEl zzw@p|MZ*@)q@Qh6StVZS8}dr^tNCePka}P(F{h-Y`me5(AwIr%8Y%q~C6Mu%CS)tj*! zVUAaCccxv(RrB+o(W%?M`-u0DRbXWlkPJrB!rVxI?4#)vprJALUc3^VkVvbBDm|fN zCmAnF2Nzt}w>Z`Tw{`jq>X5dq>3EbNteHN(baSHZ?%l(BJz3xP+;q7FKt@*}AwjSj zo2;9?cH<#0-SGO`u~L;oY))J5(1gIuu04gvFH*&MC)%}>Q{B=Q^Y{wKQGtb#bre&p zs|hf_U`NRE-Xopqz*ME9EvLJC_#P-ux>7D4If_|IRE8N=xSeWuT4y+RT^@%^$OA|L zD{2rG8EdH=pNjpWC#N#e;8}P+7ooe0!?t@zq@YH?437=C*mY^^h(|#PZwZkBef#G2 z_S(yMbdIe4krokHe9t9y1NINr=C3LrXeP-k@7@nziMXMlzK3Lfp#?<(@P!Vp*E3Bs zp8E+LYCp|f@@$8As^}TLqPI~B0WOI+>^`LY*`yQ9Nn zKHlFCqYfvA2DRzERM&{|4ZOa>5r155Z2sMBETTn}mpOMzY@P9yGqf_D(&N{j*^P+0 zPg?$;%miqOhEd0Cf51|(nQqlqI0C-T0$y7zgcD9eH}3%t0xbd9hZJPIW#bWvi1wXc z0!hLD;Gdu_GYT8cFT9n3XHQBzb9Qi;kO1Y2syWP#8P6ef0ZJ(x%<=wj)d$^YGFUb; zl*zO1Q^9YV_vcFtKY9}UOMmwHNl!Gle7+qn@G9u#C=M!}v z`W$ijF~8-f2?6$hj=_GQelg!GlAt*Nfe;h>Cc-ISv)7-OOa%ng@FoHK&bhujI&3_N z1?anCCVZmroHuV1Z21uqEuY%;-0eG1FMff5zBt)cd+I!n$?TJh$ZKYg4Ld1ei`k+M z+D!bNylCa3!|l~Q5*u(hLN&MW>yqL*?FR;cM^;w0=}W^LorV~Mk~BMAgPA$=W&)eE z$8RvE&CQQ;yt?lm!Ebsok zF{|kkTqWZ)yT(JQ(Z9rU*~=uav$}{lH@_5nA%%@yS$oAKxdHO9UF3L>REPO{}UhdgYsk&CQ2Svo<>mk*plwi@KDVVp9X~iVyWc22{Oyc z|LCht#a~ZH|EZl(yp+IKbsUYB;P@G*|8^XyX18X!Geg>SGd&R3aS}oi^$LOvm{Jfm zGN`R$T3I!%)^wMIJz-;JKAG>8yDHo&(q4PX!A&5|%UbY2MX~MY=Rbd(6z%My`3+m_ zMyxiRYQGE1Oc$q*HaXsWHRDfnFDD>)G@1ABb&a6owtz26BfteogJM?A0F)_N4W+hz z&xPeW^dC5nGuy!nb^A&W#% zs;FR@-fbuv3SC=@vEX> z!{t|$seCu`C4k7g`uPo=^t@l;Lm;kxnUF^iz?hlWo{J=bZPjxCP_T8o*iI@$7uVGl zs7-(3V!V#sb*P~QL|GJKe<=kRkE^_JzRF~ZgZC~2P)vsZR#0~cv7D{@T^95O?Z|dh zNVuSxHK@h}QDa`Zw=%f=H+tdF89FE}=7CVD=LI&$^0TJ)R8S>TJP{@;Dn5#zzgUXn zZSK<|vt;qd*Ata1eYT3~35*&k1cd~!nCv^<&+NZteOq0P(ROgiQGf-{wO*zJg-OY@ zOTU6Sz$Cu9^d1g8fv?M5(tlM^*`&Ii1;-VSwn(%AF8+jDT#WECF(vaJ zTd&(V15iC__4#R0hrv@u2Lehlu_rS^!om}vHfnewhU-8?kC^A^Eg+xN`g^J6x2^57 z_k4V^+&uaj`OHD%q#PbEzb9<|l6)i{=fJ=uetRx;p@W9w z{<{FV6&H$#eu|$Hp+Io?d;Q`*$dA|eM@FBCtv2g;OzG7JhvsDolxN_Xvd$?nugoBkb7t>o%;h?D{N5SHs;uS*);Zm&3WjL%=* ztQ|Nx920qJRGXabj>ucpU7)qvez74q?{B+g(Mek6aDLByWsA8v@Nx; zVEIXL@ZT~D5qVqj{CxYx$vVGyz#dsu1a-C1iV0q%=U#9lg0XpKVBE|GQ*1b6vim}- zo7%GJq_PBkeNGa-u+E)aWW@OFP#W^6_|g}Bo%`6qfp~&T)xH^w^ns&Rj3L;toiO#B zx5=|>N!*QyB0GoqVq%-3_mAc53rhnLe!I4+ubfmmm1y#IL844`%Hm{kZ>5U89xkX- zN}_)^00GSO(bV_JU2hjiZwI_RaZO#9rw4f8a0LVXzv2>NVpZ~M9VIjR#>0bVQ7xsC z)Yh+stq5s}b`le>Q#yXKy_ovuU@)Ptr{ay2Ssx z;KWW@kbKMgdttuDv+5|8jkf%-;ciF6UM9}&!)0t`A2VO(Gsd9)b5+@GvkOm7PacfINj6giL>J z6XaJ|p9bTeT3@DtNMJ|26d48M1qUGbshX6)T0E08x@~R{gidsHdQhdjrd-|J-%)}e zxkw1@MMdR0WDoj@mS(^6w|)z)Tces4I3k%Xu!aJQd3j7{^D)J0P7`9kMX3QcR!{HJev6Q<-o&q@Sl^=$jFF7+1QX(hadwd=SQe&(S-*1 z>+BC#2Vze8``rc|T%{f7EUGWS-d~C&vq0geMRFG^lEN+&>gzpEIZy}vJRtu0l4E%aqruM6g77)on7jHB(ek@!#I%#jwvmrz3raX^nK8S5UP{*@*jN^u zAmM;J7+kNA_KJWBiE@L2hg`oh?X8 zNIo%hK@AAQZPd)-Kk+sQ=tFXM;;17Lk(M;0;8oPhbh0|JcKRqKFL!oy(i@LcEi597 z$hw8Wp3|QwGBp{fj6d6j$jjKP>u&@TbF_mx3dgyuW$8 zLm_l>+h=c4SSod0oQXs^iF57Hqh5#sQ#rxS>0}WFiRWJm37)Zr`i4LizagXVhMk>F z*lKn8Koujw1LZA4rw`5cvFEMk`~rKOk|h` zY+`NE;dEELS}BcP(8u} zE>)p;QgcU3Rs{BK$2AK9&(loIG%aKiTXbnTIJk^%Z@+A}mK3U~8ZO@7YyEA%EFjzQ z?zzGX7i!R&%hDC5T+t(4=&-oQR-#=KLIuSL@R7%AFPEw7#4&#PVw)l*6(#t$)-lDz zBysZc{GKfs;EED~ZsR9(x|AegNa$-UTcR&}tfIn6xk!irLa~c4wI^146v-UdqcHS2 zYk7G68)hJ1uQDhI3&IJSkd#WzPt>^0K~QcvXC6 z@O%lePW_Yrmv(0V7t1vU;Oxf#V#XE?iN59l_I#=6Df26K0PxXJ(N!*0v=06+iyNTZ diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 14c8d09..0000000 --- a/docs/index.md +++ /dev/null @@ -1,357 +0,0 @@ ---- -layout: default -permalink: index ---- - - -

-
-
-
-
-
- - - -
- -
- - -
-
EASY TO
USE
-
- -
-
- -
-
-
Extend SQL with Dynamic Evaluation
-
-{% highlight csharp %} --- Evaluate dynamically expression in T-SQL -DECLARE @tableFormula TABLE ( - Formula VARCHAR(255), X INT, Y INT, Z INT -) - -INSERT INTO @tableFormula VALUES ('x+y*z', 1, 2, 3 ), - ('(x+y)*z', 1, 2, 3 ) --- SELECT 7 --- SELECT 9 -SELECT SQLNET::New(Formula) - .ValueInt('x', X) - .ValueInt('y', Y) - .ValueInt('z', Z).EvalInt() as Result -FROM @tableFormula -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/c8338/1' %} -
-
-
-
-
-
-

-
Extend SQL with Dynamic Evaluation at Runtime Using C# Expression.
-

-
-
-
-
-
-
-
-
-
- - - - - -
-{% include layout-angle-begin.html %} -
-

Amazing performance, outstanding support!

- -
-

We were very, very pleased with the customer support. There was no question, problem or wish that was not answered AND solved within days! We think that’s very unique!

- -
-
-

I’d definitely recommend it as it is a great product with a great performance and reliability.

- -
- - -
-{% include layout-angle-end.html %} -
- - - -
- -
- - -

Evaluate dynamic arithmetic expression in SQL

-
-
-

Make the impossible now possible. Evaluate C# expression in SQL to overcome limitations.

-
    -
  • Allow trusted users to create report field and filter
  • -
  • Consume Web Service
  • -
  • Replace text in template with String Interpolation
  • -
- -
-
-
-
Dynamic Expression Example
-
-{% highlight csharp %} --- Easy to use - --- CREATE test -DECLARE @table TABLE ( X INT, Y INT, Z INT ) -INSERT INTO @table VALUES ( 2, 4, 6 ), ( 3, 5, 7 ), ( 4, 6, 8 ) - --- Result: 14, 22, 32 -DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') -SELECT @sqlnet.ValueInt('x', X) - .ValueInt('y', Y) - .ValueInt('z', Z) - .EvalInt() as Result -FROM @table -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/6870e/1' %} -
-
-
-
- -
- - -

Split text with delimiter

-
-
-

Improve performance and capability for splitting text with an easy to use split function and LINQ expressions.

-
    -
  • Split text with multiple delimiters
  • -
  • Split text using a regular expression
  • -
  • Include row index
  • -
- -
-
-
-
Split Text Example
-
-{% highlight csharp %} - --- CREATE test -DECLARE @t TABLE (Id INT , Input VARCHAR(MAX)) -INSERT INTO @t VALUES ( 1, '1, 2, 3; 4; 5' ), ( 2, '6;7,8;9,10' ) - --- SPLIT with many delimiters: ',' and ';' -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")') - -SELECT * -FROM @t AS A - CROSS APPLY ( SELECT * - FROM dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', Input)) - ) AS B -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/3de09/1' %} -
-
-
-
- -
- - -

Use regular expression in SQL Server

-
-
-

Use Regex flexibility to overcome "LIKE" and "PATHINDEX" limitations.

-
    -
  • IsMatch
  • -
  • Match
  • -
  • Matches
  • -
  • Replace
  • -
  • Split
  • -
- -
-
-
-
Regular Expression Example
-
-{% highlight csharp %} -DECLARE @customer TABLE ( Email VARCHAR(255) ) - -INSERT INTO @customer -VALUES ( 'info@zzzprojects.com' ), - ( 'invalid.com' ), - ( 'sales@zzzprojects.com' ) - -DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, -@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")') - --- SELECT 'invalid.com' -SELECT * FROM @customer WHERE @valid_email.ValueString('email', Email).EvalBit() = 0 -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/92200/1' %} -
-
-
-
- -
- - -

Replace xp_cmdshell with restrictive alternative

-
-
-

void enabling xp_cmdshell and compromising your SQL Server and use instead a more restrictive solution.

-
    -
  • Impersonate Context
  • -
  • Improve maintainability
  • -
  • Improve readability
  • -
  • Improve security
  • -
- -
-
-
-
Example
-
-{% highlight csharp %} --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*") - .Select(x => new { x.FullName, FileContent = File.ReadAllText(x.FullName) }) - .OrderBy(x => x.FullName)') - .Impersonate() - --- SELECT FullName, FileContext FROM DesktopFiles ORDER BY Fullname -EXEC dbo.SQLNET_EvalResultSet @sqlnet -{% endhighlight %} -
-
-
-
- - - - -
-
diff --git a/docs/js/fiddle-client.js b/docs/js/fiddle-client.js deleted file mode 100644 index de7b221..0000000 --- a/docs/js/fiddle-client.js +++ /dev/null @@ -1,133 +0,0 @@ -function SqlFiddle() { - - //////////// - // constructors - //////////// - initializeMessage(); - createConsole(); - - //////////// - // variable - //////////// - var defaultOptions = null; - - //////////// - // console - public API - //////////// - this.closeConsole = function () { - hideConsole(); - } - this.openConsole = function (options) { - showConsole(options); - } - this.toggleConsole = function (options) { - if(getConsole().style.display == "") { - showConsole(options); - } else { - hideConsole(); - } - } - - //////////// - // console - private API - //////////// - function createConsole() { - createConsoleCss(); - - document.addEventListener('DOMContentLoaded', function () { - // create div - var div = document.createElement("DIV"); - div.id = "sqlfiddle-console"; - div.style.display = "none"; - - // create iframe - var iframe = document.createElement("IFRAME"); - iframe.id = "sqlfiddle-console-iframe"; - //iframe.setAttribute("src", "http://localhost:8001/Fiddle/FiddleConsole"); - iframe.setAttribute("src", "http://nugetmusthaves.com/Fiddle/FiddleConsole"); - - // append element - div.appendChild(iframe); - document.body.appendChild(div); - }); - } - function createConsoleCss() { - document.write("\ - \ - "); - } - function getConsole() { - return document.getElementById("sqlfiddle-console"); - } - function getConsoleWindow() { - return document.getElementById("sqlfiddle-console-iframe").contentWindow; - } - function showConsole(options) { - // show console - getConsole().style.display = ""; - - // send message - data = { - action: 'console-initialize', - defaultOptions: defaultOptions, - options: options - }; - sendMessageConsole(data); - } - function hideConsole() { - getConsole().style.display = "none"; - } - - //////////// - // options - public API - //////////// - this.setDefaultOptions = function (options) { - defaultOptions = options; - } - - //////////// - // message - private API - //////////// - function initializeMessage() { - if (window.addEventListener) { - window.addEventListener("message", receiveMessage, false); - } - else { - window.attachEvent("onmessage", receiveMessage); - } - } - function sendMessageConsole(msg) { - getConsoleWindow().postMessage(msg,'*'); - } - function sendMessageFiddle(id, msg) { - var console = document.getElementsByTagName("fiddle-" + id).contentWindow; - console.postMessage(msg,'*'); - } - function receiveMessage(event) { - // console - if(event.data.action == "console.hide") { - hideConsole(); - } - } -} - -var sqlFiddle = new SqlFiddle(); \ No newline at end of file diff --git a/docs/pages/api/api.md b/docs/pages/api/api.md deleted file mode 100644 index ee1e2ed..0000000 --- a/docs/pages/api/api.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -permalink: api ---- - -## Overview - -Let take a very short overview with the API - -{% include template-example.html %} -{% highlight csharp %} -SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() as Result -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1123' %} - - - - **SQLNET:** A CLR Type created by Eval SQL.NET library - - **"::":** This is how you call static method in SQL CLR - - **New:** A static method which create a new instance of SQLNET Type - - **ValueInt:** Set a int value for a specific parameter name used in the expression - - **EvalInt:** Evaluate the expression and return a result of type INT - -
- -
-
-

Methods

-
- -
- -
- - - [Eval](/eval) - - [Value](/value) - - [Options](/options) - - [Configuration](/configuration) - -
-
-
-
- - diff --git a/docs/pages/api/configuration.md b/docs/pages/api/configuration.md deleted file mode 100644 index badfab1..0000000 --- a/docs/pages/api/configuration.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -permalink: configuration ---- - -## Configuration - -Optional stored procedure for License and Configuration - - -{% include template-example.html %} -{% highlight csharp %} - -CREATE PROCEDURE SQLNET_GlobalConfiguration -AS -BEGIN - -- The procedure is automatically called when the server restart/assembly load - -- If the assembly is already loaded, a manual execution is required - -- EXEC SQLNET_Configuration - DECLARE @isValid BIT = SQLNET::AddLicense('[LicenseName]', '[LicenseKey]') - - -- SELECT 1 - SELECT @isValid - - -- SELECT 1 - SELECT SQLNET::New(' -EvalManager.Configuration.RegisterAlias("MyMath", "Math"); -EvalManager.Configuration.ExpireCacheDelay = TimeSpan.FromMinutes(5); -EvalManager.Configuration.SlidingExpirationDelegate = TimeSpan.FromHours(3); -EvalManager.Configuration.SlidingExpirationItem = TimeSpan.FromMinutes(1); -return true; -').Eval() - -END -{% endhighlight %} - -## Configuration Register & Unregister - -Register or unregister information used by the EvalContext under which the code or expression is compiled. - - - RegisterAlias(string alias, string name) - - RegisterAssembly(param Assembly[]) - - RegisterDomainAssemblies() - - RegisterExtensionMethod(param Type[]) - - RegisterExtensionMethod(param MethodInfo[]) - - RegisterGlobalConstant(string key, object value) - - RegisterGlobalVariable(string key, object value) - - RegisterStaticMember(param Type[]) - - RegisterStaticMember(param MemberInfo[]) - - RegisterType(param Type[]) - -[EvalContext - Register & Unregister](https://github.com/zzzprojects/Eval-Expression.NET/wiki/EvalContext-Register-&-Unregister) - -## Configuration Options - -Change option used by the EvalContext under which the code or expression is compiled. - - - BindingFlags - - UseCaretForExponent - -[EvalContext - Options](https://github.com/zzzprojects/Eval-Expression.NET/wiki/EvalContext-Options) - -## Configuration.ExpireCacheDelay - -Sets a span of time within the next time the ExpireCache method is invoked to evict inactive cache item. - -## Configuration.SlidingExpirationDelegate - -Sets a span of time within which a delegate must be accessed before it evicted from the cache - -## Configuration.SlidingExpirationItem - -Sets a span of time within which an item must be accessed before it evicted from the cache - diff --git a/docs/pages/api/eval.md b/docs/pages/api/eval.md deleted file mode 100644 index 4f19ef9..0000000 --- a/docs/pages/api/eval.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -permalink: eval ---- -## Eval - -Evaluate the code or expression and return the result. - - - Eval - - EvalBigInt - - EvalBinary - - EvalBit - - EvalDateTime - - EvalInt - - EvalSmallInt - - EvalString - - EvalTinyInt - - EvalUniqueIdentifier - - EvalVarBinary - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @sqlnet SQLNET = SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).Root(); - -DECLARE @value_variant SQL_VARIANT = @sqlnet.Eval(); -DECLARE @value_int INT = @sqlnet.EvalInt(); -DECLARE @value_decimal DECIMAL(18, 2) = CAST(@sqlnet.Eval() AS DECIMAL(18, 2)) - --- SELECT 3, 3, 3.00 -SELECT @value_variant as variant , @value_int as int, @value_decimal as decimal -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/58568/15' %} - -## EvalReadAccess - -Evaluate the code or expression allowing "Read" and return the result. - - - EvalReadAccess - - EvalReadAccessBigInt - - EvalReadAccessBinary - - EvalReadAccessBit - - EvalReadAccessDateTime - - EvalReadAccessInt - - EvalReadAccessSmallInt - - EvalReadAccessString - - EvalReadAccessTinyInt - - EvalReadAccessUniqueIdentifier - - EvalReadAccessVarBinary - -## EvalSQLNET - -Evaluate the code or expression and return a new SQLNET object with the result in the parameter name "value" - -{% include template-example.html %} -{% highlight csharp %} --- Eval and create a new SQLNET object -DECLARE @sqlnet SQLNET = SQLNET::New('var list = new List() { 1, 2, 3, 4}') -DECLARE @result SQLNET = @sqlnet.EvalSQLNET() - --- Use the value previously resolved --- SELECT 4 -SELECT @result.Code('value.Count').EvalInt() as Result -Useful to optimize code with object initialization like Regex. -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/989' %} - -## EXEC SQLNET_EvalResultSet - -Stored Procedures that evaluate code or expression and return a Result Set. - -{% include template-example.html %} -{% highlight csharp %} --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*").Select(x => x.FullName).OrderBy(x => x).ToList();') - .Impersonate() - --- SELECT * FROM DesktopFiles ORDER BY File.Fullname -EXEC dbo.SQLNET_EvalResultSet @sqlnet -You can output the result to the client or insert it in a table like a normal procedure. -{% endhighlight %} - - -## EvalTVF - -Evaluate the code or expression from a Table-Valued Function (TVF). - - - SQLNET_EvalTVF_1 (SQL_VARIANT) - - SQLNET_EvalTVF_2 (SQL_VARIANT, SQL_VARIANT) - - SQLNET_EvalTVF_3 (SQL_VARIANT, SQL_VARIANT, SQL_VARIANT) - - SQLNET_EvalTVF_4 (SQL_VARIANT, SQL_VARIANT, SQL_VARIANT, SQL_VARIANT) - - SQLNET_EvalTVF_5 (SQL_VARIANT, ..., SQL_VARIANT) - - SQLNET_EvalTVF_String - -{% include template-example.html %} -{% highlight csharp %} -CREATE FUNCTION [dbo].[fn_Split] - ( - @input VARCHAR(MAX) , - @pattern VARCHAR(8000) = ',' - ) -RETURNS @split TABLE ( item VARCHAR(8000) ) - BEGIN - DECLARE @regex_split SQLNET = SQLNET::New('Regex.Split(input, pattern)') - .ValueString('input', @input) - .ValueString('pattern', @pattern) - - INSERT INTO @split - SELECT CAST(Value_1 AS VARCHAR(8000)) - FROM [dbo].[SQLNET_EvalTVF_1](@regex_split) - RETURN - END - -GO - --- SPLIT with multiple delimiters (',' and ';') -SELECT * FROM dbo.fn_Split('1, 2, 3; 4; 5', ',|;') -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/b738f/2' %} diff --git a/docs/pages/api/options.md b/docs/pages/api/options.md deleted file mode 100644 index ddb60a2..0000000 --- a/docs/pages/api/options.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -permalink: options ---- - -## AutoDispose() - -AutoDispose object and delegate from the cache after the code has been evaluated. - -{% include template-example.html %} -{% highlight csharp %} --- SELECT 3 -SELECT SQLNET::New('1+2').AutoDispose().EvalInt() as Result - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/994' %} - -Don't worry, we have you covered! Object and Delegate are automatically disposed after a period of time without activity. - -## Code(string code) - -Sets the code or expression to evaluate. - -DECLARE @sqlnet SQLNET = SQLNET::New('') - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @sqlnet SQLNET = SQLNET::New('') - --- SELECT 3 -SELECT @sqlnet.Code('1+2').EvalInt() as Result - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1125' %} - -## Dispose() - -Dispose object and delegate from the cache - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @sqlnet SQLNET = SQLNET::New('x + y') - -SELECT @sqlnet - .ValueInt('x', 1) - .ValueInt('y', 2) - .EvalInt() as Result - - -SELECT @sqlnet.getcode() as Result - -DECLARE @dispose BIT = @sqlnet.Dispose() - ---Not work because dipose... -SELECT @sqlnet - .ValueInt('x', 1) - .ValueInt('y', 2) - .EvalInt() as Result - - ---Not work because dipose... -SELECT @sqlnet.getcode() as Result -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/996' %} - -Don't worry, we have you covered! Object and Delegate are automatically disposed after a period of time without activity. - -## Impersonate() - -Change the security context to impersonate the credential of the one who runs the T-SQL statements. - -{% include template-example.html %} -{% highlight csharp %} --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*").Select(x => x.FullName).OrderBy(x => x).ToList();') - .Impersonate() - --- SELECT * FROM DesktopFiles ORDER BY File.Fullname -EXEC dbo.SQLNET_EvalResultSet @sqlnet - -{% endhighlight %} - - -Impersonate the current execution context under which the routine is executing. - -## Root() - -Root is required when the expression already specified value. This feature has been added to allow Parallelism. - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @sqlnet SQLNET = SQLNET::New('x+y').ValueInt('y', 2).Root() - --- SELECT 3 -SELECT @sqlnet.ValueInt('x', 1).EvalInt() as Result - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/997' %} diff --git a/docs/pages/api/value.md b/docs/pages/api/value.md deleted file mode 100644 index 66a184c..0000000 --- a/docs/pages/api/value.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -permalink: value ---- - -## Value - -Add or update a value associated with the specified key. - - - Val\Value (SQL_Variant) - - ValueBigInt - - ValueBinary - - ValueBoolean - - ValueByte - - ValueBytes - - ValueChars - - ValueDateTime - - ValueGuid - - ValueInt - - ValueString - - ValueTinyInt - - ValueXml - -{% include template-example.html %} -{% highlight csharp %} --- SELECT 3 -SELECT SQLNET::New('x+1').ValueInt('x', 2).EvalInt() as Result - --- SELECT 3 -SELECT SQLNET::New('x+1').ValueInt('x', 2).EvalInt() as Result - --- SELECT 1 -SELECT SQLNET::New('x.Length').ValueBinary('x', 0x11).Eval() as Result - --- SELECT 'ZZZ Projects' -SELECT SQLNET::New('"ZZZ " + x').ValueString('x', 'Projects').Eval() as Result - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/009cc/2' %} - -For maximum performance, the right Value[Type] should be always used over Val && Value - -## ValueNullable - - - Val\Value (require to specify the type in the key "int? x") - - ValueBigInt - - ValueBoolean - - ValueByte - - ValueBytes - - ValueDateTime - - ValueGuid - - ValueInt - - ValueTinyInt - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @x1 INT = NULL; -DECLARE @x2 INT = 2; - -DECLARE @sqlnet SQLNET = SQLNET::New('x.HasValue ? x.Value + 1 : 0'); - --- SELECT 0 -SELECT @sqlnet.ValueNullableInt('x', @x1).EvalInt() as Result - --- SELECT 3 -SELECT @sqlnet.ValueNullableInt('x', @x2).EvalInt() as Result - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/1cdb6/5' %} - -## ValueSQLNET - -Add or update a value associated with the specified key. The parameter "value" from the previously resolved expression is used. - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @sqlnet SQLNET = SQLNET::New('var list = new List() { 1, 2, 3, 4}') -DECLARE @result SQLNET = @sqlnet.EvalSQLNET() - --- SELECT 4 -SELECT SQLNET::New('x.Count').ValueSQLNET('x', @result).Eval() AS Result - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/3149e/2' %} - -## GetValue - -Gets the value associated with the specified key. - - - GetValue(string key) - - GetValueBigInt(string key) - - GetValueBit(string key) - - GetValueInt(string key) - - GetValueSmallInt(string key) - - GetValueString(string key) - - GetValueTinyInt(string key) - -{% include template-example.html %} -{% highlight csharp %} --- SELECT 1 -SELECT SQLNET::New('x + 1').Val('x', 1).GetValue('x') as Result - --- SELECT 1 -SELECT SQLNET::New('x + 1').Val('x', 1).GetValueBigInt('x') as Result - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/3149e/6' %} diff --git a/docs/pages/faq/faq-eval-sql-net.md b/docs/pages/faq/faq-eval-sql-net.md deleted file mode 100644 index 0f425fd..0000000 --- a/docs/pages/faq/faq-eval-sql-net.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -permalink: faq-eval-sql-net ---- - -## Bug Fixing - -You find a bug when compiling? [Report it](https://github.com/zzzprojects/Eval-SQL.NET/issues) and it will be fixed usually within one business day. - -## Namespace - -All namespace support by SQL CLR are supported by Eval SQL.NET. - -[Supported .NET Framework Libraries](https://msdn.microsoft.com/en-us/library/ms403279.aspx) - - - CustomMarshalers - - Microsoft.VisualBasic - - Microsoft.VisualC - - mscorlib - - System - - System.Configuration - - System.Data - - System.Data.OracleClient - - System.Data.SqlXml - - System.Deployment - - System.Security - - System.Transactions - - System.Web.Services - - System.Xml - - System.Core.dll - - System.Xml.Linq.dll - - All common namespace and extensions method can be used without specifying the fullname. - -You can see the full list [here](https://github.com/zzzprojects/Eval-SQL.NET/blob/master/src/Z.Expressions.SqlServer.Eval/EvalContext/EvalContext.RegisterDefaultAlias.cs) - -Let us know if you believe we have missing some. - -## Performance - -You are worried about performance? Don't worry, Eval SQL.NET is super-fast and can evaluate over 150,000 expressions in a loop under one second and over 1,000,000 using a table! - -Result highly vary depending of your SQL Server performance and expression to evaluate. - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @startTime DATETIME, -@endTime DATETIME - -DECLARE @I INT = -1 -DECLARE @sqlnet SQLNET = SQLNET::New('i + 1') --- LET Compile the expression to check the compiled performance -SET @I = @sqlnet.Val('i', @I).EvalInt() - -SET @startTime = GETDATE() - -WHILE @I < 125000 - BEGIN - SET @I = @sqlnet.ValueInt('i', @I).EvalInt() - END - -SET @endTime = GETDATE() -PRINT 'StartTime = ' + CONVERT(VARCHAR(30), @startTime, 121) -PRINT 'EndTime = ' + CONVERT(VARCHAR(30), @endTime, 121) -PRINT 'Duration = ' + CONVERT(VARCHAR(30), @endTime - @starttime, 114) - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/3149e/10' %} - -## Security - -SQL CLR allow three type of permission: - - - SAFE - - EXTERNAL_ACCESS - - UNSAFE Eval SQL.NET support all types and is installed by default with SAFE permissions. Read more about [SQL CLR Permissions](https://msdn.microsoft.com/en-CA/library/ms345101.aspx) - -## SQL Injection - -This library allow to use parameter, so no SQL Injection is possible! - -However if you build the string to evaluate as you build a dynamic SQL, then there is nothing we can do for you. - -## Decimal throw an error! - -In C#, decimal must be suffixed with "m" to make them valid. By default "1.1" in C# is a double which cannot be added with decimal value. - -{% include template-example.html %} -{% highlight csharp %} - -// Trow exception -SELECT SQLNET::New('(x)+1.1234').Val('x', 1.1).Eval() as Result - --- SELECT 2.2234 -SELECT SQLNET::New('(x)+1.1234m').Val('x', 1.1).Eval() as Result -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/3149e/11' %} diff --git a/docs/pages/faq/faq-general.md b/docs/pages/faq/faq-general.md deleted file mode 100644 index e811f8b..0000000 --- a/docs/pages/faq/faq-general.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -permalink: faq-general ---- - -## Which Payment method do you support? -We support the following payment method: - -- PayPal -- Check -- Bank Transfer - -## Can I purchase this product from a Reseller? -Yes, just let him know to contact us. - -## What's your average SLA response and resolution times? -We try to provide an outstanding support service. - -We normally answer very fast, often within one hour. - -Most fixes is resolved within one business day. - -## Do you support EF Core -We do not yet. We are currently re-writing the library to support it. diff --git a/docs/pages/faq/faq-installation.md b/docs/pages/faq/faq-installation.md deleted file mode 100644 index 9857da8..0000000 --- a/docs/pages/faq/faq-installation.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -permalink: faq-installation ---- - -## How to I Install your product? -It simple, you download it from NuGet and add it to your project. - -More Info: [Tutorials - Installing](installing) - -## I have installed your product, but I don't see your extensions method -- Make sure to install it in the right project -- Make sure your project support .NET40 or better diff --git a/docs/pages/faq/faq-license.md b/docs/pages/faq/faq-license.md deleted file mode 100644 index 4a59e5d..0000000 --- a/docs/pages/faq/faq-license.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -permalink: faq-license ---- - -## Developer Seat - -### What's a developer seat? -A developer seat is a developer working for your company and developing code directly with our product. - -You don't have to purchase developer seat for front-end developer or back-end developer which doesn't use our product API. - -Since you buy developer seat, you can develop an unlimited amount of projects within your company. - -### What's the cost for additional developer seat? -The cost for additional developer seat is usually extremely low. We want to make sure our library is accessible for small and large company. - -### Do developer seat are transferable? -Yes, a developer seat can be transferred to any employee within your company. - -## Perpertual License - -### What's a perpetual license? -A perpetual license allows you to use the licensed product indefinitely. - -### Even when my Support & Upgrade is expired? -Yes. - -## Support & Upgdrade - -### My support & upgrade have expired! What will happen? -Don't worry. Your product continue to work forever! - -You can still download and use any version released before the support & upgrade expiration date. - -You will need to renew to use version released after the support & upgrade expiration date. - -### How do I renew my License? -We usually start to send renewal mail two months before the support & upgrade expiration date. - -If you didn't receive such email, you could contact us directly: info@zzzprojects.com - -### Can I have renewal discount? -We provide a 25% discount to early renewal. So anyone renewing before the support & upgrade expiration date automatically get a renewal discount. - -### I'm too late for early renewal discount! What can I do? -If you are few day late, we still provide early renewal discount. - -However, if you have few months late, you will need to purchase the library again. - -The best way to find out if you still have access to early renewal discount is by contacting us: info@zzzprojects.com - -### Why should I renew? -Renewing your support & upgrade give the following benefits: - -- Major version releases and new product features -- Fast support by mail -- Protection against price increases during the maintenance term - -## Royalty Free - -### Is Eval-SQL.NET Royalty Free? -Yes, the product is royalty free. - -This mean, you can develop a project and install it on thousands of clients. - -You paid for developer seat within your company. - -Some standard royalty free limitations: - -- You can't sell a similar product and claim it's yours. -- If your customer has access to your source code and develops using our API, they will have to purchase a license. diff --git a/docs/pages/faq/faq.md b/docs/pages/faq/faq.md deleted file mode 100644 index 4b33eba..0000000 --- a/docs/pages/faq/faq.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -permalink: faq ---- -## FAQ - -- [Contact Us](contact-us) -- [Issue Tracker](issue-tracker) -- [General](faq-general) -- [Installation](faq-installation) -- [License](faq-license) -- [Eval SQL.NET](faq-eval-sql-net) diff --git a/docs/pages/faq/issue-tracker.md b/docs/pages/faq/issue-tracker.md deleted file mode 100644 index e3454b8..0000000 --- a/docs/pages/faq/issue-tracker.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -permalink: issue-tracker ---- - -## Where is your Issue Tracker? - -While we prefer to be contacted directly: info@zzzprojects.com - -We understand some people prefer to have an online issue tracker to follow and comment their issues. - -You can create issue here: - -- [Issue Tracker](https://github.com/zzzprojects/Eval-SQL.NET/issues) diff --git a/docs/pages/problems/problems.md b/docs/pages/problems/problems.md deleted file mode 100644 index 6d20dda..0000000 --- a/docs/pages/problems/problems.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -permalink: problems ---- - -## Troubleshooting - -- [SQL Server Eval](sql-server-eval) -- [SQL Server Function (UDF)](/sql-server-function) -- [SQL Server File Operation](/sql-server-file-operation) -- [SQL Server Regex](/sql-server-regex) diff --git a/docs/pages/problems/sql-server-eval.md b/docs/pages/problems/sql-server-eval.md deleted file mode 100644 index 3e80865..0000000 --- a/docs/pages/problems/sql-server-eval.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -permalink: sql-server-eval ---- -## Introduction - -How to evaluate an arithmetic expression in SQL Server is a common subject. There are several reasons why an "Eval" function like JavaScript could be useful in SQL such as evaluating custom report field for a trusted user. - -Multiple partial solutions exists like using "EXEC(Transact-SQL)" which is limited, cannot be used inside SELECT statement and lead to SQL Injection or using an homemade function which, most of time, fail at supporting simple operator priority and parenthesis. - -**SQL Eval.NET** is a complete solution which, not only lets you evaluate dynamic arithmetic expression, but lets you use the full C# language directly in T-SQL stored procedures, functions and triggers. - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @tableFormula TABLE (Formula VARCHAR(255), X INT, Y INT, Z INT) - -INSERT INTO @tableFormula -VALUES ( 'x+y*z', 1, 2, 3 ), - ( '(x+y)*z', 1, 2, 3 ) - --- Select_0: 7 --- Select_1: 9 -SELECT SQLNET::New(Formula).ValueInt('x', X).ValueInt('y', Y).ValueInt('z', Z).EvalInt() as Result -FROM @tableFormula -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/2f73a/1' %} - -## SQL Eval - Arithmetic / Math Expression - -### Problem - -You need to evaluate a dynamic arithmetic operation specified by a trusted user or check a dynamic rule. - - - Dynamic report calculation field - - Dynamic report query filter - - Dynamic rule validation - -### Solution - -Eval SQL.NET supports all C# operators including operators precedence and parenthesis. - -Evaluating an expression is very fast and scalable. You can see performance 3-20x faster than User-Defined Function (UDF) and you can evaluate an expression as much as ONE MILLION times under a second. - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @items TABLE (Quantity INT, Price MONEY) - -INSERT INTO @items -VALUES ( 2, 10 ), - ( 9, 6 ), - ( 15, 2 ), - ( 6, 0 ), - ( 84, 5 ) - -DECLARE @customColumn SQLNET = SQLNET::New('(quantity * price).ToString("$#.00")') -DECLARE @customFilter SQLNET = SQLNET::New('quantity > 3 && price > 0') - --- Select_0: 9, 6.00, $54.00 --- Select_1: 15, 2.00, $30.00 --- Select_2: 84, 5.00, $420.00 -SELECT * , - @customColumn.ValueInt('quantity', Quantity).Val('price', Price).EvalString() as Result -FROM @items -WHERE @customFilter.ValueInt('quantity', Quantity).Val('price', Price).EvalBit() = 1 -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/4ed27/1' %} - -## SQL Eval - Dynamic Expression - -### Problem - -You need to evaluate and execute a dynamic SQL expression which requires more than basic arithmetic operators. - - - if/else - - switch/case - - try/catch - -### Solution - -Eval SQL.NET is flexible and supports almost all C# keywords and features including: - - - Anonymous Type - - Generic Type - - Lambda Expression - - LINQ - -{% include template-example.html %} -{% highlight csharp %} -CREATE PROCEDURE [dbo].[Select_Switch] @x INT, @y INT, @z INT -AS - BEGIN - DECLARE @result INT - - SET @result = SQLNET::New(' -switch(x) -{ - case 1: return y + z; - case 2: return y - z; - case 3: return y * z; - default: return Convert.ToInt32(y ^^ z); // Pow -} - ').ValueInt('x', @x).ValueInt('y', @y).ValueInt('z', @z).EvalInt() - - SELECT @result as Result - END - -GO - --- RETURN 5 -EXEC Select_Switch 1, 2, 3 --- RETURN -1 -EXEC Select_Switch 2, 2, 3 --- RETURN 6 -EXEC Select_Switch 3, 2, 3 --- RETURN 8 -EXEC Select_Switch 4, 2, 3 -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/6b73d/2' %} - -## SQL Eval - Framework class Library - -### Problem - -You have a complex SQL and you know C# Syntax and C# Object could make this problem very easy. - - - Regex - - DirectoryInfo / FileInfo - - String.Format - -### Solution - -Eval SQL.NET improve readability and maintainability over complex SQL. It supports all [.NET framework class libraries](https://msdn.microsoft.com/en-us/library/gg145045.aspx) (FCL) that are supported by [SQL CLR Framework Libraries](https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration/database-objects/supported-net-framework-libraries). - -{% include template-example.html %} -{% highlight csharp %} --- CREATE test -DECLARE @t TABLE (Id INT , Input VARCHAR(MAX)) -INSERT INTO @t VALUES ( 1, '1, 2, 3; 4; 5' ), ( 2, '6;7,8;9,10' ) - --- SPLIT with many delimiters: ',' and ';' -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")') - -SELECT * -FROM @t AS A - CROSS APPLY ( SELECT * - FROM dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', Input)) - ) AS B -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/ca1ba/2' %} - -## Conclusion - -Eval SQL.NET can really be seen in SQL Server as the function "eval()" equivalent of JavaScript. Unlike common solutions limited to very simple math expressions, Eval SQL.NET features go way beyond: - - - Access to C# Operators - - Access to C# Keywords - - Access to C# Objects - -Getting better performance than User-Defined Function (UDF) and Table-Valued Function (TVF) is the Icing on the Cake! diff --git a/docs/pages/problems/sql-server-file-operation.md b/docs/pages/problems/sql-server-file-operation.md deleted file mode 100644 index aaf5516..0000000 --- a/docs/pages/problems/sql-server-file-operation.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -permalink: sql-server-file-operation ---- - -## Introduction - -Reading and writing files are basic requirements for importing/exporting data through SQL server jobs. The xp_cmdshell stored procedure is often used but not a lot of developers and DBA are comfortable coding with it. The syntax makes the code often ugly, hard to develop and expensive to maintain due to the lack of good documentation, flexibility and understanding. - -Some DBA don't recommend and even ban all use of the procedure xp_cmdshell from their environment due to security issues. - -Eval SQL.NET allows you to use C# features and objects such as FileInfo and DirectoryInfo directly in T-SQL and improves code readability. It's the safest alternative to replace xp_cmdshell to access external resources by letting impersonate the current user context. - -It's safe and easy to use. - -{% include template-example.html %} -{% highlight csharp %} --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*").Select(x => x.FullName).OrderBy(x => x).ToList();') - .Impersonate() - --- SELECT * FROM DesktopFiles ORDER BY File.Fullname -EXEC dbo.SQLNET_EvalResultSet @sqlnet -{% endhighlight %} - -## SQL File Operation - Better flexibility - -### Problem - -You need to perform file operations but SQL xp_cmdshell limits you. - - - Return multiple column result back - - Passing parameter easier - - Impersonation - -### Solution - -Eval SQL.NET lets you use C# language and makes file operations very easy to perform. - -{% include template-example.html %} -{% highlight csharp %} - --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @FileInfo TABLE - ( - FilePath VARCHAR(255) , - FileContent VARCHAR(MAX) - ) - -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*").Select(x => new Tuple( - x.FullName, File.ReadAllText(x.FullName))) - .OrderBy(x => x).ToList();').Impersonate() - --- SELECT Path, FileText FROM DesktopFiles ORDER BY File.Fullname -INSERT INTO @FileInfo - EXEC dbo.SQLNET_EvalResultSet @sqlnet - -SELECT * -FROM @FileInfo - -{% endhighlight %} - - -## SQL File Operation - Better maintainability - -### Problem - -You need to develop a file operation but you're afraid your code will be very hard to maintain. - -### Solution - -Eval SQL.NET improves the maintainability by letting you use well known and well documented C# objects such as DirectoryInfo and FileInfo. - -{% include template-example.html %} -{% highlight csharp %} --- REQUIRE EXTERNAL_ACCESS permission --- BACKUP all ".txt" files created before 3 days ago --- RETURN the number of files affected - -SELECT SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); -string backupPath = Path.Combine(path, "Backup_" + DateTime.Now.ToString("yyyyMMdd")); - -DirectoryInfo desktopDirectory = new DirectoryInfo(path); -DirectoryInfo backupDirectory = new DirectoryInfo(backupPath); - -// ENSURE the directory exists -backupDirectory.Create(); - -// GET file to backup -var backupFiles = desktopDirectory.GetFiles("*.txt") - .Where(x => x.CreationTime < DateTime.Now.AddDays(-3)) - .ToList(); - -// COPY files to backup directory -backupFiles.ForEach(x => x.CopyTo(x.FullName.Replace(path, backupPath))); - -// RETURN the number of affected files -return backupFiles.Count; -').Impersonate().EvalReadAccessInt() as Result - -{% endhighlight %} - -## SQL File Operation - Better readability - -### Problem - -You need to perform file operations but the code soon becomes hard to understand and to change. - -### Solution - -Eval SQL.NET improves the readability by letting you use well known C# objects that wrap logic such as DirectoryInfo and FileInfo. - -## SQL File Operation - Better security - -### Problem - -You need to perform file operations but you don't want to enable xp_cmdshell in your SQL Server. - -### Solution - -Eval SQL.NET lets you perform file operations and change the security context to impersonate the credential of the one who runs the T-SQL statements. - -## Conclusion - -Eval SQL.NET grants you easy access to external resources through the C# language in T-SQL jobs and objects. - -It's a safe SQL alternative to xp_cmdshell and offers multiple advantages: - - - Improve Flexibility: Access to C# Language in SQL - - Improve Maintainability: FileInfo and DirectoryInfo are well-known/documented objects - - Improve Readability: C# is without a doubt easier to read than T-SQL for complex code - - Improve Security: Impersonate user context - diff --git a/docs/pages/problems/sql-server-function.md b/docs/pages/problems/sql-server-function.md deleted file mode 100644 index 0c03be7..0000000 --- a/docs/pages/problems/sql-server-function.md +++ /dev/null @@ -1,223 +0,0 @@ ---- -permalink: sql-server-function ---- - -## Introduction - -User-Defined Function (UDF) encapsulates code to make it easier to reuse. However, there are some limitations and restrictions: - - - Cannot call stored procedure - - Cannot use try/catch - - Cannot modify table state - - Cannot run dynamic sql - -**Eval SQL.NET** enhances function capabilities and lets you use C# language directly in T-SQL functions to overcome their limitations and restrictions. - -## SQL Function - Better readability - -### Problem - -You need to write a function but the code soon becomes very complex and unmaintainable. - -### Solution - -Eval SQL.NET improves the readability and maintainability of complex functions by using well-known C# objects. - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @s VARCHAR(MAX) = '1, 2, 3; 4; 5' -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")') - -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', @s)) - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1069' %} - -### Discussion - -For simple code, SQL syntax may work like a charm but when the code's complexity increases, less SQL is best suited for the job. It is designed to write queries, not to create long spaghetti code. We all have seen some functions that could have been written so much easier using another language like C#. - -One of the most common function is probably the fn_split function. It's not that hard to understand but thousands of variance exist and most of them are limited to only one delimiter. Using Eval SQL.NET, the fn_split function takes regular expression to split text which makes it very powerful. - - -## SQL Function - Error handling - -### Problem - -You need to handle an error with a TRY/CATCH but you receive the SQL error: - - - *Invalid use of a side-effecting operator 'BEGIN TRY' within a function.* - - *Invalid use of a side-effecting operator 'END TRY' within a function.* - - *Invalid use of a side-effecting operator 'BEGIN CATCH' within a function.* - - *Invalid use of a side-effecting operator 'END CATCH' within a function.* - -### Solution - -Eval SQL.NET makes it possible to handle errors with TRY/CATCH within a T-SQL function. - -{% include template-example.html %} -{% highlight csharp %} - -CREATE FUNCTION [dbo].[fn_try_catch] ( @x INT, @y INT ) -RETURNS INT -AS - BEGIN - RETURN SQLNET::New(' -try -{ - return x / y -} -catch (Exception ex) -{ - return x; -} -').ValueInt('x', @x).ValueInt('y', @y).EvalInt() - - END - -GO - --- SELECT 4 -SELECT dbo.fn_try_catch(4, 0) as Result - --- SELECT 2 -SELECT dbo.fn_try_catch(4, 2) as Result - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/d0cf1/1' %} - -## SQL Function - Call stored procedure - -### Problem - -You need to call a procedure within a function but you receive the SQL error: - - - *Only functions and some extended stored procedures can be executed from within a function.** - -### Solution - -Eval SQL.NET makes it possible to call stored procedures within a T-SQL function. - -{% include template-example.html %} -{% highlight csharp %} - -CREATE FUNCTION [dbo].[fn_CallProcedure] ( ) -RETURNS SQL_VARIANT -AS - BEGIN - RETURN SQLNET::New(' -defaultCommand.CommandText = "[PROCEDURE_NAME]"; -defaultCommand.CommandType = CommandType.StoredProcedure; -defaultCommand.Parameters.AddWithValue("name", name); -return defaultCommand.ExecuteScalar(); -').ValueString('name', 'zzz').Eval() - - END - -{% endhighlight %} - -Using this feature is highly **NOT RECOMMANDED**. - -## SQL Function - Modify table state - -### Problem - -You need to insert, update or delete data within a function but you receive the SQL error: - -User-defined functions cannot be used to perform actions that modify the database state. - -### Solution - -Eval SQL.NET makes it possible to modify table state (insert, update and delete) within a T-SQL function. - -{% include template-example.html %} -{% highlight csharp %} - -CREATE FUNCTION [dbo].[fn_modify_table_state] - ( - @conn VARCHAR(8000) , - @sql VARCHAR(8000) - ) -RETURNS INT -AS - BEGIN - RETURN SQLNET::New(' -using(var connection = new SqlConnection(conn)) -{ - connection.Open(); - - using(var command = new SqlCommand(sql, connection)) - { - return command.ExecuteNonQuery(); - } -} -').ValueString('conn', @conn).ValueString('sql', @sql).EvalReadAccessInt() - - END - - GO - -DECLARE @conn VARCHAR(8000) = 'Data Source=XPS8700;Initial Catalog=SqlServerEval_Debug;Integrated Security=True' -DECLARE @sql VARCHAR(8000) = 'UPDATE [Table_1] SET Value = -1 WHERE Name = ''zzz''' - -DECLARE @rowAffecteds INT = dbo.fn_modify_table_state(@conn, @sql) - -{% endhighlight %} - -Using this feature is highly **NOT RECOMMANDED**. - -## SQL Function - Run dynamic SQL - -### Problem - -You need to "EXECUTE" a string within a function but you receive the SQL error: - -Invalid use of a side-effecting operator 'EXECUTE STRING' within a function. - -### Solution - -Eval SQL.NET makes it possible to run "EXECUTE" and evaluate dynamic expressions within a T-SQL function. - -{% include template-example.html %} -{% highlight csharp %} - -CREATE FUNCTION [dbo].[fn_Exec_Count] ( @sql VARCHAR(8000) ) -RETURNS INT -AS - BEGIN - RETURN SQLNET::New(' -var dt = new DataTable(); -var s = "Data Source=XPS8700;Initial Catalog=SqlServer_Eval;Integrated Security=True"; -using(var connection = new SqlConnection(s)) -{ - connection.Open(); - - using(var command = new SqlCommand()) - { - command.Connection = connection; - command.CommandText = "EXEC(''" + sql + "'')"; - dt.Load(command.ExecuteReader()); - return dt.Rows.Count; - } -} -').ValueString('sql', @sql).EvalReadAccessInt() - - END - -GO - --- SELECT 2 -SELECT dbo.fn_Exec_Count('SELECT 1 UNION SELECT 2') as Result - -{% endhighlight %} - -Using this feature is highly **NOT RECOMMANDED**. - -## Conclusion - -Eval SQL.NET improve the readability and make the code easier to develop and maintain with C# syntax over complex SQL code. - -Even if you are now allowed to make some table modification, we don't recommend using this feature and use a stored procedure instead. Make sure you use the right tool for the right job. - diff --git a/docs/pages/problems/sql-server-regex.md b/docs/pages/problems/sql-server-regex.md deleted file mode 100644 index 4f95a4f..0000000 --- a/docs/pages/problems/sql-server-regex.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -permalink: sql-server-regex ---- - -## Introduction - -Finding or replacing text in SQL is a very frequent scenario. "LIKE" and "PATHINDEX" are often used but, unfortunately, are not close to be as much powerful and offering the same possibilities as regular expression (Regex) does. - -Eval SQL.NET lets you use and exploit fully C# regular expression features directly in T-SQL stored procedures, functions and triggers. It's possible to use regex in SQL search condition and select statement. - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @customer TABLE ( Email VARCHAR(255) ) - -INSERT INTO @customer -VALUES ( 'info@zzzprojects.com' ), - ( 'invalid.com' ), - ( 'sales@zzzprojects.com' ) - -DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, -@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")') - --- SELECT 'invalid.com' -SELECT * FROM @customer WHERE @valid_email.Val('email', Email).EvalBit() = 0 - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/213f9/1' %} - - -## SQL Regex - IsMatch - -### Problem - -You need to perform a rule validation or search with a condition to find valid/invalid rows but "LIKE" and "PATHINDEX" limitations don't cover your requirements: - - - Find customer with invalid email - - Find customer with invalid phone - - Find customer with invalid website - - Validate password - -### Solution - -SQL Regex IsMatch indicates whether the regular expression finds a match in the string or not. - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @customer TABLE ( Email VARCHAR(255) ) - -INSERT INTO @customer -VALUES ( 'info@zzzprojects.com' ), - ( 'invalid.com' ), - ( 'sales@zzzprojects.com' ) - -DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, -@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")') - --- SELECT 'invalid.com' -SELECT * FROM @customer WHERE @valid_email.ValueString('email', Email).EvalBit() = 0 - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/213f9/2' %} - -## SQL Regex - Match - -### Problem - -You need to extract the first occurrence from a string such as user profile description: - - - Extract the first email - - Extract the first phone - - Extract the first website - -### Solution - -SQL Regex Match searches in a string for the first occurrence of the regular expression and returns the match. - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @shortDescription VARCHAR(800) = 'zzz ... zzz... http://zzzprojects.com ... zzzz' -DECLARE @website VARCHAR(255) = NULL; - -IF ( @website IS NULL ) - BEGIN - -- IF user has not specified a website, try get it from the short description - SET @website = SQLNET::New(' -string value = Regex.Match(shortDescription, -"(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})").Value; - -return value != "" ? value : null; -') - .ValueString('shortDescription', @shortDescription) - .EvalString(); - END - --- return 'http://zzzprojects.com' -SELECT @website - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1012' %} - - -## SQL Regex - Matches - -### Problem - -You need to extract all occurrences from a string such as blog post: - - - Extract all emails - - Extract all phones - - Extract all websites - -### Solution - -SQL Regex Matches searches in the string for all occurrences of the regular expression and returns all the matches. - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @post VARCHAR(800) = 'zzz ... zzz... http://zzzprojects.com ... zzzz -. zzz... https://github.com/zzzprojects/Eval-SQL.NET ... zzzz -. zzz... zzz... https://github.com/zzzprojects/Eval-Expression.NET ... zzzz -. zzz.... zzz.... zzz... https://github.com/zzzprojects/EntityFramework-Plus ... zzzz -' - -DECLARE @websites TABLE ( Website VARCHAR(250) ) - -DECLARE @sqlnet_matchs SQLNET = SQLNET::New(' -var matches = Regex.Matches(post, -"(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})"); - -var list = new List(); -foreach(Match match in matches) -{ - list.Add(match.Value); -} - -return list; -').ValueString('post', @post) - - -INSERT INTO @websites - SELECT CAST(Value_1 AS VARCHAR(250)) - FROM dbo.SQLNET_EvalTVF_1(@sqlnet_matchs) - --- SELECT 'http://zzzprojects.com' --- SELECT 'https://github.com/zzzprojects/Eval-SQL.NET' --- SELECT 'https://github.com/zzzprojects/Eval-Expression.NET' --- SELECT 'https://github.com/zzzprojects/EntityFramework-Plus' -SELECT * FROM @websites - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/d48e7/3' %} - -## SQL Regex - Replace - -### Problem - -You need to convert, remove or substitute a text with a specific format: - - - Convert plain url to html link - - Remove phones - - Substitute name in text template - -### Solution - -SQL Regex Replace searches for strings that match a regular expression pattern and replaces a value with a replacement string. - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @post VARCHAR(800) = 'website: http://zzzprojects.com' - -SET @post = SQLNET::New(' -var input = post; -var pattern = @"(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})"; -var replacement = "$1"; - -return Regex.Replace(input, pattern, replacement); -').ValueString('post', @post).EvalString() - --- SELECT 'website: http://zzzprojects.com' -SELECT @post - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/b308e/1' %} - -## SQL Regex - Split - -### Problem - -You need to split a string but the traditional "fn_split" method is limited and doesn't cover your scenario: - - - Use multiple delimiter - - Keep the delimiter in value - - Split the first X occurrences - -### Solution - -SQL Regex Split lets you split a string into an array of substrings using a regular expression. - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @s VARCHAR(MAX) = '1, 2, 3; 4; 5' -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")') - -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', @s)) - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1069' %} - -### Discussion - -If you are currently using an fn_split User-Defined Functions (UDF), this benchmark will probably make change your mind! - -|Methods |1,000 rows |10,000 rows |100,000 rows |1,000,000 rows | -|:--------- |:--------- |:------------- |:------------- |:------------- | -|Eval SQL.NET |4 ms |13 ms |160 ms |1,650 ms| -fn_split (TVF) |100 ms |625 ms |5,500 ms |55,000 ms| - -## Conclusion - -Eval SQL.NET offers all advanced C# regular expression features in T-SQL statements and search conditions. Even more, you can use C# syntax to return from SQL what you really want and not only the regex result. - -While it should never replace scenarios where pure SQL operators/functions such as "LIKE" and "PATHINDEX" are sufficient, Eval SQL.NET will help you easily cover all unsupported ones. - diff --git a/docs/pages/site/contact-us.md b/docs/pages/site/contact-us.md deleted file mode 100644 index 05f23bf..0000000 --- a/docs/pages/site/contact-us.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -permalink: contact-us ---- - -
-
-
- -
-## Test our `Outstanding` Support -We usually answer within the next business day, hour, or minutes! - -We love to hear from you! - -## I have a question! What should I do? - -The best way to ask us questions. - -Contact us directly: - -- If you want a more personal answer -- If your question is not suited for Stack Overflow -- If your message contains private information - -## I think I've found a bug! What should I do? -The best way to report an issue is using our [Issues Tracker](https://github.com/zzzprojects/Eval-SQL.NET/issues){:target="_blank"} - -Make sure to include: -- Entity Framework Version -- Entity Framework Extensions Version -- Database Provider - -Contact us directly: - -- If you want a more personal answer -- If your question is not suited for the Issue Tracker -- If your message contains private information - -## I think I've found a new feature! What should I do? -The best way to request a new feature is using our [Issues Tracker](https://github.com/zzzprojects/Eval-SQL.NET/issues){:target="_blank"} - -Contact us directly: - -- If you want a more personal answer -- If your question is not suited for the Issue Tracker -- If your message contains private information - -## I think you forget about my request! What should I do? -Just contact us back again, and we will make sure we don't miss it again! -
-
-
-
-
-

Contact Info

-
-
-

General

- info@zzzprojects.com -

Sales

- sales@zzzprojects.com -

Issues & Features

- Issues Tracker -
-
-

-
-
-
diff --git a/docs/pages/site/download.md b/docs/pages/site/download.md deleted file mode 100644 index ac60812..0000000 --- a/docs/pages/site/download.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -permalink: download ---- - -
-
-
-
-
- -
- - - Download - -
Download Count:
-
- - - -
-
-
-
-
-
-
- -
-
---- -## FAQ - -### How can I extend my trial? -The latest version always contains a trial that expires at the end of the month. You can extend your trial for several months by downloading the latest version at the start of every month. - -### Why this library is not free and open source? -`ZZZ Projects` mission is focused on adding value to the `.NET Community` and supporting a lot of `free and open source` libraries. - -However, this mission cannot be successful without being able to pay our developers for the time they pass to support & develop features for free and paid libraries. - -#### Free Librairies - -- [Html Agility Pack](http://html-agility-pack.net/){:target="_blank"} -- [Entity Framework Plus](http://entityframework-plus.net/){:target="_blank"} -- [Entity Framework DynamicFilter](https://github.com/zzzprojects/EntityFramework.DynamicFilters){:target="_blank"} -- [RefactorThis.GraphDiff](https://github.com/zzzprojects/GraphDiff){:target="_blank"} -- [Extension Methods](https://github.com/zzzprojects/Z.ExtensionMethods){:target="_blank"} - -#### Website - -- [.NET Fiddle](https://dotnetfiddle.net/){:target="_blank"} -- [SQL Fiddle](http://sqlfiddle.com/){:target="_blank"} -- [NuGet Must Haves](http://nugetmusthaves.com/){:target="_blank"} -- [Dapper Tutorial](http://dapper-tutorial.net/){:target="_blank"} - -By contributing on paid libraries, you are also helping in keeping other libraries and website FREE. - -
-
- - diff --git a/docs/pages/site/pricing.md b/docs/pages/site/pricing.md deleted file mode 100644 index 6fe47f4..0000000 --- a/docs/pages/site/pricing.md +++ /dev/null @@ -1,193 +0,0 @@ ---- -permalink: pricing ---- - - - - -
- -
-
- -
- - - - -

Every month, a FREE trial of the PRO version is available to let you evaluate all its features without limitations.

-

Step 1 - Choose License

-
- - -
- -

Step 2 - Purchase

-
- -
-
- - -
* Read the FAQ below for alternative payment methods.
-
- -
- -
- -
-
-

What is included?

-
-
-

License

-
    -
  •  Unlimited Maximum Characters
  • -
  •  Commercial License
  • -
  •  Royalty-Free
  • -
  •  Support & Upgrades (1 year)
  • -
-
-
-
-
-
- -
-
---- -## FAQ - -### Which payment alternative method are accepted? -We accept `PayPal`, `Cheque` and `Wire Transfer`. - -We **DO NOT** accept bitcoin and credit card. - -Please contact us for more information. - -Email: sales@zzzprojects.com - -### Do you accept reseller? -Yes contact us if you are a reseller or seeking for a reseller. - -Email: sales@zzzprojects.com - -### What `2-4` developer seats mean? -It mean that you can use the license with up 4 developers inside your team. - -The `5-9` developer seats mean you can use the license with up 9 developers. - -You only pay for developer seats. You can use our library with an unlimited amount of application, environment, server, and client machine. - -### I need more than `19 seats`, what can I do? -Please contact us with the number of seats required. We offer some additional great discount or enterprise license. - -Email: sales@zzzprojects.com - -### Is the license perpetual? -The product comes with a one year of support & upgrade but the license is perpetual (indefinitely use). So you are not forced to renew every year or renew at all. - -Renewing come with a lot of benefits such as a 25%/35%/50% discount on purchase price, discounted or free product, etc. - -### Why this library is not free and open source? -`ZZZ Projects` mission is focused on adding value to the `.NET Community` and supporting a lot of `free and open source` libraries. - -However, this mission cannot be successful without being able to pay our developers for the time they pass to support & develop features for free and paid libraries. - -#### Free Librairies - -- [Html Agility Pack](http://html-agility-pack.net/){:target="_blank"} -- [Entity Framework Plus](http://entityframework-plus.net/){:target="_blank"} -- [Entity Framework DynamicFilter](https://github.com/zzzprojects/EntityFramework.DynamicFilters){:target="_blank"} -- [RefactorThis.GraphDiff](https://github.com/zzzprojects/GraphDiff){:target="_blank"} -- [Extension Methods](https://github.com/zzzprojects/Z.ExtensionMethods){:target="_blank"} - -#### Website - -- [.NET Fiddle](https://dotnetfiddle.net/){:target="_blank"} -- [SQL Fiddle](http://sqlfiddle.com/){:target="_blank"} -- [NuGet Must Haves](http://nugetmusthaves.com/){:target="_blank"} -- [Dapper Tutorial](http://dapper-tutorial.net/){:target="_blank"} - -By contributing on paid libraries, you are also helping in keeping other libraries and website FREE. - -
-
- - - - diff --git a/docs/pages/site/trial.md b/docs/pages/site/trial.md deleted file mode 100644 index 3939ba2..0000000 --- a/docs/pages/site/trial.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: default -title: Trial -permalink: trial ---- - -Oops! Your trial has expired. - -### How can I extend my trial? -You can extend your trial for several months by downloading the latest version at the beginning of every month. - - - - Download - - - -### Where is the free version? -There is no free version. - -### How can I purchase a license? -A perpetual license can be purchased from here: Buy \ No newline at end of file diff --git a/docs/pages/tutorials.md b/docs/pages/tutorials.md deleted file mode 100644 index f1b7a25..0000000 --- a/docs/pages/tutorials.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -permalink: tutorials ---- - -
- -
-
-
-

Getting Started

-

Learn the Basics

-
-

Start learning about how to use Eval SQL.NET with our getting started tutorial.

-

- Learn more -

-
-
-
-
-

API

-

Application Program Interface

-
-

Start learning the common API of Eval SQL.NET, and everything around it.

-

- Learn more -

-
-
-
-
-

FAQ

-

Freqently Answered Question

-
-

Start learning Eval SQL.NET best practices and solution to the common problem you may encounter.

-

- Learn more -

-
-
-
-
-

Problems

-

Exception & Troubleshooting

-
-

Start learning how to fix and handle some exception and common troubleshooting error.

-

- Learn more -

-
-
-
diff --git a/docs/pages/tutorials/arithmetic-expressions.md b/docs/pages/tutorials/arithmetic-expressions.md deleted file mode 100644 index 5f7d3b9..0000000 --- a/docs/pages/tutorials/arithmetic-expressions.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -permalink: arithmetic-expressions ---- - -## Definition -An arithmetic expression is an expression that results in a numeric value. Try these examples to see how easy is to resolve an arithmetic expression. - -Eval SQL.NET is a complete C# runtime compiler which honor operator precedence and parenthesis. - -### Using formula & variables - - - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @x INT = 2 -DECLARE @y INT = 4 -DECLARE @z INT = 6 - -DECLARE @result INT - -SET @result = SQLNET::New('x*y+z') - .ValueInt('x', @x) - .ValueInt('y', @y) - .ValueInt('z', @z) - .EvalInt() - --- SELECT 14 -SELECT @result as Result -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1101' %} - -### Using formula & table variables - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @table TABLE ( X INT, Y INT, Z INT ) - -INSERT INTO @table -VALUES ( 2, 4, 6 ), - ( 3, 5, 7 ), - ( 4, 6, 8 ) - --- 14 --- 22 --- 32 -DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') -SELECT @sqlnet.ValueInt('x', X) - .ValueInt('y', Y) - .ValueInt('z', Z) - .EvalInt() as Result -FROM @table - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/e44cf/2' %} - -### Using table formula & variables - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @table TABLE - ( - Formula VARCHAR(50) , - X INT , - Y INT , - Z INT - ) - -INSERT INTO @table -VALUES ( 'x*y+z', 2, 4, 6 ), - ( 'x+y*z', 2, 4, 6 ), - ( '(x+y)*z', 2, 4, 6 ) - --- 14 --- 26 --- 36 -DECLARE @sqlnet SQLNET = SQLNET::New('') -SELECT @sqlnet.Code(Formula) - .ValueInt('x', X) - .ValueInt('y', Y) - .ValueInt('z', Z).EvalInt() as Result -FROM @table -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/ed8f7/1' %} diff --git a/docs/pages/tutorials/installing.md b/docs/pages/tutorials/installing.md deleted file mode 100644 index 662f717..0000000 --- a/docs/pages/tutorials/installing.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -permalink: installing ---- - -**Eval SQL.NET** can be installed easily. - -This library is **NOT FREE** - -The latest version always contains a trial that expires at the end of the month. You can extend your trial for several months by downloading the latest version at the start of every month. - -## Download - -First, let install the library in a test database. - - - Create a new SQL Server database (using SQL Server 2012 or more recent) - - Install the latest version: Eval SQL.NET-Install.sql - - Read the SETUP section - - Change [DATABASE_NAME] by the newly created database name - - - - Download - \ No newline at end of file diff --git a/docs/pages/tutorials/licensing.md b/docs/pages/tutorials/licensing.md deleted file mode 100644 index 1a5892a..0000000 --- a/docs/pages/tutorials/licensing.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -permalink: licensing ---- - -## Evaluation Period -- You can evaluate the library for several months before purchasing it. -- The latest version always contains a trial that expires at the **end of the month**. -- You can extend your trial for several months by downloading the latest version at the start of every month. -- If you want to use the library for personal use or educational purpose, it's possible by downloading the latest version once per month. - -## How can I purchase the library? -- You can purchase the library [here](/pricing) -- Upon purchase, you will receive an email with a license name and a license key. -- Make sure to check your **SPAM** folder if you don't receive the license within 24h. - -## Setup License - -Upon purchase completion, an email will be sent with your license key information. - -{% include template-example.html %} -{% highlight csharp %} -CREATE PROCEDURE SQLNET_Configuration -AS -BEGIN - -- The procedure is automatically called when the server restart/assembly load - -- If the assembly is already loaded, a manual execution is required - -- EXEC SQLNET_Configuration - DECLARE @isValid BIT = SQLNET::AddLicense('[LicenseName]', '[LicenseKey]') - - -- SELECT 1 - SELECT @isValid -END -{% endhighlight %} - -*We recommend to always re-install the Eval-SQL.NET Script after enabling the license to ensure everything work if the server restart.* - -You can verify if the license is valid with the following command: - -{% include template-example.html %} -{% highlight csharp %} --- RETURN 1 if the license is valid. -SELECT SQLNET::AddLicense('[LicenseName]', '[LicenseKey]') - -{% endhighlight %} - diff --git a/docs/pages/tutorials/overview.md b/docs/pages/tutorials/overview.md deleted file mode 100644 index 5ba824c..0000000 --- a/docs/pages/tutorials/overview.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -permalink: overview ---- - -## Definition - - -**Eval SQL.NET** is a library that allow to evaluate dynamically C# expression directly in T-SQL. You never used Eval SQL.NET? Don't worry, this step-by-step walkthrough will help you to understand the library. - -Provide to your SQL Server all missing pieces like regular expression and dynamic arithmetic string evaluation. - -{% include template-example.html %} -{% highlight csharp %} --- SELECT 3 -SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() as Result -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1105' %} - -### Find your solutions: - - - Dynamic Arithmetic Expression - - Dynamic Pivot Table - - Regular Expression - - String Interpolation - - Replace xp_cmdshell with DirectoryInfo & FileInfo - -## Performance & Scalability - -Performance tuning is one of the most important task for a DBA. Don't miss the chance to **dramatically improve query performance** by **300%** for simple expression and by more than **2000%** for complex code over User-Defined Function (UDF) and Table-Valued Function (TVF). - -| Methods | 1,000 rows | 10,000 rows | 100,000 rows | 1,000,000 rows | -| :-------------- | -------------: | -------------: | -------------: | -------------: | -| Eval-SQL.NET | 4 ms | 13 ms | 160 ms | 1,650 ms | -| fn_split (TVF) | 100 ms | 625 ms | 5,500 ms | 55,000 ms | - -*Benchmark to split string with delimiters in SQL* - -## Evaluate dynamic arithmetic/math expression in SQL - -Make the impossible now possible. Evaluate C# expression in SQL to overcome limitations. - -- Allow trusted users to create report field and filter -- Consume Web Service -- Replace text in template with String Interpolation - -{% include template-example.html title='Dynamic Expression Example' %} -{% highlight csharp %} --- CREATE test -DECLARE @table TABLE ( X INT, Y INT, Z INT ) -INSERT INTO @table VALUES ( 2, 4, 6 ), ( 3, 5, 7 ), ( 4, 6, 8 ) - --- Result: 14, 22, 32 -DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') -SELECT @sqlnet.ValueInt('x', X) - .ValueInt('y', Y) - .ValueInt('z', Z) - .EvalInt() as Result -FROM @table -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9bc9b/1' %} - -## Split text with delimiter - -Improve performance and capability for splitting text with an easy to use split function and LINQ expression - -- Split text with multiple delimiters -- Split text using a regular expression -- Include row index - - -{% include template-example.html title='Split Text Example' %} -{% highlight csharp %} --- CREATE test -DECLARE @t TABLE (Id INT , Input VARCHAR(MAX)) -INSERT INTO @t VALUES ( 1, '1, 2, 3; 4; 5' ), ( 2, '6;7,8;9,10' ) - --- SPLIT with many delimiters: ',' and ';' -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")') - -SELECT * -FROM @t AS A - CROSS APPLY ( SELECT * - FROM dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', Input)) - ) AS B -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/98a4b/1' %} - -## Use regular expression in SQL Server - -Use Regex flexibility to overcome "LIKE" and "PATHINDEX" limitations. - - - IsMatch - - Match - - Matches - - Replace - - Split - -{% include template-example.html title='Regular Expression Example' %} -{% highlight csharp %} -DECLARE @customer TABLE ( Email VARCHAR(255) ) - -INSERT INTO @customer -VALUES ( 'info@zzzprojects.com' ), - ( 'invalid.com' ), - ( 'sales@zzzprojects.com' ) - -DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, -@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")') - --- SELECT 'invalid.com' -SELECT * FROM @customer WHERE @valid_email.ValueString('email', Email).EvalBit() = 0 -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/79508/1' %} - -## Replace xp_cmdshell with restrictive alternative - -Avoid enabling xp_cmdshell and compromising your SQL Server and use instead a more restrictive solution. - - - Impersonate Context - - Improve maintainability - - Improve readability - - Improve security - -{% include template-example.html title='Example' %} -{% highlight csharp %} --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*") - .Select(x => new { x.FullName, FileContent = File.ReadAllText(x.FullName) }) - .OrderBy(x => x.FullName)')*9* - .Impersonate() - --- SELECT FullName, FileContext FROM DesktopFiles ORDER BY Fullname -EXEC dbo.SQLNET_EvalResultSet @sqlnet -{% endhighlight %} - -## Contribute - -The best way to contribute is by spreading the word about the library: - - - Blog it - - Comment it - - Fork it - - Star it - - Share it - - A **HUGE THANKS** for your help. diff --git a/docs/pages/tutorials/regular-expressions.md b/docs/pages/tutorials/regular-expressions.md deleted file mode 100644 index 47d9ae7..0000000 --- a/docs/pages/tutorials/regular-expressions.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -permalink: regular-expressions ---- - -## Definition - -Use Regex flexibility to overcome "LIKE" and "PATHINDEX" limitations. All Regex methods are also available such as; - - - IsMatch - - Match - - Matches - - Replace - - Split - -### Find rows with invalid email - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @regex VARCHAR(255) = '^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$' -DECLARE @customer TABLE ( Email VARCHAR(255) ) - -INSERT INTO @customer -VALUES ( 'info@zzzprojects.com' ), - ( 'invalid.com' ), - ( 'sales@zzzprojects.com' ) - --- "Regex" is optional, you can directly use IsMatch -DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, pattern') - .ValueString('pattern', @regex).Root() - --- SELECT 'invalid.com' -SELECT * -FROM @customer -WHERE @valid_email.Val('email', Email).EvalBit() = 0 -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/58f2b/1' %} - -### Find and insert in a table, all website from a text - - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @websites TABLE ( Website VARCHAR(250) ) -DECLARE @regex VARCHAR(255) = '(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})' -DECLARE @post VARCHAR(MAX) = 'zzz ... zzz... http://zzzprojects.com ... zzzz -. zzz... https://github.com/zzzprojects/Eval-SQL.NET ... zzzz -. zzz... zzz... https://github.com/zzzprojects/Eval-Expression.NET ... zzzz -. zzz.... zzz.... zzz... https://github.com/zzzprojects/EntityFramework-Plus ... zzzz' - --- "Regex" is optional, you can directly use Matches -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Matches(input, pattern)') - .ValueString('input', @post) - .ValueString('pattern', @regex) - --- INSERT result in table -INSERT INTO @websites - SELECT CAST(Value_1 AS VARCHAR(250)) - FROM dbo.SQLNET_EvalTVF_1(@sqlnet) - --- SELECT result --- 'http://zzzprojects.com' --- 'https://github.com/zzzprojects/Eval-SQL.NET' --- 'https://github.com/zzzprojects/Eval-Expression.NET' --- 'https://github.com/zzzprojects/EntityFramework-Plus' -SELECT * FROM @websites -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1111' %} diff --git a/docs/pages/tutorials/requirements.md b/docs/pages/tutorials/requirements.md deleted file mode 100644 index 70a32ef..0000000 --- a/docs/pages/tutorials/requirements.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -permalink: requirements ---- - -## Minimus Requirements - -- SQL Server 2012+ -- SQL Azure -- SAFE Permission (SQL CLR) - -## SQL Server 2017 -- clr strict security disabled - -## EXTERNAL_ACCESS & UNSAFE permission -- database must be set TRUSTWORTHY ON diff --git a/docs/pages/tutorials/split-text.md b/docs/pages/tutorials/split-text.md deleted file mode 100644 index 1860a69..0000000 --- a/docs/pages/tutorials/split-text.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -permalink: split-text ---- - -## Definition - -Improve performance and capability for splitting text with an easy to use split function and LINQ expression - -- Split text with multiple delimiters -- Split text using a regular expression -- Include row index - -You probably already had to use the fn_split function in the past to split a string with a delimiter. They exists hundreds of variance for this function which are limited to one delimiter. - -Using C# code and String.Split or Regex.Split, you are no longer limited and can even use LINQ methods! - -### Split using single delimiter - -{% include template-example.html %} -{% highlight csharp %} -DECLARE @s VARCHAR(MAX) = '1, 2;3, 4|5' - -DECLARE @sqlnet SQLNET = SQLNET::New('s.Split(",")').ValueString('s', @s) - --- 1 --- 2;3 --- 4|5 -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet) -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1112' %} - -### Split using multiple delimiters - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @s VARCHAR(MAX) = '1, 2;3, 4|5' - -DECLARE @sqlnet SQLNET = SQLNET::New('s.Split(",", ";", "|")').ValueString('s', @s) - --- 1 --- 2 --- 3 --- 4 --- 5 -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet) -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1117' %} - -### Split and Trim - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @s VARCHAR(MAX) = '1, 2;3, 4|5' - -DECLARE @sqlnet SQLNET = SQLNET::New('s.Split(",", ";", "|") - .Select(x => x.Trim())') - .ValueString('s', @s) - --- 1 --- 2 --- 3 --- 4 --- 5 -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet) -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1118' %} - -### Split and Trim with Regex - - -{% include template-example.html %} -{% highlight csharp %} - -DECLARE @s VARCHAR(MAX) = '1, 2;3, 4|5' - -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(s, ",|;|\|") - .Select(x => x.Trim())') - .ValueString('s', @s) - --- 1 --- 2 --- 3 --- 4 --- 5 -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet) - -{% endhighlight %} -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1119' %} diff --git a/docs/pages/tutorials/tutorial-introduction.md b/docs/pages/tutorials/tutorial-introduction.md deleted file mode 100644 index f2cbf84..0000000 --- a/docs/pages/tutorials/tutorial-introduction.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -permalink: tutorial-introduction ---- - -## Introduction -Entity Framework Extensions allow you to improve dramatically your save operations performance. - -It's easy to use, and easy to customize. - -## Bulk SaveChanges -The BulkSaveChanges works like SaveChanges but way faster. - -BulkSaveChanges use Bulk Operations to save all entities in the Change Tracker efficiently instead of performing a database round-trip for every entity like SaveChanges does. - -BulkSaveChanges support everything: - -- Complex Types -- Inheritance (TPC, TPH, TPT) -- Relationship (One to One, One to Many, Many to Many) - -### Example -{% include template-example.html %} -{% highlight csharp %} -var ctx = new EntitiesContext(); - -ctx.Customers.AddRange(listToAdd); // add -ctx.Customers.RemoveRange(listToRemove); // remove -listToModify.ForEach(x => x.DateModified = DateTime.Now); // modify - -// Easy to use -ctx.BulkSaveChanges(); - -// Easy to customize -context.BulkSaveChanges(bulk => bulk.BatchSize = 100); -{% endhighlight %} -### Performance Comparisons - -| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities | -| :-------------- | -------------: | -------------: | -------------: | -| SaveChanges | 1,000 ms | 2,000 ms | 5,000 ms | -| BulkSaveChanges | 90 ms | 150 ms | 350 ms | - -## Bulk Operations - -Bulk Operations method provide you some flexibility by allowing some customization and performance enhancement. - -All common methods are supported: - -- BulkInsert -- BulkUpdate -- BulkDelete -- BulkMerge (UPSERT operation) -- BulkSynchronize - -### Example - -{% include template-example.html %} -{% highlight csharp %} -var ctx = new EntitiesContext(); - -// Easy to use -ctx.BulkInsert(list); -ctx.BulkUpdate(list); -ctx.BulkDelete(list); -ctx.BulkMerge(list); - -// Easy to customize -context.BulkMerge(customers, - bulk => bulk.ColumnPrimaryKeyExpression = customer => customer.Code; }); -{% endhighlight %} - -### Performance Comparisons - -| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities | -| :-------------- | -------------: | -------------: | -------------: | -| SaveChanges | 1,000 ms | 2,000 ms | 5,000 ms | -| BulkInsert | 6 ms | 10 ms | 15 ms | -| BulkUpdate | 50 ms | 55 ms | 65 ms | -| BulkDelete | 45 ms | 50 ms | 60 ms | -| BulkMerge | 65 ms | 80 ms | 110 ms | - -## FromQuery Operations - -FromQuery method allows you to execute UPDATE or DELETE statements without loading entities in the context. - -### Example - -{% include template-example.html %} -{% highlight csharp %} -// DELETE all customers that are inactive for more than two years -context.Customers - .Where(x => x.LastLogin < DateTime.Now.AddYears(-2)) - .DeleteFromQuery(); - -// UPDATE all customers that are inactive for more than two years -context.Customers - .Where(x => x.Actif && x.LastLogin < DateTime.Now.AddYears(-2)) - .UpdateFromQuery(x => new Customer {Actif = false}); -{% endhighlight %} - -### Performance Comparisons - -| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities | -| :-------------- | -------------: | -------------: | -------------: | -| SaveChanges | 1,000 ms | 2,000 ms | 5,000 ms | -| DeleteFromQuery | 1 ms | 1 ms | 1 ms | -| UpdateFromQuery | 1 ms | 1 ms | 1 ms | diff --git a/docs/pages/tutorials/upgrading.md b/docs/pages/tutorials/upgrading.md deleted file mode 100644 index dd2e96a..0000000 --- a/docs/pages/tutorials/upgrading.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -permalink: upgrading ---- - -All our release are normally backward compatible to make it very easy for you to upgrade. - -## Step 1 - Before Upgrading -Before upgrading: -- Make sure to read [release notes](https://github.com/zzzprojects/Eval-SQL.NET/releases) -- **NEVER** upgrade to production without testing in a development environment first - -## Step 2 - Download - - - - Download - \ No newline at end of file diff --git a/docs/robots.txt b/docs/robots.txt deleted file mode 100644 index e2c9bbf..0000000 --- a/docs/robots.txt +++ /dev/null @@ -1,6 +0,0 @@ -# www.robotstxt.org/ - -# Allow crawling of all content -User-agent: * -Disallow: -Sitemap: http://eval-sql.net/sitemap.xml diff --git a/docs2/pages/_topnav.md b/docs2/pages/_topnav.md deleted file mode 100644 index 2081779..0000000 --- a/docs2/pages/_topnav.md +++ /dev/null @@ -1,5 +0,0 @@ -- [Getting Started](getting-started/overview.md) -- Documentation - - [Documentation](documentations/eval.md) - - [Release Notes](https://github.com/zzzprojects/Eval-SQL.NET/releases) -- [Online Examples](/online-examples) diff --git a/docs2/pages/documentations/_sidebar.md b/docs2/pages/documentations/_sidebar.md deleted file mode 100644 index ca6304b..0000000 --- a/docs2/pages/documentations/_sidebar.md +++ /dev/null @@ -1,4 +0,0 @@ -- [Eval](eval.md) -- [Value](value.md) -- [Options](options.md) -- [Configuration](configuration.md) diff --git a/docs2/pages/documentations/api.md b/docs2/pages/documentations/api.md deleted file mode 100644 index e1ac945..0000000 --- a/docs2/pages/documentations/api.md +++ /dev/null @@ -1,49 +0,0 @@ -# API - -## Overview - -Let's take a very short overview with the API - - -```csharp -SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() as Result -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1123' %} - - - - **SQLNET:** A CLR Type created by Eval SQL.NET library - - **"::":** This is how you call static method in SQL CLR - - **New:** A static method which creates a new instance of SQLNET Type - - **ValueInt:** Sets a int value for a specific parameter name used in the expression - - **EvalInt:** Evaluates the expression and return a result of type INT - -
- -
-
-

Methods

-
- -
- -
- - - [Eval](/eval) - - [Value](/value) - - [Options](/options) - - [Configuration](/configuration) - -
-
-
-
- - diff --git a/docs2/pages/documentations/configuration.md b/docs2/pages/documentations/configuration.md deleted file mode 100644 index a667363..0000000 --- a/docs2/pages/documentations/configuration.md +++ /dev/null @@ -1,71 +0,0 @@ -# Configuration - -## Configuration - -Optional stored procedure for License and Configuration - - - -```csharp - -CREATE PROCEDURE SQLNET_GlobalConfiguration -AS -BEGIN - -- The procedure is automatically called when the server restart/assembly load - -- If the assembly is already loaded, a manual execution is required - -- EXEC SQLNET_Configuration - DECLARE @isValid BIT = SQLNET::AddLicense('[LicenseName]', '[LicenseKey]') - - -- SELECT 1 - SELECT @isValid - - -- SELECT 1 - SELECT SQLNET::New(' -EvalManager.Configuration.RegisterAlias("MyMath", "Math"); -EvalManager.Configuration.ExpireCacheDelay = TimeSpan.FromMinutes(5); -EvalManager.Configuration.SlidingExpirationDelegate = TimeSpan.FromHours(3); -EvalManager.Configuration.SlidingExpirationItem = TimeSpan.FromMinutes(1); -return true; -').Eval() - -END -``` - -## Configuration Register & Unregister - -Register or unregister information used by the EvalContext under which the code or expression is compiled. - - - RegisterAlias(string alias, string name) - - RegisterAssembly(param Assembly[]) - - RegisterDomainAssemblies() - - RegisterExtensionMethod(param Type[]) - - RegisterExtensionMethod(param MethodInfo[]) - - RegisterGlobalConstant(string key, object value) - - RegisterGlobalVariable(string key, object value) - - RegisterStaticMember(param Type[]) - - RegisterStaticMember(param MemberInfo[]) - - RegisterType(param Type[]) - -[EvalContext - Register & Unregister](https://github.com/zzzprojects/Eval-Expression.NET/wiki/EvalContext-Register-&-Unregister) - -## Configuration Options - -Change option used by the EvalContext under which the code or expression is compiled. - - - BindingFlags - - UseCaretForExponent - -[EvalContext - Options](https://github.com/zzzprojects/Eval-Expression.NET/wiki/EvalContext-Options) - -## Configuration.ExpireCacheDelay - -Sets a span of time within the next time the ExpireCache method is invoked to evict inactive cache item. - -## Configuration.SlidingExpirationDelegate - -Sets a span of time within which a delegate must be accessed before it is evicted from the cache. - -## Configuration.SlidingExpirationItem - -Sets a span of time within which an item must be accessed before it is evicted from the cache. - diff --git a/docs2/pages/documentations/convert/convert-toboolean.md b/docs2/pages/documentations/convert/convert-toboolean.md deleted file mode 100644 index 28e2a73..0000000 --- a/docs2/pages/documentations/convert/convert-toboolean.md +++ /dev/null @@ -1,25 +0,0 @@ -# Convert_ToBoolean - -`Convert_ToBoolean` converts the specified string representation of a logical value to its Boolean equivalent. -```csharp -Convert_ToBoolean ( - @value NVARCHAR (MAX) - ) -RETURNS BIT -``` - -## Parameters - - - **value**: A string that contains the value of either `TrueString` or `FalseString`. - -## Returns - -`true` if `value` equals `TrueString`, or false if `value` equals `FalseString`. - -## Example - -```csharp -SELECT SQLNET::Convert_ToBoolean('false') -SELECT SQLNET::Convert_ToBoolean('true') -``` - diff --git a/docs2/pages/documentations/convert/convert-tobyte.md b/docs2/pages/documentations/convert/convert-tobyte.md deleted file mode 100644 index 4cbe3d0..0000000 --- a/docs2/pages/documentations/convert/convert-tobyte.md +++ /dev/null @@ -1,25 +0,0 @@ -# Convert_ToByte - -`Convert_ToByte` converts the specified string representation of a number to an equivalent 8-bit unsigned integer. -```csharp -Convert_ToByte ( - @value NVARCHAR (MAX) - ) -RETURNS TINYINT -``` - -## Parameters - - - **value**: A string that contains the number to convert. - -## Returns - -An 8-bit unsigned integer that is equivalent to the `value`. - -## Example - -```csharp -SELECT SQLNET::Convert_ToByte('3') -SELECT SQLNET::Convert_ToByte('136') -``` - diff --git a/docs2/pages/documentations/convert/convert-todatetime.md b/docs2/pages/documentations/convert/convert-todatetime.md deleted file mode 100644 index bd42930..0000000 --- a/docs2/pages/documentations/convert/convert-todatetime.md +++ /dev/null @@ -1,24 +0,0 @@ -# Convert_ToDateTime - -`Convert_ToDateTime` converts the specified string representation of a date and time to an equivalent date and time value. - -```csharp -Convert_ToDateTime ( - @value NVARCHAR (MAX) - ) -RETURNS DATETIME -``` - -## Parameters - - - **value**: The string representation of a date and time. - -## Returns - -The date and time that is equivalent to the `value`. - -## Example - -```csharp -SELECT SQLNET::Convert_ToDateTime('2015-12-27') -``` diff --git a/docs2/pages/documentations/convert/convert-todecimal.md b/docs2/pages/documentations/convert/convert-todecimal.md deleted file mode 100644 index 9a4494c..0000000 --- a/docs2/pages/documentations/convert/convert-todecimal.md +++ /dev/null @@ -1,24 +0,0 @@ -# Convert_ToDecimal - -`Convert_ToDecimal` converts the specified string representation of a number to an equivalent decimal number. - -```csharp -Convert_ToDecimal ( - @value NVARCHAR (MAX) - ) -RETURNS NUMERIC (18) -``` - -## Parameters - - - **value**: A string that contains a number to convert. - -## Returns - -A decimal number that is equivalent to the number in `value`. - -## Example - -```csharp -SELECT SQLNET::Convert_ToDecimal('2015-12-27') -``` diff --git a/docs2/pages/documentations/convert/convert-todouble.md b/docs2/pages/documentations/convert/convert-todouble.md deleted file mode 100644 index 7d69b92..0000000 --- a/docs2/pages/documentations/convert/convert-todouble.md +++ /dev/null @@ -1,25 +0,0 @@ -# Convert_ToDouble - -`Convert_ToDouble` converts the specified string representation of a number to an equivalent double-precision floating-point number. - -```csharp -Convert_ToDouble ( - @value NVARCHAR (MAX) - ) -RETURNS FLOAT (53) -``` - -## Parameters - - - **value**: A string that contains the number to convert. - -## Returns - -A double-precision floating-point number that is equivalent to the number in `value`. - -## Example - -```csharp -SELECT SQLNET::Convert_ToDouble('-1,035.77219') -SELECT SQLNET::Convert_ToDouble('1e-35') -``` diff --git a/docs2/pages/documentations/convert/convert-toint16.md b/docs2/pages/documentations/convert/convert-toint16.md deleted file mode 100644 index ea7e85b..0000000 --- a/docs2/pages/documentations/convert/convert-toint16.md +++ /dev/null @@ -1,24 +0,0 @@ -# Convert_ToInt16 - -`Convert_ToInt16` converts the string representation of a number in a specified base to an equivalent 16-bit signed integer. - -```csharp -Convert_ToInt16 ( - @value NVARCHAR (MAX) - ) -RETURNS SMALLINT -``` - -## Parameters - - - **value**: A string that contains the number to convert. - -## Returns - -A 16-bit signed integer that is equivalent to the number in `value`. - -## Example - -```csharp -SELECT SQLNET::Convert_ToInt16('251') -``` diff --git a/docs2/pages/documentations/convert/convert-toint32.md b/docs2/pages/documentations/convert/convert-toint32.md deleted file mode 100644 index e02fdfb..0000000 --- a/docs2/pages/documentations/convert/convert-toint32.md +++ /dev/null @@ -1,24 +0,0 @@ -# Convert_ToInt32 - -`Convert_ToInt32` converts the specified string representation of a number to an equivalent 32-bit signed integer. - -```csharp -Convert_ToInt32 ( - @value NVARCHAR (MAX) - ) -RETURNS SMALLINT -``` - -## Parameters - - - **value**: A string that contains the number to convert. - -## Returns - -A 32-bit signed integer that is equivalent to the number in `value`. - -## Example - -```csharp -SELECT SQLNET::Convert_ToInt32('4285') -``` diff --git a/docs2/pages/documentations/convert/convert-toint64.md b/docs2/pages/documentations/convert/convert-toint64.md deleted file mode 100644 index 8fc7b61..0000000 --- a/docs2/pages/documentations/convert/convert-toint64.md +++ /dev/null @@ -1,24 +0,0 @@ -# Convert_ToInt64 - -`Convert_ToInt64` converts the specified string representation of a number to an equivalent 64-bit signed integer. - -```csharp -Convert_ToInt64 ( - @value NVARCHAR (MAX) - ) -RETURNS SMALLINT -``` - -## Parameters - - - **value**: A string that contains the number to convert. - -## Returns - -A 64-bit signed integer that is equivalent to the number in `value`. - -## Example - -```csharp -SELECT SQLNET::Convert_ToInt64('854') -``` diff --git a/docs2/pages/documentations/convert/convert.md b/docs2/pages/documentations/convert/convert.md deleted file mode 100644 index 37c1bea..0000000 --- a/docs2/pages/documentations/convert/convert.md +++ /dev/null @@ -1,14 +0,0 @@ -# Convert - -Converts a string to another base data type. - -| Name | Description | Example | -| :--- | :---------- | :------ | -| [Convert_ToBoolean(value)](/convert-toboolean) | Converts the specified string representation of a logical value to its Boolean equivalent. | [Try it]()| -| [Convert_ToByte(value)](/convert-tobyte) | Converts the specified string representation of a number to an equivalent 8-bit unsigned integer. | [Try it]()| -| [Convert_ToDateTime(value)](/convert-todatetime) | Converts the specified string representation of a date and time to an equivalent date and time value. | [Try it]()| -| [Convert_ToDecimal(value)](/convert-todecimal) | Converts the specified string representation of a date and time to an equivalent decimal value. | [Try it]()| -| [Convert_ToDouble(value)](/convert-todouble) | Converts the specified string representation of a number to an equivalent double-precision floating-point number. | [Try it]()| -| [Convert_ToInt16(value)](/convert-toint16) | Converts the string representation of a number in a specified base to an equivalent 16-bit signed integer. | [Try it]()| -| [Convert_ToInt32(value)](/convert-toint32) | Converts the specified string representation of a number to an equivalent 32-bit signed integer. | [Try it]()| -| [Convert_ToInt64(value)](/convert-toint64) | Converts the specified string representation of a number to an equivalent 64-bit signed integer. | [Try it]()| diff --git a/docs2/pages/documentations/datetime/datetime-add-days.md b/docs2/pages/documentations/datetime/datetime-add-days.md deleted file mode 100644 index 1cf289b..0000000 --- a/docs2/pages/documentations/datetime/datetime-add-days.md +++ /dev/null @@ -1,28 +0,0 @@ -# DateTime_AddDays - -`DateTime_AddDays` returns a new DateTime that adds the specified number of days to the value of `currDate`. - -```csharp -DateTime_AddDays ( - @currDate DATETIME, - @value FLOAT (53)) - ) -RETURNS DATETIME -``` - -## Parameters - - - **currDate**: The current datetime object. - - **value**: A number of whole and fractional days. The `value` parameter can be negative or positive. - -## Returns - -A new `DateTime` object whose value is the sum of the date and time represented by `currDate` and the number of days represented by `value`. - -## Example - -```csharp -SELECT SQLNET::DateTime_AddDays('2017-05-25', 4) -SELECT SQLNET::DateTime_AddDays('2018-12-01', 2.2) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-add-months.md b/docs2/pages/documentations/datetime/datetime-add-months.md deleted file mode 100644 index 0112090..0000000 --- a/docs2/pages/documentations/datetime/datetime-add-months.md +++ /dev/null @@ -1,28 +0,0 @@ -# DateTime_AddMonths - -`DateTime_AddMonths` returns a new DateTime that adds the specified number of months to the value of `currDate`. - -```csharp -DateTime_AddMonths ( - @currDate DATETIME, - @value INT) - ) -RETURNS DATETIME -``` - -## Parameters - - - **currDate**: The current datetime object. - - **value**: A number of months. The `value` parameter can be negative or positive. - -## Returns - -A new `DateTime` object whose value is the sum of the date and time represented by `currDate` and the number of months represented by `value`. - -## Example - -```csharp -SELECT SQLNET::DateTime_AddMonths('2017-05-25', 4) -SELECT SQLNET::DateTime_AddMonths('2018-12-01', -3) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-add-years.md b/docs2/pages/documentations/datetime/datetime-add-years.md deleted file mode 100644 index 4472cff..0000000 --- a/docs2/pages/documentations/datetime/datetime-add-years.md +++ /dev/null @@ -1,28 +0,0 @@ -# DateTime_AddYears - -`DateTime_AddYears` returns a new DateTime that adds the specified number of years to the value of `currDate`. - -```csharp -DateTime_AddYears ( - @currDate DATETIME, - @value INT) - ) -RETURNS DATETIME -``` - -## Parameters - - - **currDate**: The current datetime object. - - **value**: A number of years. The `value` parameter can be negative or positive. - -## Returns - -A new `DateTime` object whose value is the sum of the date and time represented by `currDate` and the number of years represented by `value`. - -## Example - -```csharp -SELECT SQLNET::DateTime_AddYears('2017-05-25', 4) -SELECT SQLNET::DateTime_AddYears('2018-12-01', -3) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-age.md b/docs2/pages/documentations/datetime/datetime-age.md deleted file mode 100644 index 862ee65..0000000 --- a/docs2/pages/documentations/datetime/datetime-age.md +++ /dev/null @@ -1,27 +0,0 @@ -# DateTime_Age - -`DateTime_Age` returns an age in number of years between `startDate` and `endDate`. - -```csharp -DateTime_Age ( - @startDate DATETIME, - @endDate DATETIME - ) -RETURNS FLOAT (53) -``` - -## Parameters - - - **startDate**: The start datetime object. - - **endDate**: The end datetime object. - -## Returns - -An age in number of years between `startDate` and `endDate`. - -## Example - -```csharp -SELECT SQLNET::DateTime_Age('2002-05-25', '2018-12-01') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-dayofweek.md b/docs2/pages/documentations/datetime/datetime-dayofweek.md deleted file mode 100644 index 7668e21..0000000 --- a/docs2/pages/documentations/datetime/datetime-dayofweek.md +++ /dev/null @@ -1,25 +0,0 @@ -# DateTime_DayOfWeek - -`DateTime_DayOfWeek` returns the day of the week represented by `currDate`. - -```csharp -DateTime_DayOfWeek ( - @currDate DATETIME, - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -The day of the week represented by `currDate`. - -## Example - -```csharp -SELECT SQLNET::DateTime_DayOfWeek('2018-12-01') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-dayofyear.md b/docs2/pages/documentations/datetime/datetime-dayofyear.md deleted file mode 100644 index 38e170f..0000000 --- a/docs2/pages/documentations/datetime/datetime-dayofyear.md +++ /dev/null @@ -1,26 +0,0 @@ -# DateTime_DayOfYear - -`DateTime_DayOfYear` returns day of the year, expressed as a value between 1 and 366 represented by `currDate`. - -```csharp -DateTime_DayOfYear ( - @currDate DATETIME, - ) -RETURNS INT -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -The day of the year, expressed as a value between 1 and 366. - -## Example - -```csharp -SELECT SQLNET::DateTime_DayOfYear('2018-12-01') -SELECT SQLNET::DateTime_DayOfYear('2016-12-31') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-days-in-month.md b/docs2/pages/documentations/datetime/datetime-days-in-month.md deleted file mode 100644 index dbef3b3..0000000 --- a/docs2/pages/documentations/datetime/datetime-days-in-month.md +++ /dev/null @@ -1,28 +0,0 @@ -# DateTime_DaysInMonth - -`DateTime_DaysInMonth` returns day of the year, expressed as a value between 1 and 366 represented by `currDate`. - -```csharp -DateTime_DaysInMonth ( - @year INT, - @month INT - ) -RETURNS INT -``` - -## Parameters - - - **year**: The year. - - **month**: The month (a number ranging from 1 to 12). - -## Returns - -The number of days in `month` for the specified `year`. - -## Example - -```csharp -SELECT SQLNET::DateTime_DaysInMonth('2018', 12) -SELECT SQLNET::DateTime_DaysInMonth('2016', 2) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-from-binary.md b/docs2/pages/documentations/datetime/datetime-from-binary.md deleted file mode 100644 index 04162af..0000000 --- a/docs2/pages/documentations/datetime/datetime-from-binary.md +++ /dev/null @@ -1,27 +0,0 @@ -# DateTime_FromBinary - -`DateTime_FromBinary` deserializes a 64-bit binary value and recreates an original serialized DateTime object. - -```csharp -DateTime_FromBinary ( - @dateData BIGINT - ) -RETURNS DATETIME -``` - -## Parameters - - - **dateData**: A 64-bit signed integer that encodes the `DateTime.Kind` property in a 2-bit field and the `DateTime.Ticks` property in a 62-bit field. - -## Returns - -An object that is equivalent to the DateTime object that was serialized by the [DateTime_ToBinary()](/datetime-tobinary) method. - -## Example - -```csharp -DECLARE @var BIGINT -SELECT @var = SQLNET::DateTime_ToBinary('2015-5-25') -SELECT SQLNET::DateTime_FromBinary(@var) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-from-file-time-utc.md b/docs2/pages/documentations/datetime/datetime-from-file-time-utc.md deleted file mode 100644 index 610a813..0000000 --- a/docs2/pages/documentations/datetime/datetime-from-file-time-utc.md +++ /dev/null @@ -1,27 +0,0 @@ -# DateTime_FromFileTimeUtc - -`DateTime_FromFileTimeUtc` converts the specified Windows file time to an equivalent UTC time. - -```csharp -DateTime_FromFileTimeUtc ( - @fileTime BIGINT - ) -RETURNS DATETIME -``` - -## Parameters - - - **fileTime**: A Windows file time expressed in ticks. - -## Returns - -An object that represents the UTC time equivalent of the date and time represented by the `fileTime` parameter. - -## Example - -```csharp -DECLARE @var BIGINT -SELECT @var = SQLNET::DateTime_ToFileTimeUtc('2017-7-23') -SELECT SQLNET::DateTime_FromFileTimeUtc(@var) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-from-file-time.md b/docs2/pages/documentations/datetime/datetime-from-file-time.md deleted file mode 100644 index 45f635e..0000000 --- a/docs2/pages/documentations/datetime/datetime-from-file-time.md +++ /dev/null @@ -1,27 +0,0 @@ -# DateTime_FromFileTime - -`DateTime_FromFileTime` converts the specified Windows file time to an equivalent local time. - -```csharp -DateTime_FromFileTime ( - @fileTime BIGINT - ) -RETURNS DATETIME -``` - -## Parameters - - - **fileTime**: A Windows file time expressed in ticks. - -## Returns - -An object that represents the local time equivalent of the date and time represented by the `fileTime` parameter. - -## Example - -```csharp -DECLARE @var BIGINT -SELECT @var = SQLNET::DateTime_ToFileTime('2015-5-25') -SELECT SQLNET::DateTime_FromFileTime(@var) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-from-oadate.md b/docs2/pages/documentations/datetime/datetime-from-oadate.md deleted file mode 100644 index 010a945..0000000 --- a/docs2/pages/documentations/datetime/datetime-from-oadate.md +++ /dev/null @@ -1,24 +0,0 @@ -# DateTime_FromOADate - -`DateTime_FromOADate` returns a DateTime equivalent to the specified OLE Automation Date. -```csharp -DateTime_FromOADate ( - @oaDate FLOAT (53) - ) -RETURNS DATETIME -``` - -## Parameters - - - **oaDate**: An OLE Automation Date value. - -## Returns - -An object that represents the same date and time as `oaDate`. - -## Example - -```csharp -SELECT SQLNET::DateTime_FromOADate(39456) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-isdaylight-saving-time.md b/docs2/pages/documentations/datetime/datetime-isdaylight-saving-time.md deleted file mode 100644 index 6f93f66..0000000 --- a/docs2/pages/documentations/datetime/datetime-isdaylight-saving-time.md +++ /dev/null @@ -1,25 +0,0 @@ -# DateTime_IsDaylightSavingTime - -`DateTime_IsDaylightSavingTime` indicates whether `currDate` instance of DateTime is within the daylight saving time range for the current time zone. - -```csharp -DateTime_IsDaylightSavingTime ( - @currDate DATETIME, - ) -RETURNS BIT -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -`true` if the value of the 'currDate' instance of DateTime is within the daylight saving time range for the local time zone; `false` if Kind is Utc. - -## Example - -```csharp -SELECT SQLNET::DateTime_IsDaylightSavingTime('2018-12-01') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-isleap-year.md b/docs2/pages/documentations/datetime/datetime-isleap-year.md deleted file mode 100644 index 5273722..0000000 --- a/docs2/pages/documentations/datetime/datetime-isleap-year.md +++ /dev/null @@ -1,26 +0,0 @@ -# DateTime_IsLeapYear - -`DateTime_IsLeapYear` returns an indication whether the specified year is a leap year. - -```csharp -DateTime_IsLeapYear ( - @year INT) - ) -RETURNS BIT -``` - -## Parameters - - - **year**: A 4-digit year. - -## Returns - -`true` if `year` is a leap year; otherwise, `false`. - -## Example - -```csharp -SELECT SQLNET::DateTime_IsLeapYear('2017') -SELECT SQLNET::DateTime_IsLeapYear('2012') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-now.md b/docs2/pages/documentations/datetime/datetime-now.md deleted file mode 100644 index e60ea1a..0000000 --- a/docs2/pages/documentations/datetime/datetime-now.md +++ /dev/null @@ -1,19 +0,0 @@ -# DateTime_Now - -`DateTime_Now` returns a DateTime object that is set to the current date and time on this computer, expressed as the local time. - -```csharp -DateTime_Now() -RETURNS DATETIME -``` - -## Returns - -A DateTime object whose value is the current local date and time. - -## Example - -```csharp -SELECT SQLNET::DateTime_Now() -``` - diff --git a/docs2/pages/documentations/datetime/datetime-ticks.md b/docs2/pages/documentations/datetime/datetime-ticks.md deleted file mode 100644 index 4bcea31..0000000 --- a/docs2/pages/documentations/datetime/datetime-ticks.md +++ /dev/null @@ -1,25 +0,0 @@ -# DateTime_Ticks - -`DateTime_Ticks` returns the number of ticks that represent the date and time of the `currDate` instance. - -```csharp -DateTime_Ticks( - @currDate DATETIME - ) -RETURNS BIGINT -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -The number of ticks that represent the date and time of the `currDate` instance. The value is between `DateTime.MinValue.Ticks` and `DateTime.MaxValue.Ticks`. - -## Example - -```csharp -SELECT SQLNET::DateTime_Ticks(2018-12-01) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-to-oadate.md b/docs2/pages/documentations/datetime/datetime-to-oadate.md deleted file mode 100644 index 540d323..0000000 --- a/docs2/pages/documentations/datetime/datetime-to-oadate.md +++ /dev/null @@ -1,25 +0,0 @@ -# DateTime_ToOADate - -`DateTime_ToOADate` converts the value of this instance to the equivalent OLE Automation date. - -```csharp -DateTime_ToOADate ( - @currDate DATETIME - ) -RETURNS FLOAT (53) -``` - -## Parameters - - - **oaDate**: An OLE Automation Date value. - -## Returns - -A double-precision floating-point number that contains an OLE Automation date equivalent to the value of this instance. - -## Example - -```csharp -SELECT SQLNET::DateTime_ToOADate(39456) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-to-universal-time.md b/docs2/pages/documentations/datetime/datetime-to-universal-time.md deleted file mode 100644 index 3437dda..0000000 --- a/docs2/pages/documentations/datetime/datetime-to-universal-time.md +++ /dev/null @@ -1,25 +0,0 @@ -# DateTime_ToUniversalTime - -`DateTime_ToUniversalTime` converts the value of the `currDate` DateTime object to Coordinated Universal Time (UTC) time. - -```csharp -DateTime_ToUniversalTime ( - @currDate DATETIME - ) -RETURNS BIGINT -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -A DateTime object in Coordinated Universal Time (UTC) time equivalent to the value of the current DateTime object, or `MaxValue` if the converted value is too large to be represented by a DateTime object, or `MinValue` if the converted value is too small to be represented as a DateTime object. - -## Example - -```csharp -SELECT SQLNET::DateTime_ToUniversalTime('2015-5-25') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-tobinary.md b/docs2/pages/documentations/datetime/datetime-tobinary.md deleted file mode 100644 index ba46f58..0000000 --- a/docs2/pages/documentations/datetime/datetime-tobinary.md +++ /dev/null @@ -1,27 +0,0 @@ -# DateTime_ToBinary - -`DateTime_ToBinary` serializes the `currDate` object to a 64-bit binary value that subsequently can be used to recreate the DateTime object. - -```csharp -DateTime_ToBinary ( - @currDate DATETIME - ) -RETURNS BIGINT -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -A 64-bit signed integer that encodes the `DateTime.Kind` and `DateTime.Ticks` properties. - -## Example - -```csharp -DECLARE @var BIGINT -SELECT @var = SQLNET::DateTime_ToBinary('2015-5-25') -SELECT SQLNET::DateTime_FromBinary(@var) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-today.md b/docs2/pages/documentations/datetime/datetime-today.md deleted file mode 100644 index 9f2ccd9..0000000 --- a/docs2/pages/documentations/datetime/datetime-today.md +++ /dev/null @@ -1,19 +0,0 @@ -# DateTime_Today - -`DateTime_Today` returns a DateTime object that is set to today's date, with the time component set to 00:00:00. - -```csharp -DateTime_Today() -RETURNS DATETIME -``` - -## Returns - -A DateTime object that is set to today's date, with the time component set to 00:00:00. - -## Example - -```csharp -SELECT SQLNET::DateTime_Today() -``` - diff --git a/docs2/pages/documentations/datetime/datetime-tofile-time-utc.md b/docs2/pages/documentations/datetime/datetime-tofile-time-utc.md deleted file mode 100644 index da24f47..0000000 --- a/docs2/pages/documentations/datetime/datetime-tofile-time-utc.md +++ /dev/null @@ -1,27 +0,0 @@ -# DateTime_ToFileTimeUtc - -`DateTime_ToFileTimeUtc` converts the value of the `currDate` DateTime object to a Windows file time. - -```csharp -DateTime_ToFileTimeUtc ( - @currDate DATETIME - ) -RETURNS BIGINT -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -The value of the `currDate` DateTime object expressed as a Windows file time. - -## Example - -```csharp -DECLARE @var BIGINT -SELECT @var = SQLNET::DateTime_ToFileTimeUtc('2015-5-25') -SELECT SQLNET::DateTime_FromFileTimeUtc(@var) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-tofile-time.md b/docs2/pages/documentations/datetime/datetime-tofile-time.md deleted file mode 100644 index 2aba15d..0000000 --- a/docs2/pages/documentations/datetime/datetime-tofile-time.md +++ /dev/null @@ -1,27 +0,0 @@ -# DateTime_ToFileTime - -`DateTime_ToFileTime` converts the value of the `currDate` DateTime object to a Windows file time. - -```csharp -DateTime_ToFileTime ( - @currDate DATETIME - ) -RETURNS BIGINT -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -The value of the `currDate` DateTime object expressed as a Windows file time. - -## Example - -```csharp -DECLARE @var BIGINT -SELECT @var = SQLNET::DateTime_ToFileTime('2015-5-25') -SELECT SQLNET::DateTime_FromFileTime(@var) -``` - diff --git a/docs2/pages/documentations/datetime/datetime-tolocal-time.md b/docs2/pages/documentations/datetime/datetime-tolocal-time.md deleted file mode 100644 index c671636..0000000 --- a/docs2/pages/documentations/datetime/datetime-tolocal-time.md +++ /dev/null @@ -1,25 +0,0 @@ -# DateTime_ToLocalTime - -`DateTime_ToLocalTime` converts the value of the `currDate` DateTime object to local time. - -```csharp -DateTime_ToLocalTime ( - @currDate DATETIME - ) -RETURNS BIGINT -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -A DateTime object in local time equivalent to the value of the current DateTime object, or `MaxValue` if the converted value is too large to be represented by a DateTime object, or `MinValue` if the converted value is too small to be represented as a DateTime object. - -## Example - -```csharp -SELECT SQLNET::DateTime_ToLocalTime('2015-5-25') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-tolong-date-string.md b/docs2/pages/documentations/datetime/datetime-tolong-date-string.md deleted file mode 100644 index 8a2e806..0000000 --- a/docs2/pages/documentations/datetime/datetime-tolong-date-string.md +++ /dev/null @@ -1,25 +0,0 @@ -# DateTime_ToLongDateString - -`DateTime_ToLongDateString` converts the value of the current DateTime object to its equivalent long date string representation. - -```csharp -DateTime_ToLongDateString ( - @currDate DATETIME - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -A string that contains the long date string representation of the current DateTime object. - -## Example - -```csharp -SELECT SQLNET::DateTime_ToLongDateString('2015-5-25 3:02:15 AM') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-tolong-time-string.md b/docs2/pages/documentations/datetime/datetime-tolong-time-string.md deleted file mode 100644 index c302b56..0000000 --- a/docs2/pages/documentations/datetime/datetime-tolong-time-string.md +++ /dev/null @@ -1,26 +0,0 @@ -# DateTime_ToLongTimeString - -`DateTime_ToLongTimeString` converts the value of the current DateTime object to its equivalent long time string representation. - -```csharp -DateTime_ToLongTimeString ( - @currDate DATETIME - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -A string that contains the long time string representation of the current DateTime object. - -## Example - -```csharp -SELECT SQLNET::DateTime_ToLongTimeString('2015-5-25 3:02:15 AM') -``` - -- \ No newline at end of file diff --git a/docs2/pages/documentations/datetime/datetime-toshort-date-string.md b/docs2/pages/documentations/datetime/datetime-toshort-date-string.md deleted file mode 100644 index 88f3db9..0000000 --- a/docs2/pages/documentations/datetime/datetime-toshort-date-string.md +++ /dev/null @@ -1,25 +0,0 @@ -# DateTime_ToShortDateString - -`DateTime_ToShortDateString` converts the value of the current DateTime object to its equivalent short date string representation. - -```csharp -DateTime_ToShortDateString ( - @currDate DATETIME - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -A string that contains the short date string representation of the current DateTime object. - -## Example - -```csharp -SELECT SQLNET::DateTime_ToShortDateString('2015-5-25 3:02:15 AM') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-toshort-time-string.md b/docs2/pages/documentations/datetime/datetime-toshort-time-string.md deleted file mode 100644 index 7e2a9f5..0000000 --- a/docs2/pages/documentations/datetime/datetime-toshort-time-string.md +++ /dev/null @@ -1,26 +0,0 @@ -# DateTime_ToShortTimeString - -`DateTime_ToShortTimeString` converts the value of the current DateTime object to its equivalent short time string representation. - -```csharp -DateTime_ToShortTimeString ( - @currDate DATETIME - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -A string that contains the short time string representation of the current DateTime object. - -## Example - -```csharp -SELECT SQLNET::DateTime_ToShortTimeString('2015-5-25 3:02:15 AM') -``` - -- \ No newline at end of file diff --git a/docs2/pages/documentations/datetime/datetime-tostring-with-format.md b/docs2/pages/documentations/datetime/datetime-tostring-with-format.md deleted file mode 100644 index 3b7fb4a..0000000 --- a/docs2/pages/documentations/datetime/datetime-tostring-with-format.md +++ /dev/null @@ -1,27 +0,0 @@ -# DateTime_ToStringWithFormat - -`DateTime_ToStringWithFormat` converts the value of the current DateTime object to its equivalent string representation using the specified format and the formatting conventions of the current culture. - -```csharp -DateTime_ToStringWithFormat ( - @currDate DATETIME, - @format NVARCHAR (MAX)) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **currDate**: The current datetime object. - - **format**: A standard or custom date and time format string. - -## Returns - -A string representation of value of the current DateTime object as specified by `format`. - -## Example - -```csharp -SELECT SQLNET::DateTime_ToStringWithFormat('2015-5-25 3:02:15 AM', 'dd MMM HH:mm:ss') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-tostring.md b/docs2/pages/documentations/datetime/datetime-tostring.md deleted file mode 100644 index ae92199..0000000 --- a/docs2/pages/documentations/datetime/datetime-tostring.md +++ /dev/null @@ -1,25 +0,0 @@ -# DateTime_ToString - -`DateTime_ToString` converts the value of the current DateTime object to its equivalent string representation. - -```csharp -DateTime_ToString ( - @currDate DATETIME - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **currDate**: The current datetime object. - -## Returns - -A string representation of the value of the current DateTime object. - -## Example - -```csharp -SELECT SQLNET::DateTime_ToString('2015-5-25 3:02:15 AM') -``` - diff --git a/docs2/pages/documentations/datetime/datetime-utc-now.md b/docs2/pages/documentations/datetime/datetime-utc-now.md deleted file mode 100644 index b529f4a..0000000 --- a/docs2/pages/documentations/datetime/datetime-utc-now.md +++ /dev/null @@ -1,19 +0,0 @@ -# DateTime_UtcNow - -`DateTime_UtcNow` returns a DateTime object that is set to the current date and time on this computer, expressed as the Coordinated Universal Time (UTC) time. - -```csharp -DateTime_UtcNow() -RETURNS DATETIME -``` - -## Returns - -A DateTime object whose value is the current Coordinated Universal Time (UTC) date and time. - -## Example - -```csharp -SELECT SQLNET::DateTime_UtcNow() -``` - diff --git a/docs2/pages/documentations/datetime/datetime.md b/docs2/pages/documentations/datetime/datetime.md deleted file mode 100644 index 890d307..0000000 --- a/docs2/pages/documentations/datetime/datetime.md +++ /dev/null @@ -1,36 +0,0 @@ -# DateTime - -Represents an instant in time, typically expressed as a date and time of day. - -| Name | Description | Example | -| :--- | :---------- | :------ | -| [DateTime_AddDays(currDate, value)](/datetime-add-days) | Returns a new DateTime that adds the specified number of days to the `currDate`. | [Try it]()| -| [DateTime_AddMonths(currDate, value)](/datetime-add-months) | Returns a new DateTime that adds the specified number of months to the `currDate`. | [Try it]()| -| [DateTime_AddYears(currDate, value)](/datetime-add-years) | Returns a new DateTime that adds the specified number of years to the `currDate`. | [Try it]()| -| [DateTime_Age(startDate, endDate)](/datetime-age) | Returns an age in number of years between `startDate` and `endDate`. | [Try it]()| -| [DateTime_DayOfWeek(currDate)](/datetime-dayofweek) | Returns the day of the week represented by `currDate`. | [Try it]()| -| [DateTime_DayOfYear(currDate)](/datetime-dayofyear) | Returns the day of the year represented by `currDate`. | [Try it]()| -| [DateTime_DaysInMonth(year, month)](/datetime-days-in-month) | Returns the number of days in the specified month and year. | [Try it]()| -| [DateTime_FromBinary(dateData)](/datetime-from-binary) | Deserializes a 64-bit binary value and recreates an original serialized DateTime object. | [Try it]()| -| [DateTime_FromFileTime(fileTime)](/datetime-from-file-time) | Converts the specified Windows file time to an equivalent local time. | [Try it]()| -| [DateTime_FromFileTimeUtc(fileTime)](/datetime-from-file-time-utc) | Converts the specified Windows file time to an equivalent UTC time. | [Try it]()| -| [DateTime_FromOADate(fileTime)](/datetime-from-oadate) | Converts the specified Windows file time to an equivalent UTC time. | [Try it]()| -| [DateTime_IsDaylightSavingTime(currDate)](/datetime-isdaylight-saving-time) | Indicates whether `currDate` instance of DateTime is within the daylight saving time range for the current time zone. | [Try it]()| -| [DateTime_IsLeapYear(year)](/datetime-isleap-year) | Returns an indication whether the specified year is a leap year. | [Try it]()| -| [DateTime_Now()](/datetime-now) | Returns a DateTime object that is set to the current date and time on this computer, expressed as the local time. | [Try it]()| -| [DateTime_Ticks(currDate)](/datetime-ticks) | Returns the number of ticks that represent the date and time of the `currDate` instance. | [Try it]()| -| [DateTime_ToBinary(currDate)](/datetime-totobinary) | Serializes the current DateTime object to a 64-bit binary value that subsequently can be used to recreate the DateTime object. | [Try it]()| -| [DateTime_Today()](/datetime-today) | Returns a DateTime object that is set to the today's date and the time component set to 00:00:00. | [Try it]()| -| [DateTime_ToFileTime(currDate)](/datetime-tofile-time) | Converts the value of the current DateTime object to a Windows file time. | [Try it]()| -| [DateTime_ToFileTimeUtc(currDate)](/datetime-tofile-time-utc) | Converts the value of the current DateTime object to a Windows file time. | [Try it]()| -| [DateTime_ToLocalTime(currDate)](/datetime-tolocal-time) | Converts the value of the current DateTime object to local time. | [Try it]()| -| [DateTime_ToLongDateString(currDate)](/datetime-tolong-date-string) | Converts the value of the current DateTime object to its equivalent long date string representation. | [Try it]()| -| [DateTime_ToLongTimeString(currDate)](/datetime-tolong-time-string) | Converts the value of the current DateTime object to its equivalent long time string representation. | [Try it]()| -| [DateTime_ToOADate(currDate)](/datetime-to-oadate) | Converts the value of this instance to the equivalent OLE Automation date. | [Try it]()| -| [DateTime_ToShortDateString(currDate)](/datetime-toshort-date-string) | Converts the value of the current DateTime object to its equivalent short date string representation. | [Try it]()| -| [DateTime_ToShortTimeString(currDate)](/datetime-toshort-time-string) | Converts the value of the current DateTime object to its equivalent short time string representation. | [Try it]()| -| [DateTime_ToString(currDate)](/datetime-tostring) | Converts the value of the current DateTime object to its equivalent string representation. | [Try it]()| -| [DateTime_ToStringWithFormat(currDate, format)](/datetime-tostring-with-format) | Converts the value of the current DateTime object to its equivalent string representation using the specified format and the formatting conventions of the current culture. | [Try it]()| -| [DateTime_ToUniversalTime(currDate)](/datetime-to-universal-time) | Converts the value of the current DateTime object to Coordinated Universal Time (UTC) time. | [Try it]()| -| [DateTime_UtcNow()](/datetime-utc-now) | Returns a DateTime object that is set to the current date and time on this computer, expressed as the Coordinated Universal Time (UTC) time. | [Try it]()| - diff --git a/docs2/pages/documentations/directory/directory-create-sub-directory.md b/docs2/pages/documentations/directory/directory-create-sub-directory.md deleted file mode 100644 index b21a936..0000000 --- a/docs2/pages/documentations/directory/directory-create-sub-directory.md +++ /dev/null @@ -1,21 +0,0 @@ -# Directory_CreateSubDirectory - -`Directory_CreateSubDirectory` creates a subdirectory or subdirectories on the specified path. - -```csharp -Directory_CreateSubDirectory - @path NVARCHAR (MAX), - @subDirectory NVARCHAR (MAX) -``` - -## Parameters - - - **path**: The directory path. - - **subDirectory**: The name of sub directory to create. - -## Example - -```csharp -EXEC Directory_CreateSubDirectory @path = 'C:\Temp', @subDirectory = 'SubDir' -``` - diff --git a/docs2/pages/documentations/directory/directory-create.md b/docs2/pages/documentations/directory/directory-create.md deleted file mode 100644 index c555aa3..0000000 --- a/docs2/pages/documentations/directory/directory-create.md +++ /dev/null @@ -1,18 +0,0 @@ -# Directory_Create - -`Directory_Create` creates all directories and subdirectories in the specified path unless they already exist. - -```csharp -Directory_Create @path NVARCHAR (MAX) -``` - -## Parameters - - - **path**: The directory to create. - -## Example - -```csharp -EXEC Directory_Create @path = 'C:\Temp' -``` - diff --git a/docs2/pages/documentations/directory/directory-delete-all.md b/docs2/pages/documentations/directory/directory-delete-all.md deleted file mode 100644 index 0f6935f..0000000 --- a/docs2/pages/documentations/directory/directory-delete-all.md +++ /dev/null @@ -1,18 +0,0 @@ -# Directory_DeleteAll - -`Directory_DeleteAll` deletes a directory from a specified path including subdirectories, and files. - -```csharp -Directory_DeleteAll @path NVARCHAR (MAX) -``` - -## Parameters - - - **path**: The directory to delete. - -## Example - -```csharp -EXEC Directory_DeleteAll @path = 'C:\Temp1' -``` - diff --git a/docs2/pages/documentations/directory/directory-delete.md b/docs2/pages/documentations/directory/directory-delete.md deleted file mode 100644 index b136898..0000000 --- a/docs2/pages/documentations/directory/directory-delete.md +++ /dev/null @@ -1,18 +0,0 @@ -# Directory_Delete - -`Directory_Delete` deletes an empty directory from a specified path. - -```csharp -Directory_Delete @path NVARCHAR (MAX) -``` - -## Parameters - - - **path**: The directory to delete. - -## Example - -```csharp -EXEC Directory_Delete @path = 'C:\Temp1' -``` - diff --git a/docs2/pages/documentations/directory/directory-exists.md b/docs2/pages/documentations/directory/directory-exists.md deleted file mode 100644 index 6f56cbd..0000000 --- a/docs2/pages/documentations/directory/directory-exists.md +++ /dev/null @@ -1,25 +0,0 @@ -# Directory_Exists - -`Directory_Exists` determines whether the given path refers to an existing directory on disk. - -```csharp -Directory_Exists ( - @path NVARCHAR (MAX) - ) -RETURNS BIT -``` - -## Parameters - - - **path**: The path to test. - -## Returns - -`true` if path refers to an existing directory; `false` if the directory does not exist or an error occurs when trying to determine if the specified directory exists. - -## Example - -```csharp -SELECT SQLNET::Directory_Exists('C:\Temp') -``` - diff --git a/docs2/pages/documentations/directory/directory-get-all-directories.md b/docs2/pages/documentations/directory/directory-get-all-directories.md deleted file mode 100644 index 38efadc..0000000 --- a/docs2/pages/documentations/directory/directory-get-all-directories.md +++ /dev/null @@ -1,23 +0,0 @@ -# Directory_GetAllDirectories - -`Directory_GetAllDirectories` returns the names of subdirectories (including their paths) in the specified directory. - -```csharp -Directory_GetAllDirectories ( - @path NVARCHAR (MAX)) -RETURNS TABLE ([Match] NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **path**: The relative or absolute path to the directory to search. This string is not case-sensitive. - -## Returns - -A list of the full names (including paths) of subdirectories in the specified path, or an empty list if no directories are found. - -## Example - -```csharp -SELECT * FROM Directory_GetAllDirectories('C:\Logs') -``` diff --git a/docs2/pages/documentations/directory/directory-get-all-file-system-entries.md b/docs2/pages/documentations/directory/directory-get-all-file-system-entries.md deleted file mode 100644 index 1ae25f1..0000000 --- a/docs2/pages/documentations/directory/directory-get-all-file-system-entries.md +++ /dev/null @@ -1,24 +0,0 @@ -# Directory_GetAllFileSystemEntries - -`Directory_GetAllFileSystemEntries` returns the names of all files and subdirectories in a specified path. - -```csharp -Directory_GetAllFileSystemEntries ( - @path NVARCHAR (MAX)) -RETURNS TABLE ([Match] NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **path**: The relative or absolute path to the directory to search. This string is not case-sensitive. - -## Returns - -A list of the names of files and subdirectories in the specified directory, or an empty list if no files or subdirectories are found. - -## Example - -```csharp -SELECT * FROM Directory_GetAllFileSystemEntries('C:\Logs') -``` - diff --git a/docs2/pages/documentations/directory/directory-get-all-files.md b/docs2/pages/documentations/directory/directory-get-all-files.md deleted file mode 100644 index d73af20..0000000 --- a/docs2/pages/documentations/directory/directory-get-all-files.md +++ /dev/null @@ -1,24 +0,0 @@ -# Directory_GetAllFiles - -`Directory_GetAllFiles` returns the names of files (including their paths) in the specified directory. - -```csharp -Directory_GetAllFiles ( - @path NVARCHAR (MAX)) -RETURNS TABLE ([Match] NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **path**: The relative or absolute path to the directory to search. This string is not case-sensitive. - -## Returns - -An list of the full names (including paths) for the files in the specified directory, or an empty list if no files are found. - -## Example - -```csharp -SELECT * FROM Directory_GetAllFiles('C:\Logs') -``` - diff --git a/docs2/pages/documentations/directory/directory-get-creation-time-utc.md b/docs2/pages/documentations/directory/directory-get-creation-time-utc.md deleted file mode 100644 index f63788f..0000000 --- a/docs2/pages/documentations/directory/directory-get-creation-time-utc.md +++ /dev/null @@ -1,24 +0,0 @@ -# Directory_GetCreationTimeUtc - -`Directory_GetCreationTimeUtc` returns the creation date and time, in Coordinated Universal Time (UTC) format, of a directory. - -```csharp -Directory_GetCreationTimeUtc ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The path of the directory. - -## Returns - -A DateTime object set to the creation date and time for the specified directory. This value is expressed in UTC time. - -## Example - -```csharp -SELECT SQLNET::Directory_GetCreationTimeUtc('C:\Logs') -``` - diff --git a/docs2/pages/documentations/directory/directory-get-creation-time.md b/docs2/pages/documentations/directory/directory-get-creation-time.md deleted file mode 100644 index 40d4a0b..0000000 --- a/docs2/pages/documentations/directory/directory-get-creation-time.md +++ /dev/null @@ -1,24 +0,0 @@ -# Directory_GetCreationTime - -`Directory_GetCreationTime` returns the creation date and time of a directory. - -```csharp -Directory_GetCreationTime ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The path of the directory. - -## Returns - -A DateTime object set to the creation date and time for the specified directory. This value is expressed in local time. - -## Example - -```csharp -SELECT SQLNET::Directory_GetCreationTime('C:\Logs') -``` - diff --git a/docs2/pages/documentations/directory/directory-get-directories.md b/docs2/pages/documentations/directory/directory-get-directories.md deleted file mode 100644 index e99a5fb..0000000 --- a/docs2/pages/documentations/directory/directory-get-directories.md +++ /dev/null @@ -1,39 +0,0 @@ -# Directory_GetDirectories - -`Directory_GetDirectories` returns the names of the subdirectories (including their paths) that match the specified search pattern in the specified directory, and optionally searches subdirectories. - -```csharp -Directory_GetDirectories ( - @path NVARCHAR (MAX), - @searchPattern NVARCHAR (MAX) - @searchOption -) -RETURNS TABLE ([Match] NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **path**: The relative or absolute path to the directory to search. This string is not case-sensitive. - - **searchPattern**: The search string to match against the names of files in path. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions. - - **searchOption**: One of the enumeration values that specifies whether the search operation should include all subdirectories or only the current directory. - -### SearchOption - -You can use one of the following options. - -| SearchOption |Integer Value | Descritpiton | -|:----------------------|:--------------|:--------------| -|TopDirectoryOnly | 0 | Includes only the current directory in a search operation. | -|AllDirectories | 1 | Includes the current directory and all its subdirectories in a search operation. This option includes reparse points such as mounted drives and symbolic links in the search. | - -## Returns - -A list of the full names (including paths) of the subdirectories that match the specified criteria, or an empty array if no directories are found. - -## Example - -```csharp -SELECT * FROM Directory_GetDirectories('C:\', 'p*', 1) -SELECT * FROM Directory_GetDirectories('C:\', 'U*', 0) -``` - diff --git a/docs2/pages/documentations/directory/directory-get-file-system-entries.md b/docs2/pages/documentations/directory/directory-get-file-system-entries.md deleted file mode 100644 index 6d31a55..0000000 --- a/docs2/pages/documentations/directory/directory-get-file-system-entries.md +++ /dev/null @@ -1,39 +0,0 @@ -# Directory_GetFileSystemEntries - -`Directory_GetFileSystemEntries` returns a list of all the file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories. - -```csharp -Directory_GetFileSystemEntries ( - @path NVARCHAR (MAX)), - @searchPattern NVARCHAR (MAX) - @searchOption -) -RETURNS TABLE ([Match] NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **path**: The relative or absolute path to the directory to search. This string is not case-sensitive. - - **searchPattern**: The search string to match against the names of files in path. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions. - - **searchOption**: One of the enumeration values that specifies whether the search operation should include all subdirectories or only the current directory. - -### SearchOption - -You can use one of the following options. - -| SearchOption |Integer Value | Descritpiton | -|:----------------------|:--------------|:--------------| -|TopDirectoryOnly | 0 | Includes only the current directory in a search operation. | -|AllDirectories | 1 | Includes the current directory and all its subdirectories in a search operation. This option includes reparse points such as mounted drives and symbolic links in the search. | - -## Returns - -An list of file the file names and directory names that match the specified search criteria, or an empty list if no files or directories are found. - -## Example - -```csharp -SELECT * FROM Directory_GetFileSystemEntries('C:\Logs', '*.html', 1) -SELECT * FROM Directory_GetFileSystemEntries('C:\Temp', '*.pdf', 0) -``` - diff --git a/docs2/pages/documentations/directory/directory-get-files.md b/docs2/pages/documentations/directory/directory-get-files.md deleted file mode 100644 index 46e1849..0000000 --- a/docs2/pages/documentations/directory/directory-get-files.md +++ /dev/null @@ -1,39 +0,0 @@ -# Directory_GetFiles - -`Directory_GetFiles` returns the names of files (including their paths) that match the specified search pattern in the specified directory, using a value to determine whether to search subdirectories. - -```csharp -Directory_GetFiles ( - @path NVARCHAR (MAX), - @searchPattern NVARCHAR (MAX) - @searchOption -) -RETURNS TABLE ([Match] NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **path**: The relative or absolute path to the directory to search. This string is not case-sensitive. - - **searchPattern**: The search string to match against the names of files in path. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions. - - **searchOption**: One of the enumeration values that specifies whether the search operation should include all subdirectories or only the current directory. - -### SearchOption - -You can use one of the following options. - -| SearchOption |Integer Value | Descritpiton | -|:----------------------|:--------------|:--------------| -|TopDirectoryOnly | 0 | Includes only the current directory in a search operation. | -|AllDirectories | 1 | Includes the current directory and all its subdirectories in a search operation. This option includes reparse points such as mounted drives and symbolic links in the search. | - -## Returns - -A list of the full names (including paths) for the files in the specified directory that match the specified search pattern and option, or an empty list if no files are found. - -## Example - -```csharp -SELECT * FROM Directory_GetFiles('C:\Logs', '*.html', 1) -SELECT * FROM Directory_GetFiles('C:\Temp', '*.pdf', 0) -``` - diff --git a/docs2/pages/documentations/directory/directory-get-last-access-time-utc.md b/docs2/pages/documentations/directory/directory-get-last-access-time-utc.md deleted file mode 100644 index f1212fc..0000000 --- a/docs2/pages/documentations/directory/directory-get-last-access-time-utc.md +++ /dev/null @@ -1,24 +0,0 @@ -# Directory_GetLastAccessTimeUtc - -`Directory_GetLastAccessTimeUtc` returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed. - -```csharp -Directory_GetLastAccessTimeUtc ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain access date and time information. - -## Returns - -A DateTime object that is set to the date and time the specified file or directory was last accessed. This value is expressed in UTC time. - -## Example - -```csharp -SELECT SQLNET::Directory_GetLastAccessTimeUtc('C:\Logs') -``` - diff --git a/docs2/pages/documentations/directory/directory-get-last-access-time.md b/docs2/pages/documentations/directory/directory-get-last-access-time.md deleted file mode 100644 index 8d0ae62..0000000 --- a/docs2/pages/documentations/directory/directory-get-last-access-time.md +++ /dev/null @@ -1,24 +0,0 @@ -# Directory_GetLastAccessTime - -`Directory_GetLastAccessTime` returns the date and time the specified file or directory was last accessed. - -```csharp -Directory_GetLastAccessTime ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain access date and time information. - -## Returns - -A DateTime object that is set to the date and time the specified file or directory was last accessed. This value is expressed in local time. - -## Example - -```csharp -SELECT SQLNET::Directory_GetLastAccessTime('C:\Logs') -``` - diff --git a/docs2/pages/documentations/directory/directory-get-last-write-time-utc.md b/docs2/pages/documentations/directory/directory-get-last-write-time-utc.md deleted file mode 100644 index 44e7955..0000000 --- a/docs2/pages/documentations/directory/directory-get-last-write-time-utc.md +++ /dev/null @@ -1,24 +0,0 @@ -# Directory_GetLastWriteTimeUtc - -`Directory_GetLastWriteTimeUtc` returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last written to. - -```csharp -Directory_GetLastWriteTimeUtc ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain access date and time information. - -## Returns - -A DateTime object that is set to the date and time the specified file or directory was last written to. This value is expressed in UTC time. - -## Example - -```csharp -SELECT SQLNET::Directory_GetLastWriteTimeUtc('C:\Logs') -``` - diff --git a/docs2/pages/documentations/directory/directory-get-last-write-time.md b/docs2/pages/documentations/directory/directory-get-last-write-time.md deleted file mode 100644 index 39e94bb..0000000 --- a/docs2/pages/documentations/directory/directory-get-last-write-time.md +++ /dev/null @@ -1,24 +0,0 @@ -# Directory_GetLastWriteTime - -`Directory_GetLastWriteTime` returns the date and time the specified file or directory was last written to. - -```csharp -Directory_GetLastWriteTime ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain access date and time information. - -## Returns - -A DateTime object that is set to the date and time the specified file or directory was last written to. This value is expressed in local time. - -## Example - -```csharp -SELECT SQLNET::Directory_GetLastWriteTime('C:\Logs') -``` - diff --git a/docs2/pages/documentations/directory/directory-move.md b/docs2/pages/documentations/directory/directory-move.md deleted file mode 100644 index f626f56..0000000 --- a/docs2/pages/documentations/directory/directory-move.md +++ /dev/null @@ -1,21 +0,0 @@ -# Directory_Move - -`Directory_Move` moves a file or a directory and its contents to a new location. - -```csharp -Directory_Move - @sourceDirName NVARCHAR (MAX), - @destDirName NVARCHAR (MAX) -``` - -## Parameters - - - **sourceDirName**: The path of the file or directory to move. - - **destDirName**: The path to the new location for `sourceDirName`. If `sourceDirName` is a file, then `destDirName` must also be a file name. - -## Example - -```csharp -EXEC Directory_Move @sourceDirName = 'C:\source', @destDirName = 'C:\destination' -``` - diff --git a/docs2/pages/documentations/directory/directory-set-creation-time-utc.md b/docs2/pages/documentations/directory/directory-set-creation-time-utc.md deleted file mode 100644 index 73f9952..0000000 --- a/docs2/pages/documentations/directory/directory-set-creation-time-utc.md +++ /dev/null @@ -1,21 +0,0 @@ -# Directory_SetCreationTimeUtc - -`Directory_SetCreationTimeUtc` sets the creation date and time, in Coordinated Universal Time (UTC) format, for the specified file or directory. - -```csharp -Directory_SetCreationTimeUtc - @path NVARCHAR (MAX), - @creationTime DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to set the creation date and time information. - - **creationTime**: The date and time the file or directory was last written to. This value is expressed in UTC time. - -## Example - -```csharp -EXEC Directory_SetCreationTimeUtc @path = 'C:\destination', @creationTime = '2018-12-05 8:00:00 AM' -``` - diff --git a/docs2/pages/documentations/directory/directory-set-creation-time.md b/docs2/pages/documentations/directory/directory-set-creation-time.md deleted file mode 100644 index 6755a97..0000000 --- a/docs2/pages/documentations/directory/directory-set-creation-time.md +++ /dev/null @@ -1,21 +0,0 @@ -# Directory_SetCreationTime - -`Directory_SetCreationTime` sets the creation date and time for the specified file or directory. - -```csharp -Directory_SetCreationTime - @path NVARCHAR (MAX), - @creationTime DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to set the creation date and time information. - - **creationTime**: The date and time the file or directory was last written to. This value is expressed in local time. - -## Example - -```csharp -EXEC Directory_SetCreationTime @path = 'C:\destination', @creationTime = '2018-12-05' -``` - diff --git a/docs2/pages/documentations/directory/directory-set-last-access-time-utc.md b/docs2/pages/documentations/directory/directory-set-last-access-time-utc.md deleted file mode 100644 index 86c9eaa..0000000 --- a/docs2/pages/documentations/directory/directory-set-last-access-time-utc.md +++ /dev/null @@ -1,21 +0,0 @@ -# Directory_SetLastAccessTimeUtc - -`Directory_SetLastAccessTimeUtc` sets the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed. - -```csharp -Directory_SetLastAccessTimeUtc - @path NVARCHAR (MAX), - @lastAccessTime DATETIME -``` - -## Parameters - - - **path**: The path of the directory. - - **lastAccessTime**: An object that contains the value to set for the access date and time of `path`. This value is expressed in UTC time. - -## Example - -```csharp -EXEC Directory_SetLastAccessTimeUtc @path = 'C:\destination', @lastAccessTime = '2018-12-05 8:00:00 AM' -``` - diff --git a/docs2/pages/documentations/directory/directory-set-last-access-time.md b/docs2/pages/documentations/directory/directory-set-last-access-time.md deleted file mode 100644 index 2a5d0c9..0000000 --- a/docs2/pages/documentations/directory/directory-set-last-access-time.md +++ /dev/null @@ -1,21 +0,0 @@ -# Directory_SetLastAccessTime - -`Directory_SetLastAccessTime` sets the date and time the specified file or directory was last accessed. - -```csharp -Directory_SetLastAccessTime - @path NVARCHAR (MAX), - @lastAccessTime DATETIME -``` - -## Parameters - - - **path**: The path of the directory. - - **lastAccessTime**: An object that contains the value to set for the access date and time of `path`. This value is expressed in local time. - -## Example - -```csharp -EXEC Directory_SetLastAccessTime @path = 'C:\destination', @lastAccessTime = '2018-12-05' -``` - diff --git a/docs2/pages/documentations/directory/directory-set-last-write-time-utc.md b/docs2/pages/documentations/directory/directory-set-last-write-time-utc.md deleted file mode 100644 index c1c11dd..0000000 --- a/docs2/pages/documentations/directory/directory-set-last-write-time-utc.md +++ /dev/null @@ -1,20 +0,0 @@ -# Directory_SetLastWriteTimeUtc - -`Directory_SetLastWriteTimeUtc` sets the date and time, in Coordinated Universal Time (UTC) format, that a directory was last written to. -```csharp -Directory_SetLastWriteTimeUtc - @path NVARCHAR (MAX), - @lastWriteTime DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to set the creation date and time information. - - **lastWriteTime**: The date and time the directory was last written to. This value is expressed in local time. - -## Example - -```csharp -EXEC Directory_SetLastWriteTimeUtc @path = 'C:\destination', @lastWriteTime = '2018-12-05 8:00:00 AM' -``` - diff --git a/docs2/pages/documentations/directory/directory-set-last-write-time.md b/docs2/pages/documentations/directory/directory-set-last-write-time.md deleted file mode 100644 index 548ddd5..0000000 --- a/docs2/pages/documentations/directory/directory-set-last-write-time.md +++ /dev/null @@ -1,21 +0,0 @@ -# Directory_SetLastWriteTime - -`Directory_SetLastWriteTime` sets the date and time the specified file or directory was last written to. - -```csharp -Directory_SetLastWriteTime - @path NVARCHAR (MAX), - @lastWriteTime DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to set the creation date and time information. - - **lastWriteTime**: The date and time the directory was last written to. This value is expressed in local time. - -## Example - -```csharp -EXEC Directory_SetLastWriteTime @path = 'C:\destination', @lastWriteTime = '2018-12-05' -``` - diff --git a/docs2/pages/documentations/directory/directory.md b/docs2/pages/documentations/directory/directory.md deleted file mode 100644 index 3a94a2a..0000000 --- a/docs2/pages/documentations/directory/directory.md +++ /dev/null @@ -1,30 +0,0 @@ -# Directory - -Provides methods for creating, moving, and enumerating through directories and subdirectories. - -| Name | Description | Example | -| :--- | :---------- | :------ | -| [Directory_Create(path)](/directory-create) | Creates all directories and subdirectories in the specified path unless they already exist. | [Try it]()| -| [Directory_CreateSubDirectory(path)](/directory-create-sub-directory) | Creates a subdirectory or subdirectories on the specified path. | [Try it]()| -| [Directory_Delete(path)](/directory-delete) | Deletes an empty directory from a specified path. | [Try it]()| -| [Directory_DeleteAll(path)](/directory-delete-all) | Deletes a directory from a specified path including subdirectories, and files. | [Try it]()| -| [Directory_Exists(path)](/directory-exists) | Determines whether the given path refers to an existing directory on disk. | [Try it]()| -| [Directory_GetAllDirectories(path)](/directory-get-all-directories) | Returns the names of subdirectories (including their paths) in the specified directory. | [Try it]()| -| [Directory_GetAllFiles(path)](/directory-get-all-files) | Returns the names of files (including their paths) in the specified directory. | [Try it]()| -| [Directory_GetAllFileSystemEntries(path)](/directory-get-all-file-system-entries) | Returns the names of all files and subdirectories in a specified path. | [Try it]()| -| [Directory_GetCreationTime(path)](/directory-get-creation-time) | Returns the creation date and time of a directory. | [Try it]()| -| [Directory_GetCreationTimeUtc(path)](/directory-get-creation-time-utc) | Returns the creation date and time, in Coordinated Universal Time (UTC) format, of a directory. | [Try it]()| -| [Directory_GetDirectories(path)](/directory-get-directories) | Returns the names of the subdirectories (including their paths) that match the specified search pattern in the specified directory, and optionally searches subdirectories. | [Try it]()| -| [Directory_GetFiles(path)](/directory-get-files) | Returns the names of files (including their paths) that match the specified search pattern in the specified directory, using a value to determine whether to search subdirectories. | [Try it]()| -| [Directory_GetFileSystemEntries(path)](/directory-get-file-system-entries) | Returns a list of all the file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories. | [Try it]()| -| [Directory_GetLastAccessTime(path)](/directory-get-last-access-time) | Returns the date and time the specified file or directory was last accessed. | [Try it]()| -| [Directory_GetLastAccessTimeUtc(path)](/directory-get-last-access-time-utc) | Returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed. | [Try it]()| -| [Directory_GetLastWriteTime(path)](/directory-get-last-write-time) | Returns the date and time the specified file or directory was last written to. | [Try it]()| -| [Directory_GetLastWriteTimeUtc(path)](/directory-get-last-write-time-utc) | Returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last written to. | [Try it]()| -| [Directory_Move(sourceDirName, destDirName)](/directory-move) | Moves a file or a directory and its contents to a new location. | [Try it]()| -| [Directory_SetCreationTime(path, creationTime)](/directory-set-creation-time) | Sets the creation date and time for the specified file or directory. | [Try it]()| -| [Directory_SetCreationTimeUtc(path, creationTime)](/directory-set-creation-time-utc) | Sets the creation date and time, in Coordinated Universal Time (UTC) format, for the specified file or directory. | [Try it]()| -| [Directory_SetLastAccessTime(path, lastTime)](/directory-set-last-access-time) | Sets the date and time the specified file or directory was last accessed. | [Try it]()| -| [Directory_SetLastAccessTimeUtc(path, lastTime)](/directory-set-last-access-time-utc) | Sets the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed. | [Try it]()| -| [Directory_SetLastWriteTime(path, lastTime)](/directory-set-last-write-time) | Sets the date and time a directory was last written to. | [Try it]()| -| [Directory_SetLastWriteTimeUtc(path, lastTime)](/directory-set-last-write-time-utc) | Sets the date and time, in Coordinated Universal Time (UTC) format, that a directory was last written to. | [Try it]()| diff --git a/docs2/pages/documentations/eval-expressions/_sidebar.md b/docs2/pages/documentations/eval-expressions/_sidebar.md deleted file mode 100644 index 69c1e54..0000000 --- a/docs2/pages/documentations/eval-expressions/_sidebar.md +++ /dev/null @@ -1,3 +0,0 @@ - - [LINQ Dynamic](linq-dynamic.md) - - [Eval.Compile](eval-compile.md) - - [Eval.Execute](eval-execute.md) diff --git a/docs2/pages/documentations/eval-expressions/eval-compile.md b/docs2/pages/documentations/eval-expressions/eval-compile.md deleted file mode 100644 index 1e80206..0000000 --- a/docs2/pages/documentations/eval-expressions/eval-compile.md +++ /dev/null @@ -1,65 +0,0 @@ -# Eval.Compile - -## Description -You can compile C# expression at runtime using the [Eval-Expression.NET](http://eval-expression.net/) library. - -You can download it here: [Download](http://eval-expression.net/download) - -> The Eval-Expression.NET library can be activated with the Eval-SQL.NET license. - -## Compile and return a strongly typed delegate -You can return the delegate as a strongly typed function or action: - -- Eval.Compile<TDelegate>(string code) -- Eval.Compile<TDelegate>(string code, IEnumerable<string> parameterNames) -- Eval.Compile<TDelegate>(string code, params string[] parameterNames) - -### Example -```csharp -// Delegate Func -var compiled = Eval.Compile>("{0} + {1}"); -int result = compiled(1, 2); - -// Delegate Action -var compiled = Eval.Compile>("{0} + {1}"); -compiled(1, 2); - -// Named Parameter -var compiled = Eval.Compile>("X + Y", "X", "Y"); -int result = compiled(1, 2); -``` -{% include component-try-it.html href='https://dotnetfiddle.net/MBHlX8' %} - -## Compile and return a delegate -You can return the delegate as a generic delegate: - -- Eval.Compile(string code): Func<object> -- Eval.Compile(string code, Type type1): Func<object, object> -- Eval.Compile(string code, Type type1, ... , Type type9): Func<object, ... , object, object> -- Eval.Compile(string code, IEnumerable<Type> types): Func<IEnumerable, object> -- Eval.Compile(string code, params Type[] types): Func<IEnumerable, object> -- Eval.Compile(string code, IDictionary<string, Type> nameTypes): Func<IDictionary, object> - -### Example -```csharp -// Overload: Up to 9 parameters can be used -var compiled = Eval.Compile("{0} + {1}", typeof(int), typeof(int)); -object result = compiled(1, 2); - -// Overload: params Type[] -var values = new List() {1, 2}; -var types = values.Select(x => x.GetType()).ToArray(); - -var compiled = Eval.Compile("{0} + {1}", types); -var result = compiled(values); - -// Overload: IDictionary -var values = new Dictionary { {"X", 1}, {"Y", 2} }; -var types = values.ToDictionary(x => x.Key, x => x.Value.GetType()); - -var compiled = Eval.Compile("X + Y", types); -var result = compiled(values); -``` -{% include component-try-it.html href='https://dotnetfiddle.net/870F71' %} - - diff --git a/docs2/pages/documentations/eval-expressions/eval-execute.md b/docs2/pages/documentations/eval-expressions/eval-execute.md deleted file mode 100644 index 4708973..0000000 --- a/docs2/pages/documentations/eval-expressions/eval-execute.md +++ /dev/null @@ -1,73 +0,0 @@ -# Eval.Execute - -## Description -You can execute C# expression at runtime using the [Eval-Expression.NET](http://eval-expression.net/) library. - -You can download it here: [Download](http://eval-expression.net/download) - -> The Eval-Expression.NET library can be activated with the Eval-SQL.NET license. - -You can specify parameter value to use in the expression from various way: - -- Anonymous Type -- Argument Position -- Class Member -- Dictionary - -Under the hood, the fist time an expression is executed, it's getting compiled and the delegate is stored in the memory before being returned and executed. All future calls from the same expression will retrieve the delegate from the memory to optimize the performance. - -Even with this optimization, if you have to evaluate multiple times the same expression, for example in a for loop, we highly recommend you to use directly the delegate returning from the Compile method instead. - -## Execute and return a strongly typed result -You can return the result as a strongly typed type: - -- Eval.Execute<TResult>(string code) -- Eval.Execute<TResult>(string code, object parameters) -- Eval.Execute<TResult>(string code, params object[] parameters) - -### Example - -```csharp -// Parameter: Anonymous Type -int result = Eval.Execute("X + Y", new { X = 1, Y = 2} ); - -// Parameter: Argument Position -int result = Eval.Execute("{0} + {1}", 1, 2); - -// Parameter: Class Member -dynamic expandoObject = new ExpandoObject(); -expandoObject.X = 1; -expandoObject.Y = 2; -int result = Eval.Execute("X + Y", expandoObject); - -// Parameter: Dictionary Key -var values = new Dictionary() { {"X", 1}, {"Y", 2} }; -int result = Eval.Execute("X + Y", values); -``` -{% include component-try-it.html href='https://dotnetfiddle.net/W9TwcP' %} - -## Execute and return an object result -You can return the result as an object: - -- Eval.Execute(string code) -- Eval.Execute(string code, object parameters) -- Eval.Execute(string code, params object[] parameters) - -```csharp -// Parameter: Anonymous Type -object result = Eval.Execute("X + Y", new { X = 1, Y = 2} ); - -// Parameter: Argument Position -object result = Eval.Execute("{0} + {1}", 1, 2); - -// Parameter: Class Member -dynamic expandoObject = new ExpandoObject(); -expandoObject.X = 1; -expandoObject.Y = 2; -object result = Eval.Execute("X + Y", expandoObject); - -// Parameter: Dictionary Key -var values = new Dictionary() { {"X", 1}, {"Y", 2} }; -object result = Eval.Execute("X + Y", values); -``` -{% include component-try-it.html href='https://dotnetfiddle.net/8mtLH8' %} diff --git a/docs2/pages/documentations/eval-expressions/linq-dynamic.md b/docs2/pages/documentations/eval-expressions/linq-dynamic.md deleted file mode 100644 index 180385f..0000000 --- a/docs2/pages/documentations/eval-expressions/linq-dynamic.md +++ /dev/null @@ -1,75 +0,0 @@ -# LINQ Dynamic - -## Description -You can execute query dynamically through the [Eval-Expression.NET](http://eval-expression.net/) library. - -You can download it here: [Download](http://eval-expression.net/download) - -> The Eval-Expression.NET library can be activated with the Eval-SQL.NET license. - -## LINQ Dynamic - Predicate -You can use any LINQ method that support predicate with a dynamic C# expression : - -- Deferred - - SkipWhile - - TakeWhile - - Where -- Immediate - - All - - Any - - Count - - First - - FirstOrDefault - - Last - - LastOrDefault - - LongCount - - Single - - SingleOrDefault - -### Example -```csharp -var list = new List() { 1, 2, 3, 4, 5 }; - -var list2 = list.Where(x => "x > 2"); -var list3 = list.Where(x => "x > X", new { X = 2 }); // with parameter -``` -{% include component-try-it.html href='https://dotnetfiddle.net/S42mkU' %} - -## LINQ Dynamic - Ordering and Selecting -You can use any ordering and selecting method with a dynamic C# expression: - - - OrderByDescendingDynamic - - OrderByDynamic - - SelectDynamic - - SelectMany - - ThenByDescendingDynamic - - ThenByDynamic - -> The **"Dynamic"** suffix is required for not overriding the default behavior (ordering or selecting by a string is valid). - -### Example -```csharp -var list = new List() { 5, 2, 4, 1, 3 }; - -// SelectDynamic -var list2 = list.SelectDynamic(x => "new { y = x + 1 }"); -var list3 = list.SelectDynamic(x => "new { y = x + 1 }", new { y = 1 }); - -// OrderByDynamic -var list4 = list.OrderByDynamic(x => "x + 1"); -var list5 = list.OrderByDynamic(x => "x + Y", new { Y = 1 }); -``` - -## LINQ Dynamic - Execute -You can push the LINQ Dynamic experience further by using the Execute method and chaining anything else: - -- Execute -- Execute<TResult> - -### Example -```csharp -var list = new List() { 1, 2, 3, 4, 5 }; - -var list2 = list.Execute>("Where(x => x > 2).OrderBy(x => x).ToList()"); -var list3 = list.Execute>("Where(x => x > y).OrderBy(x => x).ToList()", new { y = 2 }); -``` diff --git a/docs2/pages/documentations/eval.md b/docs2/pages/documentations/eval.md deleted file mode 100644 index 3bfc210..0000000 --- a/docs2/pages/documentations/eval.md +++ /dev/null @@ -1,120 +0,0 @@ -# Eval - -## Eval - -Evaluate the code or expression and return the result. - - - Eval - - EvalBigInt - - EvalBinary - - EvalBit - - EvalDateTime - - EvalInt - - EvalSmallInt - - EvalString - - EvalTinyInt - - EvalUniqueIdentifier - - EvalVarBinary - - -```csharp -DECLARE @sqlnet SQLNET = SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).Root(); - -DECLARE @value_variant SQL_VARIANT = @sqlnet.Eval(); -DECLARE @value_int INT = @sqlnet.EvalInt(); -DECLARE @value_decimal DECIMAL(18, 2) = CAST(@sqlnet.Eval() AS DECIMAL(18, 2)) - --- SELECT 3, 3, 3.00 -SELECT @value_variant as variant , @value_int as int, @value_decimal as decimal -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/58568/15' %} - -## EvalReadAccess - -Evaluate the code or expression allowing "Read" and return the result. - - - EvalReadAccess - - EvalReadAccessBigInt - - EvalReadAccessBinary - - EvalReadAccessBit - - EvalReadAccessDateTime - - EvalReadAccessInt - - EvalReadAccessSmallInt - - EvalReadAccessString - - EvalReadAccessTinyInt - - EvalReadAccessUniqueIdentifier - - EvalReadAccessVarBinary - -## EvalSQLNET - -Evaluate the code or expression and return a new SQLNET object with the result in the parameter name "value" - - -```csharp --- Eval and create a new SQLNET object -DECLARE @sqlnet SQLNET = SQLNET::New('var list = new List() { 1, 2, 3, 4}') -DECLARE @result SQLNET = @sqlnet.EvalSQLNET() - --- Use the value previously resolved --- SELECT 4 -SELECT @result.Code('value.Count').EvalInt() as Result -Useful to optimize code with object initialization like Regex. -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/989' %} - -## EXEC SQLNET_EvalResultSet - -Stored Procedures that evaluate code or expression and return a Result Set. - - -```csharp --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*").Select(x => x.FullName).OrderBy(x => x).ToList();') - .Impersonate() - --- SELECT * FROM DesktopFiles ORDER BY File.Fullname -EXEC dbo.SQLNET_EvalResultSet @sqlnet -You can output the result to the client or insert it in a table like a normal procedure. -``` - - -## EvalTVF - -Evaluate the code or expression from a Table-Valued Function (TVF). - - - SQLNET_EvalTVF_1 (SQL_VARIANT) - - SQLNET_EvalTVF_2 (SQL_VARIANT, SQL_VARIANT) - - SQLNET_EvalTVF_3 (SQL_VARIANT, SQL_VARIANT, SQL_VARIANT) - - SQLNET_EvalTVF_4 (SQL_VARIANT, SQL_VARIANT, SQL_VARIANT, SQL_VARIANT) - - SQLNET_EvalTVF_5 (SQL_VARIANT, ..., SQL_VARIANT) - - SQLNET_EvalTVF_String - - -```csharp -CREATE FUNCTION [dbo].[fn_Split] - ( - @input VARCHAR(MAX) , - @pattern VARCHAR(8000) = ',' - ) -RETURNS @split TABLE ( item VARCHAR(8000) ) - BEGIN - DECLARE @regex_split SQLNET = SQLNET::New('Regex.Split(input, pattern)') - .ValueString('input', @input) - .ValueString('pattern', @pattern) - - INSERT INTO @split - SELECT CAST(Value_1 AS VARCHAR(8000)) - FROM [dbo].[SQLNET_EvalTVF_1](@regex_split) - RETURN - END - -GO - --- SPLIT with multiple delimiters (',' and ';') -SELECT * FROM dbo.fn_Split('1, 2, 3; 4; 5', ',|;') -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/b738f/2' %} diff --git a/docs2/pages/documentations/file/file-append-all-text.md b/docs2/pages/documentations/file/file-append-all-text.md deleted file mode 100644 index 094f111..0000000 --- a/docs2/pages/documentations/file/file-append-all-text.md +++ /dev/null @@ -1,21 +0,0 @@ -# File_AppendAllText - -`File_AppendAllText` opens a file, appends the specified string to the file, and then closes the file. If the file does not exist, it creates a file, writes the specified string to the file, then closes the file. - -```csharp -File_AppendAllText - @path NVARCHAR (MAX), - @content NVARCHAR (MAX) -``` - -## Parameters - - - **path**: The file to append the specified string to. - - **content**: The string to append to the file. - -## Example - -```csharp -EXEC File_AppendAllText @path = 'C:\Temp\MyTest.txt', @content = 'This is extra text' -``` - diff --git a/docs2/pages/documentations/file/file-copy.md b/docs2/pages/documentations/file/file-copy.md deleted file mode 100644 index cadd714..0000000 --- a/docs2/pages/documentations/file/file-copy.md +++ /dev/null @@ -1,23 +0,0 @@ -# File_Copy - -`File_Copy` copies an existing file to a new file. - -```csharp -File_Copy - @sourceFileName NVARCHAR (MAX), - @destFileName NVARCHAR (MAX), - @overwrite BIT -``` - -## Parameters - - - **sourceFileName**: The file to copy. - - **destFileName**: The name of the destination file. This cannot be a directory. - - **overwrite**: `true` if the destination file can be overwritten; otherwise, `false`. - -## Example - -```csharp -EXEC File_Copy @sourceFileName = 'C:\Temp\MyTest.txt', @destFileName = 'C:\Temp\MyTest1.txt', @overwrite = 1 -``` - diff --git a/docs2/pages/documentations/file/file-create.md b/docs2/pages/documentations/file/file-create.md deleted file mode 100644 index 28c7f0a..0000000 --- a/docs2/pages/documentations/file/file-create.md +++ /dev/null @@ -1,19 +0,0 @@ -# File_Create - -`File_Create` creates or overwrites a file in the specified path. - -```csharp -File_Create - @path NVARCHAR (MAX) -``` - -## Parameters - - - **path**: The path and name of the file to create. - -## Example - -```csharp -EXEC File_Create @path = 'C:\Temp\MyTest.txt' -``` - diff --git a/docs2/pages/documentations/file/file-decrypt.md b/docs2/pages/documentations/file/file-decrypt.md deleted file mode 100644 index 942f7f1..0000000 --- a/docs2/pages/documentations/file/file-decrypt.md +++ /dev/null @@ -1,19 +0,0 @@ -# File_Decrypt - -`File_Decrypt` decrypts a file that was encrypted by the current account using the [File_Encrypt](/file_encrypt) procedure. - -```csharp -File_Decrypt - @path NVARCHAR (MAX) -``` - -## Parameters - - - **path**: A path that describes a file to decrypt. - -## Example - -```csharp -EXEC File_Decrypt @path = 'C:\Temp\MyTest.txt' -``` - diff --git a/docs2/pages/documentations/file/file-delete.md b/docs2/pages/documentations/file/file-delete.md deleted file mode 100644 index 228643c..0000000 --- a/docs2/pages/documentations/file/file-delete.md +++ /dev/null @@ -1,19 +0,0 @@ -# File_Delete - -`File_Delete` deletes the specified file. - -```csharp -File_Delete - @path NVARCHAR (MAX) -``` - -## Parameters - - - **path**: The name of the file to be deleted. Wildcard characters are not supported. - -## Example - -```csharp -EXEC File_Delete @path = 'C:\Temp\MyTest.txt' -``` - diff --git a/docs2/pages/documentations/file/file-encrypt.md b/docs2/pages/documentations/file/file-encrypt.md deleted file mode 100644 index 977f171..0000000 --- a/docs2/pages/documentations/file/file-encrypt.md +++ /dev/null @@ -1,19 +0,0 @@ -# File_Encrypt - -`File_Encrypt` encrypts a file so that only the account used to encrypt the file can decrypt it. - -```csharp -File_Encrypt - @path NVARCHAR (MAX) -``` - -## Parameters - - - **path**: A path that describes a file to encrypt. - -## Example - -```csharp -EXEC File_Encrypt @path = 'C:\Temp\MyTest.txt' -``` - diff --git a/docs2/pages/documentations/file/file-get-creation-time-utc.md b/docs2/pages/documentations/file/file-get-creation-time-utc.md deleted file mode 100644 index 4091630..0000000 --- a/docs2/pages/documentations/file/file-get-creation-time-utc.md +++ /dev/null @@ -1,24 +0,0 @@ -# File_GetCreationTimeUtc - -`File_GetCreationTimeUtc` returns the creation date and time, in coordinated universal time (UTC), of the specified file or directory. - -```csharp -File_GetCreationTimeUtc ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain creation date and time information. - -## Returns - -A DateTime object set to the creation date and time for the specified file or directory. This value is expressed in UTC time. - -## Example - -```csharp -SELECT SQLNET::File_GetCreationTimeUtc('C:\Temp\MyTest.txt') -``` - diff --git a/docs2/pages/documentations/file/file-get-creation-time.md b/docs2/pages/documentations/file/file-get-creation-time.md deleted file mode 100644 index 1f02f49..0000000 --- a/docs2/pages/documentations/file/file-get-creation-time.md +++ /dev/null @@ -1,24 +0,0 @@ -# File_GetCreationTime - -`File_GetCreationTime` returns the creation date and time of the specified file or directory. - -```csharp -File_GetCreationTime ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain creation date and time information. - -## Returns - -A DateTime object set to the creation date and time for the specified file or directory. This value is expressed in local time. - -## Example - -```csharp -SELECT SQLNET::File_GetCreationTime('C:\Temp\MyTest.txt') -``` - diff --git a/docs2/pages/documentations/file/file-get-last-access-time-utc.md b/docs2/pages/documentations/file/file-get-last-access-time-utc.md deleted file mode 100644 index 5b55ae1..0000000 --- a/docs2/pages/documentations/file/file-get-last-access-time-utc.md +++ /dev/null @@ -1,24 +0,0 @@ -# File_GetLastAccessTimeUtc - -`File_GetLastAccessTimeUtc` returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last accessed. - -```csharp -File_GetLastAccessTimeUtc ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain access date and time information. - -## Returns - -A DateTime object set to the date and time that the specified file or directory was last accessed. This value is expressed in UTC time. - -## Example - -```csharp -SELECT SQLNET::File_GetLastAccessTimeUtc('C:\Temp\MyTest.txt') -``` - diff --git a/docs2/pages/documentations/file/file-get-last-access-time.md b/docs2/pages/documentations/file/file-get-last-access-time.md deleted file mode 100644 index c9c5daa..0000000 --- a/docs2/pages/documentations/file/file-get-last-access-time.md +++ /dev/null @@ -1,24 +0,0 @@ -# File_GetLastAccessTime - -`File_GetLastAccessTime` returns the date and time the specified file or directory was last accessed. - -```csharp -File_GetLastAccessTime ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain access date and time information. - -## Returns - -A DateTime object set to the date and time that the specified file or directory was last accessed. This value is expressed in local time. - -## Example - -```csharp -SELECT SQLNET::File_GetLastAccessTime('C:\Temp\MyTest.txt') -``` - diff --git a/docs2/pages/documentations/file/file-get-last-write-time-utc.md b/docs2/pages/documentations/file/file-get-last-write-time-utc.md deleted file mode 100644 index 18d9950..0000000 --- a/docs2/pages/documentations/file/file-get-last-write-time-utc.md +++ /dev/null @@ -1,24 +0,0 @@ -# File_GetLastWriteTimeUtc - -`File_GetLastWriteTimeUtc` returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to. - -```csharp -File_GetLastWriteTimeUtc ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain write date and time information. - -## Returns - -A DateTime object set to the date and time that the specified file or directory was last written to. This value is expressed in UTC time. - -## Example - -```csharp -SELECT SQLNET::File_GetLastWriteTimeUtc('C:\Temp\MyTest.txt') -``` - diff --git a/docs2/pages/documentations/file/file-get-last-write-time.md b/docs2/pages/documentations/file/file-get-last-write-time.md deleted file mode 100644 index 0a941ff..0000000 --- a/docs2/pages/documentations/file/file-get-last-write-time.md +++ /dev/null @@ -1,24 +0,0 @@ -# File_GetLastWriteTime - -`File_GetLastWriteTime` returns the date and time the specified file or directory was last written to. - -```csharp -File_GetLastWriteTime ( - @path NVARCHAR (MAX)) -RETURNS DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain write date and time information. - -## Returns - -A DateTime object set to the date and time that the specified file or directory was last written to. This value is expressed in local time. - -## Example - -```csharp -SELECT SQLNET::File_GetLastWriteTime('C:\Temp\MyTest.txt') -``` - diff --git a/docs2/pages/documentations/file/file-isexists.md b/docs2/pages/documentations/file/file-isexists.md deleted file mode 100644 index 3ea089e..0000000 --- a/docs2/pages/documentations/file/file-isexists.md +++ /dev/null @@ -1,25 +0,0 @@ -# File_IsExists - -`File_IsExists` determines whether the specified file exists. - -```csharp -File_IsExists ( - @path NVARCHAR (MAX) - ) -RETURNS BIT -``` - -## Parameters - - - **path**: The path of a file to check. - -## Returns - -`true` if path refers to an existing directory; `false` if the directory does not exist or an error occurs when trying to determine if the specified directory exists. - -## Example - -```csharp -SELECT SQLNET::File_IsExists('C:\Temp\MyTest.txt') -``` - diff --git a/docs2/pages/documentations/file/file-move.md b/docs2/pages/documentations/file/file-move.md deleted file mode 100644 index 19ef334..0000000 --- a/docs2/pages/documentations/file/file-move.md +++ /dev/null @@ -1,21 +0,0 @@ -# File_Move - -`File_Move` moves a specified file to a new location, providing the option to specify a new file name. - -```csharp -File_Move - @sourceFileName NVARCHAR (MAX), - @destFileName NVARCHAR (MAX) -``` - -## Parameters - - - **sourceFileName**: The name of the file to move. - - **destFileName**: The new path and name for the file. - -## Example - -```csharp -EXEC File_Move @sourceFileName = 'C:\Temp\MyTest.txt', @destFileName = 'C:\Temp\MyNewTest.txt' -``` - diff --git a/docs2/pages/documentations/file/file-read-all-text.md b/docs2/pages/documentations/file/file-read-all-text.md deleted file mode 100644 index 136b20e..0000000 --- a/docs2/pages/documentations/file/file-read-all-text.md +++ /dev/null @@ -1,24 +0,0 @@ -# File_ReadAllText - -`File_ReadAllText` 0pens a text file, reads and returns all the text in the file, and then closes the file. - -```csharp -File_ReadAllText ( - @path NVARCHAR (MAX)) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **path**: The file path to open for reading. - -## Returns - -A string containing all the text in the file. - -## Example - -```csharp -SELECT SQLNET::File_ReadAllText('C:\Temp\MyTest.txt') -``` - diff --git a/docs2/pages/documentations/file/file-replace.md b/docs2/pages/documentations/file/file-replace.md deleted file mode 100644 index 18e8adf..0000000 --- a/docs2/pages/documentations/file/file-replace.md +++ /dev/null @@ -1,25 +0,0 @@ -# File_Replace - -`File_Replace` replaces the contents of a specified file with the contents of another file, deleting the original file, and creating a backup of the replaced file and optionally ignores merge errors. - -```csharp -File_Replace - @sourceFileName NVARCHAR (MAX), - @destFileName NVARCHAR (MAX), - @destBackupFileName NVARCHAR (MAX), - @ignoreMetadataErrors BIT -``` - -## Parameters - - - **sourceFileName**: The name of a file that replaces the file specified by `destinationFileName`. - - **destFileName**: The name of the file being replaced. - - **destBackupFileName**: The name of the backup file. - - **ignoreMetadataErrors**: `true` to ignore merge errors (such as attributes and access control lists (ACLs)) from the replaced file to the replacement file; otherwise, `false`. - -## Example - -```csharp -EXEC File_Replace @sourceFileName = 'C:\Temp\MyTest.txt', @destFileName = 'C:\Temp\MyNewTest.txt', @destBackupFileName = 'C:\Temp\MybackupTest.txt', @ignoreMetadataErrors = 0 -``` - diff --git a/docs2/pages/documentations/file/file-set-creation-time-utc.md b/docs2/pages/documentations/file/file-set-creation-time-utc.md deleted file mode 100644 index 8576a15..0000000 --- a/docs2/pages/documentations/file/file-set-creation-time-utc.md +++ /dev/null @@ -1,21 +0,0 @@ -# File_SetCreationTimeUtc - -`File_SetCreationTimeUtc` sets the date and time, in coordinated universal time (UTC), that the file was created. - -```csharp -File_SetCreationTimeUtc - @path NVARCHAR (MAX), - @creationTime DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain creation date and time information. - - **creationTime**: A DateTime containing the value to set for the creation date and time of path. This value is expressed in UTC time. - -## Example - -```csharp -EXEC File_SetCreationTimeUtc @path = 'C:\Temp\MyTest.txt', @creationTime = '2018-12-05' -``` - diff --git a/docs2/pages/documentations/file/file-set-creation-time.md b/docs2/pages/documentations/file/file-set-creation-time.md deleted file mode 100644 index 51ac849..0000000 --- a/docs2/pages/documentations/file/file-set-creation-time.md +++ /dev/null @@ -1,21 +0,0 @@ -# File_SetCreationTime - -`File_SetCreationTime` sets the date and time the file was created. - -```csharp -File_SetCreationTime - @path NVARCHAR (MAX), - @creationTime DATETIME -``` - -## Parameters - - - **path**: The file or directory for which to obtain creation date and time information. - - **creationTime**: A DateTime containing the value to set for the creation date and time of path. This value is expressed in local time. - -## Example - -```csharp -EXEC File_SetCreationTime @path = 'C:\Temp\MyTest.txt', @creationTime = '2018-12-05' -``` - diff --git a/docs2/pages/documentations/file/file-set-last-access-time-utc.md b/docs2/pages/documentations/file/file-set-last-access-time-utc.md deleted file mode 100644 index 49cedc6..0000000 --- a/docs2/pages/documentations/file/file-set-last-access-time-utc.md +++ /dev/null @@ -1,21 +0,0 @@ -# File_SetLastAccessTimeUtc - -`File_SetLastAccessTimeUtc` sets the date and time, in coordinated universal time (UTC), that the specified file was last accessed. - -```csharp -File_SetLastAccessTimeUtc - @path NVARCHAR (MAX), - @lastAccessTime DATETIME -``` - -## Parameters - - - **path**: The file for which to set the access date and time information. - - **lastAccessTime**: A DateTime containing the value to set for the last access date and time of path. This value is expressed in UTC time. - -## Example - -```csharp -EXEC File_SetLastAccessTimeUtc @path = 'C:\Temp\MyTest.txt', @lastAccessTime = '2018-12-05' -``` - diff --git a/docs2/pages/documentations/file/file-set-last-access-time.md b/docs2/pages/documentations/file/file-set-last-access-time.md deleted file mode 100644 index ee65070..0000000 --- a/docs2/pages/documentations/file/file-set-last-access-time.md +++ /dev/null @@ -1,21 +0,0 @@ -# File_SetLastAccessTime - -`File_SetLastAccessTime` sets the date and time the specified file was last accessed. - -```csharp -File_SetLastAccessTime - @path NVARCHAR (MAX), - @lastAccessTime DATETIME -``` - -## Parameters - - - **path**: The file for which to set the access date and time information. - - **lastAccessTime**: A DateTime containing the value to set for the last access date and time of path. This value is expressed in local time. - -## Example - -```csharp -EXEC File_SetLastAccessTime @path = 'C:\Temp\MyTest.txt', @lastAccessTime = '2018-12-05' -``` - diff --git a/docs2/pages/documentations/file/file-set-last-write-time-utc.md b/docs2/pages/documentations/file/file-set-last-write-time-utc.md deleted file mode 100644 index 54245d0..0000000 --- a/docs2/pages/documentations/file/file-set-last-write-time-utc.md +++ /dev/null @@ -1,21 +0,0 @@ -# File_SetLastWriteTimeUtc - -`File_SetLastWriteTimeUtc` sets the date and time, in coordinated universal time (UTC), that the specified file was last written to. - -```csharp -File_SetLastWriteTimeUtc - @path NVARCHAR (MAX), - @lastWriteTime DATETIME -``` - -## Parameters - - - **path**: The file for which to set the date and time information. - - **lastWriteTime**: A DateTime containing the value to set for the last write date and time of path. This value is expressed in UTC time. - -## Example - -```csharp -EXEC File_SetLastWriteTimeUtc @path = 'C:\Temp\MyTest.txt', @lastWriteTime = '2018-12-05' -``` - diff --git a/docs2/pages/documentations/file/file-set-last-write-time.md b/docs2/pages/documentations/file/file-set-last-write-time.md deleted file mode 100644 index d0eecae..0000000 --- a/docs2/pages/documentations/file/file-set-last-write-time.md +++ /dev/null @@ -1,21 +0,0 @@ -# File_SetLastWriteTime - -`File_SetLastWriteTime` sets the date and time that the specified file was last written to. - -```csharp -File_SetLastWriteTime - @path NVARCHAR (MAX), - @lastWriteTime DATETIME -``` - -## Parameters - - - **path**: The file for which to set the date and time information. - - **lastWriteTime**: A DateTime containing the value to set for the last write date and time of path. This value is expressed in local time. - -## Example - -```csharp -EXEC File_SetLastWriteTime @path = 'C:\Temp\MyTest.txt', @lastWriteTime = '2018-12-05' -``` - diff --git a/docs2/pages/documentations/file/file-write-all-text.md b/docs2/pages/documentations/file/file-write-all-text.md deleted file mode 100644 index f3d981c..0000000 --- a/docs2/pages/documentations/file/file-write-all-text.md +++ /dev/null @@ -1,21 +0,0 @@ -# File_WriteAllText - -`File_WriteAllText` Creates a new file, write the contents to the file, and then closes the file. If the target file already exists, it is overwritten. - -```csharp -File_WriteAllText - @path NVARCHAR (MAX), - @contents NVARCHAR (MAX) -``` - -## Parameters - - - **path**: The file to write to. - - **contents**: The string to write to the file. - -## Example - -```csharp -EXEC File_WriteAllText @path = 'C:\Temp\MyTest.txt', @contents = 'This is a text' -``` - diff --git a/docs2/pages/documentations/file/file.md b/docs2/pages/documentations/file/file.md deleted file mode 100644 index b2822d9..0000000 --- a/docs2/pages/documentations/file/file.md +++ /dev/null @@ -1,29 +0,0 @@ -# File - -Provides methods for the creation, copying, deletion, moving, and opening of a single file. - -| Name | Description | Example | -| :--- | :---------- | :------ | -| [File_AppendAllText(path, content)](/file-append-all-text) | Appends the specified stringto the file, creating the file if it does not already exist. | [Try it]()| -| [File_Copy(sourceFileName, destFileName, overwrite)](/file-append-all-text) | Copies an existing file to a new file. | [Try it]()| -| [File_Create(path)](/file-create) | Creates or overwrites a file in the specified path. | [Try it]()| -| [File_Decrypt(path)](/file-decrypt) | Decrypts a file that was encrypted by the current account using the [File_Encrypt](/file_encrypt) procedure. | [Try it]()| -| [File_Delete(path)](/file-delete) | Deletes the specified file. | [Try it]()| -| [File_Encrypt(path)](/file-encrypt) | Encrypts a file so that only the account used to encrypt the file can decrypt it. | [Try it]()| -| [File_GetCreationTime(path)](/file-get-creation-time) | Returns the creation date and time of the specified file or directory. | [Try it]()| -| [File_GetCreationTimeUtc(path)](/file-get-creation-time-utc) | Returns the creation date and time, in coordinated universal time (UTC), of the specified file or directory. | [Try it]()| -| [File_GetLastAccessTime(path)](/file-get-last-access-time) | Returns the date and time the specified file or directory was last accessed. | [Try it]()| -| [File_GetLastAccessTimeUtc(path)](/file-get-last-access-time-utc) | Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last accessed. | [Try it]()| -| [File_GetLastWriteTime(path)](/file-get-last-write-time) | Returns the date and time the specified file or directory was last written to. | [Try it]()| -| [File_GetLastWriteTimeUtc(path)](/file-get-last-write-time-utc) | Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to. | [Try it]()| -| [File_IsExists(path)](/file-isexists) | Determines whether the specified file exists. | [Try it]()| -| [File_Move(sourceFileName, destFileName)](/file-move) | Moves a specified file to a new location, providing the option to specify a new file name. | [Try it]()| -| [File_ReadAllText(path)](/file-move) | Opens a text file, reads and returns all the text in the file, and then closes the file. | [Try it]()| -| [File_Replace(sourceFileName, destFileName, destBackupFileName, ignoreMetadataErrors)](/file-replace) | Replaces the contents of a specified file with the contents of another file, deleting the original file, and creating a backup of the replaced file and optionally ignores merge errors. | [Try it]()| -| [File_SetCreationTime(path, creationTime)](/file-set-creation-time) | Sets the date and time the file was created. | [Try it]()| -| [File_SetCreationTimeUtc(path, creationTime)](/file-set-creation-time-utc) | Sets the date and time, in coordinated universal time (UTC), that the file was created. | [Try it]()| -| [File_SetLastAccessTime(path, lastAccessTime)](/file-set-last-access-time) | Sets the date and time the file was created. | [Try it]()| -| [File_SetLastAccessTimeUtc(path, lastAccessTime)](/file-set-last-access-time-utc) | Sets the date and time, in coordinated universal time (UTC), that the specified file was last accessed. | [Try it]()| -| [File_SetLastWriteTime(path, lastWriteTime)](/file-set-last-write-time) | Sets the date and time that the specified file was last written to. | [Try it]()| -| [File_SetLastWriteTimeUtc(path, lastWriteTime)](/file-set-last-write-time-utc) | Sets the date and time, in coordinated universal time (UTC), that the specified file was last written to. | [Try it]()| -| [File_WriteAllText(path, contents)](/file-write-all-text) | Creates a new file, write the contents to the file, and then closes the file. If the target file already exists, it is overwritten. | [Try it]()| diff --git a/docs2/pages/documentations/math/math-Tanh.md b/docs2/pages/documentations/math/math-Tanh.md deleted file mode 100644 index 024f42f..0000000 --- a/docs2/pages/documentations/math/math-Tanh.md +++ /dev/null @@ -1,24 +0,0 @@ -# Math_Tanh - -`Math_Tanh` returns the hyperbolic tangent of the specified angle. - -```csharp -Math_Tanh ( - @value FLOAT (53)) -RETURNS FLOAT (53) -``` - -## Parameters - - - **value**: An angle, measured in radians. - -## Returns - -The hyperbolic tangent of value. If value is equal to NegativeInfinity or PositiveInfinity, PositiveInfinity is returned. If value is equal to NaN, NaN is returned. - -## Example - -```csharp -SELECT SQLNET::Math_Tanh(0.2) -``` - diff --git a/docs2/pages/documentations/math/math-bigmul.md b/docs2/pages/documentations/math/math-bigmul.md deleted file mode 100644 index 86727eb..0000000 --- a/docs2/pages/documentations/math/math-bigmul.md +++ /dev/null @@ -1,26 +0,0 @@ -# Math_BigMul - -`Math_BigMul` produces the full product of two 32-bit numbers. - -```csharp -Math_BigMul ( - @a INT, - @b INT) -RETURNS BIGINT -``` - -## Parameters - - - **a**: The first number to multiply. - - **b**: The second number to multiply. - -## Returns - -The number containing the product of the specified numbers. - -## Example - -```csharp -SELECT SQLNET::Math_BigMul(2147483647, 2147483647) -``` - diff --git a/docs2/pages/documentations/math/math-cosh.md b/docs2/pages/documentations/math/math-cosh.md deleted file mode 100644 index fe1e2c2..0000000 --- a/docs2/pages/documentations/math/math-cosh.md +++ /dev/null @@ -1,24 +0,0 @@ -# Math_Cosh - -`Math_Cosh` returns the hyperbolic cosine of the specified angle. - -```csharp -Math_Cosh ( - @value FLOAT (53)) -RETURNS FLOAT (53) -``` - -## Parameters - - - **value**: An angle, measured in radians. - -## Returns - -The hyperbolic cosine of value. If value is equal to NegativeInfinity or PositiveInfinity, PositiveInfinity is returned. If value is equal to NaN, NaN is returned. - -## Example - -```csharp -SELECT SQLNET::Math_Cosh(0.1) -``` - diff --git a/docs2/pages/documentations/math/math-cube-root.md b/docs2/pages/documentations/math/math-cube-root.md deleted file mode 100644 index 6fd7f8b..0000000 --- a/docs2/pages/documentations/math/math-cube-root.md +++ /dev/null @@ -1,24 +0,0 @@ -# Math_CubeRoot - -`Math_CubeRoot` returns the cube root of a specified number. - -```csharp -Math_CubeRoot ( - @value FLOAT (53)) -RETURNS FLOAT (53) -``` - -## Parameters - - - **value**: The number whose cude root is to be found. - -## Returns - -The cube root of a `value`. - -## Example - -```csharp -SELECT SQLNET::Math_CubeRoot(8) -``` - diff --git a/docs2/pages/documentations/math/math-ieee-remainder.md b/docs2/pages/documentations/math/math-ieee-remainder.md deleted file mode 100644 index ea12e5a..0000000 --- a/docs2/pages/documentations/math/math-ieee-remainder.md +++ /dev/null @@ -1,27 +0,0 @@ -# Math_IEEERemainder - -`Math_IEEERemainder` returns the remainder resulting from the division of a specified number by another specified number. - -```csharp -Math_IEEERemainder ( - @x INT, - @y INT) -RETURNS BIGINT -``` - -## Parameters - - - **x**: A dividend. - - **y**: A divisor - -## Returns - -A number equal to `x` - (`y` Q), where Q is the quotient of `x` / `y` rounded to the nearest integer (if `x` / `y` falls halfway between two integers, the even integer is returned). - -## Example - -```csharp -SELECT SQLNET::Math_IEEERemainder(3, 2) -SELECT SQLNET::Math_IEEERemainder(-16.3, 4.1) -``` - diff --git a/docs2/pages/documentations/math/math-nth-root.md b/docs2/pages/documentations/math/math-nth-root.md deleted file mode 100644 index 0c2678e..0000000 --- a/docs2/pages/documentations/math/math-nth-root.md +++ /dev/null @@ -1,25 +0,0 @@ -# Math_NthRoot - -`Math_NthRoot` returns the nth root of a specified number. - -```csharp -Math_NthRoot ( - @value FLOAT (53), - @nth FLOAT (53)) -RETURNS FLOAT (53) -``` - -## Parameters - - - **value**: The number whose nth root is to be found. - -## Returns - -The nth root of a `value`. - -## Example - -```csharp -SELECT SQLNET::Math_NthRoot(8) -``` - diff --git a/docs2/pages/documentations/math/math-remainder-int32.md b/docs2/pages/documentations/math/math-remainder-int32.md deleted file mode 100644 index 735e2ed..0000000 --- a/docs2/pages/documentations/math/math-remainder-int32.md +++ /dev/null @@ -1,26 +0,0 @@ -# Math_RemainderInt32 - -`Math_RemainderInt32` returns the remainder of two 32-bit signed integers. - -```csharp -Math_RemainderInt32 ( - @a INT, - @b INT) -RETURNS INT -``` - -## Parameters - - - **a**: A dividend. - - **b**: A divisor - -## Returns - -The remainder of the specified numbers. - -## Example - -```csharp -SELECT SQLNET::Math_RemainderInt32(2147483647, 2000) -``` - diff --git a/docs2/pages/documentations/math/math-remainder-int64.md b/docs2/pages/documentations/math/math-remainder-int64.md deleted file mode 100644 index c825c05..0000000 --- a/docs2/pages/documentations/math/math-remainder-int64.md +++ /dev/null @@ -1,25 +0,0 @@ -# Math_RemainderInt64 - -`Math_RemainderInt64` returns the remainder of two 64-bit signed integers. -```csharp -Math_RemainderInt64 ( - @a INT, - @b INT) -RETURNS INT -``` - -## Parameters - - - **a**: A dividend. - - **b**: A divisor - -## Returns - -The remainder of the specified numbers. - -## Example - -```csharp -SELECT SQLNET::Math_RemainderInt64(2147483647, 2000) -``` - diff --git a/docs2/pages/documentations/math/math-sinh.md b/docs2/pages/documentations/math/math-sinh.md deleted file mode 100644 index b41c48b..0000000 --- a/docs2/pages/documentations/math/math-sinh.md +++ /dev/null @@ -1,24 +0,0 @@ -# Math_Sinh - -`Math_Sinh` returns the hyperbolic sine of the specified angle. - -```csharp -Math_Sinh ( - @value FLOAT (53)) -RETURNS FLOAT (53) -``` - -## Parameters - - - **value**: An angle, measured in radians. - -## Returns - -The hyperbolic sine of value. If value is equal to NegativeInfinity or PositiveInfinity, PositiveInfinity is returned. If value is equal to NaN, NaN is returned. - -## Example - -```csharp -SELECT SQLNET::Math_Sinh(0.1) -``` - diff --git a/docs2/pages/documentations/math/math.md b/docs2/pages/documentations/math/math.md deleted file mode 100644 index 0f5bccd..0000000 --- a/docs2/pages/documentations/math/math.md +++ /dev/null @@ -1,15 +0,0 @@ -# Math - -Provides methods for trigonometric, and other common mathematical functions. - -| Name | Description | Example | -| :--- | :---------- | :------ | -| [Math_BigMul(a, b)](/math-bigmul) | Produces the full product of two 32-bit numbers. | [Try it]()| -| [Math_Cosh(value)](/math-cosh) | Returns the hyperbolic cosine of the specified angle. | [Try it]()| -| [Math_CubeRoot(value)](/math-cube-root) | Returns the cube root of a specified number. | [Try it]()| -| [Math_IEEERemainder(x, y)](/math-cube-root) | Returns the remainder resulting from the division of a specified number by another specified number. | [Try it]()| -| [Math_NthRoot(value, nth)](/math-nth-root) | Returns the nth root of a specified number. | [Try it]()| -| [Math_RemainderInt32(a, b)](/math-remainder-int32) | Returns the remainder of two 32-bit signed integers. | [Try it]()| -| [Math_RemainderInt64(a, b)](/math-remainder-int32) | Returns the remainder of two 64-bit signed integers. | [Try it]()| -| [Math_Sinh(value)](/math-sinh) | Returns the hyperbolic sine of the specified angle. | [Try it]()| -| [Math_Tanh(value)](/math-sinh) | Returns the hyperbolic tangent of the specified angle. | [Try it]()| diff --git a/docs2/pages/documentations/options.md b/docs2/pages/documentations/options.md deleted file mode 100644 index 2211dad..0000000 --- a/docs2/pages/documentations/options.md +++ /dev/null @@ -1,99 +0,0 @@ -# Options - -## AutoDispose() - -AutoDispose object and delegate from the cache after the code has been evaluated. - - -```csharp --- SELECT 3 -SELECT SQLNET::New('1+2').AutoDispose().EvalInt() as Result - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/994' %} - -Don't worry, we have you covered! Object and Delegate are automatically disposed after a period of time without activity. - -## Code(string code) - -Sets the code or expression to evaluate. - -DECLARE @sqlnet SQLNET = SQLNET::New('') - - -```csharp -DECLARE @sqlnet SQLNET = SQLNET::New('') - --- SELECT 3 -SELECT @sqlnet.Code('1+2').EvalInt() as Result - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1125' %} - -## Dispose() - -Dispose object and delegate from the cache - - -```csharp -DECLARE @sqlnet SQLNET = SQLNET::New('x + y') - -SELECT @sqlnet - .ValueInt('x', 1) - .ValueInt('y', 2) - .EvalInt() as Result - - -SELECT @sqlnet.getcode() as Result - -DECLARE @dispose BIT = @sqlnet.Dispose() - ---Not work because dipose... -SELECT @sqlnet - .ValueInt('x', 1) - .ValueInt('y', 2) - .EvalInt() as Result - - ---Not work because dipose... -SELECT @sqlnet.getcode() as Result -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/996' %} - -Don't worry, we have you covered! Object and Delegate are automatically disposed after a period of time without activity. - -## Impersonate() - -Change the security context to impersonate the credential of the one who runs the T-SQL statements. - - -```csharp --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*").Select(x => x.FullName).OrderBy(x => x).ToList();') - .Impersonate() - --- SELECT * FROM DesktopFiles ORDER BY File.Fullname -EXEC dbo.SQLNET_EvalResultSet @sqlnet - -``` - - -Impersonate the current execution context under which the routine is executing. - -## Root() - -Root is required when the expression already specified value. This feature has been added to allow Parallelism. - - -```csharp -DECLARE @sqlnet SQLNET = SQLNET::New('x+y').ValueInt('y', 2).Root() - --- SELECT 3 -SELECT @sqlnet.ValueInt('x', 1).EvalInt() as Result - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/997' %} diff --git a/docs2/pages/documentations/path/path-change-extension.md b/docs2/pages/documentations/path/path-change-extension.md deleted file mode 100644 index 3027558..0000000 --- a/docs2/pages/documentations/path/path-change-extension.md +++ /dev/null @@ -1,26 +0,0 @@ -# Path_ChangeExtension - -`Path_ChangeExtension` returns a new string in which all occurrences of a specified `oldValye` Unicode character or String in the `source` string are replaced with another specified `newValue` Unicode character or String. - -```csharp -Path_ChangeExtension ( - @path NVARCHAR (4000), - @extension NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Parameters - - - **path**: The path information to modify. - - **extension**: The new extension (with or without a leading period). Specify `null` to remove an existing extension from `path`. - -## Returns - - - The modified path information. - -## Example - -```csharp -SELECT SQLNET::Path_ChangeExtension('C:\Temp\MyTest.txt', '.ext') -``` diff --git a/docs2/pages/documentations/path/path-combine.md b/docs2/pages/documentations/path/path-combine.md deleted file mode 100644 index 6f43ff2..0000000 --- a/docs2/pages/documentations/path/path-combine.md +++ /dev/null @@ -1,26 +0,0 @@ -# Path_Combine - -`Path_Combine` combines two strings into a path. - -```csharp -Path_Combine ( - @path1 NVARCHAR (4000), - @path2 NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Parameters - - - **path1**: The first path to combine. - - **path2**: The second path to combine. - -## Returns - - - The combined paths. If one of the specified paths is a zero-length string, this method returns the other path. If `path2` contains an absolute path, this method returns `path2`. - -## Example - -```csharp -SELECT SQLNET::Path_Combine('C:\Temp\', 'MyTest.txt') -``` diff --git a/docs2/pages/documentations/path/path-get-directory-name.md b/docs2/pages/documentations/path/path-get-directory-name.md deleted file mode 100644 index 6a5337c..0000000 --- a/docs2/pages/documentations/path/path-get-directory-name.md +++ /dev/null @@ -1,24 +0,0 @@ -# Path_GetDirectoryName - -`Path_GetDirectoryName` returns the directory information for the specified path string. - -```csharp -Path_GetDirectoryName ( - @path NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Parameters - - - **path**: The path of a file or directory. - -## Returns - - - Directory information for `path`, or `null` if path denotes a root directory or is `null`. Returns Empty if `path` does not contain directory information. - -## Example - -```csharp -SELECT SQLNET::Path_GetDirectoryName('C:\Temp\MyTest.txt') -``` diff --git a/docs2/pages/documentations/path/path-get-extension.md b/docs2/pages/documentations/path/path-get-extension.md deleted file mode 100644 index 714c29c..0000000 --- a/docs2/pages/documentations/path/path-get-extension.md +++ /dev/null @@ -1,24 +0,0 @@ -# Path_GetExtension - -`Path_GetExtension` returns the extension of the specified path string. - -```csharp -Path_GetExtension ( - @path NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Parameters - - - **path**: The path string from which to get the extension. - -## Returns - -The extension of the specified path (including the period "."), or null, or empty string. If `path` is null, it returns null. If path does not have extension information, it returns empty string. - -## Example - -```csharp -SELECT SQLNET::Path_GetExtension('C:\Temp\MyTest.txt') -``` diff --git a/docs2/pages/documentations/path/path-get-file-name-without-extension.md b/docs2/pages/documentations/path/path-get-file-name-without-extension.md deleted file mode 100644 index d099315..0000000 --- a/docs2/pages/documentations/path/path-get-file-name-without-extension.md +++ /dev/null @@ -1,24 +0,0 @@ -# Path_GetFileNameWithoutExtension - -`Path_GetFileNameWithoutExtension` returns the file name and extension of the specified path string without the extension. - -```csharp -Path_GetFileNameWithoutExtension ( - @path NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Parameters - - - **path**: The path string from which to obtain the file name and extension. - -## Returns - -The path string minus the last period (.) and all characters following it. - -## Example - -```csharp -SELECT SQLNET::Path_GetFileNameWithoutExtension('C:\Temp\MyTest.txt') -``` diff --git a/docs2/pages/documentations/path/path-get-file-name.md b/docs2/pages/documentations/path/path-get-file-name.md deleted file mode 100644 index 21433c5..0000000 --- a/docs2/pages/documentations/path/path-get-file-name.md +++ /dev/null @@ -1,24 +0,0 @@ -# Path_GetFileName - -`Path_GetFileName` returns the file name and extension of the specified path string. - -```csharp -Path_GetFileName ( - @path NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Parameters - - - **path**: The path string from which to obtain the file name and extension. - -## Returns - -The characters after the last directory character in `path`. If the last character of `path` is a directory or volume separator character, this method returns empty string. If `path` is `null`, this method returns `null`. - -## Example - -```csharp -SELECT SQLNET::Path_GetFileName('C:\Temp\MyTest.txt') -``` diff --git a/docs2/pages/documentations/path/path-get-full-path.md b/docs2/pages/documentations/path/path-get-full-path.md deleted file mode 100644 index d87a1de..0000000 --- a/docs2/pages/documentations/path/path-get-full-path.md +++ /dev/null @@ -1,24 +0,0 @@ -# Path_GetFullPath - -`Path_GetFullPath` returns the absolute path for the specified path string. - -```csharp -Path_GetFullPath ( - @path NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Parameters - - - **path**: The file or directory for which to obtain absolute path information. - -## Returns - -The fully qualified location of `path`. - -## Example - -```csharp -SELECT SQLNET::Path_GetFullPath('MyTest.txt') -``` diff --git a/docs2/pages/documentations/path/path-get-path-root.md b/docs2/pages/documentations/path/path-get-path-root.md deleted file mode 100644 index 9b43fa7..0000000 --- a/docs2/pages/documentations/path/path-get-path-root.md +++ /dev/null @@ -1,24 +0,0 @@ -# Path_GetPathRoot - -`Path_GetPathRoot` returns the root directory information of the specified path. - -```csharp -Path_GetPathRoot ( - @path NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Parameters - - - **path**: The path from which to obtain root directory information. - -## Returns - -The root directory of `path`, or `null` if `path` is `null`, or an empty string if `path` does not contain root directory information. - -## Example - -```csharp -SELECT SQLNET::Path_GetPathRoot('MyTest.txt') -``` diff --git a/docs2/pages/documentations/path/path-get-random-file-name.md b/docs2/pages/documentations/path/path-get-random-file-name.md deleted file mode 100644 index 25723c4..0000000 --- a/docs2/pages/documentations/path/path-get-random-file-name.md +++ /dev/null @@ -1,18 +0,0 @@ -# Path_GetRandomFileName - -`Path_GetRandomFileName` returns a random folder name or file name. - -```csharp -Path_GetRandomFileName () -RETURNS NVARCHAR (4000) -``` - -## Returns - -A random folder name or file name. - -## Example - -```csharp -SELECT SQLNET::Path_GetRandomFileName() -``` diff --git a/docs2/pages/documentations/path/path-get-temp-file-name.md b/docs2/pages/documentations/path/path-get-temp-file-name.md deleted file mode 100644 index 9ca9d27..0000000 --- a/docs2/pages/documentations/path/path-get-temp-file-name.md +++ /dev/null @@ -1,18 +0,0 @@ -# Path_GetTempFileName - -`Path_GetTempFileName` creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file. - -```csharp -Path_GetTempFileName () -RETURNS NVARCHAR (4000) -``` - -## Returns - -The full path of the temporary file. - -## Example - -```csharp -SELECT SQLNET::Path_GetTempFileName() -``` diff --git a/docs2/pages/documentations/path/path-get-temp-path.md b/docs2/pages/documentations/path/path-get-temp-path.md deleted file mode 100644 index 6205700..0000000 --- a/docs2/pages/documentations/path/path-get-temp-path.md +++ /dev/null @@ -1,18 +0,0 @@ -# Path_GetTempPath - -`Path_GetTempPath` returns the path of the current user's temporary folder. - -```csharp -Path_GetTempPath () -RETURNS NVARCHAR (4000) -``` - -## Returns - -The path to the temporary folder, ending with a backslash. - -## Example - -```csharp -SELECT SQLNET::Path_GetTempPath() -``` diff --git a/docs2/pages/documentations/path/path-has-extension.md b/docs2/pages/documentations/path/path-has-extension.md deleted file mode 100644 index af22a94..0000000 --- a/docs2/pages/documentations/path/path-has-extension.md +++ /dev/null @@ -1,24 +0,0 @@ -# Path_HasExtension - -`Path_HasExtension` determines whether a path includes a file name extension. - -```csharp -Path_HasExtension ( - @path NVARCHAR (4000) - ) -RETURNS BIT -``` - -## Parameters - - - **path**: The path to search for an extension. - -## Returns - -`true` if the characters that follow the last directory separator (\\ or /) or volume separator (:) in the path include a period (.) followed by one or more characters; otherwise, `false`. - -## Example - -```csharp -SELECT SQLNET::Path_HasExtension('C:\Temp\MyTest.txt') -``` diff --git a/docs2/pages/documentations/path/path-is-path-rooted.md b/docs2/pages/documentations/path/path-is-path-rooted.md deleted file mode 100644 index fcec3c4..0000000 --- a/docs2/pages/documentations/path/path-is-path-rooted.md +++ /dev/null @@ -1,25 +0,0 @@ -# Path_IsPathRooted - -`Path_IsPathRooted` gets a value indicating whether the specified path string contains a root. - -```csharp -Path_IsPathRooted ( - @path NVARCHAR (4000) - ) -RETURNS BIT -``` - -## Parameters - - - **path**: The path to test. - -## Returns - -`true` if path contains a root; otherwise, `false`. - -## Example - -```csharp -SELECT SQLNET::Path_IsPathRooted('C:\Temp\MyTest.txt') -SELECT SQLNET::Path_IsPathRooted('Temp\MyTest.txt') -``` diff --git a/docs2/pages/documentations/path/path.md b/docs2/pages/documentations/path/path.md deleted file mode 100644 index b4d6b8e..0000000 --- a/docs2/pages/documentations/path/path.md +++ /dev/null @@ -1,20 +0,0 @@ -# Path - -Performs operations on string instances that contain file or directory path information. These operations are performed in a cross-platform manner. - -| Name | Description | Example | -| :--- | :---------- | :------ | -| [Path_ChangeExtension(path, extension)](/path-change-extension) | Changes the extension of a path string. | [Try it]()| -| [Path_Combine(path1, path2)](/path-combine) | Combines two strings into a path. | [Try it]()| -| [Path_GetDirectoryName(path)](/path-get-directory-name) | Returns the directory information for the specified path string. | [Try it]()| -| [Path_GetExtension(path)](/path-get-extension) | Returns the extension of the specified path string. | [Try it]()| -| [Path_GetFileName(path)](/path-get-file-name) | Returns the file name and extension of the specified path string. | [Try it]()| -| [Path_GetFileNameWithoutExtension(path)](/path-get-file-name-without-extension) | Returns the file name and extension of the specified path string without the extension. | [Try it]()| -| [Path_GetFullPath(path)](/path-get-full-path) | Returns the absolute path for the specified path string. | [Try it]()| -| [Path_GetPathRoot(path)](/path-get-path-root) | Returns the root directory information of the specified path. | [Try it]()| -| [Path_GetRandomFileName()](/path-get-random-file-name) | Returns a random folder name or file name. | [Try it]()| -| [Path_GetTempFileName()](/path-get-temp-file-name) | Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file. | [Try it]()| -| [Path_GetTempPath()](/path-get-temp-path) | Returns the path of the current user's temporary folder. | [Try it]()| -| [Path_GetFileName(path)](/path-get-file-name) | Returns the file name and extension of the specified path string. | [Try it]()| -| [Path_HasExtension(path)](/path-get-has-extension) | Determines whether a path includes a file name extension. | [Try it]()| -| [Path_IsPathRooted(path)](/path-get-is-path-rooted) | Gets a value indicating whether the specified path string contains a root. | [Try it]()| diff --git a/docs2/pages/documentations/regex/regex-escape.md b/docs2/pages/documentations/regex/regex-escape.md deleted file mode 100644 index 0b28a60..0000000 --- a/docs2/pages/documentations/regex/regex-escape.md +++ /dev/null @@ -1,25 +0,0 @@ -# Regex_Escape - -`Regex_Escape` escapes a minimal set of characters (\, *, +, ?, |, {, [, (,), ^, $, ., #, and white space) by replacing them with their escape codes. This instructs the regular expression engine to interpret these characters literally rather than as metacharacters. - -```csharp -Regex_Escape ( - @input NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - -## Returns - -A string of characters with metacharacters converted to their escaped form. - -## Example - -```csharp -SELECT SQLNET::Regex_Escape('test(*.*)') -``` - diff --git a/docs2/pages/documentations/regex/regex-index.md b/docs2/pages/documentations/regex/regex-index.md deleted file mode 100644 index a3a8cc7..0000000 --- a/docs2/pages/documentations/regex/regex-index.md +++ /dev/null @@ -1,44 +0,0 @@ -# Regex_Index - -`Regex_Index` returns the position in the original string where the first character of the captured substring is found. - -```csharp -Regex_Index ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - -## Returns - -The zero-based index position in the original string where the first character of the captured substring is found or -1 if it is not. - -## Example - -```csharp -SELECT SQLNET::Regex_Index('An extraordinary day dawns with each new day.', '\be\w*\b') -``` - -# Regex_Index4k - -It is equivalent to `Regex_Index` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_Index4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::Regex_Index4k('An extraordinary day dawns with each new day.', '\be\w*\b') -``` diff --git a/docs2/pages/documentations/regex/regex-indexop.md b/docs2/pages/documentations/regex/regex-indexop.md deleted file mode 100644 index a4a1766..0000000 --- a/docs2/pages/documentations/regex/regex-indexop.md +++ /dev/null @@ -1,68 +0,0 @@ -# Regex_IndexOp - -`Regex_IndexOp` returns the position in the original string where the first character of the captured substring is found using the specified matching options. - -```csharp -Regex_IndexOp ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX), - @options INT - ) -RETURNS INT -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - - **options**: A bitwise combination of the enumeration values that provide options for matching. - -### Options - -You can use any of the following options. - -| Options |Integer Value | Descritpiton | -|:----------------------|:--------------|:--------------| -|None | 0 | Specifies that no options are set. | -|IgnoreCase | 1 | Specifies case-insensitive matching. | -|Multiline | 2 | Multiline mode. Changes the meaning of ^ and $ so they match at the beginning and end, respectively, of any line, and not just the beginning and end of the entire string.| -|ExplicitCapture | 4 | Specifies that the only valid captures are explicitly named or numbered groups of the form (?…). This allows unnamed parentheses to act as noncapturing groups without the syntactic clumsiness of the expression (?:…).| -|Compiled | 8 | Specifies that the regular expression is compiled to an assembly. This yields faster execution but increases startup time. | -|Singleline | 16 | Specifies single-line mode. Changes the meaning of the dot (.) so it matches every character (instead of every character except \n).| -|IgnorePatternWhitespace| 32 | Eliminates unescaped whitespace from the pattern and enables comments marked with #. | -|RightToLeft | 64 | Specifies that the search will be from right to left instead of from left to right. | -|ECMAScript | 256 | Enables ECMAScript-compliant behavior for the expression. This value can be used only in conjunction with the `IgnoreCase`, `Multiline`, and `Compiled` values. The use of this value with any other values results in an exception.| -|CultureInvariant | 512 | Specifies that cultural differences in language are ignored. | - -You can also use more than one option by specifying the sum of their integer values. For example, to specify `IgnoreCase` and `Multiline` options, use 3 integer value and pass it as 3rd parameter. - -## Returns - -The zero-based index position in the original string where the first character of the captured substring is found or -1 if it is not. - -## Example - -```csharp -SELECT SQLNET::Regex_IndexOp('An extraordinary day dawns with each new day.', '\be\w*\b', 1) -SELECT SQLNET::Regex_IndexOp('An extraordinary day dawns with each new day.', '\be\w*\b', 3) -``` - -# Regex_IndexOp4k - -It is equivalent to `Regex_IndexOp` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_IndexOp4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000), - @options INT - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::Regex_IndexOp4k('An extraordinary day dawns with each new day.', '\be\w*\b', 1) -SELECT SQLNET::Regex_IndexOp4k('An extraordinary day dawns with each new day.', '\be\w*\b', 3) -``` diff --git a/docs2/pages/documentations/regex/regex-ismatch.md b/docs2/pages/documentations/regex/regex-ismatch.md deleted file mode 100644 index 5106de9..0000000 --- a/docs2/pages/documentations/regex/regex-ismatch.md +++ /dev/null @@ -1,46 +0,0 @@ -# Regex_IsMatch - -`Regex_IsMatch` indicates whether the specified regular expression finds a match in the specified input string. - -```csharp -Regex_IsMatch ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX) - ) -RETURNS BIT -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - -## Returns - -The zero-based index position in the original string where the first character of the captured substring is found or -1 if it is not. - -## Example - -```csharp -SELECT SQLNET::Regex_IsMatch('A08Z-931-468A', '^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$') -SELECT SQLNET::Regex_IsMatch('_A90-123-129X', '^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$') -``` - -# Regex_IsMatch4k - -It is equivalent to `Regex_IsMatch` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_IsMatch4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000) - ) -RETURNS BIT -``` - -## Example - -```csharp -SELECT SQLNET::Regex_IsMatch4k('A08Z-931-468A', '^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$') -SELECT SQLNET::Regex_IsMatch4k('_A90-123-129X', '^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$') -``` diff --git a/docs2/pages/documentations/regex/regex-ismatchop.md b/docs2/pages/documentations/regex/regex-ismatchop.md deleted file mode 100644 index d954416..0000000 --- a/docs2/pages/documentations/regex/regex-ismatchop.md +++ /dev/null @@ -1,68 +0,0 @@ -# Regex_IsMatchOp - -`Regex_IsMatchOp` indicates whether the specified regular expression finds a match in the specified input string using the specified matching options. - -```csharp -Regex_IsMatchOp ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX), - @options INT - ) -RETURNS BIT -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - - **options**: A bitwise combination of the enumeration values that provide options for matching. - -### Options - -You can use any of the following options. - -| Options |Integer Value | Descritpiton | -|:----------------------|:--------------|:--------------| -|None | 0 | Specifies that no options are set. | -|IgnoreCase | 1 | Specifies case-insensitive matching. | -|Multiline | 2 | Multiline mode. Changes the meaning of ^ and $ so they match at the beginning and end, respectively, of any line, and not just the beginning and end of the entire string.| -|ExplicitCapture | 4 | Specifies that the only valid captures are explicitly named or numbered groups of the form (?…). This allows unnamed parentheses to act as noncapturing groups without the syntactic clumsiness of the expression (?:…).| -|Compiled | 8 | Specifies that the regular expression is compiled to an assembly. This yields faster execution but increases startup time. | -|Singleline | 16 | Specifies single-line mode. Changes the meaning of the dot (.) so it matches every character (instead of every character except \n).| -|IgnorePatternWhitespace| 32 | Eliminates unescaped whitespace from the pattern and enables comments marked with #. | -|RightToLeft | 64 | Specifies that the search will be from right to left instead of from left to right. | -|ECMAScript | 256 | Enables ECMAScript-compliant behavior for the expression. This value can be used only in conjunction with the `IgnoreCase`, `Multiline`, and `Compiled` values. The use of this value with any other values results in an exception.| -|CultureInvariant | 512 | Specifies that cultural differences in language are ignored. | - -You can also use more than one option by specifying the sum of their integer values. For example, to specify `IgnoreCase` and `Multiline` options, use 3 integer value and pass it as 3rd parameter. - -## Returns - -The zero-based index position in the original string where the first character of the captured substring is found or -1 if it is not. - -## Example - -```csharp -SELECT SQLNET::Regex_IsMatchOp('A08Z-931-468A', '^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$', 1) -SELECT SQLNET::Regex_IsMatchOp('_A90-123-129X', '^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$', 3) -``` - -# Regex_IsMatchOp4k - -It is equivalent to `Regex_IsMatchOp` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_IsMatchOp4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000), - @options INT - ) -RETURNS BIT -``` - -## Example - -```csharp -SELECT SQLNET::Regex_IsMatchOp4k('A08Z-931-468A', '^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$', 1) -SELECT SQLNET::Regex_IsMatchOp4k('_A90-123-129X', '^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$', 3) -``` diff --git a/docs2/pages/documentations/regex/regex-match.md b/docs2/pages/documentations/regex/regex-match.md deleted file mode 100644 index 37560fd..0000000 --- a/docs2/pages/documentations/regex/regex-match.md +++ /dev/null @@ -1,44 +0,0 @@ -# Regex_Match - -`Regex_Match` searches an input string for a substring that matches a regular expression pattern and returns the first occurrence of that string. - -```csharp -Regex_Match ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - -## Returns - -Gets the captured substring from the input string. - -## Example - -```csharp -SELECT SQLNET::Regex_Match('An extraordinary day dawns with each new day.', '\be\w*\b') -``` - -# Regex_Match4k - -It is equivalent to `Regex_Match` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_Match4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::Regex_Match4k('An extraordinary day dawns with each new day.', '\be\w*\b') -``` diff --git a/docs2/pages/documentations/regex/regex-matchop.md b/docs2/pages/documentations/regex/regex-matchop.md deleted file mode 100644 index f1f7217..0000000 --- a/docs2/pages/documentations/regex/regex-matchop.md +++ /dev/null @@ -1,68 +0,0 @@ -# Regex_MatchOp - -`Regex_MatchOp` searches an input string for a substring that matches a regular expression pattern and returns the first occurrence of that string using the specified matching options. - -```csharp -Regex_MatchOp ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX), - @options INT - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - - **options**: A bitwise combination of the enumeration values that provide options for matching. - -### Options - -You can use any of the following options. - -| Options |Integer Value | Descritpiton | -|:----------------------|:--------------|:--------------| -|None | 0 | Specifies that no options are set. | -|IgnoreCase | 1 | Specifies case-insensitive matching. | -|Multiline | 2 | Multiline mode. Changes the meaning of ^ and $ so they match at the beginning and end, respectively, of any line, and not just the beginning and end of the entire string.| -|ExplicitCapture | 4 | Specifies that the only valid captures are explicitly named or numbered groups of the form (?…). This allows unnamed parentheses to act as noncapturing groups without the syntactic clumsiness of the expression (?:…).| -|Compiled | 8 | Specifies that the regular expression is compiled to an assembly. This yields faster execution but increases startup time. | -|Singleline | 16 | Specifies single-line mode. Changes the meaning of the dot (.) so it matches every character (instead of every character except \n).| -|IgnorePatternWhitespace| 32 | Eliminates unescaped whitespace from the pattern and enables comments marked with #. | -|RightToLeft | 64 | Specifies that the search will be from right to left instead of from left to right. | -|ECMAScript | 256 | Enables ECMAScript-compliant behavior for the expression. This value can be used only in conjunction with the `IgnoreCase`, `Multiline`, and `Compiled` values. The use of this value with any other values results in an exception.| -|CultureInvariant | 512 | Specifies that cultural differences in language are ignored. | - -You can also use more than one option by specifying the sum of their integer values. For example, to specify `IgnoreCase` and `Multiline` options, use 3 integer value and pass it as 3rd parameter. - -## Returns - -Gets the captured substring from the input string. - -## Example - -```csharp -SELECT SQLNET::Regex_MatchOp('An extraordinary day dawns with each new day.', '\be\w*\b', 1) -SELECT SQLNET::Regex_MatchOp('An extraordinary day dawns with each new day.', '\be\w*\b', 3) -``` - -# Regex_MatchOp4k - -It is equivalent to `Regex_MatchOp` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_MatchOp4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000), - @options INT - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::Regex_MatchOp4k('An extraordinary day dawns with each new day.', '\be\w*\b', 1) -SELECT SQLNET::Regex_MatchOp4k('An extraordinary day dawns with each new day.', '\be\w*\b', 3) -``` diff --git a/docs2/pages/documentations/regex/regex-replace.md b/docs2/pages/documentations/regex/regex-replace.md deleted file mode 100644 index 1d90df8..0000000 --- a/docs2/pages/documentations/regex/regex-replace.md +++ /dev/null @@ -1,47 +0,0 @@ -# Regex_Replace - -`Regex_Replace` replaces all strings that match a specified regular expression with a specified replacement string. - -```csharp -Regex_Replace ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX), - @replacement NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - - **replacement**: The replacement string. - -## Returns - -A new string that is identical to the `input` string, except that the `replacement` string takes the place of each matched string. If `pattern` is not matched in the current instance, the method returns the current instance unchanged. - -## Example - -```csharp -SELECT SQLNET::Regex_Replace('Dot Net Not Perls', 'N.t', 'NET') -``` - -# Regex_Replace4k - -It is equivalent to `Regex_Replace` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_Replace4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000), - @replacement NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::Regex_Replace4k('Dot Net Not Perls', 'N.t', 'NET') -``` diff --git a/docs2/pages/documentations/regex/regex-replaceop.md b/docs2/pages/documentations/regex/regex-replaceop.md deleted file mode 100644 index 720f40f..0000000 --- a/docs2/pages/documentations/regex/regex-replaceop.md +++ /dev/null @@ -1,69 +0,0 @@ -# Regex_ReplaceOp - -`Regex_ReplaceOp` replaces all strings that match a specified regular expression with a specified replacement string using the specified matching options. - -```csharp -Regex_ReplaceOp ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX), - @replacement NVARCHAR (MAX), - @options INT - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - - **replacement**: The replacement string. - - **options**: A bitwise combination of the enumeration values that provide options for matching. - -### Options - -You can use any of the following options. - -| Options |Integer Value | Descritpiton | -|:----------------------|:--------------|:--------------| -|None | 0 | Specifies that no options are set. | -|IgnoreCase | 1 | Specifies case-insensitive matching. | -|Multiline | 2 | Multiline mode. Changes the meaning of ^ and $ so they match at the beginning and end, respectively, of any line, and not just the beginning and end of the entire string.| -|ExplicitCapture | 4 | Specifies that the only valid captures are explicitly named or numbered groups of the form (?…). This allows unnamed parentheses to act as noncapturing groups without the syntactic clumsiness of the expression (?:…).| -|Compiled | 8 | Specifies that the regular expression is compiled to an assembly. This yields faster execution but increases startup time. | -|Singleline | 16 | Specifies single-line mode. Changes the meaning of the dot (.) so it matches every character (instead of every character except \n).| -|IgnorePatternWhitespace| 32 | Eliminates unescaped whitespace from the pattern and enables comments marked with #. | -|RightToLeft | 64 | Specifies that the search will be from right to left instead of from left to right. | -|ECMAScript | 256 | Enables ECMAScript-compliant behavior for the expression. This value can be used only in conjunction with the `IgnoreCase`, `Multiline`, and `Compiled` values. The use of this value with any other values results in an exception.| -|CultureInvariant | 512 | Specifies that cultural differences in language are ignored. | - -You can also use more than one option by specifying the sum of their integer values. For example, to specify `IgnoreCase` and `Multiline` options, use 3 integer value and pass it as 3rd parameter. - -## Returns - -The zero-based index position in the original string where the first character of the captured substring is found or -1 if it is not. - -## Example - -```csharp -SELECT SQLNET::Regex_ReplaceOp('Dot Net Not Perls', 'N.t', 'NET', 1) -``` - -# Regex_ReplaceOp4k - -It is equivalent to `Regex_ReplaceOp` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_ReplaceOp4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000), - @replacement NVARCHAR (4000), - @options INT - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::Regex_ReplaceOp4k(''Dot Net Not Perls', 'N.t', 'NET', 1) -``` diff --git a/docs2/pages/documentations/regex/regex-split.md b/docs2/pages/documentations/regex/regex-split.md deleted file mode 100644 index 2625755..0000000 --- a/docs2/pages/documentations/regex/regex-split.md +++ /dev/null @@ -1,44 +0,0 @@ -# Regex_Split - -`Regex_Split` splits an input string into an array of substrings at the positions defined by a regular expression pattern. - -```csharp -Regex_Split ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX) - ) -RETURNS TABLE (Match NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - -## Returns - -An array of strings. - -## Example - -```csharp -SELECT * FROM Regex_Split('plum--pear', '-') -``` - -# Regex_Split4k - -It is equivalent to `Regex_Split` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_Split4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000) - ) -RETURNS TABLE (Match NVARCHAR (4000) NULL) -``` - -## Example - -```csharp -SELECT * FROM Regex_Split4k('plum--pear', '-') -``` diff --git a/docs2/pages/documentations/regex/regex-splitop.md b/docs2/pages/documentations/regex/regex-splitop.md deleted file mode 100644 index 0637b4c..0000000 --- a/docs2/pages/documentations/regex/regex-splitop.md +++ /dev/null @@ -1,66 +0,0 @@ -# Regex_SplitOp - -`Regex_SplitOp` splits an input string into an array of substrings at the positions defined by a regular expression pattern using the specified matching options. - -```csharp -Regex_SplitOp ( - @input NVARCHAR (MAX), - @pattern NVARCHAR (MAX), - @options INT - ) -RETURNS TABLE (Match NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **input**: The input string that contains the text to convert. - - **pattern**: The regular expression pattern to match. - - **options**: A bitwise combination of the enumeration values that provide options for matching. - -### Options - -An array of strings. - -| Options |Integer Value | Descritpiton | -|:----------------------|:--------------|:--------------| -|None | 0 | Specifies that no options are set. | -|IgnoreCase | 1 | Specifies case-insensitive matching. | -|Multiline | 2 | Multiline mode. Changes the meaning of ^ and $ so they match at the beginning and end, respectively, of any line, and not just the beginning and end of the entire string.| -|ExplicitCapture | 4 | Specifies that the only valid captures are explicitly named or numbered groups of the form (?…). This allows unnamed parentheses to act as noncapturing groups without the syntactic clumsiness of the expression (?:…).| -|Compiled | 8 | Specifies that the regular expression is compiled to an assembly. This yields faster execution but increases startup time. | -|Singleline | 16 | Specifies single-line mode. Changes the meaning of the dot (.) so it matches every character (instead of every character except \n).| -|IgnorePatternWhitespace| 32 | Eliminates unescaped whitespace from the pattern and enables comments marked with #. | -|RightToLeft | 64 | Specifies that the search will be from right to left instead of from left to right. | -|ECMAScript | 256 | Enables ECMAScript-compliant behavior for the expression. This value can be used only in conjunction with the `IgnoreCase`, `Multiline`, and `Compiled` values. The use of this value with any other values results in an exception.| -|CultureInvariant | 512 | Specifies that cultural differences in language are ignored. | - -You can also use more than one option by specifying the sum of their integer values. For example, to specify `IgnoreCase` and `Multiline` options, use 3 integer value and pass it as 3rd parameter. - -## Returns - -Gets the captured substring from the input string. - -## Example - -```csharp -SELECT * FROM Regex_Split('plum--pear', '-', 1) -``` - -# Regex_SplitOp4k - -It is equivalent to `Regex_SplitOp` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -Regex_SplitOp4k ( - @input NVARCHAR (4000), - @pattern NVARCHAR (4000), - @options INT - ) -RETURNS TABLE (Match NVARCHAR (MAX) NULL) -``` - -## Example - -```csharp -SELECT * FROM Regex_Split4k('plum--pear', '-', 1) -``` diff --git a/docs2/pages/documentations/regex/regex.md b/docs2/pages/documentations/regex/regex.md deleted file mode 100644 index 0c36353..0000000 --- a/docs2/pages/documentations/regex/regex.md +++ /dev/null @@ -1,17 +0,0 @@ -# Regex - -Represents an immutable regular expression. - -| Name | Description | Example | -| :--- | :---------- | :------ | -| [Regex_Escape(input)](/regex-escape) | Escapes a minimal set of characters by replacing them with their escape codes. | [Try it]()| -| [Regex_Index(input, pattern)](/regex-index) | Returns the position in the original string where the first character of the captured substring is found. | [Try it]()| -| [Regex_IndexOp(input, pattern, options)](/regex-indexop) | Returns the position in the original string where the first character of the captured substring is found using the specified matching options. | [Try it]()| -| [Regex_IsMatch(input, pattern)](/regex-ismatch) | Indicates whether the specified regular expression finds a match in the specified input string. | [Try it]()| -| [Regex_IsMatchOp(input, pattern, options)](/regex-ismatchop) | Indicates whether the specified regular expression finds a match in the specified input string using the specified matching options. | [Try it]()| -| [Regex_Match(input, pattern)](/regex-match) | Searches an input string for a substring that matches a regular expression pattern and returns the first occurrence of that string. | [Try it]()| -| [Regex_MatchOp(input, pattern, options)](/regex-matchop) | Searches an input string for a substring that matches a regular expression pattern and returns the first occurrence of that string using the specified matching options. | [Try it]()| -| [Regex_Replace(input, pattern, replacement)](/regex-replace) | Replaces all strings that match a specified regular expression with a specified replacement string. | [Try it]()| -| [Regex_ReplaceOp(input, pattern, replacement, options)](/regex-replaceop) | Replaces all strings that match a specified regular expression with a specified replacement string using the specified matching options. | [Try it]()| -| [Regex_Split(input, pattern, replacement)](/regex-split) | Splits an input string into an array of substrings at the positions defined by a regular expression pattern. | [Try it]()| -| [Regex_SplitOp(input, pattern, replacement, options)](/regex-splitop) | Splits an input string into an array of substrings at the positions defined by a regular expression pattern using the specified matching options. | [Try it]()| diff --git a/docs2/pages/documentations/string/_sidebar.md b/docs2/pages/documentations/string/_sidebar.md deleted file mode 100644 index 7bc0dce..0000000 --- a/docs2/pages/documentations/string/_sidebar.md +++ /dev/null @@ -1,33 +0,0 @@ -- [String](string.md) - - [Compare CurrentCulture IgnoreCase](string-compare-current-culture-ignore-case.md) - - [Compare CurrentCulture](string-compare-current-culture.md) - - [Compare IgnoreCase](string-compare-ignore-case.md) - - [Compare InvariantCulture IgnoreCase](string-compare-invariant-culture-ignore-case.md) - - [Compare InvariantCulture](string-compare-invariant-culture.md) - - [Compare Ordinal IgnoreCase](string-compare-ordinal-ignore-case.md) - - [Compare Ordinal](string-compare-ordinal.md) - - [Compare](string-compare.md) - - [Contains](string-contains.md) - - [Endswith](string-endswith.md) - - [Indexof CurrentCulture IgnoreCase](string-indexof-current-culture-ignore-case.md) - - [Indexof CurrentCulture](string-indexof-current-culture.md) - - [Indexof InvariantCulture IgnoreCase](string-indexof-invariant-culture-ignore-case.md) - - [Indexof InvariantCulture](string-indexof-invariant-culture.md) - - [Indexof Ordinal IgnoreCase](string-indexof-ordinal-ignore-case.md) - - [Indexof Ordinal](string-indexof-ordinal.md) - - [Indexof](string-indexof.md) - - [Insert](string-insert.md) - - [LastIndexof CurrentCulture IgnoreCase](string-last-indexof-current-culture-ignore-case.md) - - [LastIndexof CurrentCulture](string-last-indexof-current-culture.md) - - [LastIndexof InvariantCulture IgnoreCase](string-last-indexof-invariant-culture-ignore-case.md) - - [LastIndexof InvariantCulture](string-last-indexof-invariant-culture.md) - - [LastIndexof Ordinal IgnoreCase](string-last-indexof-ordinal-ignore-case.md) - - [LastIndexof Ordinal](string-last-indexof-ordinal.md) - - [LastIndexof](string-last-indexof.md) - - [Length](string-length.md) - - [Occurrences](string-occurrences.md) - - [Padleft](string-padleft.md) - - [Padright](string-padright.md) - - [RemoveNumOfChars](string-remove-num-of-chars.md) - - [Remove](string-remove.md) - - [Replace](string-replace.md) diff --git a/docs2/pages/documentations/string/string-compare-current-culture-ignore-case.md b/docs2/pages/documentations/string/string-compare-current-culture-ignore-case.md deleted file mode 100644 index b2b49fd..0000000 --- a/docs2/pages/documentations/string/string-compare-current-culture-ignore-case.md +++ /dev/null @@ -1,52 +0,0 @@ -# String_CompareCurrentCultureIgnoreCase - -`String_CompareCurrentCultureIgnoreCase` compares two specified String objects using culture-sensitive sort rules, the current culture, and ignoring the case of the strings, and returns an integer that indicates their relative position in the sort order. - -```csharp -String_CompareCurrentCultureIgnoreCase ( - @strA NVARCHAR (MAX), - @strB NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **strA**: The first string to compare. - - **strB**: The second string to compare. - -## Returns - -A 32-bit signed integer that indicates the lexical relationship between the two comparands. - -| Value | Condition | -|:--------- |:--------- | -|Less than zero |strA precedes strB in the sort order.| -|Zero |strA occurs in the same position as strB in the sort order.| -|Greater than zero |strA follows strB in the sort order.| - -## Example - -```csharp -SELECT SQLNET::String_CompareCurrentCultureIgnoreCase('case', 'Case') -SELECT SQLNET::String_CompareCurrentCultureIgnoreCase('encyclopædia', 'encyclopaedia') -``` - -# String_CompareCurrentCultureIgnoreCase4k - -It is equivalent to `String_CompareCurrentCultureIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_CompareCurrentCultureIgnoreCase4k ( - @strA NVARCHAR (4000), - @strB NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_CompareCurrentCultureIgnoreCase4k('case', 'Case') -SELECT SQLNET::String_CompareCurrentCultureIgnoreCase4k('encyclopædia', 'encyclopaedia') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-compare-current-culture.md b/docs2/pages/documentations/string/string-compare-current-culture.md deleted file mode 100644 index 9563249..0000000 --- a/docs2/pages/documentations/string/string-compare-current-culture.md +++ /dev/null @@ -1,52 +0,0 @@ -# String_CompareCurrentCulture - -`String_CompareCurrentCulture` compares two specified String objects using culture-sensitive sort rules and the current culture, and returns an integer that indicates their relative position in the sort order. - -```csharp -String_CompareCurrentCulture ( - @strA NVARCHAR (MAX), - @strB NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **strA**: The first string to compare. - - **strB**: The second string to compare. - -## Returns - -A 32-bit signed integer that indicates the lexical relationship between the two comparands. - -| Value | Condition | -|:--------- |:--------- | -|Less than zero |strA precedes strB in the sort order.| -|Zero |strA occurs in the same position as strB in the sort order.| -|Greater than zero |strA follows strB in the sort order.| - -## Example - -```csharp -SELECT SQLNET::String_CompareCurrentCulture('case', 'Case') -SELECT SQLNET::String_CompareCurrentCulture('encyclopædia', 'encyclopaedia') -``` - -# String_CompareCurrentCulture4k - -It is equivalent to `String_CompareCurrentCulture` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_CompareCurrentCulture4k ( - @strA NVARCHAR (4000), - @strB NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_CompareCurrentCulture4k('case', 'Case') -SELECT SQLNET::String_CompareCurrentCulture4k('encyclopædia', 'encyclopaedia') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-compare-ignore-case.md b/docs2/pages/documentations/string/string-compare-ignore-case.md deleted file mode 100644 index 086cee6..0000000 --- a/docs2/pages/documentations/string/string-compare-ignore-case.md +++ /dev/null @@ -1,52 +0,0 @@ -# String_CompareIgnoreCase - -`String_CompareIgnoreCase` compares two specified String objects, ignoring or honoring their case, and returns an integer that indicates their relative position in the sort order. - -```csharp -String_CompareIgnoreCase ( - @strA NVARCHAR (MAX), - @strB NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **strA**: The first string to compare. - - **strB**: The second string to compare. - -## Returns - -A 32-bit signed integer that indicates the lexical relationship between the two comparands. - -| Value | Condition | -|:--------- |:--------- | -|Less than zero |strA precedes strB in the sort order.| -|Zero |strA occurs in the same position as strB in the sort order.| -|Greater than zero |strA follows strB in the sort order.| - -## Example - -```csharp -SELECT SQLNET::String_CompareIgnoreCase('case', 'Case') -SELECT SQLNET::String_CompareIgnoreCase('Archæology', 'ARCHÆOLOGY') -``` - -# String_CompareIgnoreCase4k - -It is equivalent to `String_CompareIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_CompareIgnoreCase4k ( - @strA NVARCHAR (4000), - @strB NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_CompareIgnoreCase4k('case', 'Case') -SELECT SQLNET::String_CompareIgnoreCase4k('Archæology', 'ARCHÆOLOGY') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-compare-invariant-culture-ignore-case.md b/docs2/pages/documentations/string/string-compare-invariant-culture-ignore-case.md deleted file mode 100644 index 016ba52..0000000 --- a/docs2/pages/documentations/string/string-compare-invariant-culture-ignore-case.md +++ /dev/null @@ -1,52 +0,0 @@ -# String_CompareInvariantCultureIgnoreCase - -`String_CompareInvariantCultureIgnoreCase` compares two specified String objects using culture-sensitive sort rules, the invariant culture, and ignoring the case of the strings, and returns an integer that indicates their relative position in the sort order. - -```csharp -String_CompareInvariantCultureIgnoreCase ( - @strA NVARCHAR (MAX), - @strB NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **strA**: The first string to compare. - - **strB**: The second string to compare. - -## Returns - -A 32-bit signed integer that indicates the lexical relationship between the two comparands. - -| Value | Condition | -|:--------- |:--------- | -|Less than zero |strA precedes strB in the sort order.| -|Zero |strA occurs in the same position as strB in the sort order.| -|Greater than zero |strA follows strB in the sort order.| - -## Example - -```csharp -SELECT SQLNET::String_CompareInvariantCultureIgnoreCase('case', 'Case') -SELECT SQLNET::String_CompareInvariantCultureIgnoreCase('encyclopædia', 'encyclopaedia') -``` - -# String_CompareInvariantCultureIgnoreCase4k - -It is equivalent to `String_CompareInvariantCultureIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_CompareInvariantCultureIgnoreCase4k ( - @strA NVARCHAR (4000), - @strB NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_CompareInvariantCultureIgnoreCase4k('case', 'Case') -SELECT SQLNET::String_CompareInvariantCultureIgnoreCase4k('encyclopædia', 'encyclopaedia') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-compare-invariant-culture.md b/docs2/pages/documentations/string/string-compare-invariant-culture.md deleted file mode 100644 index 66b22c8..0000000 --- a/docs2/pages/documentations/string/string-compare-invariant-culture.md +++ /dev/null @@ -1,52 +0,0 @@ -# String_CompareInvariantCulture - -`String_CompareInvariantCulture` compares two specified String objects using culture-sensitive sort rules and the invariant culture, and returns an integer that indicates their relative position in the sort order. - -```csharp -String_CompareInvariantCulture ( - @strA NVARCHAR (MAX), - @strB NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **strA**: The first string to compare. - - **strB**: The second string to compare. - -## Returns - -A 32-bit signed integer that indicates the lexical relationship between the two comparands. - -| Value | Condition | -|:--------- |:--------- | -|Less than zero |strA precedes strB in the sort order.| -|Zero |strA occurs in the same position as strB in the sort order.| -|Greater than zero |strA follows strB in the sort order.| - -## Example - -```csharp -SELECT SQLNET::String_CompareInvariantCulture('case', 'Case') -SELECT SQLNET::String_CompareInvariantCulture('encyclopædia', 'encyclopaedia') -``` - -# String_CompareInvariantCulture4k - -It is equivalent to `String_CompareInvariantCulture` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_CompareInvariantCulture4k ( - @strA NVARCHAR (4000), - @strB NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_CompareInvariantCulture4k('case', 'Case') -SELECT SQLNET::String_CompareInvariantCulture4k('encyclopædia', 'encyclopaedia') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-compare-ordinal-ignore-case.md b/docs2/pages/documentations/string/string-compare-ordinal-ignore-case.md deleted file mode 100644 index bf7d729..0000000 --- a/docs2/pages/documentations/string/string-compare-ordinal-ignore-case.md +++ /dev/null @@ -1,52 +0,0 @@ -# String_CompareOrdinalIgnoreCase - -`String_CompareOrdinalIgnoreCase` compares two specified String objects using ordinal (binary) sort rules and ignoring the case of the strings, and returns an integer that indicates their relative position in the sort order. - -```csharp -String_CompareOrdinalIgnoreCase ( - @strA NVARCHAR (MAX), - @strB NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **strA**: The first string to compare. - - **strB**: The second string to compare. - -## Returns - -A 32-bit signed integer that indicates the lexical relationship between the two comparands. - -| Value | Condition | -|:--------- |:--------- | -|Less than zero |strA precedes strB in the sort order.| -|Zero |strA occurs in the same position as strB in the sort order.| -|Greater than zero |strA follows strB in the sort order.| - -## Example - -```csharp -SELECT SQLNET::String_CompareOrdinalIgnoreCase('case', 'Case') -SELECT SQLNET::String_CompareOrdinalIgnoreCase('Archæology', 'ARCHÆOLOGY') -``` - -# String_CompareOrdinalIgnoreCase4k - -It is equivalent to `String_CompareOrdinalIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_CompareOrdinalIgnoreCase4k ( - @strA NVARCHAR (4000), - @strB NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_CompareOrdinalIgnoreCase4k('case', 'Case') -SELECT SQLNET::String_CompareOrdinalIgnoreCase4k('Archæology', 'ARCHÆOLOGY') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-compare-ordinal.md b/docs2/pages/documentations/string/string-compare-ordinal.md deleted file mode 100644 index b3bcba3..0000000 --- a/docs2/pages/documentations/string/string-compare-ordinal.md +++ /dev/null @@ -1,52 +0,0 @@ -# String_CompareOrdinal - -`String_CompareOrdinal` compares two specified String objects using ordinal (binary) sort rules, and returns an integer that indicates their relative position in the sort order. - -```csharp -String_CompareOrdinal ( - @strA NVARCHAR (MAX), - @strB NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **strA**: The first string to compare. - - **strB**: The second string to compare. - -## Returns - -A 32-bit signed integer that indicates the lexical relationship between the two comparands. - -| Value | Condition | -|:--------- |:--------- | -|Less than zero |strA precedes strB in the sort order.| -|Zero |strA occurs in the same position as strB in the sort order.| -|Greater than zero |strA follows strB in the sort order.| - -## Example - -```csharp -SELECT SQLNET::String_CompareOrdinal('case', 'Case') -SELECT SQLNET::String_CompareOrdinal('Archæology', 'ARCHÆOLOGY') -``` - -# String_CompareOrdinal4k - -It is equivalent to `String_CompareOrdinal` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_CompareOrdinal4k ( - @strA NVARCHAR (4000), - @strB NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_CompareOrdinal4k('case', 'Case') -SELECT SQLNET::String_CompareOrdinal4k('Archæology', 'ARCHÆOLOGY') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-compare.md b/docs2/pages/documentations/string/string-compare.md deleted file mode 100644 index ee71ad3..0000000 --- a/docs2/pages/documentations/string/string-compare.md +++ /dev/null @@ -1,50 +0,0 @@ -# String_Compare - -`String_Compare` compares two specified String objects and returns an integer that indicates their relative position in the sort order. - -```csharp -String_Compare ( - @strA NVARCHAR (MAX), - @strB NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **strA**: The first string to compare. - - **strB**: The second string to compare. - -## Returns - -A 32-bit signed integer that indicates the lexical relationship between the two comparands. - -| Value | Condition | -|:--------- |:--------- | -|Less than zero |strA precedes strB in the sort order.| -|Zero |strA occurs in the same position as strB in the sort order.| -|Greater than zero |strA follows strB in the sort order.| - -## Example - -```csharp -SELECT SQLNET::String_Compare('abc', 'abc') -``` - -# String_Compare4k - -It is equivalent to `String_Compare` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Compare4k ( - @strA NVARCHAR (4000), - @strB NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_Compare4k('abc', 'abc') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-contains.md b/docs2/pages/documentations/string/string-contains.md deleted file mode 100644 index 8b01d01..0000000 --- a/docs2/pages/documentations/string/string-contains.md +++ /dev/null @@ -1,44 +0,0 @@ -# String_Contains - -`String_Contains` returns a value indicating whether a specified substring occurs within this string. - -```csharp -String_Contains ( - @source NVARCHAR (MAX), - @target NVARCHAR (MAX) - ) -RETURNS BIT -``` - -## Parameters - - - **source**: The source string. - - **target**: The string to search within source string. - -## Returns - - `true` if the target parameter occurs within the source string, or if target is the empty string (""); otherwise, `false`. - -## Example - -```csharp -SELECT SQLNET::String_Contains('This is a string.', 'string') -``` - -# String_Contains4k - -It is equivalent to `String_Contains` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Contains4k ( - @source NVARCHAR (4000), - @target NVARCHAR (4000) - ) -RETURNS BIT -``` - -## Example - -```csharp -SELECT SQLNET::String_Contains4k('This is a string.', 'string') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-endswith.md b/docs2/pages/documentations/string/string-endswith.md deleted file mode 100644 index f86a407..0000000 --- a/docs2/pages/documentations/string/string-endswith.md +++ /dev/null @@ -1,44 +0,0 @@ -# String_EndsWith - -`String_EndsWith` determines whether the end of the source string instance matches a target string. - -```csharp -String_EndsWith ( - @source NVARCHAR (MAX), - @target NVARCHAR (MAX) - ) -RETURNS BIT -``` - -## Parameters - - - **source**: The source string. - - **target**: The string to compare to the substring at the end of the source string. - -## Returns - - `true` if the target matches the end of the source string; otherwise, `false`. - -## Example - -```csharp -SELECT SQLNET::String_EndsWith('This is a string.', 'string.') -``` - -# String_EndsWith4k - -It is equivalent to `String_EndsWith` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_EndsWith4k ( - @source NVARCHAR (4000), - @target NVARCHAR (4000) - ) -RETURNS BIT -``` - -## Example - -```csharp -SELECT SQLNET::String_EndsWith4k('This is a string.', 'string.') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-indexof-current-culture-ignore-case.md b/docs2/pages/documentations/string/string-indexof-current-culture-ignore-case.md deleted file mode 100644 index 914867d..0000000 --- a/docs2/pages/documentations/string/string-indexof-current-culture-ignore-case.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_IndexOfCurrentCultureIgnoreCase - -`String_IndexOfCurrentCultureIgnoreCase` returns the zero-based index of the first occurrence of a `searchValue` Unicode character or string within the `source` string using culture-sensitive sort rules, the current culture, and ignoring the case of the strings. - -```csharp -String_IndexOfCurrentCultureIgnoreCase ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_IndexOfCurrentCultureIgnoreCase('This is a string.', 'string') -SELECT SQLNET::String_IndexOfCurrentCultureIgnoreCase('Archæology', 'Æ') -``` - -# String_IndexOfCurrentCultureIgnoreCase4k - -It is equivalent to `String_IndexOfCurrentCultureIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_IndexOfCurrentCultureIgnoreCase4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_IndexOfCurrentCultureIgnoreCase4k('This is a string.', 'string') -SELECT SQLNET::String_IndexOfCurrentCultureIgnoreCase4k('Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-indexof-current-culture.md b/docs2/pages/documentations/string/string-indexof-current-culture.md deleted file mode 100644 index 241aba9..0000000 --- a/docs2/pages/documentations/string/string-indexof-current-culture.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_IndexOfCurrentCulture - -`String_IndexOfCurrentCulture` returns the zero-based index of the first occurrence of a `searchValue` Unicode character or string within the `source` string using culture-sensitive sort rules and the current culture. - -```csharp -String_IndexOfCurrentCulture ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_IndexOfCurrentCulture('This is a string.', 'string') -SELECT SQLNET::String_IndexOfCurrentCulture('Archæology', 'Æ') -``` - -# String_IndexOfCurrentCulture4k - -It is equivalent to `String_IndexOfCurrentCulture` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_IndexOfCurrentCulture4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_IndexOfCurrentCulture4k('This is a string.', 'string') -SELECT SQLNET::String_IndexOfCurrentCulture4k('Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-indexof-invariant-culture-ignore-case.md b/docs2/pages/documentations/string/string-indexof-invariant-culture-ignore-case.md deleted file mode 100644 index 4415713..0000000 --- a/docs2/pages/documentations/string/string-indexof-invariant-culture-ignore-case.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_IndexOfInvariantCultureIgnoreCase - -`String_IndexOfInvariantCultureIgnoreCase` returns the zero-based index of the first occurrence of a `searchValue` Unicode character or string within the `source` string using culture-sensitive sort rules, the invariant culture, and ignoring the case of the strings. - -```csharp -String_IndexOfInvariantCultureIgnoreCase ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_IndexOfInvariantCultureIgnoreCase('This is a string.', 'string') -SELECT SQLNET::String_IndexOfInvariantCultureIgnoreCase('Archæology', 'Æ') -``` - -# String_IndexOfInvariantCultureIgnoreCase4k - -It is equivalent to `String_IndexOfInvariantCultureIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_IndexOfInvariantCultureIgnoreCase4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_IndexOfInvariantCultureIgnoreCase4k('This is a string.', 'string') -SELECT SQLNET::String_IndexOfInvariantCultureIgnoreCase4k('Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-indexof-invariant-culture.md b/docs2/pages/documentations/string/string-indexof-invariant-culture.md deleted file mode 100644 index 671f6c1..0000000 --- a/docs2/pages/documentations/string/string-indexof-invariant-culture.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_IndexOfInvariantCulture - -`String_IndexOfInvariantCulture` returns the zero-based index of the first occurrence of a `searchValue` Unicode character or string within the `source` string using culture-sensitive sort rules and the invariant culture. - -```csharp -String_IndexOfInvariantCulture ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_IndexOfInvariantCulture('This is a string.', 'string') -SELECT SQLNET::String_IndexOfInvariantCulture('Archæology', 'Æ') -``` - -# String_IndexOfInvariantCulture4k - -It is equivalent to `String_IndexOfInvariantCulture` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_IndexOfInvariantCulture4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_IndexOfInvariantCulture4k('This is a string.', 'string') -SELECT SQLNET::String_IndexOfInvariantCulture4k('Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-indexof-ordinal-ignore-case.md b/docs2/pages/documentations/string/string-indexof-ordinal-ignore-case.md deleted file mode 100644 index b2b148c..0000000 --- a/docs2/pages/documentations/string/string-indexof-ordinal-ignore-case.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_IndexOfOrdinalIgnoreCase - -`String_IndexOfOrdinalIgnoreCase` returns the zero-based index of the first occurrence of a `searchValue` Unicode character or string within the `source` string using ordinal (binary) sort rules and ignoring the case of the strings. - -```csharp -String_IndexOfOrdinalIgnoreCase ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_IndexOfOrdinalIgnoreCase('This is a string.', 'string') -SELECT SQLNET::String_IndexOfOrdinalIgnoreCase('Archæology', 'Æ') -``` - -# String_IndexOfOrdinalIgnoreCase4k - -It is equivalent to `String_IndexOfOrdinalIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_IndexOfOrdinalIgnoreCase4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_IndexOfOrdinalIgnoreCase4k('This is a string.', 'string') -SELECT SQLNET::String_IndexOfOrdinalIgnoreCase4k('Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-indexof-ordinal.md b/docs2/pages/documentations/string/string-indexof-ordinal.md deleted file mode 100644 index 34a7094..0000000 --- a/docs2/pages/documentations/string/string-indexof-ordinal.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_IndexOfOrdinal - -`String_IndexOfOrdinal` returns the zero-based index of the first occurrence of a `searchValue` Unicode character or string within the `source` string using ordinal (binary) sort rules. - -```csharp -String_IndexOfOrdinal ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_IndexOfOrdinal('This is a string.', 'string') -SELECT SQLNET::String_IndexOfOrdinal('Archæology', 'Æ') -``` - -# String_IndexOfOrdinal4k - -It is equivalent to `String_IndexOfOrdinal` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_IndexOfOrdinal4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_IndexOfOrdinal4k('This is a string.', 'string') -SELECT SQLNET::String_IndexOfOrdinal4k('Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-indexof.md b/docs2/pages/documentations/string/string-indexof.md deleted file mode 100644 index 6da29f6..0000000 --- a/docs2/pages/documentations/string/string-indexof.md +++ /dev/null @@ -1,44 +0,0 @@ -# String_IndexOf - -`String_IndexOf` returns the zero-based index of the first occurrence of a `searchValue` Unicode character or string within the `source` string. - -```csharp -String_IndexOf ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_IndexOf('This is a string.', 'string') -``` - -# String_IndexOf4k - -It is equivalent to `String_IndexOf` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_IndexOf4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_IndexOf4k('This is a string.', 'string') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-insert.md b/docs2/pages/documentations/string/string-insert.md deleted file mode 100644 index 698c1d7..0000000 --- a/docs2/pages/documentations/string/string-insert.md +++ /dev/null @@ -1,49 +0,0 @@ -# String_Insert - -`String_Insert` returns a new string in which a `value` string is inserted at a specified index position in the `source` string. - -```csharp -String_Insert ( - @source NVARCHAR (MAX), - @startIndex INT, - @value NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **startIndex**: The zero-based index position of the insertion. - - **value**: The string to insert. - -## Returns - -A new string that is equivalent to the `source` string, but with `value` inserted at position `startIndex`. - -## Example - -```csharp -SELECT SQLNET::String_Insert('This is a string.', 10, 'new ') -SELECT SQLNET::String_Insert('aaaabbbb', 4, ' ') -``` - -# String_Insert4k - -It is equivalent to `String_Insert` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Insert4k ( - @source NVARCHAR (4000), - @startIndex INT, - @value NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_Insert4k('This is a string.', 10, 'new ') -SELECT SQLNET::String_Insert4k('aaaabbbb', 4, ' ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-last-indexof-current-culture-ignore-case.md b/docs2/pages/documentations/string/string-last-indexof-current-culture-ignore-case.md deleted file mode 100644 index 9e5719c..0000000 --- a/docs2/pages/documentations/string/string-last-indexof-current-culture-ignore-case.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_LastIndexOfCurrentCultureIgnoreCase - -`String_LastIndexOfCurrentCultureIgnoreCase` returns the zero-based index of the last occurrence of a `searchValue` Unicode character or string within the `source` string using culture-sensitive sort rules, the current culture, and ignoring the case of the strings. - -```csharp -String_LastIndexOfCurrentCultureIgnoreCase ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfCurrentCultureIgnoreCase('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfCurrentCultureIgnoreCase('Archæology Archæology', 'Æ') -``` - -# String_LastIndexOfCurrentCultureIgnoreCase4k - -It is equivalent to `String_LastIndexOfCurrentCultureIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_LastIndexOfCurrentCultureIgnoreCase4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfCurrentCultureIgnoreCase4k('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfCurrentCultureIgnoreCase4k('Archæology Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-last-indexof-current-culture.md b/docs2/pages/documentations/string/string-last-indexof-current-culture.md deleted file mode 100644 index 01831de..0000000 --- a/docs2/pages/documentations/string/string-last-indexof-current-culture.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_LastIndexOfCurrentCulture - -`String_LastIndexOfCurrentCulture` returns the zero-based index of the last occurrence of a `searchValue` Unicode character or string within the `source` string using culture-sensitive sort rules and the current culture. - -```csharp -String_LastIndexOfCurrentCulture ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfCurrentCulture('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfCurrentCulture('Archæology Archæology', 'Æ') -``` - -# String_LastIndexOfCurrentCulture4k - -It is equivalent to `String_LastIndexOfCurrentCulture` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_LastIndexOfCurrentCulture4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfCurrentCulture4k('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfCurrentCulture4k('Archæology Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-last-indexof-invariant-culture-ignore-case.md b/docs2/pages/documentations/string/string-last-indexof-invariant-culture-ignore-case.md deleted file mode 100644 index d0240fb..0000000 --- a/docs2/pages/documentations/string/string-last-indexof-invariant-culture-ignore-case.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_LastIndexOfInvariantCultureIgnoreCase - -`String_LastIndexOfInvariantCultureIgnoreCase` returns the zero-based index of the last occurrence of a `searchValue` Unicode character or string within the `source` string using culture-sensitive sort rules, the invariant culture, and ignoring the case of the strings. - -```csharp -String_LastIndexOfInvariantCultureIgnoreCase ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfInvariantCultureIgnoreCase('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfInvariantCultureIgnoreCase('Archæology', 'Æ') -``` - -# String_LastIndexOfInvariantCultureIgnoreCase4k - -It is equivalent to `String_LastIndexOfInvariantCultureIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_LastIndexOfInvariantCultureIgnoreCase4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfInvariantCultureIgnoreCase4k('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfInvariantCultureIgnoreCase4k('Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-last-indexof-invariant-culture.md b/docs2/pages/documentations/string/string-last-indexof-invariant-culture.md deleted file mode 100644 index a667653..0000000 --- a/docs2/pages/documentations/string/string-last-indexof-invariant-culture.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_LastIndexOfInvariantCulture - -`String_LastIndexOfInvariantCulture` returns the zero-based index of the last occurrence of a `searchValue` Unicode character or string within the `source` string using culture-sensitive sort rules and the invariant culture. - -```csharp -String_LastIndexOfInvariantCulture ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfInvariantCulture('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfInvariantCulture('Archæology Archæology', 'Æ') -``` - -# String_LastIndexOfInvariantCulture4k - -It is equivalent to `String_LastIndexOfInvariantCulture` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_LastIndexOfInvariantCulture4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfInvariantCulture4k('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfInvariantCulture4k('Archæology Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-last-indexof-ordinal-ignore-case.md b/docs2/pages/documentations/string/string-last-indexof-ordinal-ignore-case.md deleted file mode 100644 index e2a39c8..0000000 --- a/docs2/pages/documentations/string/string-last-indexof-ordinal-ignore-case.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_LastIndexOfOrdinalIgnoreCase - -`String_LastIndexOfOrdinalIgnoreCase` returns the zero-based index of the last occurrence of a `searchValue` Unicode character or string within the `source` string using ordinal (binary) sort rules and ignoring the case of the strings. - -```csharp -String_LastIndexOfOrdinalIgnoreCase ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfOrdinalIgnoreCase('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfOrdinalIgnoreCase('Archæology', 'Æ') -``` - -# String_LastIndexOfOrdinalIgnoreCase4k - -It is equivalent to `String_LastIndexOfOrdinalIgnoreCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_LastIndexOfOrdinalIgnoreCase4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfOrdinalIgnoreCase4k('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfOrdinalIgnoreCase4k('Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-last-indexof-ordinal.md b/docs2/pages/documentations/string/string-last-indexof-ordinal.md deleted file mode 100644 index 94dc2a9..0000000 --- a/docs2/pages/documentations/string/string-last-indexof-ordinal.md +++ /dev/null @@ -1,46 +0,0 @@ -# String_LastIndexOfOrdinal - -`String_LastIndexOfOrdinal` returns the zero-based index of the last occurrence of a `searchValue` Unicode character or string within the `source` string using ordinal (binary) sort rules. - -```csharp -String_LastIndexOfOrdinal ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfOrdinal('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfOrdinal('Archæology Archæology', 'Æ') -``` - -# String_LastIndexOfOrdinal4k - -It is equivalent to `String_LastIndexOfOrdinal` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_LastIndexOfOrdinal4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOfOrdinal4k('This is a string.', 'string') -SELECT SQLNET::String_LastIndexOfOrdinal4k('Archæology Archæology', 'Æ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-last-indexof.md b/docs2/pages/documentations/string/string-last-indexof.md deleted file mode 100644 index 56889fd..0000000 --- a/docs2/pages/documentations/string/string-last-indexof.md +++ /dev/null @@ -1,44 +0,0 @@ -# String_LastIndexOf - -`String_LastIndexOf` returns the zero-based index of the last occurrence of a `searchValue` Unicode character or string within the `source` string. - -```csharp -String_LastIndexOf ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX) - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - -## Returns - -The zero-based index position of the `searchValue` parameter from the start of the `source` string if that string is found, or -1 if it is not. If `searchValue` is Empty, the return value is 0. - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOf('This is a string.', 'string') -``` - -# String_LastIndexOf4k - -It is equivalent to `String_LastIndexOf` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_LastIndexOf4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000) - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_LastIndexOf4k('This is a string.', 'string') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-length.md b/docs2/pages/documentations/string/string-length.md deleted file mode 100644 index a3da4c9..0000000 --- a/docs2/pages/documentations/string/string-length.md +++ /dev/null @@ -1,41 +0,0 @@ -# String_Length - -`String_Length` returns the number of characters in the `source` string. - -```csharp -String_Length ( - @source NVARCHAR (MAX), - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - -## Returns - -The number of characters in the `source` string. - -## Example - -```csharp -SELECT SQLNET::String_Length('This is a string.') -``` - -# String_Length4k - -It is equivalent to `String_Length` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Length4k ( - @source NVARCHAR (4000), - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_Length4k('This is a string.') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-occurrences.md b/docs2/pages/documentations/string/string-occurrences.md deleted file mode 100644 index 5154fe5..0000000 --- a/docs2/pages/documentations/string/string-occurrences.md +++ /dev/null @@ -1,49 +0,0 @@ -# String_Occurrences - -`String_Occurrences` returns the number of occurrences of `searchValue` in the `source` string. - -```csharp -String_Occurrences ( - @source NVARCHAR (MAX), - @searchValue NVARCHAR (MAX), - @isCaseSensitive BIT - ) -RETURNS INT -``` - -## Parameters - - - **source**: The source string. - - **searchValue**: The string to search within the source string. - - **isCaseSensitive**: 0 to ignore case during the comparison; otherwise, 1. - -## Returns - -The number of characters in the `source` string. - -## Example - -```csharp -SELECT SQLNET::String_Occurrences('This is a String.', 's', 0) -SELECT SQLNET::String_Occurrences('This is a String.', 's', 1) -``` - -# String_Occurrences4k - -It is equivalent to `String_Occurrences` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Occurrences4k ( - @source NVARCHAR (4000), - @searchValue NVARCHAR (4000), - @isCaseSensitive BIT - ) -RETURNS INT -``` - -## Example - -```csharp -SELECT SQLNET::String_Occurrences4k('This is a String.', 's', 0) -SELECT SQLNET::String_Occurrences4k('This is a String.', 's', 1) -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-padleft.md b/docs2/pages/documentations/string/string-padleft.md deleted file mode 100644 index fc429e3..0000000 --- a/docs2/pages/documentations/string/string-padleft.md +++ /dev/null @@ -1,51 +0,0 @@ -# String_PadLeft - -`String_PadLeft` returns a new string that right-aligns the characters in the `source` string by padding them on the left with a specified `paddingChar` Unicode character, for a specified total length. - -```csharp -String_PadLeft ( - @source NVARCHAR (MAX), - @totalWidth INT, - @paddingChar NVARCHAR (1) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **totalWidth**: The number of characters in the resulting string, equal to the number of original characters plus any additional padding characters. - - **paddingChar**: A Unicode padding character. - -## Returns - - - A new string that is equivalent to the `source` string, but right-aligned and padded on the left with as many paddingChar characters as needed to create a length of `totalWidth`. - - If `totalWidth` is less than the length of the `source` string, the method returns a reference to the existing instance. - - If `totalWidth` is equal to the length of the `source` string, the method returns a new string that is identical to the `source` string. - -## Example - -```csharp -SELECT SQLNET::String_PadLeft('This is a String.', 20, '.') -SELECT SQLNET::String_PadLeft('This is a String.', 10, '.') -``` - -# String_PadLeft4k - -It is equivalent to `String_PadLeft` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_PadLeft4k ( - @source NVARCHAR (4000), - @totalWidth INT, - @paddingChar NVARCHAR (1) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_PadLeft4k('This is a String.', 20, '.') -SELECT SQLNET::String_PadLeft4k('This is a String.', 10, '.') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-padright.md b/docs2/pages/documentations/string/string-padright.md deleted file mode 100644 index 516d5bf..0000000 --- a/docs2/pages/documentations/string/string-padright.md +++ /dev/null @@ -1,51 +0,0 @@ -# String_PadRight - -`String_PadRight` returns a new string that left-aligns the characters in the `source` string by padding them on the right with a specified `paddingChar` Unicode character, for a specified total length. - -```csharp -String_PadRight ( - @source NVARCHAR (MAX), - @totalWidth INT, - @paddingChar NVARCHAR (1) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **totalWidth**: The number of characters in the resulting string, equal to the number of original characters plus any additional padding characters. - - **paddingChar**: A Unicode padding character. - -## Returns - - - A new string that is equivalent to the `source` string, but right-aligned and padded on the left with as many paddingChar characters as needed to create a length of `totalWidth`. - - If `totalWidth` is less than the length of the `source` string, the method returns a reference to the existing instance. - - If `totalWidth` is equal to the length of the `source` string, the method returns a new string that is identical to the `source` string. - -## Example - -```csharp -SELECT SQLNET::String_PadRight('This is a String.', 20, '.') -SELECT SQLNET::String_PadRight('This is a String.', 10, '.') -``` - -# String_PadRight4k - -It is equivalent to `String_PadRight` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_PadRight4k ( - @source NVARCHAR (4000), - @totalWidth INT, - @paddingChar NVARCHAR (1) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_PadRight4k('This is a String.', 20, '.') -SELECT SQLNET::String_PadRight4k('This is a String.', 10, '.') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-remove-num-of-chars.md b/docs2/pages/documentations/string/string-remove-num-of-chars.md deleted file mode 100644 index 54bddc3..0000000 --- a/docs2/pages/documentations/string/string-remove-num-of-chars.md +++ /dev/null @@ -1,45 +0,0 @@ -# String_RemoveNumOfChars - -`String_RemoveNumOfChars` returns a new string in which a specified number of characters in the `source` beginning at a specified position have been deleted. - -```csharp -String_RemoveNumOfChars ( - @source NVARCHAR (MAX), - @startIndex INT - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **startIndex**: The zero-based position to begin deleting characters. - - **count**: The number of characters to delete. - -## Returns - - - A new string that is equivalent to this string except for the removed characters. - -## Example - -```csharp -SELECT SQLNET::String_RemoveNumOfChars('abc---def', 3, 3) -``` - -# String_RemoveNumOfChars4k - -It is equivalent to `String_RemoveNumOfChars` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_RemoveNumOfChars4k ( - @source NVARCHAR (4000), - @startIndex INT - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_RemoveNumOfChars4k('abc---def', 3, 3) -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-remove.md b/docs2/pages/documentations/string/string-remove.md deleted file mode 100644 index 3fbc950..0000000 --- a/docs2/pages/documentations/string/string-remove.md +++ /dev/null @@ -1,44 +0,0 @@ -# String_Remove - -`String_Remove` returns a new string in which all the characters in the `source` string, beginning at a specified position are deleted till the end of the `source` string. - -```csharp -String_Remove ( - @source NVARCHAR (MAX), - @startIndex INT - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **startIndex**: The zero-based position to begin deleting characters. - -## Returns - - - A new string that is equivalent to this string except for the removed characters. - -## Example - -```csharp -SELECT SQLNET::String_Remove('abc---def', 3) -``` - -# String_Remove4k - -It is equivalent to `String_Remove` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Remove4k ( - @source NVARCHAR (4000), - @startIndex INT - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_Remove4k('abc---def', 3) -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-replace.md b/docs2/pages/documentations/string/string-replace.md deleted file mode 100644 index fba2d1f..0000000 --- a/docs2/pages/documentations/string/string-replace.md +++ /dev/null @@ -1,50 +0,0 @@ -# String_Replace - -`String_Replace` returns a new string in which all occurrences of a specified `oldValye` Unicode character or String in the `source` string are replaced with another specified `newValue` Unicode character or String. - -```csharp -String_Replace ( - @source NVARCHAR (MAX), - @oldValue NVARCHAR (MAX), - @newValue NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **oldValue**: The string to be replaced. - - **newValue**: The string to replace all occurrences of oldValue. - -## Returns - - - A string that is equivalent to the `source` string except that all instances of `oldValue` are replaced with `newValue`. - - If `oldValue` is not found in the current instance, the method returns the `source` string without any changes. - -## Example - -```csharp -SELECT SQLNET::String_Replace('1 2 3 4 5 6 7 8 9', ' ', ',') -SELECT SQLNET::String_Replace('This docment uses 3 other docments to docment the docmentation', 'docment', 'document') -``` - -# String_Replace4k - -It is equivalent to `String_Replace` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Replace4k ( - @source NVARCHAR (4000), - @oldValue NVARCHAR (MAX), - @newValue NVARCHAR (MAX) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_Replace4k('1 2 3 4 5 6 7 8 9', ' ', ',') -SELECT SQLNET::String_Replace4k('This docment uses 3 other docments to docment the docmentation', 'docment', 'document') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-split-remove-empty-entries.md b/docs2/pages/documentations/string/string-split-remove-empty-entries.md deleted file mode 100644 index 5c68110..0000000 --- a/docs2/pages/documentations/string/string-split-remove-empty-entries.md +++ /dev/null @@ -1,47 +0,0 @@ -# String_SplitRemoveEmptyEntries - -`String_SplitRemoveEmptyEntries` returns a string array that contains the substrings in the `source` string that are delimited by elements of a specified `delimStr` string. The return value does not include array elements that contain an empty string. - -```csharp -String_SplitRemoveEmptyEntries ( - @source NVARCHAR (MAX), - @delimStr NVARCHAR (MAX) - ) -RETURNS TABLE ([Match] NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **source**: The source string. - - **delimStr**: A string that is converted to character array that delimits the substrings in the `source` string, an empty array that contains no delimiters, or `null`. - -## Returns - - - A string that is equivalent to the `source` string except that all instances of `oldValue` are replaced with `newValue`. - - If `oldValue` is not found in the `source` string, the method returns the `source` string without any changes. - -## Example - -```csharp -SELECT * FROM String_SplitRemoveEmptyEntries(',ONE,,TWO,,,THREE,,', ',') -SELECT * FROM String_SplitRemoveEmptyEntries('1,2,3,4;5;6;:7:8:9', ',;:') -``` - -# String_SplitRemoveEmptyEntries4k - -It is equivalent to `String_SplitRemoveEmptyEntries` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_SplitRemoveEmptyEntries4k ( - @source NVARCHAR (4000), - @delimStr NVARCHAR (4000) - ) -RETURNS TABLE ([Match] NVARCHAR (4000) NULL) -``` - -## Example - -```csharp -SELECT * FROM String_SplitRemoveEmptyEntries4k(',ONE,,TWO,,,THREE,,', ',') -SELECT * FROM String_SplitRemoveEmptyEntries4k('1,2,3,4;5;6;:7:8:9', ',;:') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-split.md b/docs2/pages/documentations/string/string-split.md deleted file mode 100644 index 412a697..0000000 --- a/docs2/pages/documentations/string/string-split.md +++ /dev/null @@ -1,47 +0,0 @@ -# String_Split - -`String_Split` returns a string array that contains the substrings in the `source` string that are delimited by elements of a specified `delimStr` string. - -```csharp -String_Split ( - @source NVARCHAR (MAX), - @delimStr NVARCHAR (MAX) - ) -RETURNS TABLE ([Match] NVARCHAR (MAX) NULL) -``` - -## Parameters - - - **source**: The source string. - - **delimStr**: A string that is converted to character array that delimits the substrings in the `source` string, an empty array that contains no delimiters, or `null`. - -## Returns - - - A string that is equivalent to the `source` string except that all instances of `oldValue` are replaced with `newValue`. - - If `oldValue` is not found in the `source` string, the method returns the `source` string without any changes. - -## Example - -```csharp -SELECT * FROM String_Split(',ONE,,TWO,,,THREE,,', ',') -SELECT * FROM String_Split('1,2,3,4;5;6;:7:8:9', ',;:') -``` - -# String_Split4k - -It is equivalent to `String_Split` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Split4k ( - @source NVARCHAR (4000), - @delimStr NVARCHAR (4000) - ) -RETURNS TABLE ([Match] NVARCHAR (4000) NULL) -``` - -## Example - -```csharp -SELECT * FROM String_Split4k(',ONE,,TWO,,,THREE,,', ',') -SELECT * FROM String_Split4k('1,2,3,4;5;6;:7:8:9', ',;:') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-startswith.md b/docs2/pages/documentations/string/string-startswith.md deleted file mode 100644 index 9b071df..0000000 --- a/docs2/pages/documentations/string/string-startswith.md +++ /dev/null @@ -1,44 +0,0 @@ -# String_StartsWith - -`String_StartsWith` determines whether the beginning of the `source` string instance matches the specified `target` string. - -```csharp -String_StartsWith ( - @source NVARCHAR (MAX), - @target NVARCHAR (MAX) - ) -RETURNS BIT -``` - -## Parameters - - - **source**: The source string. - - **target**: The string to compare. - -## Returns - -`true` if `target` matches the beginning of the `source` string; otherwise, false. - -## Example - -```csharp -SELECT SQLNET::String_StartsWith('This is bold text', '') -``` - -# String_StartsWith4k - -It is equivalent to `String_StartsWith` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_StartsWith4k ( - @source NVARCHAR (4000), - @target NVARCHAR (4000) - ) -RETURNS BIT -``` - -## Example - -```csharp -SELECT SQLNET::String_StartsWith4k('This is bold text', '') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-substring.md b/docs2/pages/documentations/string/string-substring.md deleted file mode 100644 index dd300e2..0000000 --- a/docs2/pages/documentations/string/string-substring.md +++ /dev/null @@ -1,47 +0,0 @@ -# String_Substring - -`String_Substring` returns a substring from this instance. The substring starts at a specified character position and has a specified length. - -```csharp -String_Substring ( - @source NVARCHAR (MAX), - @startIndex INT, - @length INT - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **startIndex**: The zero-based starting character position of a substring in the `source` string. - - **length**: The number of characters in the substring. - -## Returns - -A string that is equivalent to the substring of length that begins at `startIndex` in the `source` string, or Empty if `startIndex` is equal to the length of this instance and `length` is zero. - -## Example - -```csharp -SELECT SQLNET::String_Substring('Name: Felica Walker', 6, 13) -``` - -# String_Substring4k - -It is equivalent to `String_Substring` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Substring4k ( - @source NVARCHAR (4000), - @startIndex INT, - @length INT - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_Substring4k('Name: Felica Walker', 6, 13) -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-tolower-invariant.md b/docs2/pages/documentations/string/string-tolower-invariant.md deleted file mode 100644 index 5c4c3e2..0000000 --- a/docs2/pages/documentations/string/string-tolower-invariant.md +++ /dev/null @@ -1,41 +0,0 @@ -# String_ToLowerInvariant - -`String_ToLowerInvariant` returns a copy of the `source` string converted to lowercase using the casing rules of the invariant culture. - -```csharp -String_ToLowerInvariant ( - @source NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - -## Returns - -A string in lowercase. - -## Example - -```csharp -SELECT SQLNET::String_ToLowerInvariant('wAr aNd pEaCe') -``` - -# String_ToLowerInvariant4k - -It is equivalent to `String_ToLowerInvariant` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_ToLowerInvariant4k ( - @source NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_ToLowerInvariant4k('wAr aNd pEaCe') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-tolower.md b/docs2/pages/documentations/string/string-tolower.md deleted file mode 100644 index c825ee9..0000000 --- a/docs2/pages/documentations/string/string-tolower.md +++ /dev/null @@ -1,41 +0,0 @@ -# String_ToLower - -`String_ToLower` returns a copy of the `source` string converted to lowercase. - -```csharp -String_ToLower ( - @source NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - -## Returns - -A string in lowercase. - -## Example - -```csharp -SELECT SQLNET::String_ToLower('wAr aNd pEaCe') -``` - -# String_ToLower4k - -It is equivalent to `String_ToLower` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_ToLower4k ( - @source NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_ToLower4k('wAr aNd pEaCe') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-totitle-case.md b/docs2/pages/documentations/string/string-totitle-case.md deleted file mode 100644 index ae3e267..0000000 --- a/docs2/pages/documentations/string/string-totitle-case.md +++ /dev/null @@ -1,43 +0,0 @@ -# String_ToTitleCase - -`String_ToTitleCase` returns a converted string to title case (except for words that are entirely in uppercase, which are considered to be acronyms). - -```csharp -String_ToTitleCase ( - @source NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - -## Returns - -The string converted to title case. - -## Example - -```csharp -SELECT SQLNET::String_ToTitleCase('wAr aNd pEaCe') -SELECT SQLNET::String_ToTitleCase('UNICEF and children') -``` - -# String_ToTitleCase4k - -It is equivalent to `String_ToTitleCase` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_ToTitleCase4k ( - @source NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_ToTitleCase4k('wAr aNd pEaCe') -SELECT SQLNET::String_ToTitleCase4k('UNICEF and children') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-toupper-invariant.md b/docs2/pages/documentations/string/string-toupper-invariant.md deleted file mode 100644 index 7c53715..0000000 --- a/docs2/pages/documentations/string/string-toupper-invariant.md +++ /dev/null @@ -1,41 +0,0 @@ -# String_ToUpperInvariant - -`String_ToUpperInvariant` returns a copy of the `source` string converted to uppercase using the casing rules of the invariant culture. - -```csharp -String_ToUpperInvariant ( - @source NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - -## Returns - -A string in uppercase. - -## Example - -```csharp -SELECT SQLNET::String_ToUpperInvariant('wAr aNd pEaCe') -``` - -# String_ToUpperInvariant4k - -It is equivalent to `String_ToUpperInvariant` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_ToUpperInvariant4k ( - @source NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_ToUpperInvariant4k('wAr aNd pEaCe') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-toupper.md b/docs2/pages/documentations/string/string-toupper.md deleted file mode 100644 index ae3f93c..0000000 --- a/docs2/pages/documentations/string/string-toupper.md +++ /dev/null @@ -1,41 +0,0 @@ -# String_ToUpper - -`String_ToUpper` returns a copy of the `source` string converted to uppercase. - -```csharp -String_ToUpper ( - @source NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - -## Returns - -A string in uppercase. - -## Example - -```csharp -SELECT SQLNET::String_ToUpper('wAr aNd pEaCe') -``` - -# String_ToUpper4k - -It is equivalent to `String_ToUpper` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_ToUpper4k ( - @source NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_ToUpper4k('wAr aNd pEaCe') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-trim.md b/docs2/pages/documentations/string/string-trim.md deleted file mode 100644 index 7ea9d29..0000000 --- a/docs2/pages/documentations/string/string-trim.md +++ /dev/null @@ -1,42 +0,0 @@ -# String_Trim - -`String_Trim` removes all leading and trailing white-space characters from the `source` string. - -```csharp -String_Trim ( - @source NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - -## Returns - - - The string that remains after all white-space characters are removed from the start and end of the `source` string. - - If no characters can be trimmed from the `source` instance, the method returns it without any changes. - -## Example - -```csharp -SELECT SQLNET::String_Trim(' John Doe ') -``` - -# String_Trim4k - -It is equivalent to `String_Trim` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_Trim4k ( - @source NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_Trim4k(' John Doe ') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-trimchars.md b/docs2/pages/documentations/string/string-trimchars.md deleted file mode 100644 index 103a7cd..0000000 --- a/docs2/pages/documentations/string/string-trimchars.md +++ /dev/null @@ -1,45 +0,0 @@ -# String_TrimChars - -`String_TrimChars` removes all leading and trailing occurrences of a set of characters specified in `charsToTrimStr` from the the `source` string. - -```csharp -String_TrimChars ( - @source NVARCHAR (MAX), - @charsToTrimStr NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **charsToTrimStr**: A string that is converted to an array of Unicode characters to remove, or null. - -## Returns - - - The string that remains after all white-space characters are removed from the start and end of the `source` string. - - If no characters can be trimmed from the `source` instance, the method returns it without any changes. - -## Example - -```csharp -SELECT SQLNET::String_TrimChars('*John Doe/', '*/') -``` - -# String_TrimChars4k - -It is equivalent to `String_TrimChars` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_TrimChars4k ( - @source NVARCHAR (4000), - @charsToTrimStr NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_TrimChars4k('*John Doe/', '*/') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-trimend.md b/docs2/pages/documentations/string/string-trimend.md deleted file mode 100644 index 39d4b93..0000000 --- a/docs2/pages/documentations/string/string-trimend.md +++ /dev/null @@ -1,45 +0,0 @@ -# String_TrimEnd - -`String_TrimEnd` removes all trailing occurrences of a set of characters specified in `charsToTrimStr` string from the the `source` string. - -```csharp -String_TrimEnd ( - @source NVARCHAR (MAX), - @charsToTrimStr NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **charsToTrimStr**: A string that is converted to an array of Unicode characters to remove, or null. - -## Returns - - - The string that remains after all white-space characters are removed from the start and end of the `source` string. - - If no characters can be trimmed from the `source` instance, the method returns it without any changes. - -## Example - -```csharp -SELECT SQLNET::String_TrimEnd('*John Doe/', '*/') -``` - -# String_TrimEnd4k - -It is equivalent to `String_TrimEnd` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_TrimEnd4k ( - @source NVARCHAR (4000), - @charsToTrimStr NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_TrimEnd4k('*John Doe/', '*/') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string-trimstart.md b/docs2/pages/documentations/string/string-trimstart.md deleted file mode 100644 index 014c0d3..0000000 --- a/docs2/pages/documentations/string/string-trimstart.md +++ /dev/null @@ -1,45 +0,0 @@ -# String_TrimStart - -`String_TrimStart` removes all leading occurrences of a set of characters specified in `charsToTrimStr` from the the `source` string. - -```csharp -String_TrimStart ( - @source NVARCHAR (MAX), - @charsToTrimStr NVARCHAR (MAX) - ) -RETURNS NVARCHAR (MAX) -``` - -## Parameters - - - **source**: The source string. - - **charsToTrimStr**: A string that is converted to an array of Unicode characters to remove, or null. - -## Returns - - - The string that remains after all white-space characters are removed from the start and end of the `source` string. - - If no characters can be trimmed from the `source` instance, the method returns it without any changes. - -## Example - -```csharp -SELECT SQLNET::String_TrimStart('*John Doe/', '*/') -``` - -# String_TrimStart4k - -It is equivalent to `String_TrimStart` except no NVARCHAR(MAX) parameters; it can be used when input data will never be over 4000 characters as this function offers better performance. - -```csharp -String_TrimStart4k ( - @source NVARCHAR (4000), - @charsToTrimStr NVARCHAR (4000) - ) -RETURNS NVARCHAR (4000) -``` - -## Example - -```csharp -SELECT SQLNET::String_TrimStart4k('*John Doe/', '*/') -``` \ No newline at end of file diff --git a/docs2/pages/documentations/string/string.md b/docs2/pages/documentations/string/string.md deleted file mode 100644 index e7c041c..0000000 --- a/docs2/pages/documentations/string/string.md +++ /dev/null @@ -1,51 +0,0 @@ -# String - -Represents text as a sequence of UTF-16 code units. - -| Name | Description | Example | -| :--- | :---------- | :------ | -| [String_Compare(strA, strB)](/string-compare) | Compares two specified String objects. | [Try it]()| -| [String_CompareCurrentCulture(strA, strB)](/string-compare-current-culture) | Compares two specified String objects using culture-sensitive sort rules and the current culture. | [Try it]()| -| [String_CompareCurrentCultureIgnoreCase(strA, strB)](/string-compare-current-culture-ignore-case) | Compares two specified String objects using culture-sensitive sort rules, the current culture, and ignoring the case of the strings. | [Try it]()| -| [String_CompareIgnoreCase(strA, strB)](/string-compare-ignore-case) | Compares two specified String objects ignoring their case. | [Try it]()| -| [String_CompareInvariantCulture(strA, strB)](/string-compare-invariant-culture) | Compares two specified String objects using culture-sensitive sort rules and the invariant culture. | [Try it]()| -| [String_CompareInvariantCultureIgnoreCase(strA, strB)](/string-compare-invariant-culture-ignore-case) | Compares two specified String objects using culture-sensitive sort rules, the invariant culture, and ignoring the case of the strings. | [Try it]()| -| [String_CompareOrdinal(strA, strB)](/string-compare-ordinal) | Compares two specified String objects using ordinal (binary) sort rules. | [Try it]()| -| [String_CompareOrdinalIgnoreCase(strA, strB)](/string-compare-ordinal-ignore-case) | Compares two specified String objects using ordinal (binary) sort rules, and ignoring the case of the strings. | [Try it]()| -| [String_Contains(source, target)](/string-contains) | Returns a value indicating whether a specified substring occurs within this string. | [Try it]()| -| [String_EndsWith(source, target)](/string-endswith) | Determines whether the end of the source string instance matches a target string. | [Try it]()| -| [String_IndexOf(source, searchValue)](/string-indexof) | Returns the zero-based index of the first occurrence of the specified string. | [Try it]()| -| [String_IndexOfCurrentCulture(source, searchValue)](/string-indexof-current-culture) | Returns the zero-based index of the first occurrence of the specified string using culture-sensitive sort rules and the current culture. | [Try it]()| -| [String_IndexOfCurrentCultureIgnoreCase(source, searchValue)](/string-indexof-current-culture-ignore-case) | Returns the zero-based index of the first occurrence of the specified string using culture-sensitive sort rules, the current culture, and ignoring the case of the strings. | [Try it]()| -| [String_IndexOfInvariantCulture(source, searchValue)](/string-indexof-invariant-culture) | Returns the zero-based index of the first occurrence of the specified string using culture-sensitive sort rules and the invariant culture. | [Try it]()| -| [String_IndexOfInvariantCultureIgnoreCase(source, searchValue)](/string-indexof-invariant-culture-ignore-case) | Returns the zero-based index of the first occurrence of the specified string using culture-sensitive sort rules, the invariant culture, and ignoring the case of the strings. | [Try it]()| -| [String_IndexOfOrdinal(source, searchValue)](/string-indexof-ordinal) | Returns the zero-based index of the first occurrence of the specified string using ordinal (binary) sort rules. | [Try it]()| -| [String_IndexOfOrdinalIgnoreCase(source, searchValue)](/string-indexof-ordinal-ignore-case) | Returns the zero-based index of the first occurrence of the specified string using ordinal (binary) sort rules, and ignoring the case of the strings. | [Try it]()| -| [String_Insert(source, startIndex, value)](/string-insert) | Returns a new string in which a specified string is inserted at a specified index position. | [Try it]()| -| [String_LastIndexOf(source, searchValue)](/string-last-indexof) | Returns the zero-based index of the last occurrence of the specified string. | [Try it]()| -| [String_LastIndexOfCurrentCulture(source, searchValue)](/string-last-indexof-current-culture) | Returns the zero-based index of the last occurrence of the specified string using culture-sensitive sort rules and the current culture. | [Try it]()| -| [String_LastIndexOfCurrentCultureIgnoreCase(source, searchValue)](/string-last-indexof-current-culture-ignore-case) | Returns the zero-based index of the last occurrence of the specified string using culture-sensitive sort rules, the current culture, and ignoring the case of the strings. | [Try it]()| -| [String_LastIndexOfInvariantCulture(source, searchValue)](/string-last-indexof-invariant-culture) | Returns the zero-based index of the last occurrence of the specified string using culture-sensitive sort rules and the invariant culture. | [Try it]()| -| [String_LastIndexOfInvariantCultureIgnoreCase(source, searchValue)](/string-last-indexof-invariant-culture-ignore-case) | Returns the zero-based index of the last occurrence of the specified string using culture-sensitive sort rules, the invariant culture, and ignoring the case of the strings. | [Try it]()| -| [String_LastIndexOfOrdinal(source, searchValue)](/string-last-indexof-ordinal) | Returns the zero-based index of the last occurrence of the specified string using ordinal (binary) sort rules. | [Try it]()| -| [String_LastIndexOfOrdinalIgnoreCase(source, searchValue)](/string-last-indexof-ordinal-ignore-case) | Returns the zero-based index of the last occurrence of the specified string using ordinal (binary) sort rules, and ignoring the case of the strings. | [Try it]()| -| [String_Length(source)](/string-length) | Returns the number of characters in the specified string. | [Try it]()| -| [String_Occurrences(source, searchValue, isCaseSensitive)](/string-occurrences) | Returns the number of occurrences in the specified string. | [Try it]()| -| [String_PadLeft(source, totalWidth, paddingChar)](/string-padleft) | Returns a new string that right-aligns the characters in this instance by padding them on the left with a specified Unicode character, for a specified total length. | [Try it]()| -| [String_PadRight(source, totalWidth, paddingChar)](/string-padright) | Returns a new string that left-aligns the characters in this instance by padding them on the right with a specified Unicode character, for a specified total length. | [Try it]()| -| [String_Remove(source, startIndex)](/string-remove) | Returns a new string in which all the characters in the `source` string, beginning at a specified position are deleted till the end of the `source` string. | [Try it]()| -| [String_RemoveNumOfChars(source, startIndex, count)](/string-remove-num-of-chars) | Returns a new string in which a specified number of characters in the `source` beginning at a specified position have been deleted. | [Try it]()| -| [String_Replace(source, oldValue, newValue)](/string-remove) | Returns a new string in which all occurrences of a specified Unicode character or String in the current string are replaced with another specified Unicode character or String. | [Try it]()| -| [String_Split(source, delimStr)](/string-split) | Returns a string array that contains the substrings in this instance that are delimited by elements of a specified string. | [Try it]()| -| [String_SplitRemoveEmptyEntries(source, delimStr)](/string-split-remove-empty-entries) | Returns a string array that contains the substrings in this instance that are delimited by elements of a specified string and remove elements that contain an empty string. | [Try it]()| -| [String_StartsWith(source, target)](/string-startswith) | Determines whether the beginning of this string instance matches a specified string. | [Try it]()| -| [String_Substring(source, startIndex, length)](/string-substring) | Returns a substring from the `source` string starting at a specified character position and has a specified length. | [Try it]()| -| [String_ToLower(source)](/string-tolower) | Returns a copy of this string converted to lowercase. | [Try it]()| -| [String_ToLowerInvariant(source)](/string-tolower-invariant) | Returns a copy of this string converted to lowercase using the casing rules of the invariant culture. | [Try it]()| -| [String_ToTitleCase(source)](/string-totitle-case) | Converts the specified string to title case (except for words that are entirely in uppercase, which are considered to be acronyms). | [Try it]()| -| [String_ToUpper(source)](/string-toupper) | Returns a copy of this string converted to uppercase. | [Try it]()| -| [String_ToUpperInvariant(source)](/string-tolower-invariant) | Returns a copy of this string converted to uppercase using the casing rules of the invariant culture. | [Try it]()| -| [String_Trim(source)](/string-trim) | Removes all the leading and trailing white-space characters from the `source` string. | [Try it]()| -| [String_TrimChars(source, charsToTrimStr)](/string-trimchars) | Removes all the leading and trailing occurrences of a set of characters specified in `charsToTrimStr` from the `source` string. | [Try it]()| -| [String_TrimEnd(source, charsToTrimStr)](/string-trimend) | Removes all the trailing occurrences of a set of characters specified in `charsToTrimStr` from the `source` string. | [Try it]()| -| [String_TrimStart(source, charsToTrimStr)](/string-trimstart) | Removes all the leading occurrences of a set of characters specified in `charsToTrimStr` from the `source` string. | [Try it]()| diff --git a/docs2/pages/documentations/value.md b/docs2/pages/documentations/value.md deleted file mode 100644 index 294c579..0000000 --- a/docs2/pages/documentations/value.md +++ /dev/null @@ -1,104 +0,0 @@ -# Value - -## Value - -Add or update a value associated with the specified key. - - - Val\Value (SQL_Variant) - - ValueBigInt - - ValueBinary - - ValueBoolean - - ValueByte - - ValueBytes - - ValueChars - - ValueDateTime - - ValueGuid - - ValueInt - - ValueString - - ValueTinyInt - - ValueXml - - -```csharp --- SELECT 3 -SELECT SQLNET::New('x+1').ValueInt('x', 2).EvalInt() as Result - --- SELECT 3 -SELECT SQLNET::New('x+1').ValueInt('x', 2).EvalInt() as Result - --- SELECT 1 -SELECT SQLNET::New('x.Length').ValueBinary('x', 0x11).Eval() as Result - --- SELECT 'ZZZ Projects' -SELECT SQLNET::New('"ZZZ " + x').ValueString('x', 'Projects').Eval() as Result - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/009cc/2' %} - -> For maximum performance, the right Value[Type] should always be used over Val && Value - -## ValueNullable - - - Val\Value (require to specify the type in the key "int? x") - - ValueBigInt - - ValueBoolean - - ValueByte - - ValueBytes - - ValueDateTime - - ValueGuid - - ValueInt - - ValueTinyInt - - -```csharp -DECLARE @x1 INT = NULL; -DECLARE @x2 INT = 2; - -DECLARE @sqlnet SQLNET = SQLNET::New('x.HasValue ? x.Value + 1 : 0'); - --- SELECT 0 -SELECT @sqlnet.ValueNullableInt('x', @x1).EvalInt() as Result - --- SELECT 3 -SELECT @sqlnet.ValueNullableInt('x', @x2).EvalInt() as Result - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/1cdb6/5' %} - -## ValueSQLNET - -Add or update a value associated with the specified key. The parameter "value" from the previously resolved expression is used. - - -```csharp -DECLARE @sqlnet SQLNET = SQLNET::New('var list = new List() { 1, 2, 3, 4}') -DECLARE @result SQLNET = @sqlnet.EvalSQLNET() - --- SELECT 4 -SELECT SQLNET::New('x.Count').ValueSQLNET('x', @result).Eval() AS Result - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/3149e/2' %} - -## GetValue - -Gets the value associated with the specified key. - - - GetValue(string key) - - GetValueBigInt(string key) - - GetValueBit(string key) - - GetValueInt(string key) - - GetValueSmallInt(string key) - - GetValueString(string key) - - GetValueTinyInt(string key) - - -```csharp --- SELECT 1 -SELECT SQLNET::New('x + 1').Val('x', 1).GetValue('x') as Result - --- SELECT 1 -SELECT SQLNET::New('x + 1').Val('x', 1).GetValueBigInt('x') as Result - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/3149e/6' %} diff --git a/docs2/pages/faq/faq-eval-sql-net.md b/docs2/pages/faq/faq-eval-sql-net.md deleted file mode 100644 index ac4f1e8..0000000 --- a/docs2/pages/faq/faq-eval-sql-net.md +++ /dev/null @@ -1,94 +0,0 @@ -# FAQ - Eval SQL.NET - -## Bug Fixing - -You found a bug when compiling? [Report it](https://github.com/zzzprojects/Eval-SQL.NET/issues) and it will be fixed, usually within one business day. - -## Namespace - -All namespace support by SQL CLR are supported by Eval SQL.NET. - -[Supported .NET Framework Libraries](https://msdn.microsoft.com/en-us/library/ms403279.aspx) - - - CustomMarshalers - - Microsoft.VisualBasic - - Microsoft.VisualC - - mscorlib - - System - - System.Configuration - - System.Data - - System.Data.OracleClient - - System.Data.SqlXml - - System.Deployment - - System.Security - - System.Transactions - - System.Web.Services - - System.Xml - - System.Core.dll - - System.Xml.Linq.dll - - All common namespaces and extension methods can be used without specifying the fullname. - -You can see the full list [here](https://github.com/zzzprojects/Eval-SQL.NET/blob/master/src/Z.Expressions.SqlServer.Eval/EvalContext/EvalContext.RegisterDefaultAlias.cs) - -Let us know if you believe we missed some. - -## Performance - -You are worried about performance? Don't worry, Eval SQL.NET is super-fast and can evaluate over 150,000 expressions in a loop under one second and over 1,000,000 using a table! - -Result highly vary depending of your SQL Server performance and expressions to evaluate. - - -```csharp - -DECLARE @startTime DATETIME, -@endTime DATETIME - -DECLARE @I INT = -1 -DECLARE @sqlnet SQLNET = SQLNET::New('i + 1') --- LET Compile the expression to check the compiled performance -SET @I = @sqlnet.Val('i', @I).EvalInt() - -SET @startTime = GETDATE() - -WHILE @I < 125000 - BEGIN - SET @I = @sqlnet.ValueInt('i', @I).EvalInt() - END - -SET @endTime = GETDATE() -PRINT 'StartTime = ' + CONVERT(VARCHAR(30), @startTime, 121) -PRINT 'EndTime = ' + CONVERT(VARCHAR(30), @endTime, 121) -PRINT 'Duration = ' + CONVERT(VARCHAR(30), @endTime - @starttime, 114) - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/3149e/10' %} - -## Security - -SQL CLR allows three types of permissions: - - - SAFE - - EXTERNAL_ACCESS - - UNSAFE Eval SQL.NET supports all types and is installed by default with SAFE permissions. Read more about [SQL CLR Permissions](https://msdn.microsoft.com/en-CA/library/ms345101.aspx) - -## SQL Injection - -This library allows to use parameter, so no SQL Injection is possible! - -However, if you build the string to evaluate as you build a dynamic SQL, then there is nothing we can do for you. - -## Decimal throw an error! - -In C#, decimals must be suffixed with "m" to make them valid. By default "1.1" in C# is a double which cannot be added with decimal value. - - -```csharp - -// Trow exception -SELECT SQLNET::New('(x)+1.1234').Val('x', 1.1).Eval() as Result - --- SELECT 2.2234 -SELECT SQLNET::New('(x)+1.1234m').Val('x', 1.1).Eval() as Result -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/3149e/11' %} diff --git a/docs2/pages/faq/faq-general.md b/docs2/pages/faq/faq-general.md deleted file mode 100644 index 6b5917b..0000000 --- a/docs2/pages/faq/faq-general.md +++ /dev/null @@ -1,21 +0,0 @@ -# FAQ - General - -## Which Payment method do you support? -We support the following payment methods: - -- PayPal -- Check -- Bank Transfer - -## Can I purchase this product from a Reseller? -Yes, just let him know how to contact us. - -## What's your average SLA response and resolution times? -We try to provide an outstanding support service. - -We normally answer very fast, often within one hour. - -Most fixes are resolved within one business day. - -## Do you support EF Core? -We do not yet. We are currently re-writing the library to support it. diff --git a/docs2/pages/faq/faq-installation.md b/docs2/pages/faq/faq-installation.md deleted file mode 100644 index 804213d..0000000 --- a/docs2/pages/faq/faq-installation.md +++ /dev/null @@ -1,10 +0,0 @@ -# FAQ - Installation - -## How to I Install your product? -It's simple, you download it from NuGet and add it to your project. - -More Info: [Tutorials - Installing](installing) - -## I have installed your product, but I don't see your extensions method. -- Make sure to install it in the right project -- Make sure your project supports .NET40 or better diff --git a/docs2/pages/faq/faq-license.md b/docs2/pages/faq/faq-license.md deleted file mode 100644 index 4c3dc32..0000000 --- a/docs2/pages/faq/faq-license.md +++ /dev/null @@ -1,67 +0,0 @@ -# FAQ - License - -## Developer Seat - -### What's a developer seat? -A developer seat is a developer working for your company and developing code directly with our product. - -You don't have to purchase a developer seat for front-end developer or back-end developer which doesn't use our product API. - -Since you buy developer a seat, you can develop an unlimited amount of projects within your company. - -### What's the cost for additional developer seat? -The cost for additional developer seat is usually extremely low. We want to make sure our library is accessible for small and large company. - -### Are developer seats are transferable? -Yes, a developer seat can be transferred to any employee within your company. - -## Perpertual License - -### What's a perpetual license? -A perpetual license allows you to use the licensed product indefinitely. - -### Even when my Support & Upgrade is expired? -Yes. - -## Support & Upgdrade - -### My support & upgrade have expired! What will happen? -Don't worry. Your product continue to work forever! - -You can still download and use any version released before the support & upgrade expiration date. - -You will need to renew to use versions released after the support & upgrade expiration date. - -### How do I renew my License? -We usually start to send renewal emails one months before the support & upgrade expiration date. - -If you didn't receive such email, you can contact us directly: info@zzzprojects.com - -### Can I have a renewal discount? -We provide a 25% discount to early renewals. So, anyone renewing before the support & upgrade expiration date automatically get a renewal discount. - -### I'm too late for early renewal discount! What can I do? -If you are few days late, we still provide early renewal discounts. - -However, if you are a few months late, you will need to purchase the library again. - -The best way to find out if you still have access to early renewal discount is by contacting us: info@zzzprojects.com - -### Why should I renew? -Renewing your support & upgrade give the following benefits: - -- Major version releases and new product features -- Fast support by email -- Protection against price increases during the maintenance term - -## Royalty Free - -### Is Eval-SQL.NET Royalty Free? -Yes, the product is royalty free. - -This means, you can develop a project and install it on thousands of client machines if you paid for developer seat within your company. - -Some standard royalty free limitations: - -- You can't sell a similar product and claim it's yours. -- If your customer have access to your source code and develops using our API, they will have to purchase a license. diff --git a/docs2/pages/faq/faq.md b/docs2/pages/faq/faq.md deleted file mode 100644 index 8b06cdf..0000000 --- a/docs2/pages/faq/faq.md +++ /dev/null @@ -1,9 +0,0 @@ -# FAQ -## FAQ - -- [Contact Us](contact-us) -- [Issue Tracker](issue-tracker) -- [General](faq-general) -- [Installation](faq-installation) -- [License](faq-license) -- [Eval SQL.NET](faq-eval-sql-net) diff --git a/docs2/pages/faq/issue-tracker.md b/docs2/pages/faq/issue-tracker.md deleted file mode 100644 index 9a56acb..0000000 --- a/docs2/pages/faq/issue-tracker.md +++ /dev/null @@ -1,11 +0,0 @@ -# Issue Tracker - -## Where is your Issue Tracker? - -While we prefer to be contacted directly: info@zzzprojects.com - -We understand some people prefer to have an online issue tracker to follow and comment their issues. - -You can create issue here: - -- [Issue Tracker](https://github.com/zzzprojects/Eval-SQL.NET/issues) diff --git a/docs2/pages/getting-started/_sidebar.md b/docs2/pages/getting-started/_sidebar.md deleted file mode 100644 index e5ab38d..0000000 --- a/docs2/pages/getting-started/_sidebar.md +++ /dev/null @@ -1,6 +0,0 @@ -- [Overview](overview.md) -- [Licensing](licensing.md) -- Tutorials - - [Arithmetic Expressions](arithmetic-expressions.md) - - [Split Text](split-text.md) - - [Reqular Expressions](regular-expressions.md) diff --git a/docs2/pages/getting-started/arithmetic-expressions.md b/docs2/pages/getting-started/arithmetic-expressions.md deleted file mode 100644 index 9cf64dc..0000000 --- a/docs2/pages/getting-started/arithmetic-expressions.md +++ /dev/null @@ -1,84 +0,0 @@ -# Arithmetic Expressions - -## Definition -An arithmetic expression is an expression that results in a numeric value. Try these examples to see how easy it is to resolve an arithmetic expression. - -Eval SQL.NET is a complete C# runtime compiler which honor operator precedence and parenthesis. - -### Using formula & variables - - - - -```csharp -DECLARE @x INT = 2 -DECLARE @y INT = 4 -DECLARE @z INT = 6 - -DECLARE @result INT - -SET @result = SQLNET::New('x*y+z') - .ValueInt('x', @x) - .ValueInt('y', @y) - .ValueInt('z', @z) - .EvalInt() - --- SELECT 14 -SELECT @result as Result -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1101' %} - -### Using formula & table variables - - -```csharp - -DECLARE @table TABLE ( X INT, Y INT, Z INT ) - -INSERT INTO @table -VALUES ( 2, 4, 6 ), - ( 3, 5, 7 ), - ( 4, 6, 8 ) - --- 14 --- 22 --- 32 -DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') -SELECT @sqlnet.ValueInt('x', X) - .ValueInt('y', Y) - .ValueInt('z', Z) - .EvalInt() as Result -FROM @table - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/e44cf/2' %} - -### Using table formula & variables - - -```csharp - -DECLARE @table TABLE - ( - Formula VARCHAR(50) , - X INT , - Y INT , - Z INT - ) - -INSERT INTO @table -VALUES ( 'x*y+z', 2, 4, 6 ), - ( 'x+y*z', 2, 4, 6 ), - ( '(x+y)*z', 2, 4, 6 ) - --- 14 --- 26 --- 36 -DECLARE @sqlnet SQLNET = SQLNET::New('') -SELECT @sqlnet.Code(Formula) - .ValueInt('x', X) - .ValueInt('y', Y) - .ValueInt('z', Z).EvalInt() as Result -FROM @table -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/ed8f7/1' %} diff --git a/docs2/pages/getting-started/licensing.md b/docs2/pages/getting-started/licensing.md deleted file mode 100644 index 376b325..0000000 --- a/docs2/pages/getting-started/licensing.md +++ /dev/null @@ -1,47 +0,0 @@ -# Licensing - -## Evaluation Period -- You can evaluate the library for several months before purchasing it. -- The latest version always contains a trial that expires at the **end of the month**. -- You can extend your trial for several months by downloading the latest version at the beginning of each month. - -## How can I purchase the library? -- You can purchase the library [here](/pricing) -- Upon purchase, you will receive an email with a license name and a license key. -- Make sure to check your **SPAM** folder if you don't receive the license within 24h. - -## How can I get a free license for a personal or academic purpose? -We don't offer free licenses. - -However, you can benefit from all the prime features for personal or academic projects for free by downloading the trial at the beginning of every month. - -## Setup License - -Upon purchase completion, an email will be sent with your license key information. - - -```csharp -CREATE PROCEDURE SQLNET_Configuration -AS -BEGIN - -- The procedure is automatically called when the server restart/assembly load - -- If the assembly is already loaded, a manual execution is required - -- EXEC SQLNET_Configuration - DECLARE @isValid BIT = SQLNET::AddLicense('[LicenseName]', '[LicenseKey]') - - -- SELECT 1 - SELECT @isValid -END -``` - -_We recommend to always re-install the Eval-SQL.NET Script after enabling the license to ensure everything works if the server restarts._ - -You can verify if the license is valid with the following command: - - -```csharp --- RETURN 1 if the license is valid. -SELECT SQLNET::AddLicense('[LicenseName]', '[LicenseKey]') - -``` - diff --git a/docs2/pages/getting-started/overview.md b/docs2/pages/getting-started/overview.md deleted file mode 100644 index 98ec783..0000000 --- a/docs2/pages/getting-started/overview.md +++ /dev/null @@ -1,178 +0,0 @@ -# Overview - -## Definition - -**Eval SQL.NET** is a library that allows to evaluate dynamically C# expression directly in T-SQL. You never used Eval SQL.NET? Don't worry, this step-by-step walkthrough will help you understand the library. - -Provide to your SQL Server all missing pieces like regular expression and dynamic arithmetic string evaluation. - - -```csharp --- SELECT 3 -SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() as Result -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1105' %} - -## Installing -Download the SQLNET.zip - -### SQL Server 2017 - prerequisite -1. Open the script SQLNET-Cert.sql -2. Run the script -3. Continue the install with next step - -### SQL Server 2008 or higher -1. Open the script SQLNET-Install.sql -2. Replace '[DATABASE_NAME]' with your database name -3. Run the script - -### Note -- For EXTERNAL_ACCESS PERMISSION - - Uncomment "ALTER DATABASE [DATABASE_NAME] SET TRUSTWORTHY ON" - - Uncomment "WITH PERMISSION_SET = EXTERNAL_ACCESS" - - Comment "WITH PERMISSION_SET = SAFE" - -- For UNSAFE PERMISSION - - Uncomment "ALTER DATABASE [DATABASE_NAME] SET TRUSTWORTHY ON" - - Uncomment "WITH PERMISSION_SET = UNSAFE" - - Comment "WITH PERMISSION_SET = SAFE" - -## Requirements - -### Minimus Requirements - -- SQL Server 2012+ -- SAFE Permission (SQL CLR) - -### Find your solutions: - - - Dynamic Arithmetic Expression - - Dynamic Pivot Table - - Regular Expression - - String Interpolation - - Replace xp_cmdshell with DirectoryInfo & FileInfo - -## Performance & Scalability - -Performance tuning is one of the most important task for a DBA. Don't miss the chance to **dramatically improve query performance** by **300%** for simple expression and by more than **2000%** for complex code over User-Defined Function (UDF) and Table-Valued Function (TVF). - -| Methods | 1,000 rows | 10,000 rows | 100,000 rows | 1,000,000 rows | -| :-------------- | -------------: | -------------: | -------------: | -------------: | -| Eval-SQL.NET | 4 ms | 13 ms | 160 ms | 1,650 ms | -| fn_split (TVF) | 100 ms | 625 ms | 5,500 ms | 55,000 ms | - -*Benchmark to split string with delimiters in SQL* - -## Evaluate dynamic arithmetic/math expression in SQL - -Make the impossible now possible. Evaluate C# expression in SQL to overcome limitations. - -- Allow trusted users to create report field and filter -- Consume Web Service -- Replace text in template with String Interpolation - -### Dynamic Expression Example -```csharp --- CREATE test -DECLARE @table TABLE ( X INT, Y INT, Z INT ) -INSERT INTO @table VALUES ( 2, 4, 6 ), ( 3, 5, 7 ), ( 4, 6, 8 ) - --- Result: 14, 22, 32 -DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') -SELECT @sqlnet.ValueInt('x', X) - .ValueInt('y', Y) - .ValueInt('z', Z) - .EvalInt() as Result -FROM @table -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9bc9b/1' %} - -## Split text with delimiter - -Improve performance and capability for splitting text with an easy to use split function and LINQ expression - -- Split text with multiple delimiters -- Split text using a regular expression -- Include row index - - -### Split Text Example -```csharp --- CREATE test -DECLARE @t TABLE (Id INT , Input VARCHAR(MAX)) -INSERT INTO @t VALUES ( 1, '1, 2, 3; 4; 5' ), ( 2, '6;7,8;9,10' ) - --- SPLIT with many delimiters: ',' and ';' -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")') - -SELECT * -FROM @t AS A - CROSS APPLY ( SELECT * - FROM dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', Input)) - ) AS B -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/98a4b/1' %} - -## Use regular expression in SQL Server - -Use Regex flexibility to overcome "LIKE" and "PATINDEX" limitations. - - - IsMatch - - Match - - Matches - - Replace - - Split - -### Regular Expression Example -```csharp -DECLARE @customer TABLE ( Email VARCHAR(255) ) - -INSERT INTO @customer -VALUES ( 'info@zzzprojects.com' ), - ( 'invalid.com' ), - ( 'sales@zzzprojects.com' ) - -DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, -@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")') - --- SELECT 'invalid.com' -SELECT * FROM @customer WHERE @valid_email.ValueString('email', Email).EvalBit() = 0 -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/79508/1' %} - -## Replace xp_cmdshell with restrictive alternative - -Avoid enabling xp_cmdshell and compromising your SQL Server and use instead a more restrictive solution. - - - Impersonate Context - - Improve maintainability - - Improve readability - - Improve security - -### Example -```csharp --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*") - .Select(x => new { x.FullName, FileContent = File.ReadAllText(x.FullName) }) - .OrderBy(x => x.FullName)')*9* - .Impersonate() - --- SELECT FullName, FileContext FROM DesktopFiles ORDER BY Fullname -EXEC dbo.SQLNET_EvalResultSet @sqlnet -``` - -## Contribute - -The best way to contribute is by spreading the word about the library: - - - Blog it - - Comment it - - Fork it - - Star it - - Share it - -A **HUGE THANKS** for your help. diff --git a/docs2/pages/getting-started/regular-expressions.md b/docs2/pages/getting-started/regular-expressions.md deleted file mode 100644 index 9ccc54b..0000000 --- a/docs2/pages/getting-started/regular-expressions.md +++ /dev/null @@ -1,65 +0,0 @@ -# Reqular Expressions - -## Definition - -Use Regex flexibility to overcome "LIKE" and "PATINDEX" limitations. All Regex methods are also available such as; - - - IsMatch - - Match - - Matches - - Replace - - Split - -### Find rows with invalid emails - - -```csharp -DECLARE @regex VARCHAR(255) = '^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$' -DECLARE @customer TABLE ( Email VARCHAR(255) ) - -INSERT INTO @customer -VALUES ( 'info@zzzprojects.com' ), - ( 'invalid.com' ), - ( 'sales@zzzprojects.com' ) - --- "Regex" is optional, you can directly use IsMatch -DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, pattern') - .ValueString('pattern', @regex).Root() - --- SELECT 'invalid.com' -SELECT * -FROM @customer -WHERE @valid_email.Val('email', Email).EvalBit() = 0 -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/58f2b/1' %} - -### Find and insert in a table, all websites from a text - - - -```csharp -DECLARE @websites TABLE ( Website VARCHAR(250) ) -DECLARE @regex VARCHAR(255) = '(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})' -DECLARE @post VARCHAR(MAX) = 'zzz ... zzz... http://zzzprojects.com ... zzzz -. zzz... https://github.com/zzzprojects/Eval-SQL.NET ... zzzz -. zzz... zzz... https://github.com/zzzprojects/Eval-Expression.NET ... zzzz -. zzz.... zzz.... zzz... https://github.com/zzzprojects/EntityFramework-Plus ... zzzz' - --- "Regex" is optional, you can directly use Matches -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Matches(input, pattern)') - .ValueString('input', @post) - .ValueString('pattern', @regex) - --- INSERT result in table -INSERT INTO @websites - SELECT CAST(Value_1 AS VARCHAR(250)) - FROM dbo.SQLNET_EvalTVF_1(@sqlnet) - --- SELECT result --- 'http://zzzprojects.com' --- 'https://github.com/zzzprojects/Eval-SQL.NET' --- 'https://github.com/zzzprojects/Eval-Expression.NET' --- 'https://github.com/zzzprojects/EntityFramework-Plus' -SELECT * FROM @websites -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1111' %} diff --git a/docs2/pages/getting-started/split-text.md b/docs2/pages/getting-started/split-text.md deleted file mode 100644 index 4313acf..0000000 --- a/docs2/pages/getting-started/split-text.md +++ /dev/null @@ -1,92 +0,0 @@ -# Split Text - -## Definition - -Improve performance and capability for splitting text with an easy to use split function and LINQ expression - -- Split text with multiple delimiters -- Split text using a regular expression -- Include row index - -You probably already had to use the fn_split function in the past to split a string with a delimiter. Hundreds of variances exist for this function which are limited to one delimiter. - -Using C# code and String.Split or Regex.Split, you are no longer limited and can even use LINQ methods! - -### Split using single delimiter - - -```csharp -DECLARE @s VARCHAR(MAX) = '1, 2;3, 4|5' - -DECLARE @sqlnet SQLNET = SQLNET::New('s.Split(",")').ValueString('s', @s) - --- 1 --- 2;3 --- 4|5 -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet) -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1112' %} - -### Split using multiple delimiters - - -```csharp - -DECLARE @s VARCHAR(MAX) = '1, 2;3, 4|5' - -DECLARE @sqlnet SQLNET = SQLNET::New('s.Split(",", ";", "|")').ValueString('s', @s) - --- 1 --- 2 --- 3 --- 4 --- 5 -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet) -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1117' %} - -### Split and Trim - - -```csharp - -DECLARE @s VARCHAR(MAX) = '1, 2;3, 4|5' - -DECLARE @sqlnet SQLNET = SQLNET::New('s.Split(",", ";", "|") - .Select(x => x.Trim())') - .ValueString('s', @s) - --- 1 --- 2 --- 3 --- 4 --- 5 -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet) -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1118' %} - -### Split and Trim with Regex - - - -```csharp - -DECLARE @s VARCHAR(MAX) = '1, 2;3, 4|5' - -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(s, ",|;|\|") - .Select(x => x.Trim())') - .ValueString('s', @s) - --- 1 --- 2 --- 3 --- 4 --- 5 -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet) - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1119' %} diff --git a/docs2/pages/getting-started/tutorial-introduction.md b/docs2/pages/getting-started/tutorial-introduction.md deleted file mode 100644 index 15ca09e..0000000 --- a/docs2/pages/getting-started/tutorial-introduction.md +++ /dev/null @@ -1,105 +0,0 @@ -# Introduction - -## Introduction -Entity Framework Extensions allows you to improve dramatically your save operations performance. - -It's easy to use, and easy to customize. - -## Bulk SaveChanges -The BulkSaveChanges works like SaveChanges but way faster. - -BulkSaveChanges uses Bulk Operations to save all entities in the Change Tracker efficiently instead of performing a database round-trip for every entity like SaveChanges does. - -BulkSaveChanges support everything: - -- Complex Types -- Inheritance (TPC, TPH, TPT) -- Relationship (One to One, One to Many, Many to Many) - -### Example - -```csharp -var ctx = new EntitiesContext(); - -ctx.Customers.AddRange(listToAdd); // add -ctx.Customers.RemoveRange(listToRemove); // remove -listToModify.ForEach(x => x.DateModified = DateTime.Now); // modify - -// Easy to use -ctx.BulkSaveChanges(); - -// Easy to customize -context.BulkSaveChanges(bulk => bulk.BatchSize = 100); -``` -### Performance Comparisons - -| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities | -| :-------------- | -------------: | -------------: | -------------: | -| SaveChanges | 1,000 ms | 2,000 ms | 5,000 ms | -| BulkSaveChanges | 90 ms | 150 ms | 350 ms | - -## Bulk Operations - -Bulk Operations method provide you some flexibility by allowing some customization and performance enhancement. - -All common methods are supported: - -- BulkInsert -- BulkUpdate -- BulkDelete -- BulkMerge (UPSERT operation) -- BulkSynchronize - -### Example - - -```csharp -var ctx = new EntitiesContext(); - -// Easy to use -ctx.BulkInsert(list); -ctx.BulkUpdate(list); -ctx.BulkDelete(list); -ctx.BulkMerge(list); - -// Easy to customize -context.BulkMerge(customers, - bulk => bulk.ColumnPrimaryKeyExpression = customer => customer.Code; }); -``` - -### Performance Comparisons - -| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities | -| :-------------- | -------------: | -------------: | -------------: | -| SaveChanges | 1,000 ms | 2,000 ms | 5,000 ms | -| BulkInsert | 6 ms | 10 ms | 15 ms | -| BulkUpdate | 50 ms | 55 ms | 65 ms | -| BulkDelete | 45 ms | 50 ms | 60 ms | -| BulkMerge | 65 ms | 80 ms | 110 ms | - -## FromQuery Operations - -FromQuery method allows you to execute UPDATE or DELETE statements without loading entities in the context. - -### Example - - -```csharp -// DELETE all customers that are inactive for more than two years -context.Customers - .Where(x => x.LastLogin < DateTime.Now.AddYears(-2)) - .DeleteFromQuery(); - -// UPDATE all customers that are inactive for more than two years -context.Customers - .Where(x => x.IsActive && x.LastLogin < DateTime.Now.AddYears(-2)) - .UpdateFromQuery(x => new Customer {IsActive = false}); -``` - -### Performance Comparisons - -| Operations | 1,000 Entities | 2,000 Entities | 5,000 Entities | -| :-------------- | -------------: | -------------: | -------------: | -| SaveChanges | 1,000 ms | 2,000 ms | 5,000 ms | -| DeleteFromQuery | 1 ms | 1 ms | 1 ms | -| UpdateFromQuery | 1 ms | 1 ms | 1 ms | diff --git a/docs2/pages/site/contact-us.md b/docs2/pages/site/contact-us.md deleted file mode 100644 index 265b559..0000000 --- a/docs2/pages/site/contact-us.md +++ /dev/null @@ -1,67 +0,0 @@ -# Contact Us - -
-
-
- -
-## Test our `Outstanding` Support -We usually answer within the next business day, hour, or minutes! - -We love to hear from you! - -## I have a question! What should I do? - -The best way to ask us questions. - -Contact us directly: - -- If you want a more personal answer -- If your question is not suited for Stack Overflow -- If your message contains private information - -## I think I've found a bug! What should I do? -The best way to report an issue is using our [Issues Tracker](https://github.com/zzzprojects/Eval-SQL.NET/issues){:target="_blank"} - -Make sure to include: -- Entity Framework Version -- Entity Framework Extensions Version -- Database Provider - -Contact us directly: - -- If you want a more personal answer -- If your question is not suited for the Issue Tracker -- If your message contains private information - -## I think I've found a new feature! What should I do? -The best way to request a new feature is using our [Issues Tracker](https://github.com/zzzprojects/Eval-SQL.NET/issues){:target="_blank"} - -Contact us directly: - -- If you want a more personal answer -- If your question is not suited for the Issue Tracker -- If your message contains private information - -## I think you forget about my request! What should I do? -Just contact us back again, and we will make sure we don't miss it again! -
-
-
-
-
-

Contact Info

-
-
-

General

- info@zzzprojects.com -

Sales

- sales@zzzprojects.com -

Issues & Features

- Issues Tracker -
-
-

-
-
-
diff --git a/docs2/pages/site/download.md b/docs2/pages/site/download.md deleted file mode 100644 index adcbe4c..0000000 --- a/docs2/pages/site/download.md +++ /dev/null @@ -1,91 +0,0 @@ -# Download - -
-
-
-
-
- -
- - - Download - -
Download Count:
-
- - - -
-
-
-
-
-
-
- -
-
---- -## FAQ - -### How can I extend my trial? -The latest version always contains a trial that expires at the end of the month. You can extend your trial for several months by downloading the latest version at the start of every month. - -### Why this library is not free and open source? -`ZZZ Projects` mission is focused on adding value to the `.NET Community` and supporting a lot of `free and open source` libraries. - -However, this mission cannot be successful without being able to pay our developers for the time they pass to support & develop features for free and paid libraries. - -#### Free Librairies - -- [Html Agility Pack](http://html-agility-pack.net/){:target="_blank"} -- [Entity Framework Plus](http://entityframework-plus.net/){:target="_blank"} -- [Entity Framework DynamicFilter](https://github.com/zzzprojects/EntityFramework.DynamicFilters){:target="_blank"} -- [RefactorThis.GraphDiff](https://github.com/zzzprojects/GraphDiff){:target="_blank"} -- [Extension Methods](https://github.com/zzzprojects/Z.ExtensionMethods){:target="_blank"} - -#### Website - -- [.NET Fiddle](https://dotnetfiddle.net/){:target="_blank"} -- [SQL Fiddle](http://sqlfiddle.com/){:target="_blank"} -- [NuGet Must Haves](http://nugetmusthaves.com/){:target="_blank"} -- [Dapper Tutorial](http://dapper-tutorial.net/){:target="_blank"} - -By contributing on paid libraries, you are also helping in keeping other libraries and website FREE. - -
-
- - diff --git a/docs2/pages/site/pricing.md b/docs2/pages/site/pricing.md deleted file mode 100644 index a3b3230..0000000 --- a/docs2/pages/site/pricing.md +++ /dev/null @@ -1,190 +0,0 @@ -# Purchase - - - - - -
- -
-
- -
- - - - -

Every month, a FREE trial of the PRO version is available to let you evaluate all its features without limitations.

-

Step 1 - Choose License

-
- - -
- -

Step 2 - Purchase

-
- -
-
- - -
* Read the FAQ below for alternative payment methods.
-
- -
- -
- -
-
-

What is included?

-
-
-

License

-
    -
  •  Unlimited Maximum Characters
  • -
  •  Commercial License
  • -
  •  Royalty-Free
  • -
  •  Support & Upgrades (1 year)
  • -
-
-
-
-
-
- -
-
---- -## FAQ - -### Which payment alternative methods are accepted? -We accept `PayPal`, `Cheque` and `Wire Transfer`. - -Please contact us for more information. - -Email: sales@zzzprojects.com - -### Do you accept reseller? -Yes, contact us if you are a reseller or seeking for a reseller. - -Email: sales@zzzprojects.com - -### What `2-4` developer seats mean? -It means that you can use the license for up 4 developers inside your team. - -The `5-9` developer seats mean you can use the license for up to 9 developers. - -You only pay for developer seats. You can use our library with an unlimited amount of application, environment, server, and client machine. - -### I need more than `19 seats`, what can I do? -Please contact us with the number of seats required. We offer some additional great discounts or enterprise license. - -Email: sales@zzzprojects.com - -### Is the license perpetual? -The product comes with a one year of support & upgrade but the license is perpetual (indefinitely use). So, you are not forced to renew every year or renew at all. - -Renewing comes with a lot of benefits such as a 25%/35%/50% discount on purchase price, discounted or free product, etc. - -### Why is this library not free and open source? -`ZZZ Projects` mission is focused on adding value to the `.NET Community` and supporting a lot of `free and open source` libraries. - -However, this mission cannot be successful without being able to pay our developers for the time they pass to support & develop features for free and paid libraries. - -#### Free Librairies - -- [Html Agility Pack](http://html-agility-pack.net/){:target="_blank"} -- [Entity Framework Plus](http://entityframework-plus.net/){:target="_blank"} -- [Entity Framework DynamicFilter](https://github.com/zzzprojects/EntityFramework.DynamicFilters){:target="_blank"} -- [RefactorThis.GraphDiff](https://github.com/zzzprojects/GraphDiff){:target="_blank"} -- [Extension Methods](https://github.com/zzzprojects/Z.ExtensionMethods){:target="_blank"} - -#### Website - -- [.NET Fiddle](https://dotnetfiddle.net/){:target="_blank"} -- [SQL Fiddle](http://sqlfiddle.com/){:target="_blank"} -- [NuGet Must Haves](http://nugetmusthaves.com/){:target="_blank"} -- [Dapper Tutorial](http://dapper-tutorial.net/){:target="_blank"} - -By contributing on paid libraries, you also help keeping other libraries and websites FREE. - -
-
- - - - diff --git a/docs2/pages/troubleshooting/_sidebar.md b/docs2/pages/troubleshooting/_sidebar.md deleted file mode 100644 index c941fa9..0000000 --- a/docs2/pages/troubleshooting/_sidebar.md +++ /dev/null @@ -1,5 +0,0 @@ -- [Trial Extend](trial.md) -- [SQL Server Eval](sql-server-eval.md) -- [SQL Server Function (UDF)](sql-server-function.md) -- [SQL Server File Operation](sql-server-file-operation.md) -- [SQL Server Regex](sql-server-regex.md) diff --git a/docs2/pages/troubleshooting/problems.md b/docs2/pages/troubleshooting/problems.md deleted file mode 100644 index d35dd60..0000000 --- a/docs2/pages/troubleshooting/problems.md +++ /dev/null @@ -1,8 +0,0 @@ -# Problems - -## Troubleshooting - -- [SQL Server Eval](sql-server-eval) -- [SQL Server Function (UDF)](/sql-server-function) -- [SQL Server File Operation](/sql-server-file-operation) -- [SQL Server Regex](/sql-server-regex) diff --git a/docs2/pages/troubleshooting/sql-server-eval.md b/docs2/pages/troubleshooting/sql-server-eval.md deleted file mode 100644 index af60cbb..0000000 --- a/docs2/pages/troubleshooting/sql-server-eval.md +++ /dev/null @@ -1,157 +0,0 @@ -# SQL Server Eval - -## Introduction - -How to evaluate an arithmetic expression in SQL Server is a common subject. There are several reasons why an "Eval" function like JavaScript could be useful in SQL such as evaluating custom report fields for a trusted user. - -Multiple partial solutions exist like using "EXEC(Transact-SQL)" which is limited, it cannot be used inside SELECT statement and lead to SQL Injection or using an homemade function which, most of time, fail supporting simple operator priorities and parenthesis. - -**SQL Eval.NET** is a complete solution which, not only lets you evaluate dynamic arithmetic expression, but lets you use the full C# language directly in T-SQL stored procedures, functions and triggers. - - -```csharp -DECLARE @tableFormula TABLE (Formula VARCHAR(255), X INT, Y INT, Z INT) - -INSERT INTO @tableFormula -VALUES ( 'x+y*z', 1, 2, 3 ), - ( '(x+y)*z', 1, 2, 3 ) - --- Select_0: 7 --- Select_1: 9 -SELECT SQLNET::New(Formula).ValueInt('x', X).ValueInt('y', Y).ValueInt('z', Z).EvalInt() as Result -FROM @tableFormula -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/2f73a/1' %} - -## SQL Eval - Arithmetic / Math Expression - -### Problem - -You need to evaluate a dynamic arithmetic operation specified by a trusted user or check a dynamic rule. - - - Dynamic report calculation field - - Dynamic report query filter - - Dynamic rule validation - -### Solution - -Eval SQL.NET supports all C# operators including operators precedence and parenthesis. - -Evaluating an expression is very fast and scalable. You can see performance 3-20x faster than User-Defined Function (UDF) and you can evaluate an expression as much as ONE MILLION times under a second. - - -```csharp -DECLARE @items TABLE (Quantity INT, Price MONEY) - -INSERT INTO @items -VALUES ( 2, 10 ), - ( 9, 6 ), - ( 15, 2 ), - ( 6, 0 ), - ( 84, 5 ) - -DECLARE @customColumn SQLNET = SQLNET::New('(quantity * price).ToString("$#.00")') -DECLARE @customFilter SQLNET = SQLNET::New('quantity > 3 && price > 0') - --- Select_0: 9, 6.00, $54.00 --- Select_1: 15, 2.00, $30.00 --- Select_2: 84, 5.00, $420.00 -SELECT * , - @customColumn.ValueInt('quantity', Quantity).Val('price', Price).EvalString() as Result -FROM @items -WHERE @customFilter.ValueInt('quantity', Quantity).Val('price', Price).EvalBit() = 1 -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/4ed27/1' %} - -## SQL Eval - Dynamic Expression - -### Problem - -You need to evaluate and execute a dynamic SQL expression which requires more than basic arithmetic operators. - - - if/else - - switch/case - - try/catch - -### Solution - -Eval SQL.NET is flexible and supports almost all C# keywords and features including: - - - Anonymous Type - - Generic Type - - Lambda Expression - - LINQ - - -```csharp -CREATE PROCEDURE [dbo].[Select_Switch] @x INT, @y INT, @z INT -AS - BEGIN - DECLARE @result INT - - SET @result = SQLNET::New(' -switch(x) -{ - case 1: return y + z; - case 2: return y - z; - case 3: return y * z; - default: return Convert.ToInt32(y ^^ z); // Pow -} - ').ValueInt('x', @x).ValueInt('y', @y).ValueInt('z', @z).EvalInt() - - SELECT @result as Result - END - -GO - --- RETURN 5 -EXEC Select_Switch 1, 2, 3 --- RETURN -1 -EXEC Select_Switch 2, 2, 3 --- RETURN 6 -EXEC Select_Switch 3, 2, 3 --- RETURN 8 -EXEC Select_Switch 4, 2, 3 -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/6b73d/2' %} - -## SQL Eval - Framework class Library - -### Problem - -You have a complex SQL and you know C# Syntax and C# Object could very easily solve this problem. - - - Regex - - DirectoryInfo / FileInfo - - String.Format - -### Solution - -Eval SQL.NET improves readability and maintainability over complex SQL. It supports all [.NET framework class libraries](https://msdn.microsoft.com/en-us/library/gg145045.aspx) (FCL) that are supported by [SQL CLR Framework Libraries](https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration/database-objects/supported-net-framework-libraries). - - -```csharp --- CREATE test -DECLARE @t TABLE (Id INT , Input VARCHAR(MAX)) -INSERT INTO @t VALUES ( 1, '1, 2, 3; 4; 5' ), ( 2, '6;7,8;9,10' ) - --- SPLIT with many delimiters: ',' and ';' -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")') - -SELECT * -FROM @t AS A - CROSS APPLY ( SELECT * - FROM dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', Input)) - ) AS B -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/ca1ba/2' %} - -## Conclusion - -Eval SQL.NET can be seen in SQL Server as the function "eval()" equivalent of JavaScript. Unlike common solutions limited to very simple math expressions, Eval SQL.NET features go way beyond: - - - Access to C# Operators - - Access to C# Keywords - - Access to C# Objects - -Getting better performance than User-Defined Function (UDF) and Table-Valued Function (TVF) is the Icing on the Cake! diff --git a/docs2/pages/troubleshooting/sql-server-file-operation.md b/docs2/pages/troubleshooting/sql-server-file-operation.md deleted file mode 100644 index 2fba3da..0000000 --- a/docs2/pages/troubleshooting/sql-server-file-operation.md +++ /dev/null @@ -1,139 +0,0 @@ -# SQL Server File Operation - -## Introduction - -Reading and writing files are basic requirements for importing/exporting data through SQL server jobs. The xp_cmdshell stored procedure is often used but not a lot of developers and DBA are comfortable coding with it. The syntax makes the code often ugly, hard to develop and expensive to maintain due to the lack of good documentation, flexibility and understanding. - -Some DBA don't recommend and even ban all use of the procedure xp_cmdshell from their environment due to security issues. - -Eval SQL.NET allows you to use C# features and objects such as FileInfo and DirectoryInfo directly in T-SQL and improves code readability. It's the safest alternative to replace xp_cmdshell to access external resources by letting impersonate the current user context. - -It's safe and easy to use. - - -```csharp --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*").Select(x => x.FullName).OrderBy(x => x).ToList();') - .Impersonate() - --- SELECT * FROM DesktopFiles ORDER BY File.Fullname -EXEC dbo.SQLNET_EvalResultSet @sqlnet -``` - -## SQL File Operation - Better flexibility - -### Problem - -You need to perform file operations but SQL xp_cmdshell limits you. - - - Return multiple column result back - - Passing parameter easier - - Impersonation - -### Solution - -Eval SQL.NET lets you use C# language and makes file operations very easy to perform. - - -```csharp - --- REQUIRE EXTERNAL_ACCESS permission -DECLARE @FileInfo TABLE - ( - FilePath VARCHAR(255) , - FileContent VARCHAR(MAX) - ) - -DECLARE @sqlnet SQLNET = SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); - -var dir = new DirectoryInfo(path); -return dir.GetFiles("*.*").Select(x => new Tuple( - x.FullName, File.ReadAllText(x.FullName))) - .OrderBy(x => x).ToList();').Impersonate() - --- SELECT Path, FileText FROM DesktopFiles ORDER BY File.Fullname -INSERT INTO @FileInfo - EXEC dbo.SQLNET_EvalResultSet @sqlnet - -SELECT * -FROM @FileInfo - -``` - - -## SQL File Operation - Better maintainability - -### Problem - -You need to develop a file operation but you're afraid your code will be very hard to maintain. - -### Solution - -Eval SQL.NET improves the maintainability by letting you use well known and well documented C# objects such as DirectoryInfo and FileInfo. - - -```csharp --- REQUIRE EXTERNAL_ACCESS permission --- BACKUP all ".txt" files created before 3 days ago --- RETURN the number of files affected - -SELECT SQLNET::New(' -string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); -string backupPath = Path.Combine(path, "Backup_" + DateTime.Now.ToString("yyyyMMdd")); - -DirectoryInfo desktopDirectory = new DirectoryInfo(path); -DirectoryInfo backupDirectory = new DirectoryInfo(backupPath); - -// ENSURE the directory exists -backupDirectory.Create(); - -// GET file to backup -var backupFiles = desktopDirectory.GetFiles("*.txt") - .Where(x => x.CreationTime < DateTime.Now.AddDays(-3)) - .ToList(); - -// COPY files to backup directory -backupFiles.ForEach(x => x.CopyTo(x.FullName.Replace(path, backupPath))); - -// RETURN the number of affected files -return backupFiles.Count; -').Impersonate().EvalReadAccessInt() as Result - -``` - -## SQL File Operation - Better readability - -### Problem - -You need to perform file operations but the code soon becomes hard to understand and to change. - -### Solution - -Eval SQL.NET improves the readability by letting you use well known C# objects that wrap logic such as DirectoryInfo and FileInfo. - -## SQL File Operation - Better security - -### Problem - -You need to perform file operations but you don't want to enable xp_cmdshell in your SQL Server. - -### Solution - -Eval SQL.NET lets you perform file operations and change the security context to impersonate the credential of the one who runs the T-SQL statements. - -## Conclusion - -Eval SQL.NET grants you easy access to external resources through the C# language in T-SQL jobs and objects. - -It's a safe SQL alternative to xp_cmdshell and offers multiple advantages: - - - Improve Flexibility: Access to C# Language in SQL - - Improve Maintainability: FileInfo and DirectoryInfo are well-known/documented objects - - Improve Readability: C# is without a doubt easier to read than T-SQL for complex code - - Improve Security: Impersonate user context - diff --git a/docs2/pages/troubleshooting/sql-server-function.md b/docs2/pages/troubleshooting/sql-server-function.md deleted file mode 100644 index bd10f56..0000000 --- a/docs2/pages/troubleshooting/sql-server-function.md +++ /dev/null @@ -1,221 +0,0 @@ -# SQL Server Function (UDF) - -## Introduction - -User-Defined Function (UDF) encapsulates code to make it easier to reuse. However, there are some limitations and restrictions: - - - Cannot call stored procedure - - Cannot use try/catch - - Cannot modify table state - - Cannot run dynamic sql - -**Eval SQL.NET** enhances function capabilities and lets you use C# language directly in T-SQL functions to overcome their limitations and restrictions. - -## SQL Function - Better readability - -### Problem - -You need to write a function but the code soon becomes very complex and unmaintainable. - -### Solution - -Eval SQL.NET improves the readability and maintainability of complex functions by using well-known C# objects. - - -```csharp - -DECLARE @s VARCHAR(MAX) = '1, 2, 3; 4; 5' -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")') - -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', @s)) - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1069' %} - -### Discussion - -For simple code, SQL syntax may work like a charm but when the code's complexity increases, less SQL is best suited for the job. It is designed to write queries, not to create long spaghetti code. We all have seen some functions that could have been written so much easier using another language like C#. - -One of the most common function is probably the fn_split function. It's not that hard to understand but thousands of variances exist and most of them are limited to only one delimiter. Using Eval SQL.NET, the fn_split function takes regular expression to split text which makes it very powerful. - - -## SQL Function - Error handling - -### Problem - -You need to handle an error with a TRY/CATCH but you receive the SQL error: - - - *Invalid use of a side-effecting operator 'BEGIN TRY' within a function.* - - *Invalid use of a side-effecting operator 'END TRY' within a function.* - - *Invalid use of a side-effecting operator 'BEGIN CATCH' within a function.* - - *Invalid use of a side-effecting operator 'END CATCH' within a function.* - -### Solution - -Eval SQL.NET makes it possible to handle errors with TRY/CATCH within a T-SQL function. - - -```csharp - -CREATE FUNCTION [dbo].[fn_try_catch] ( @x INT, @y INT ) -RETURNS INT -AS - BEGIN - RETURN SQLNET::New(' -try -{ - return x / y -} -catch (Exception ex) -{ - return x; -} -').ValueInt('x', @x).ValueInt('y', @y).EvalInt() - - END - -GO - --- SELECT 4 -SELECT dbo.fn_try_catch(4, 0) as Result - --- SELECT 2 -SELECT dbo.fn_try_catch(4, 2) as Result - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/d0cf1/1' %} - -## SQL Function - Call stored procedure - -### Problem - -You need to call a procedure within a function but you receive the SQL error: - - - *Only functions and some extended stored procedures can be executed from within a function.** - -### Solution - -Eval SQL.NET makes it possible to call stored procedures within a T-SQL function. - - -```csharp - -CREATE FUNCTION [dbo].[fn_CallProcedure] ( ) -RETURNS SQL_VARIANT -AS - BEGIN - RETURN SQLNET::New(' -defaultCommand.CommandText = "[PROCEDURE_NAME]"; -defaultCommand.CommandType = CommandType.StoredProcedure; -defaultCommand.Parameters.AddWithValue("name", name); -return defaultCommand.ExecuteScalar(); -').ValueString('name', 'zzz').Eval() - - END - -``` - -Using this feature is highly **NOT RECOMMENDED**. - -## SQL Function - Modify table state - -### Problem - -You need to insert, update or delete data within a function but you receive the SQL error: - -User-defined functions cannot be used to perform actions that modify the database state. - -### Solution - -Eval SQL.NET makes it possible to modify table state (insert, update and delete) within a T-SQL function. - - -```csharp - -CREATE FUNCTION [dbo].[fn_modify_table_state] - ( - @conn VARCHAR(8000) , - @sql VARCHAR(8000) - ) -RETURNS INT -AS - BEGIN - RETURN SQLNET::New(' -using(var connection = new SqlConnection(conn)) -{ - connection.Open(); - - using(var command = new SqlCommand(sql, connection)) - { - return command.ExecuteNonQuery(); - } -} -').ValueString('conn', @conn).ValueString('sql', @sql).EvalReadAccessInt() - - END - - GO - -DECLARE @conn VARCHAR(8000) = 'Data Source=XPS8700;Initial Catalog=SqlServerEval_Debug;Integrated Security=True' -DECLARE @sql VARCHAR(8000) = 'UPDATE [Table_1] SET Value = -1 WHERE Name = ''zzz''' - -DECLARE @rowAffecteds INT = dbo.fn_modify_table_state(@conn, @sql) - -``` - -Using this feature is highly **NOT RECOMMENDED**. - -## SQL Function - Run dynamic SQL - -### Problem - -You need to "EXECUTE" a string within a function but you receive the SQL error: - -Invalid use of a side-effecting operator 'EXECUTE STRING' within a function. - -### Solution - -Eval SQL.NET makes it possible to run "EXECUTE" and evaluate dynamic expressions within a T-SQL function. - - -```csharp - -CREATE FUNCTION [dbo].[fn_Exec_Count] ( @sql VARCHAR(8000) ) -RETURNS INT -AS - BEGIN - RETURN SQLNET::New(' -var dt = new DataTable(); -var s = "Data Source=XPS8700;Initial Catalog=SqlServer_Eval;Integrated Security=True"; -using(var connection = new SqlConnection(s)) -{ - connection.Open(); - - using(var command = new SqlCommand()) - { - command.Connection = connection; - command.CommandText = "EXEC(''" + sql + "'')"; - dt.Load(command.ExecuteReader()); - return dt.Rows.Count; - } -} -').ValueString('sql', @sql).EvalReadAccessInt() - - END - -GO - --- SELECT 2 -SELECT dbo.fn_Exec_Count('SELECT 1 UNION SELECT 2') as Result - -``` - -Using this feature is highly **NOT RECOMMENDED**. - -## Conclusion - -Eval SQL.NET improves the readability and make the code easier to develop and maintain with C# syntax over complex SQL code. - -Even if you are now allowed to make some table modifications, we don't recommend using this feature and use a stored procedure instead. Make sure you use the right tool for the right job. - diff --git a/docs2/pages/troubleshooting/sql-server-regex.md b/docs2/pages/troubleshooting/sql-server-regex.md deleted file mode 100644 index 7339cf7..0000000 --- a/docs2/pages/troubleshooting/sql-server-regex.md +++ /dev/null @@ -1,228 +0,0 @@ -# SQL Server Regex - -## Introduction - -Finding or replacing text in SQL is a very frequent scenario. "LIKE" and "PATINDEX" are often used but, unfortunately, are not close to be as powerful and offering the same possibilities as regular expression (Regex) does. - -Eval SQL.NET lets you use and exploit fully C# regular expression features directly in T-SQL stored procedures, functions and triggers. It's possible to use regex in SQL search condition and select statement. - - -```csharp - -DECLARE @customer TABLE ( Email VARCHAR(255) ) - -INSERT INTO @customer -VALUES ( 'info@zzzprojects.com' ), - ( 'invalid.com' ), - ( 'sales@zzzprojects.com' ) - -DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, -@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")') - --- SELECT 'invalid.com' -SELECT * FROM @customer WHERE @valid_email.Val('email', Email).EvalBit() = 0 - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/213f9/1' %} - - -## SQL Regex - IsMatch - -### Problem - -You need to perform a rule validation or search with a condition to find valid/invalid rows but "LIKE" and "PATINDEX" limitations don't cover your requirements: - - - Find customer with invalid email - - Find customer with invalid phone - - Find customer with invalid website - - Validate password - -### Solution - -SQL Regex IsMatch indicates whether the regular expression finds a match in the string or not. - - -```csharp - -DECLARE @customer TABLE ( Email VARCHAR(255) ) - -INSERT INTO @customer -VALUES ( 'info@zzzprojects.com' ), - ( 'invalid.com' ), - ( 'sales@zzzprojects.com' ) - -DECLARE @valid_email SQLNET = SQLNET::New('Regex.IsMatch(email, -@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")') - --- SELECT 'invalid.com' -SELECT * FROM @customer WHERE @valid_email.ValueString('email', Email).EvalBit() = 0 - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/213f9/2' %} - -## SQL Regex - Match - -### Problem - -You need to extract the first occurrence from a string such as user profile description: - - - Extract the first email - - Extract the first phone - - Extract the first website - -### Solution - -SQL Regex Match searches in a string for the first occurrence of the regular expression and returns the match. - - -```csharp - -DECLARE @shortDescription VARCHAR(800) = 'zzz ... zzz... http://zzzprojects.com ... zzzz' -DECLARE @website VARCHAR(255) = NULL; - -IF ( @website IS NULL ) - BEGIN - -- IF user has not specified a website, try to get it from the short description - SET @website = SQLNET::New(' -string value = Regex.Match(shortDescription, -"(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})").Value; - -return value != "" ? value : null; -') - .ValueString('shortDescription', @shortDescription) - .EvalString(); - END - --- return 'http://zzzprojects.com' -SELECT @website - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1012' %} - - -## SQL Regex - Matches - -### Problem - -You need to extract all occurrences from a string such as blog post: - - - Extract all emails - - Extract all phones - - Extract all websites - -### Solution - -SQL Regex Matches searches in the string for all occurrences of the regular expression and returns all the matches. - - -```csharp - -DECLARE @post VARCHAR(800) = 'zzz ... zzz... http://zzzprojects.com ... zzzz -. zzz... https://github.com/zzzprojects/Eval-SQL.NET ... zzzz -. zzz... zzz... https://github.com/zzzprojects/Eval-Expression.NET ... zzzz -. zzz.... zzz.... zzz... https://github.com/zzzprojects/EntityFramework-Plus ... zzzz -' - -DECLARE @websites TABLE ( Website VARCHAR(250) ) - -DECLARE @sqlnet_matchs SQLNET = SQLNET::New(' -var matches = Regex.Matches(post, -"(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})"); - -var list = new List(); -foreach(Match match in matches) -{ - list.Add(match.Value); -} - -return list; -').ValueString('post', @post) - - -INSERT INTO @websites - SELECT CAST(Value_1 AS VARCHAR(250)) - FROM dbo.SQLNET_EvalTVF_1(@sqlnet_matchs) - --- SELECT 'http://zzzprojects.com' --- SELECT 'https://github.com/zzzprojects/Eval-SQL.NET' --- SELECT 'https://github.com/zzzprojects/Eval-Expression.NET' --- SELECT 'https://github.com/zzzprojects/EntityFramework-Plus' -SELECT * FROM @websites - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/d48e7/3' %} - -## SQL Regex - Replace - -### Problem - -You need to convert, remove or substitute a text with a specific format: - - - Convert plain url to html link - - Remove phones - - Substitute name in text template - -### Solution - -SQL Regex Replace searches for strings that match a regular expression pattern and replaces a value with a replacement string. - - -```csharp - -DECLARE @post VARCHAR(800) = 'website: http://zzzprojects.com' - -SET @post = SQLNET::New(' -var input = post; -var pattern = @"(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})"; -var replacement = "$1"; - -return Regex.Replace(input, pattern, replacement); -').ValueString('post', @post).EvalString() - --- SELECT 'website: http://zzzprojects.com' -SELECT @post - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/b308e/1' %} - -## SQL Regex - Split - -### Problem - -You need to split a string but the traditional "fn_split" method is limited and doesn't cover your scenario: - - - Use multiple delimiter - - Keep the delimiter in value - - Split the first X occurrences - -### Solution - -SQL Regex Split lets you split a string into an array of substrings using a regular expression. - - -```csharp - -DECLARE @s VARCHAR(MAX) = '1, 2, 3; 4; 5' -DECLARE @sqlnet SQLNET = SQLNET::New('Regex.Split(input, ",|;")') - -SELECT * -FROM dbo.SQLNET_EvalTVF_1(@sqlnet.ValueString('input', @s)) - -``` -{% include component-try-it.html href='http://sqlfiddle.com/#!18/9eecb/1069' %} - -### Discussion - -If you are currently using an fn_split User-Defined Functions (UDF), this benchmark will probably make you change your mind! - -|Methods |1,000 rows |10,000 rows |100,000 rows |1,000,000 rows | -|:--------- |:--------- |:------------- |:------------- |:------------- | -|Eval SQL.NET |4 ms |13 ms |160 ms |1,650 ms| -fn_split (TVF) |100 ms |625 ms |5,500 ms |55,000 ms| - -## Conclusion - -Eval SQL.NET offers all advanced C# regular expression features in T-SQL statements and search conditions. Even more, you can use C# syntax to return from SQL what you really want and not only the regex result. - -While it should never replace scenarios where pure SQL operators/functions such as "LIKE" and "PATINDEX" are sufficient, Eval SQL.NET will help you easily cover all unsupported ones. - diff --git a/docs2/pages/troubleshooting/trial.md b/docs2/pages/troubleshooting/trial.md deleted file mode 100644 index 93478b9..0000000 --- a/docs2/pages/troubleshooting/trial.md +++ /dev/null @@ -1,18 +0,0 @@ -# Trial - -Oops! Your trial has expired. - -### How can I extend my trial? -You can extend your trial for several months by downloading the latest version at the beginning of every month. - - - - Download - - - -### Where is the free version? -There is no free version. - -### How can I purchase a license? -A perpetual license can be purchased from here: Buy \ No newline at end of file From d1196151594d1beb761e5f1d1d639cf8ef875250 Mon Sep 17 00:00:00 2001 From: Jonathan Magnan Date: Wed, 20 Mar 2024 16:47:28 -0400 Subject: [PATCH 2/2] Update README.md --- README.md | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f2c12d4..5d11721 100644 --- a/README.md +++ b/README.md @@ -148,12 +148,17 @@ A **HUGE THANKS** for your help. ## More Projects -- [EntityFramework Extensions](https://entityframework-extensions.net/) -- [Dapper Plus](https://dapper-plus.net/) -- [Bulk Operations](https://bulk-operations.net/) -- [C# Eval Expression](https://eval-expression.net/) -- and much more! - -To view all our free and paid projects, visit our [website](https://zzzprojects.com/). - -Contact our outstanding **[customer support](https://eval-sql.net/contact-us)** for any request. We usually answer within the next day, hour, or minutes! +- Projects: + - [EntityFramework Extensions](https://entityframework-extensions.net/) + - [Dapper Plus](https://dapper-plus.net/) + - [C# Eval Expression](https://eval-expression.net/) +- Learn Websites + - [Learn EF Core](https://www.learnentityframeworkcore.com/) + - [Learn Dapper](https://www.learndapper.com/) +- Online Tools: + - [.NET Fiddle](https://dotnetfiddle.net/) + - [SQL Fiddle](https://sqlfiddle.com/) + - [ZZZ Code AI](https://zzzcode.ai/) +- and much more! + +To view all our free and paid projects, visit our website [ZZZ Projects](https://zzzprojects.com/).